@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.
Files changed (136) hide show
  1. package/README.md +173 -0
  2. package/dist/src/codegen.d.ts +3 -0
  3. package/dist/src/codegen.js +25 -0
  4. package/dist/src/codegen.js.map +1 -0
  5. package/dist/src/executors/preview-deploy/README.md +5 -0
  6. package/dist/src/executors/preview-deploy/argocdOverride.d.ts +4 -0
  7. package/dist/src/executors/preview-deploy/argocdOverride.js +22 -0
  8. package/dist/src/executors/preview-deploy/argocdOverride.js.map +1 -0
  9. package/dist/src/executors/preview-deploy/executor.d.ts +4 -0
  10. package/dist/src/executors/preview-deploy/executor.js +143 -0
  11. package/dist/src/executors/preview-deploy/executor.js.map +1 -0
  12. package/dist/src/executors/preview-deploy/kargoPolicy.d.ts +14 -0
  13. package/dist/src/executors/preview-deploy/kargoPolicy.js +69 -0
  14. package/dist/src/executors/preview-deploy/kargoPolicy.js.map +1 -0
  15. package/dist/src/executors/preview-deploy/schema.json +28 -0
  16. package/dist/src/executors/publisher/README.md +3 -0
  17. package/dist/src/executors/publisher/docker.d.ts +3 -0
  18. package/dist/src/executors/publisher/docker.js +66 -0
  19. package/dist/src/executors/publisher/docker.js.map +1 -0
  20. package/dist/src/executors/publisher/executor.d.ts +4 -0
  21. package/dist/src/executors/publisher/executor.js +20 -0
  22. package/dist/src/executors/publisher/executor.js.map +1 -0
  23. package/dist/src/executors/publisher/helm.d.ts +3 -0
  24. package/dist/src/executors/publisher/helm.js +69 -0
  25. package/dist/src/executors/publisher/helm.js.map +1 -0
  26. package/dist/src/executors/publisher/lambda.d.ts +18 -0
  27. package/dist/src/executors/publisher/lambda.js +86 -0
  28. package/dist/src/executors/publisher/lambda.js.map +1 -0
  29. package/dist/src/executors/publisher/schema.json +62 -0
  30. package/dist/src/executors/release/README.md +15 -0
  31. package/dist/src/executors/release/executor.d.ts +4 -0
  32. package/dist/src/executors/release/executor.js +104 -0
  33. package/dist/src/executors/release/executor.js.map +1 -0
  34. package/dist/src/executors/release/schema.json +37 -0
  35. package/dist/src/generators/init/README.md +5 -0
  36. package/dist/src/generators/init/files/.circleci/config.yml.template +232 -0
  37. package/dist/src/generators/init/files/.circleci/teleport/shared-charts.conf.template +24 -0
  38. package/dist/src/generators/init/files/.npmrc.template +1 -0
  39. package/dist/src/generators/init/init.d.ts +13 -0
  40. package/dist/src/generators/init/init.js +278 -0
  41. package/dist/src/generators/init/init.js.map +1 -0
  42. package/dist/src/generators/init/schema.json +7 -0
  43. package/dist/src/index.d.ts +27 -0
  44. package/dist/src/index.js +118 -0
  45. package/dist/src/index.js.map +1 -0
  46. package/dist/src/scripts/codegen-with-auth.js +55 -0
  47. package/dist/src/scripts/version-actions.d.ts +8 -0
  48. package/dist/src/scripts/version-actions.js +41 -0
  49. package/dist/src/scripts/version-actions.js.map +1 -0
  50. package/dist/src/scripts/version-actions.mock.d.ts +6 -0
  51. package/dist/src/scripts/version-actions.mock.js +61 -0
  52. package/dist/src/scripts/version-actions.mock.js.map +1 -0
  53. package/dist/src/utils/common/aws-auth.d.ts +47 -0
  54. package/dist/src/utils/common/aws-auth.js +145 -0
  55. package/dist/src/utils/common/aws-auth.js.map +1 -0
  56. package/dist/src/utils/common/circleci.d.ts +2 -0
  57. package/dist/src/utils/common/circleci.js +20 -0
  58. package/dist/src/utils/common/circleci.js.map +1 -0
  59. package/dist/src/utils/common/exec.d.ts +4 -0
  60. package/dist/src/utils/common/exec.js +52 -0
  61. package/dist/src/utils/common/exec.js.map +1 -0
  62. package/dist/src/utils/common/github.d.ts +20 -0
  63. package/dist/src/utils/common/github.js +60 -0
  64. package/dist/src/utils/common/github.js.map +1 -0
  65. package/dist/src/utils/common/import-esm.d.ts +2 -0
  66. package/dist/src/utils/common/import-esm.js +12 -0
  67. package/dist/src/utils/common/import-esm.js.map +1 -0
  68. package/dist/src/utils/common/logger.d.ts +1 -0
  69. package/dist/src/utils/common/logger.js +8 -0
  70. package/dist/src/utils/common/logger.js.map +1 -0
  71. package/dist/src/utils/common/nx.d.ts +22 -0
  72. package/dist/src/utils/common/nx.js +174 -0
  73. package/dist/src/utils/common/nx.js.map +1 -0
  74. package/dist/src/utils/common/s3.d.ts +1 -0
  75. package/dist/src/utils/common/s3.js +18 -0
  76. package/dist/src/utils/common/s3.js.map +1 -0
  77. package/dist/src/utils/common/tsh.d.ts +11 -0
  78. package/dist/src/utils/common/tsh.js +112 -0
  79. package/dist/src/utils/common/tsh.js.map +1 -0
  80. package/dist/src/utils/datadog.d.ts +1 -0
  81. package/dist/src/utils/datadog.js +33 -0
  82. package/dist/src/utils/datadog.js.map +1 -0
  83. package/dist/src/utils/docker.d.ts +15 -0
  84. package/dist/src/utils/docker.js +73 -0
  85. package/dist/src/utils/docker.js.map +1 -0
  86. package/dist/src/utils/helm.d.ts +64 -0
  87. package/dist/src/utils/helm.js +159 -0
  88. package/dist/src/utils/helm.js.map +1 -0
  89. package/dist/src/utils/helm.mock.d.ts +85 -0
  90. package/dist/src/utils/helm.mock.js +100 -0
  91. package/dist/src/utils/helm.mock.js.map +1 -0
  92. package/dist/src/utils/lambda/aws-lambda.d.ts +47 -0
  93. package/dist/src/utils/lambda/aws-lambda.js +231 -0
  94. package/dist/src/utils/lambda/aws-lambda.js.map +1 -0
  95. package/dist/src/utils/lambda/lambda.d.ts +7 -0
  96. package/dist/src/utils/lambda/lambda.js +20 -0
  97. package/dist/src/utils/lambda/lambda.js.map +1 -0
  98. package/dist/src/utils/lambda/oci.d.ts +8 -0
  99. package/dist/src/utils/lambda/oci.js +22 -0
  100. package/dist/src/utils/lambda/oci.js.map +1 -0
  101. package/dist/src/utils/lambda/publish.d.ts +14 -0
  102. package/dist/src/utils/lambda/publish.js +44 -0
  103. package/dist/src/utils/lambda/publish.js.map +1 -0
  104. package/dist/src/utils/lambda/spacelift.d.ts +3 -0
  105. package/dist/src/utils/lambda/spacelift.js +55 -0
  106. package/dist/src/utils/lambda/spacelift.js.map +1 -0
  107. package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.d.ts +19 -0
  108. package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js +22 -0
  109. package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js.map +1 -0
  110. package/dist/src/utils/spacelift/lib/__generated__/gql.d.ts +15 -0
  111. package/dist/src/utils/spacelift/lib/__generated__/gql.js +8 -0
  112. package/dist/src/utils/spacelift/lib/__generated__/gql.js.map +1 -0
  113. package/dist/src/utils/spacelift/lib/__generated__/graphql.d.ts +9426 -0
  114. package/dist/src/utils/spacelift/lib/__generated__/graphql.js +819 -0
  115. package/dist/src/utils/spacelift/lib/__generated__/graphql.js.map +1 -0
  116. package/dist/src/utils/spacelift/lib/__generated__/index.d.ts +2 -0
  117. package/dist/src/utils/spacelift/lib/__generated__/index.js +6 -0
  118. package/dist/src/utils/spacelift/lib/__generated__/index.js.map +1 -0
  119. package/dist/src/utils/spacelift/lib/graphql.service.d.ts +18 -0
  120. package/dist/src/utils/spacelift/lib/graphql.service.js +186 -0
  121. package/dist/src/utils/spacelift/lib/graphql.service.js.map +1 -0
  122. package/dist/src/utils/spacelift/lib/query/spacelift.queries.d.ts +34 -0
  123. package/dist/src/utils/spacelift/lib/query/spacelift.queries.js +48 -0
  124. package/dist/src/utils/spacelift/lib/query/spacelift.queries.js.map +1 -0
  125. package/dist/src/utils/spacelift/lib/spacelift.error.d.ts +43 -0
  126. package/dist/src/utils/spacelift/lib/spacelift.error.js +63 -0
  127. package/dist/src/utils/spacelift/lib/spacelift.error.js.map +1 -0
  128. package/dist/src/utils/spacelift/lib/spacelift.service.d.ts +16 -0
  129. package/dist/src/utils/spacelift/lib/spacelift.service.js +58 -0
  130. package/dist/src/utils/spacelift/lib/spacelift.service.js.map +1 -0
  131. package/dist/src/utils/spacelift/lib/utils.d.ts +4 -0
  132. package/dist/src/utils/spacelift/lib/utils.js +32 -0
  133. package/dist/src/utils/spacelift/lib/utils.js.map +1 -0
  134. package/executors.json +19 -0
  135. package/generators.json +9 -0
  136. package/package.json +60 -0
