@codependix/cli 0.0.14 → 0.0.16

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/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## 0.0.16 (2026-10-13)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **codependix:** ✨ infer a per-project codependix-gate target from a new nx plugin ([#1429](https://github.com/organizzolini/codebase/pull/1429), [#1403](https://github.com/organizzolini/codebase/issues/1403))
6
+
7
+ ### 🧱 Updated Dependencies
8
+
9
+ - Updated codependix-configuration to 0.0.16
10
+ - Updated codependix-boundaries to 0.0.15
11
+ - Updated codependix-output to 0.0.15
12
+ - Updated codependix-core to 0.0.14
13
+
14
+ ## 0.0.15 (2026-10-12)
15
+
16
+ ### 🧱 Updated Dependencies
17
+
18
+ - Updated codependix-configuration to 0.0.15
19
+ - Updated codependix-boundaries to 0.0.14
20
+ - Updated codependix-output to 0.0.14
21
+ - Updated codependix-core to 0.0.13
22
+
1
23
  ## 0.0.14 (2026-10-12)
2
24
 
3
25
  ### 🧱 Updated Dependencies
package/README.md CHANGED
@@ -62,10 +62,11 @@ on opposite sides of a pull request.
62
62
  | `reports` | A configured destination no longer holding what a fresh run would write |
63
63
 
64
64
  A boundary violation is caused by the branch and fixed by the branch, so it
