@payfit/iac 1.1.5-ephemeral-move-tf-stuff-iac.0 → 1.1.5

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 CHANGED
@@ -8,62 +8,6 @@ Nx plugin for infrastructure as code operations.
8
8
  npx nx add @payfit/iac
9
9
  ```
10
10
 
11
- ## Features
12
-
13
- ### OpenTofu/Terraform Module Management
14
-
15
- The plugin provides automatic formatting and linting for OpenTofu/Terraform modules:
16
-
17
- - Running `tofu fmt` to format code
18
- - Running `tflint` for linting
19
- - Running `tofu validate` for validation
20
- - Automatic version management for modules
21
-
22
- #### OpenTofu/Terraform Detection
23
-
24
- The plugin automatically detects OpenTofu/Terraform modules by looking for both:
25
-
26
- - A `.spacelift/config.yml` file
27
- - A `main.tf` file in your project root
28
-
29
- When these files are present, the plugin will automatically configure the following targets:
30
-
31
- - `tofu-format`: Format OpenTofu code (with `check` and `write` configurations)
32
- - `lint`: Lint and validate OpenTofu code using tflint and tofu validate
33
- - `nx-release-publish`: Configured as noop (Spacelift handles deployment from Git tags)
34
-
35
- #### Configuration
36
-
37
- The plugin supports the following configuration options in your project's `project.json` metadata:
38
-
39
- | Option | Type | Default | Description |
40
- | ------------------ | -------- | ------------------------------ | ------------------------------------- |
41
- | `tflintConfigFile` | `string` | `<workspace-root>/.tflint.hcl` | Path to the tflint configuration file |
42
-
43
- **Example:**
44
-
45
- ```json
46
- {
47
- "name": "my-terraform-module",
48
- "metadata": {
49
- "tflintConfigFile": "path/to/custom/.tflint.hcl"
50
- }
51
- }
52
- ```
53
-
54
- #### Usage
55
-
56
- ```bash
57
- # Format terraform code (check mode)
58
- nx run <terraform-project>:tofu-format
59
-
60
- # Format terraform code (write mode)
61
- nx run <terraform-project>:tofu-format:write
62
-
63
- # Lint terraform code
64
- nx run <terraform-project>:lint
65
- ```
66
-
67
11
  ## Executors
68
12
 
69
13
  ### Stack Migration
package/dist/index.d.ts CHANGED
@@ -4,7 +4,6 @@ export declare function createNodesInternal(configFilePath: string, _options: un
4
4
  projects: {
5
5
  [x: string]: {
6
6
  targets: {};
7
- release: any;
8
7
  };
9
8
  };
10
9
  }>;
package/dist/index.js CHANGED
@@ -4,7 +4,6 @@ exports.createNodesV2 = void 0;
4
4
  exports.createNodesInternal = createNodesInternal;
5
5
  const path_1 = require("path");
6
6
  const devkit_1 = require("@nx/devkit");
7
- const terraform_detection_1 = require("./utils/terraform-detection");
8
7
  exports.createNodesV2 = [
9
8
  '**/project.json',
10
9
  async (configFiles, options, context) => {
@@ -15,76 +14,7 @@ async function createNodesInternal(configFilePath, _options, _context) {
15
14
  const projectConfiguration = (0, devkit_1.readJsonFile)(configFilePath);
16
15
  const projectRoot = (0, path_1.dirname)(configFilePath);
17
16
  const targets = {};
18
- let release = null;
19
17
  const isRootProject = projectRoot === '.';
20
- const isTfModule = (0, terraform_detection_1.isTerraformModule)(projectRoot, projectConfiguration);
21
- // Get tflintConfigFile from metadata or use default
22
- const tflintConfigFile = (0, path_1.join)((0, devkit_1.offsetFromRoot)(projectRoot), '.tflint.hcl');
23
- // Infer terraform module tasks
24
- if (isTfModule) {
25
- targets['tofu-format'] = {
26
- executor: 'nx:run-commands',
27
- cache: false,
28
- inputs: ['production', '^production'],
29
- outputs: [],
30
- options: {
31
- cwd: '{projectRoot}',
32
- command: 'tofu fmt -recursive',
33
- },
34
- configurations: {
35
- check: {
36
- args: '-check',
37
- },
38
- write: {
39
- args: '-write',
40
- },
41
- },
42
- defaultConfiguration: 'check',
43
- metadata: {
44
- technologies: ['tofu'],
45
- description: 'Format OpenTofu code',
46
- },
47
- };
48
- targets['lint'] = {
49
- executor: 'nx:run-commands',
50
- cache: false,
51
- inputs: ['production', '^production'],
52
- outputs: [],
53
- options: {
54
- cwd: '{projectRoot}',
55
- commands: [
56
- 'tofu init -backend=false',
57
- 'tflint --init',
58
- 'tflint',
59
- 'tofu validate',
60
- ],
61
- parallel: false,
62
- },
63
- env: {
64
- TFLINT_CONFIG_FILE: tflintConfigFile,
65
- },
66
- metadata: {
67
- technologies: ['tofu'],
68
- description: 'Lint OpenTofu code',
69
- },
70
- };
71
- targets['nx-release-publish'] = {
72
- executor: 'nx:noop',
73
- cache: false,
74
- metadata: {
75
- technologies: ['tofu'],
76
- description: 'No release publish, Spacelift handles it from the Git tag',
77
- },
78
- };
79
- if (!projectConfiguration?.release?.version
80
- ?.versionActions) {
81
- release = {
82
- version: {
83
- versionActions: '@nx/js/src/release/version-actions',
84
- },
85
- };
86
- }
87
- }
88
18
  // Only infer stack-migration target for root project
89
19
  if (isRootProject) {
90
20
  const stackMigrationConfig = (0, devkit_1.readJsonFile)((0, path_1.join)(__dirname, '/executors/stack-migration/schema.json'));
@@ -127,7 +57,6 @@ async function createNodesInternal(configFilePath, _options, _context) {
127
57
  projects: {
128
58
  [projectRoot]: {
129
59
  targets,
130
- release,
131
60
  },
132
61
  },
133
62
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAuBA,kDA+DC;AAtFD,+BAAoC;AAEpC,uCAMmB;AAEN,QAAA,aAAa,GAAkB;IAC1C,iBAAiB;IACjB,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACtC,OAAO,MAAM,IAAA,6BAAoB,EAC/B,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAC/B,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EACnD,WAAW,EACX,OAAO,EACP,OAAO,CACR,CAAA;IACH,CAAC;CACF,CAAA;AAEM,KAAK,UAAU,mBAAmB,CACvC,cAAsB,EACtB,QAAiB,EACjB,QAA8B;IAE9B,MAAM,oBAAoB,GACxB,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAA;IAC9B,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,cAAc,CAAC,CAAA;IAE3C,MAAM,OAAO,GAAG,EAAE,CAAA;IAElB,MAAM,aAAa,GAAG,WAAW,KAAK,GAAG,CAAA;IAEzC,qDAAqD;IACrD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,oBAAoB,GAAG,IAAA,qBAAY,EACvC,IAAA,WAAI,EAAC,SAAS,EAAE,wCAAwC,CAAC,CAC1D,CAAA;QAED,OAAO,CAAC,iBAAiB,CAAC,GAAG;YAC3B,QAAQ,EAAE,6BAA6B;YACvC,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,KAAK;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE;oBACJ,OAAO,EAAE,MAAM;iBAChB;gBACD,KAAK,EAAE;oBACL,OAAO,EAAE,OAAO;iBACjB;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,QAAQ;iBAClB;gBACD,uBAAuB,EAAE;oBACvB,OAAO,EAAE,uBAAuB;iBACjC;gBACD,oBAAoB,EAAE;oBACpB,OAAO,EAAE,oBAAoB;iBAC9B;gBACD,oBAAoB,EAAE;oBACpB,OAAO,EAAE,oBAAoB;iBAC9B;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,SAAS;iBACnB;aACF;YACD,QAAQ,EAAE;gBACR,YAAY,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;gBACxC,WAAW,EACT,oBAAoB,EAAE,WAAW,IAAI,6BAA6B;aACrE;SACF,CAAA;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE;YACR,CAAC,WAAW,CAAC,EAAE;gBACb,OAAO;aACR;SACF;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payfit/iac",
3
- "version": "1.1.5-ephemeral-move-tf-stuff-iac.0",
3
+ "version": "1.1.5",
4
4
  "publishConfig": {
5
5
  "access": "restricted"
6
6
  },
@@ -18,8 +18,6 @@
18
18
  "dependencies": {
19
19
  "consola": "^3.4.2",
20
20
  "js-yaml": "^4.1.0",
21
- "memfs": "4.51.1",
22
- "nx": "22.3.3",
23
21
  "tslib": "^2.3.0",
24
22
  "vitest": "4.0.17"
25
23
  },
@@ -34,8 +32,5 @@
34
32
  "dist",
35
33
  "!**/*.tsbuildinfo",
36
34
  "executors.json"
37
- ],
38
- "devDependencies": {
39
- "memfs": "^4.51.1"
40
- }
35
+ ]
41
36
  }
@@ -1,2 +0,0 @@
1
- import { ProjectConfiguration } from '@nx/devkit';
2
- export declare function isTerraformModule(projectRoot: string, _projectConfiguration: ProjectConfiguration): boolean;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTerraformModule = isTerraformModule;
4
- const node_fs_1 = require("node:fs");
5
- const path_1 = require("path");
6
- function isTerraformModule(projectRoot, _projectConfiguration) {
7
- return ((0, node_fs_1.existsSync)((0, path_1.join)(projectRoot, '.spacelift', 'config.yml')) &&
8
- (0, node_fs_1.existsSync)((0, path_1.join)(projectRoot, 'main.tf')));
9
- }
10
- //# sourceMappingURL=terraform-detection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terraform-detection.js","sourceRoot":"","sources":["../../src/utils/terraform-detection.ts"],"names":[],"mappings":";;AAKA,8CAQC;AAbD,qCAAoC;AACpC,+BAA2B;AAI3B,SAAgB,iBAAiB,CAC/B,WAAmB,EACnB,qBAA2C;IAE3C,OAAO,CACL,IAAA,oBAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACzD,IAAA,oBAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CACzC,CAAA;AACH,CAAC"}