@@ -0,0 +1,24 @@
1
+ version: v2
2
+ onboarding:
3
+ token: "nx-common-packages"
4
+ join_method: "circleci"
5
+ storage:
6
+ type: "directory"
7
+ path: "/tmp/tbot-data"
8
+ symlinks: "try-secure"
9
+ acls: "off"
10
+ outputs:
11
+ - type: "application"
12
+ destination:
13
+ type: "directory"
14
+ path: "./certs"
15
+ symlinks: "try-secure"
16
+ acls: "off"
17
+ app_name: "charts-shared"
18
+ specific_tls_naming: false
19
+ debug: false
20
+ auth_server: "payfit.teleport.sh:443"
21
+ certificate_ttl: "1h0m0s"
22
+ renewal_interval: "20m0s"
23
+ oneshot: true
24
+ fips: false
@@ -0,0 +1 @@
1
+ //registry.npmjs.org/:_authToken=${NPM_TOKEN}
@@ -0,0 +1,13 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { InitGeneratorSchema } from './schema';
3
+ export declare function extractMetadataFromCircleCI(circleciContent: string, tree: Tree): Promise<Record<string, string>>;
4
+ export declare function injectMetadata(tree: Tree, projectRoot: string, metadata: Record<string, string>): void;
5
+ /**
6
+ * Make sure the package.json publish config have correct default values
7
+ * @param tree
8
+ * @param packageJsonPath
9
+ * @param shouldBePublished
10
+ */
11
+ export declare function processPackageJsonPublishConfig(tree: Tree, packageJsonPath: string, shouldBePublished?: boolean): void;
12
+ export declare function initGenerator(tree: Tree, options?: InitGeneratorSchema): Promise<import("@nx/devkit").GeneratorCallback>;
13
+ export default initGenerator;
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractMetadataFromCircleCI = extractMetadataFromCircleCI;
4
+ exports.injectMetadata = injectMetadata;
5
+ exports.processPackageJsonPublishConfig = processPackageJsonPublishConfig;
6
+ exports.initGenerator = initGenerator;
7
+ const path = require("path");
8
+ const devkit_1 = require("@nx/devkit");
9
+ const yaml = require("yaml");
10
+ const github_1 = require("../../utils/common/github");
11
+ const logger_1 = require("../../utils/common/logger");
12
+ const METADATA_EXTRACTORS = [
13
+ {
14
+ jobType: 'payfit-aws-ecr/build-and-push',
15
+ parameterKey: 'repo',
16
+ metadataKey: 'ecrRegistry',
17
+ extractValue: async (value) => value,
18
+ },
19
+ {
20
+ jobType: 'helm-package-chart/publish',
21
+ parameterKey: 'awsPath',
22
+ metadataKey: 'chartRegistry',
23
+ extractValue: async (value) => {
24
+ // Extract the first part before the /
25
+ const chartRegistry = value.split('/')[0];
26
+ // Replace ${CIRCLE_PROJECT_REPONAME} with actual repo name if needed
27
+ if (chartRegistry.includes('${CIRCLE_PROJECT_REPONAME}')) {
28
+ // Get repo name from git
29
+ return chartRegistry.replace('${CIRCLE_PROJECT_REPONAME}', await (0, github_1.getGitRepositoryName)());
30
+ }
31
+ return chartRegistry;
32
+ },
33
+ },
34
+ ];
35
+ async function extractMetadataFromCircleCI(circleciContent, tree) {
36
+ const extractedMetadata = {};
37
+ try {
38
+ const config = yaml.parse(circleciContent);
39
+ if (!config.workflows) {
40
+ return extractedMetadata;
41
+ }
42
+ // Look through workflows for jobs matching our extractors
43
+ for (const workflowName in config.workflows) {
44
+ // Skip version field which is metadata, not a workflow
45
+ if (workflowName === 'version') {
46
+ continue;
47
+ }
48
+ const workflow = config.workflows[workflowName];
49
+ if (!workflow.jobs) {
50
+ continue;
51
+ }
52
+ for (const job of workflow.jobs) {
53
+ if (typeof job !== 'object')
54
+ continue;
55
+ const jobKey = Object.keys(job)[0];
56
+ const jobConfig = job[jobKey];
57
+ // Check each extractor
58
+ for (const extractor of METADATA_EXTRACTORS) {
59
+ if (jobKey === extractor.jobType &&
60
+ jobConfig[extractor.parameterKey]) {
61
+ const rawValue = jobConfig[extractor.parameterKey];
62
+ const extractedValue = await extractor.extractValue(rawValue, tree);
63
+ if (extractedValue) {
64
+ extractedMetadata[extractor.metadataKey] = extractedValue;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ return extractedMetadata;
71
+ }
72
+ catch (error) {
73
+ logger_1.consola.warn('Failed to parse CircleCI config:', error);
74
+ return extractedMetadata;
75
+ }
76
+ }
77
+ function injectMetadata(tree, projectRoot, metadata) {
78
+ const projectJsonPath = path.join(projectRoot, 'project.json');
79
+ if (!tree.exists(projectJsonPath) || Object.keys(metadata).length === 0) {
80
+ return;
81
+ }
82
+ (0, devkit_1.updateJson)(tree, projectJsonPath, projectJson => {
83
+ if (!projectJson.metadata) {
84
+ projectJson.metadata = {};
85
+ }
86
+ // Inject all metadata
87
+ Object.entries(metadata).forEach(([key, value]) => {
88
+ projectJson.metadata[key] = value;
89
+ logger_1.consola.info(`Added ${key} metadata "${value}" to ${projectRoot}/project.json`);
90
+ });
91
+ return projectJson;
92
+ });
93
+ }
94
+ /**
95
+ * Make sure the package.json publish config have correct default values
96
+ * @param tree
97
+ * @param packageJsonPath
98
+ * @param shouldBePublished
99
+ */
100
+ function processPackageJsonPublishConfig(tree, packageJsonPath, shouldBePublished = false) {
101
+ if (!tree.exists(packageJsonPath))
102
+ return;
103
+ (0, devkit_1.updateJson)(tree, packageJsonPath, packageJson => {
104
+ // we force apply this config to make sure we're not publishing anything publicly,
105
+ // user can always opt out afterward
106
+ packageJson.publishConfig = {
107
+ access: 'restricted',
108
+ };
109
+ packageJson.private = true;
110
+ if (shouldBePublished) {
111
+ delete packageJson.private; // should be removed to be published to npm
112
+ }
113
+ // check for the existence of the version, if not add it as we rely on it to calculate semver
114
+ if (!packageJson.version)
115
+ packageJson.version = '1.0.0';
116
+ return packageJson;
117
+ });
118
+ }
119
+ async function processCircleCIMetadata(tree, projectCircleCIPath, projectRoot) {
120
+ const circleciContent = tree.read(projectCircleCIPath)?.toString();
121
+ if (!circleciContent) {
122
+ return;
123
+ }
124
+ // Extract all metadata from CircleCI config
125
+ const extractedMetadata = await extractMetadataFromCircleCI(circleciContent, tree);
126
+ // Inject metadata into project.json
127
+ injectMetadata(tree, projectRoot, extractedMetadata);
128
+ // Log warnings for missing metadata
129
+ const missingMetadata = METADATA_EXTRACTORS.filter(extractor => !extractedMetadata[extractor.metadataKey]);
130
+ missingMetadata.forEach(extractor => {
131
+ logger_1.consola.fail(`Could not automatically find metadata ${extractor.metadataKey}, if needed, please add ${extractor.metadataKey} metadata manually to ${projectRoot}/project.json`);
132
+ });
133
+ }
134
+ function injectNxReleaseConfiguration(tree, packageJsonName) {
135
+ const nxJson = (0, devkit_1.readNxJson)(tree);
136
+ nxJson.release = {
137
+ projectsRelationship: 'independent',
138
+ projects: ['*', `!${packageJsonName}`],
139
+ releaseTagPattern: '{projectName}-{version}',
140
+ releaseTagPatternCheckAllBranchesWhen: true,
141
+ releaseTagPatternStrictPreid: true,
142
+ changelog: {
143
+ projectChangelogs: {
144
+ createRelease: 'github',
145
+ file: false,
146
+ },
147
+ automaticFromRef: true,
148
+ git: {
149
+ commit: false,
150
+ tag: true,
151
+ },
152
+ },
153
+ version: {
154
+ useLegacyVersioning: false,
155
+ currentVersionResolver: 'git-tag',
156
+ fallbackCurrentVersionResolver: 'disk',
157
+ specifierSource: 'conventional-commits',
158
+ preserveLocalDependencyProtocols: false,
159
+ },
160
+ };
161
+ // Initialize plugins array if it doesn't exist
162
+ nxJson.plugins = nxJson.plugins ?? [];
163
+ // Add @payfit/nx-core plugin if it doesn't already exist
164
+ if (!nxJson.plugins.includes('@payfit/nx-core')) {
165
+ nxJson.plugins.push('@payfit/nx-core');
166
+ }
167
+ (0, devkit_1.updateNxJson)(tree, nxJson);
168
+ }
169
+ function injectRootPackageJsonConfiguration(tree) {
170
+ (0, devkit_1.updateJson)(tree, 'package.json', packageJson => {
171
+ if (!packageJson.nx) {
172
+ packageJson.nx = {
173
+ includedScripts: [],
174
+ };
175
+ }
176
+ else if (!packageJson.nx.includedScripts ||
177
+ packageJson.nx.includedScripts.length >= 0) {
178
+ packageJson.nx.includedScripts = [];
179
+ }
180
+ return packageJson;
181
+ });
182
+ }
183
+ function injectRootProjectJsonConfiguration(tree, packageJsonName) {
184
+ if (tree.exists('project.json')) {
185
+ (0, devkit_1.updateJson)(tree, 'project.json', projectJson => {
186
+ const projectConfig = projectJson;
187
+ projectConfig.name = packageJsonName;
188
+ return projectConfig;
189
+ });
190
+ }
191
+ else {
192
+ tree.write('project.json', JSON.stringify({
193
+ name: packageJsonName,
194
+ $schema: 'node_modules/nx/schemas/project-schema.json',
195
+ tags: ['scope:local'],
196
+ targets: {},
197
+ }));
198
+ }
199
+ }
200
+ function getPackageJsonName(tree) {
201
+ const packageJson = JSON.parse(tree.read('package.json')?.toString());
202
+ return /@{1}\w+\/{1}\w+/.test(packageJson?.name)
203
+ ? packageJson?.name
204
+ : `@payfit/${packageJson?.name}`;
205
+ }
206
+ // For each project, we need to remove the github, version, npm as there not used anymore
207
+ function injectProjectJsonConfiguration(tree, projectName, options) {
208
+ const projectJson = (0, devkit_1.readProjectConfiguration)(tree, projectName);
209
+ let existingNpmTarget = false;
210
+ for (const targetName in projectJson.targets) {
211
+ if (targetName === 'npm')
212
+ existingNpmTarget = true;
213
+ const inferedTargets = ['github', 'version', 'npm'];
214
+ if (inferedTargets.includes(targetName)) {
215
+ delete projectJson.targets[targetName];
216
+ }
217
+ }
218
+ processPackageJsonPublishConfig(tree, path.join(projectJson.root, 'package.json'), existingNpmTarget); // relying on the existing target name Npm to know if the package should be published or not
219
+ (0, devkit_1.updateProjectConfiguration)(tree, projectName, projectJson);
220
+ }
221
+ async function initGenerator(tree, options = {}) {
222
+ // Check for each project if we can find a template.yaml or a cdk.json file
223
+ // If it's the case we should keep the continuation jobs in the .circleci/config.yml,
224
+ // the .circleci/shared-config.yml
225
+ // and keep the {projectRoot}/.circleci/config.yml file
226
+ // If not we can delete all {projectRoot}/.circleci/config.yml files and the .circleci/shared-config.yml file.
227
+ const projects = (0, devkit_1.getProjects)(tree);
228
+ let hasCdkOrTemplateFile = false;
229
+ // Check for each project
230
+ for (const [projectName, projectConfig] of projects.entries()) {
231
+ const projectRoot = projectConfig.root;
232
+ const templateYamlPath = path.join(projectRoot, 'template.yaml');
233
+ const cdkJsonPath = path.join(projectRoot, 'cdk.json');
234
+ const projectCircleCIPath = path.join(projectRoot, '.circleci/config.yml');
235
+ if (tree.exists(projectCircleCIPath)) {
236
+ await processCircleCIMetadata(tree, projectCircleCIPath, projectRoot);
237
+ }
238
+ // Check if either file exists, this may need to be adjusted based on serverless autodiscover pattern
239
+ if (tree.exists(templateYamlPath) || tree.exists(cdkJsonPath)) {
240
+ hasCdkOrTemplateFile = true;
241
+ logger_1.consola.info(`Project ${projectName} has a template.yaml or cdk.json file, keeping continuation jobs.`);
242
+ }
243
+ else {
244
+ if (tree.exists(projectCircleCIPath)) {
245
+ tree.delete(projectCircleCIPath);
246
+ }
247
+ }
248
+ injectProjectJsonConfiguration(tree, projectName, options);
249
+ }
250
+ // If there is no project with a template.yaml or cdk.json file,
251
+ // we can delete the .circleci/shared-config.yml file
252
+ const sharedConfigPath = '.circleci/shared-config.yml';
253
+ if (!hasCdkOrTemplateFile && tree.exists(sharedConfigPath)) {
254
+ logger_1.consola.info('No project with a template.yaml or cdk.json file found, deleting .circleci/shared-config.yml');
255
+ tree.delete(sharedConfigPath);
256
+ }
257
+ const packageJsonName = getPackageJsonName(tree);
258
+ // Delete the .circleci/config.yml file if it exists
259
+ tree.delete('.circleci/config.yml');
260
+ // Generate the .circleci/config.yml file
261
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), '.', {
262
+ keepContinuationJobs: hasCdkOrTemplateFile,
263
+ packageJsonName,
264
+ });
265
+ // Patch the nx.json file with the nx release default configuration
266
+ injectNxReleaseConfiguration(tree, packageJsonName);
267
+ // Patch root package.json file
268
+ injectRootPackageJsonConfiguration(tree);
269
+ // Patch or create root project.json file
270
+ injectRootProjectJsonConfiguration(tree, packageJsonName);
271
+ const installCallback = (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@nx/conformance': '^3' }, 'package.json', false);
272
+ // remove the old package handling the semver from devDeps
273
+ const removeCallback = (0, devkit_1.removeDependenciesFromPackageJson)(tree, [], ['@jscutlery/semver'], 'package.json');
274
+ await (0, devkit_1.formatFiles)(tree);
275
+ return (0, devkit_1.runTasksInSerial)(installCallback, removeCallback);
276
+ }
277
+ exports.default = initGenerator;
278
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/generators/init/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "init",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {}
7
+ }
@@ -0,0 +1,27 @@
1
+ import { CreateNodesContextV2, CreateNodesV2 } from '@nx/devkit';
2
+ export interface MyPluginOptions {
3
+ }
4
+ export declare const createNodesV2: CreateNodesV2<MyPluginOptions>;
5
+ export declare function createNodesInternal(configFilePath: string, options: MyPluginOptions, context: CreateNodesContextV2): Promise<{
6
+ projects: {
7
+ [x: string]: {
8
+ targets: {};
9
+ release: any;
10
+ name?: string;
11
+ root: string;
12
+ sourceRoot?: string;
13
+ projectType?: import("@nx/devkit").ProjectType;
14
+ generators?: {
15
+ [collectionName: string]: {
16
+ [generatorName: string]: any;
17
+ };
18
+ };
19
+ implicitDependencies?: string[];
20
+ namedInputs?: {
21
+ [inputName: string]: (string | import("nx/src/config/workspace-json-project-json").InputDefinition)[];
22
+ };
23
+ tags?: string[];
24
+ metadata?: import("nx/src/config/workspace-json-project-json").ProjectMetadata;
25
+ };
26
+ };
27
+ }>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNodesV2 = void 0;
4
+ exports.createNodesInternal = createNodesInternal;
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const devkit_1 = require("@nx/devkit");
8
+ exports.createNodesV2 = [
9
+ '**/project.json',
10
+ async (configFiles, options, context) => {
11
+ return await (0, devkit_1.createNodesFromFiles)((configFile, options, context) => createNodesInternal(configFile, options, context), configFiles, options, context);
12
+ },
13
+ ];
14
+ async function createNodesInternal(configFilePath, options, context) {
15
+ const projectConfiguration = (0, devkit_1.readJsonFile)(configFilePath);
16
+ const projectRoot = (0, path_1.dirname)(configFilePath);
17
+ const isDockerProject = (0, fs_1.existsSync)((0, path_1.join)(projectRoot, 'Dockerfile'));
18
+ // Get the Helm chart folder from metadata, default to .deploy
19
+ const helmChartFolder = projectConfiguration?.metadata?.['helmChartFolder'] || '.deploy';
20
+ const isHelmProject = (0, fs_1.existsSync)((0, path_1.join)(projectRoot, helmChartFolder, 'Chart.yaml'));
21
+ const isLambdaProject = !!(projectConfiguration.metadata &&
22
+ projectConfiguration.metadata['lambdaFunctions']);
23
+ const targets = {};
24
+ const ecrRegistry = isDockerProject
25
+ ? projectConfiguration.metadata &&
26
+ projectConfiguration.metadata['ecrRegistry']
27
+ : undefined;
28
+ const chartRegistry = isHelmProject
29
+ ? projectConfiguration.metadata &&
30
+ projectConfiguration.metadata['chartRegistry']
31
+ : undefined;
32
+ const isPublicRegistry = isDockerProject
33
+ ? projectConfiguration.metadata &&
34
+ projectConfiguration.metadata['isPublicRegistry'] == true
35
+ : false;
36
+ const extraReleaseTags = isDockerProject
37
+ ? projectConfiguration.metadata &&
38
+ projectConfiguration.metadata['extraReleaseTags']
39
+ : undefined;
40
+ const lambdaBucket = isLambdaProject
41
+ ? projectConfiguration.metadata &&
42
+ projectConfiguration.metadata['lambdaBucket']
43
+ : undefined;
44
+ const lambdaStacks = isLambdaProject
45
+ ? projectConfiguration.metadata &&
46
+ projectConfiguration.metadata['lambdaStacks']
47
+ : undefined;
48
+ const lambdaFunctions = isLambdaProject
49
+ ? projectConfiguration.metadata &&
50
+ projectConfiguration.metadata['lambdaFunctions']
51
+ : undefined;
52
+ const lambdaHealthCheckPayload = isLambdaProject
53
+ ? projectConfiguration.metadata &&
54
+ projectConfiguration.metadata['lambdaHealthCheckPayload']
55
+ : undefined;
56
+ const isRootProject = projectRoot === '.';
57
+ let release = null;
58
+ if (isHelmProject || isDockerProject || isLambdaProject) {
59
+ const publisherConfig = (0, devkit_1.readJsonFile)((0, path_1.join)(__dirname, '/executors/publisher/schema.json'));
60
+ targets['nx-release-publish'] = {
61
+ // infer the custom publisher target to handle publishing docker & helm artefacts
62
+ executor: '@payfit/nx-core:publisher',
63
+ cache: false,
64
+ options: {
65
+ ecrRegistry,
66
+ chartRegistry,
67
+ isPublicRegistry,
68
+ helmChartFolder,
69
+ extraReleaseTags,
70
+ lambdaBucket,
71
+ lambdaStacks,
72
+ lambdaFunctions,
73
+ lambdaHealthCheckPayload,
74
+ },
75
+ metadata: {
76
+ technologies: ['helm', 'docker', 'lambda'],
77
+ description: publisherConfig.description,
78
+ },
79
+ };
80
+ if (!projectConfiguration?.release?.version
81
+ ?.versionActions) {
82
+ release = {
83
+ // infer the version actions to handle the custom versioning
84
+ version: {
85
+ versionActions: '@payfit/nx-core/versionActions',
86
+ },
87
+ };
88
+ }
89
+ }
90
+ if (isRootProject) {
91
+ const previewDeployConfig = (0, devkit_1.readJsonFile)((0, path_1.join)(__dirname, '/executors/preview-deploy/schema.json'));
92
+ targets['preview-deploy'] = {
93
+ executor: '@payfit/nx-core:preview-deploy',
94
+ cache: false,
95
+ metadata: {
96
+ description: previewDeployConfig.description,
97
+ },
98
+ };
99
+ const releaseConfig = (0, devkit_1.readJsonFile)((0, path_1.join)(__dirname, '/executors/release/schema.json'));
100
+ targets['release'] = {
101
+ executor: '@payfit/nx-core:release',
102
+ cache: false,
103
+ metadata: {
104
+ description: releaseConfig.description,
105
+ },
106
+ };
107
+ }
108
+ return {
109
+ projects: {
110
+ [projectRoot]: {
111
+ ...projectConfiguration,
112
+ targets,
113
+ release,
114
+ },
115
+ },
116
+ };
117
+ }
118
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { execSync } = require('child_process')
4
+
5
+ async function getJwtToken() {
6
+ const keyId = process.env.SPACELIFT_KEY_ID
7
+ const keySecret = process.env.SPACELIFT_KEY_SECRET
8
+
9
+ if (!keyId || !keySecret) {
10
+ throw new Error(
11
+ 'SPACELIFT_KEY_ID and SPACELIFT_KEY_SECRET environment variables are required',
12
+ )
13
+ }
14
+
15
+ const response = await fetch('https://payfit.app.spacelift.io/graphql', {
16
+ method: 'POST',
17
+ headers: {
18
+ 'Content-Type': 'application/json',
19
+ },
20
+ body: JSON.stringify({
21
+ query: `mutation { apiKeyUser(id: "${keyId}", secret: "${keySecret}") { jwt } }`,
22
+ }),
23
+ })
24
+
25
+ const data = await response.json()
26
+
27
+ if (!data.data?.apiKeyUser?.jwt) {
28
+ throw new Error('Failed to retrieve JWT token from Spacelift API')
29
+ }
30
+
31
+ return data.data.apiKeyUser.jwt
32
+ }
33
+
34
+ async function main() {
35
+ try {
36
+ console.log('Retrieving JWT token from Spacelift...')
37
+ const jwt = await getJwtToken()
38
+
39
+ console.log('Running GraphQL codegen...')
40
+ execSync('graphql-codegen -c ./packages/nx-core/src/codegen.ts', {
41
+ stdio: 'inherit',
42
+ env: {
43
+ ...process.env,
44
+ SPACELIFT_JWT_TOKEN: jwt,
45
+ },
46
+ })
47
+
48
+ console.log('Codegen completed successfully!')
49
+ } catch (error) {
50
+ console.error('Error:', error.message)
51
+ process.exit(1)
52
+ }
53
+ }
54
+
55
+ main()
@@ -0,0 +1,8 @@
1
+ import JsVersionActions from '@nx/js/src/release/version-actions';
2
+ declare class customVersionAction extends JsVersionActions {
3
+ calculateNewVersion(currentVersion: string | null, newVersionInput: string, newVersionInputReason: string, newVersionInputReasonData: Record<string, unknown>, preid: string): Promise<{
4
+ newVersion: string;
5
+ logText: string;
6
+ }>;
7
+ }
8
+ export = customVersionAction;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ const version_actions_1 = require("@nx/js/src/release/version-actions");
3
+ const semver_1 = require("semver");
4
+ class customVersionAction extends version_actions_1.default {
5
+ async calculateNewVersion(currentVersion, newVersionInput, newVersionInputReason, newVersionInputReasonData, preid) {
6
+ function formatDate() {
7
+ const date = new Date();
8
+ const year = date.getFullYear();
9
+ const month = String(date.getMonth() + 1).padStart(2, '0'); // getMonth() returns 0-11
10
+ const day = date.getDate();
11
+ return `${year}${month}.${day}.`;
12
+ }
13
+ function getNewVersionFromCurrentVersion(currentVersion, preid) {
14
+ const expectedPattern = formatDate();
15
+ const defaultVersion = `${expectedPattern}0`;
16
+ if (!currentVersion)
17
+ return defaultVersion;
18
+ // Extract base version and preid
19
+ const versionMatch = currentVersion.match(/^([0-9]{0,6}\.[0-9]{1,2}\.[0-9]*)(?:-([\w.-]+))?$/);
20
+ const matchedCurrentVersion = versionMatch ? versionMatch[1] : null;
21
+ const currentPreid = versionMatch ? versionMatch[2] : null;
22
+ const isMatchingExpectedPattern = matchedCurrentVersion?.startsWith(expectedPattern);
23
+ // making sure currentVersion is containing the current date
24
+ if (!isMatchingExpectedPattern)
25
+ return defaultVersion;
26
+ // If current version has a preid and new preid is empty, release current version
27
+ if (currentPreid && !preid.trim()) {
28
+ return matchedCurrentVersion;
29
+ }
30
+ return (0, semver_1.inc)(matchedCurrentVersion, 'patch');
31
+ }
32
+ const baseVersion = getNewVersionFromCurrentVersion(currentVersion, preid);
33
+ const finalVersion = `${baseVersion}${preid.trim() ? '-' + preid : ''}`;
34
+ return {
35
+ newVersion: finalVersion,
36
+ logText: `❓📆 CalVer new version calculated ${finalVersion}`,
37
+ };
38
+ }
39
+ }
40
+ module.exports = customVersionAction;
41
+ //# sourceMappingURL=version-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-actions.js","sourceRoot":"","sources":["../../../src/scripts/version-actions.ts"],"names":[],"mappings":";AAAA,wEAAiE;AACjE,mCAA4B;AAE5B,MAAM,mBAAoB,SAAQ,yBAAgB;IAChD,KAAK,CAAC,mBAAmB,CACvB,cAA6B,EAC7B,eAAuB,EACvB,qBAA6B,EAC7B,yBAAkD,EAClD,KAAa;QAKb,SAAS,UAAU;YACjB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC,0BAA0B;YACrF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAE1B,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,CAAA;QAClC,CAAC;QAED,SAAS,+BAA+B,CACtC,cAA6B,EAC7B,KAAa;YAEb,MAAM,eAAe,GAAG,UAAU,EAAE,CAAA;YACpC,MAAM,cAAc,GAAG,GAAG,eAAe,GAAG,CAAA;YAE5C,IAAI,CAAC,cAAc;gBAAE,OAAO,cAAc,CAAA;YAE1C,iCAAiC;YACjC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CACvC,mDAAmD,CACpD,CAAA;YACD,MAAM,qBAAqB,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACnE,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAE1D,MAAM,yBAAyB,GAC7B,qBAAqB,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;YAEpD,4DAA4D;YAC5D,IAAI,CAAC,yBAAyB;gBAAE,OAAO,cAAc,CAAA;YAErD,iFAAiF;YACjF,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClC,OAAO,qBAAqB,CAAA;YAC9B,CAAC;YAED,OAAO,IAAA,YAAG,EAAC,qBAAqB,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,WAAW,GAAG,+BAA+B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAC1E,MAAM,YAAY,GAAG,GAAG,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAEvE,OAAO;YACL,UAAU,EAAE,YAAY;YACxB,OAAO,EAAE,qCAAqC,YAAY,EAAE;SAC7D,CAAA;IACH,CAAC;CACF;AAGD,iBAAS,mBAAmB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { ProjectGraphProjectNode } from '@nx/devkit';
2
+ import { ReleaseGroupWithName } from 'nx/src/command-line/release/config/filter-release-groups';
3
+ import { FinalConfigForProject } from 'nx/src/command-line/release/version/release-group-processor';
4
+ export declare const mockProjectGraphNode: ProjectGraphProjectNode;
5
+ export declare const mockReleaseGroup: ReleaseGroupWithName;
6
+ export declare const mockFinalConfig: FinalConfigForProject;