65
- gates every pull request. A stale export moves with the workspace it
66
- describes and would fail every branch that changed a project graph rather
67
- than anything the branch itself did, so it is published on the default branch
68
- and gated nowhere. That is the same split
65
+ gates every pull request, one project at a time — see
66
+ [The per-project gate](#the-per-project-gate). A stale export moves with the
67
+ workspace it describes and would fail every branch that changed a project
68
+ graph rather than anything the branch itself did, so it is published on the
69
+ default branch and gated nowhere. That is the same split
69
70
  [`callidescope`](../callidescope-cli/README.md) makes between `--check depth`
70
71
  and `--check reports`, and `reports` is deliberately spelled the same in both:
71
72
  it is the same finding, and two names for it would make the two reports
@@ -118,8 +119,13 @@ reported the same way, as a rejected command line rather than a crash.
118
119
  No mode is ever inferred, which is the rule `codometer`'s and
119
120
  `callidescope`'s flags follow too.
120
121
 
122
+ In an Nx workspace the gate is a per-project `codependix-gate` target, and
123
+ publishing is the one workspace-wide `write` run. This repository's `guard-code`
124
+ reaches the first on every pull request, and its release workflow runs the
125
+ second on the default branch:
126
+
121
127
  ```bash
122
- nx run codebase:codependix:check
128
+ nx run <project>:codependix-gate
123
129
  nx run codebase:codependix:write
124
130
  ```
125
131
 
@@ -128,6 +134,21 @@ boot its container — is reported and does not stop the rest: `--write` either
128
134
  fully succeeds or names exactly which projects failed while still completing
129
135
  every other one.
130
136
 
137
+ ### The per-project gate
138
+
139
+ `--check boundaries --projects <name>` is a gate for one project, and needs no
140
+ task runner. [`@codependix/nx`](../codependix-nx/README.md) infers it for an
141
+ Nx workspace as a cached `codependix-gate` target on every project but the
142
+ workspace root, so `nx affected -t codependix-gate` selects the projects a
143
+ change touched and a failure names the project it is charged to rather than
144
+ one workspace-wide task. The target declares no configurations, so
145
+ `guard-code --configuration=check` falls through to its defaults, as
146
+ `callidescope-gate` does.
147
+
148
+ Publishing stays workspace-wide: one `--write` run produces every project's
149
+ anchor blocks, which must reflect one commit, so `codebase:codependix` is
150
+ `write`-only and is not part of `guard-code`.
151
+
131
152
  ### Where the output goes
132
153
 
133
154
  Printing and delivering are separate. `--format` decides what reaches standard
@@ -173,6 +194,7 @@ and [a container that cannot boot](../codependix-examples/examples/boundary-boot
173
194
  | [`@codependix/boundaries`](../codependix-boundaries/README.md) | Builds each level's graph for a workspace, judges it against the declared rules, and reports what breaks them. `--check boundaries` delegates to it wholesale |
174
195
  | [`@codependix/configuration`](../codependix-configuration/README.md) | Reads `codependix.config.ts` and resolves per-project export destinations and boundary rules |
175
196
  | [`@codependix/examples`](../codependix-examples/README.md) | Twenty-one subjects built to be graphed, each with the guide codependix renders from it |
197
+ | [`@codependix/nx`](../codependix-nx/README.md) | Nx plugin: infers a per-project `codependix-gate` target that runs `--check boundaries` over the project and its Nx dependencies |
176
198
  | [`@codependix/nx-projects`](../codependix-nx-projects/README.md) | Builds a project's Nx Neighborhood and the whole-workspace Workspace Graph |
177
199
  | [`@codependix/nestjs-modules`](../codependix-nestjs-modules/README.md) | Explores a NestJS project's container and builds its module graph |
178
200
  | [`@codependix/file-imports`](../codependix-file-imports/README.md) | Builds a project's file-level import graph — a `typescript` module walking its own `ts.Program`, and a `python` module parsing `import`/`from ... import` statements |
@@ -233,6 +255,7 @@ graph LR
233
255
  codependix_configuration["codependix-configuration"]
234
256
  codependix_core["codependix-core"]
235
257
  codependix_examples["codependix-examples"]
258
+ codependix_nx["codependix-nx"]
236
259
  codependix_output["codependix-output"]
237
260
  logging["logging"]
238
261
  codependix_cli --> codependix_boundaries
@@ -241,6 +264,7 @@ graph LR
241
264
  codependix_cli --> codependix_output
242
265
  codependix_cli --> logging
243
266
  codependix_examples -.-> codependix_cli
267
+ codependix_nx --> codependix_cli
244
268
  classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
245
269
  class codependix_cli subject
246
270
  ```
@@ -737,13 +761,13 @@ What this project is judged against, as declared in its own `callidescope.config
737
761
  ### Project
738
762
 
739
763
  ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-4058-22c55e?style=flat-square)
740
- ![Repository Size](https://img.shields.io/badge/Repository_Size-140.88_kB-6b7280?style=flat-square)
764
+ ![Repository Size](https://img.shields.io/badge/Repository_Size-141.62_kB-6b7280?style=flat-square)
741
765
  ![Folders](https://img.shields.io/badge/Folders-5-4a4a4a?style=flat-square)
742
766
  ![Source Files](https://img.shields.io/badge/Source_Files-31-3178c6?style=flat-square)
743
767
 
744
768
  ### Measured Targets
745
769
 
746
- ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-5.82_kB_gzip-6b7280?style=flat-square)
770
+ ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-5.79_kB_gzip-6b7280?style=flat-square)
747
771
 
748
772
  ### TypeScript
749
773
 
@@ -790,16 +814,16 @@ What this project is judged against, as declared in its own `callidescope.config
790
814
  ### JSON
791
815
 
792
816
  ![JSON Files](https://img.shields.io/badge/JSON_Files-4-a16207?style=flat-square)
793
- ![JSON Lines](https://img.shields.io/badge/JSON_Lines-191-ca8a04?style=flat-square)
817
+ ![JSON Lines](https://img.shields.io/badge/JSON_Lines-193-ca8a04?style=flat-square)
794
818
  ![JSON Objects](https://img.shields.io/badge/JSON_Objects-42-7c3aed?style=flat-square)
795
819
  ![JSON Arrays](https://img.shields.io/badge/JSON_Arrays-13-8b5cf6?style=flat-square)
796
- ![JSON Properties](https://img.shields.io/badge/JSON_Properties-122-0284c7?style=flat-square)
797
- ![JSON Strings](https://img.shields.io/badge/JSON_Strings-107-16a34a?style=flat-square)
820
+ ![JSON Properties](https://img.shields.io/badge/JSON_Properties-124-0284c7?style=flat-square)
821
+ ![JSON Strings](https://img.shields.io/badge/JSON_Strings-109-16a34a?style=flat-square)
798
822
  ![JSON Numbers](https://img.shields.io/badge/JSON_Numbers-1-059669?style=flat-square)
799
823
  ![JSON Booleans](https://img.shields.io/badge/JSON_Booleans-8-0ea5e9?style=flat-square)
800
824
  ![JSON Nulls](https://img.shields.io/badge/JSON_Nulls-0-64748b?style=flat-square)
801
825
  ![JSON Items](https://img.shields.io/badge/JSON_Items-45-475569?style=flat-square)
802
- ![JSON Nodes](https://img.shields.io/badge/JSON_Nodes-171-dc2626?style=flat-square)
826
+ ![JSON Nodes](https://img.shields.io/badge/JSON_Nodes-173-dc2626?style=flat-square)
803
827
  ![JSON Max Depth](https://img.shields.io/badge/JSON_Max_Depth-6-ea580c?style=flat-square)
804
828
 
805
829
  ### YAML
@@ -925,20 +949,20 @@ What this project is judged against, as declared in its own `callidescope.config
925
949
  ### Markdown
926
950
 
927
951
  ![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square)
928
- ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-354-1f6feb?style=flat-square)
952
+ ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-376-1f6feb?style=flat-square)
929
953
  ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square)
930
- ![H2](https://img.shields.io/badge/H2-18-8b5cf6?style=flat-square)
931
- ![H3](https://img.shields.io/badge/H3-28-a78bfa?style=flat-square)
954
+ ![H2](https://img.shields.io/badge/H2-20-8b5cf6?style=flat-square)
955
+ ![H3](https://img.shields.io/badge/H3-31-a78bfa?style=flat-square)
932
956
  ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square)
933
957
  ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square)
934
958
  ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square)
935
- ![Paragraphs](https://img.shields.io/badge/Paragraphs-93-64748b?style=flat-square)
936
- ![Lists](https://img.shields.io/badge/Lists-20-16a34a?style=flat-square)
937
- ![List Items](https://img.shields.io/badge/List_Items-72-22c55e?style=flat-square)
959
+ ![Paragraphs](https://img.shields.io/badge/Paragraphs-102-64748b?style=flat-square)
960
+ ![Lists](https://img.shields.io/badge/Lists-23-16a34a?style=flat-square)
961
+ ![List Items](https://img.shields.io/badge/List_Items-81-22c55e?style=flat-square)
938
962
  ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square)
939
963
  ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square)
940
964
  ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square)
941
- ![Links](https://img.shields.io/badge/Links-18-059669?style=flat-square)
965
+ ![Links](https://img.shields.io/badge/Links-20-059669?style=flat-square)
942
966
  ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square)
943
967
  ![Code Blocks](https://img.shields.io/badge/Code_Blocks-13-dc2626?style=flat-square)
944
968
  ![Inline Code](https://img.shields.io/badge/Inline_Code-78-ef4444?style=flat-square)
@@ -43,12 +43,12 @@ var N = Object.defineProperty, __name = (e, t) => N(e, "name", {
43
43
  "TypeOrmModule"
44
44
  ]);
45
45
  //#endregion
46
- //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorateMetadata.js
46
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateMetadata.js
47
47
  function __decorateMetadata(e, t) {
48
48
  if (typeof Reflect == "object" && typeof Reflect.metadata == "function") return Reflect.metadata(e, t);
49
49
  }
50
50
  //#endregion
51
- //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorate.js
51
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
52
52
  function __decorate(e, t, n, r) {
53
53
  var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
54
54
  if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
@@ -85,11 +85,7 @@ var R, z = class LoggerService extends e {
85
85
  });
86
86
  }
87
87
  static logToStandardError() {
88
- if (R.rootLogger !== void 0) {
89
- process.emitWarning("LoggerService.logToStandardError() was called after the first log line, so log lines still go to standard output and anything piping that stream will read them as data. Call it as the first statement of the application's bootstrap.");
90
- return;
91
- }
92
- R.writesToStandardError = !0;
88
+ R.rootLogger === void 0 ? R.writesToStandardError = !0 : process.emitWarning("LoggerService.logToStandardError() was called after the first log line, so log lines still go to standard output and anything piping that stream will read them as data. Call it as the first statement of the application's bootstrap.");
93
89
  }
94
90
  assertConventionalMessage(e) {
95
91
  if (R.isProduction || this.shouldSkipConventionalMessageValidation(e.context)) return;
@@ -248,23 +244,19 @@ var V = d.object({}), H, U = H = class MapCommand extends j {
248
244
  options: r,
249
245
  workingDirectory: l.resolve(r.directory ?? process.cwd())
250
246
  }), a = this.configurationService.touchesFiles(n) ? await this.runExports(i) : void 0, o = n.checksBoundaries ? await this.boundaryCheckService.run(i) : void 0;
251
- if (this.runCombinedOutput({
247
+ this.runCombinedOutput({
252
248
  boundaryOutcome: o,
253
249
  combinedGraphs: a?.combinedGraphs,
254
250
  context: i,
255
251
  format: t,
256
252
  options: r
257
- }), !this.reportingService.reportPassOutcomes({
253
+ }), this.reportingService.reportPassOutcomes({
258
254
  boundaryOutcome: o,
259
255
  exportRun: a
260
- })) {
261
- process.exitCode = 1;
262
- return;
263
- }
264
- this.reportingService.reportSuccess({
256
+ }) ? this.reportingService.reportSuccess({
265
257
  boundaryOutcome: o,
266
258
  exportOutcome: a?.outcome
267
- });
259
+ }) : process.exitCode = 1;
268
260
  }
269
261
  parseCheck(e) {
270
262
  return e;
package/dist/src/index.js CHANGED
@@ -1,2 +1 @@
1
- import { n as e, r as t, t as n } from "../main.module-DJFfw_zD.js";
2
- export { n as MainModule, t as MapCommand, e as MapModule };
1
+ export { t as MainModule, r as MapCommand, n as MapModule } from "../main.module-BySMJCYI.js";
package/dist/src/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as e, t } from "../main.module-DJFfw_zD.js";
2
+ import { i as e, t } from "../main.module-BySMJCYI.js";
3
3
  import { CommandFactory as n } from "nest-commander";
4
4
  import "reflect-metadata";
5
5
  //#region packages/ic-suite/codependix/codependix-cli/src/main.ts
package/package.json CHANGED
@@ -7,10 +7,10 @@
7
7
  "url": "https://github.com/organizzolini/codebase/issues"
8
8
  },
9
9
  "dependencies": {
10
- "@codependix/boundaries": "0.0.13",
11
- "@codependix/configuration": "0.0.14",
12
- "@codependix/core": "0.0.12",
13
- "@codependix/output": "0.0.13",
10
+ "@codependix/boundaries": "0.0.15",
11
+ "@codependix/configuration": "0.0.16",
12
+ "@codependix/core": "0.0.14",
13
+ "@codependix/output": "0.0.15",
14
14
  "@nestjs/common": "^11.1.21 || ^12.0.1",
15
15
  "@nestjs/config": "^12.0.0",
16
16
  "@nestjs/core": "^11.1.21 || ^12.0.1",
@@ -39,6 +39,7 @@
39
39
  "types": "./dist/src/index.d.ts",
40
40
  "default": "./dist/src/index.js"
41
41
  },
42
+ "./main": "./dist/src/main.js",
42
43
  "./package.json": "./package.json"
43
44
  },
44
45
  "files": [
@@ -74,5 +75,5 @@
74
75
  "strict": true
75
76
  },
76
77
  "types": "./dist/src/index.d.ts",
77
- "version": "0.0.14"
78
+ "version": "0.0.16"
78
79
  }