@its-not-rocket-science/ananke 0.1.60 → 0.1.61
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 +23 -0
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,29 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [0.1.61] — 2026-04-01
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **PM-2 — Package-Boundary Enforcement in CI (complete):**
|
|
14
|
+
- `tools/check-package-boundaries.ts` (new): static import-graph analyser mapping all 207 src/ files to their planned `@ananke/*` package. Reports:
|
|
15
|
+
- **Hard violations** — files classified as `@ananke/core` that import from `@ananke/combat`, `@ananke/campaign`, or `@ananke/content` (86 identified; all expected in Phase 1 monolith, must be resolved in Phase 2 source migration).
|
|
16
|
+
- **Suspicious cross-boundary imports** — peer-layer imports (`combat↔campaign`, `combat↔content`, `content↔campaign`) grouped by edge with file:line references and example paths.
|
|
17
|
+
- **Cross-package import matrix** — NxN table showing import counts between packages, annotated ✓ (allowed) or ✗ (violation).
|
|
18
|
+
- **Source size estimate** — raw TypeScript byte counts per package (core 341 KB, combat 499 KB, campaign 833 KB, content 248 KB).
|
|
19
|
+
- **Unmapped files** — 9 files not yet in the mapping (atmosphere, battle-bridge, debug, host-loop, index, parallel, sensory, terrain-bridge).
|
|
20
|
+
- Flags: `--strict` (exit 1 on hard violations), `--json` (machine-readable output).
|
|
21
|
+
- `tools/extract-api.ts` (new): public API surface extraction — scans each package's entry-point source files for exported symbols, generates `docs/api-surface-<package>.md` with grouped tables (types/interfaces, enums, functions, constants, classes) and a source-file index.
|
|
22
|
+
- `docs/api-surface-core.md` — 125 exports
|
|
23
|
+
- `docs/api-surface-combat.md` — 221 exports
|
|
24
|
+
- `docs/api-surface-campaign.md` — 691 exports
|
|
25
|
+
- `docs/api-surface-content.md` — 103 exports (1140 total)
|
|
26
|
+
- `"ci"` script now runs `check-boundaries` after test coverage, making cross-boundary drift visible in CI output.
|
|
27
|
+
- npm scripts: `check-boundaries`, `check-boundaries:strict`, `extract-api`.
|
|
28
|
+
- 0 new tests (5,569 total — tools only). Coverage unchanged: 97.11% stmt, 88.08% branch, 95.82% func. Build: clean.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
9
32
|
## [0.1.60] — 2026-03-31
|
|
10
33
|
|
|
11
34
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@its-not-rocket-science/ananke",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.61",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Deterministic lockstep-friendly SI-units RPG/physics core (fixed-point TS)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -247,7 +247,10 @@
|
|
|
247
247
|
"test": "vitest run",
|
|
248
248
|
"test:watch": "vitest",
|
|
249
249
|
"test:coverage": "vitest run --coverage",
|
|
250
|
-
"ci": "npm run build && npm run test:coverage",
|
|
250
|
+
"ci": "npm run build && npm run test:coverage && npm run check-boundaries",
|
|
251
|
+
"check-boundaries": "node dist/tools/check-package-boundaries.js",
|
|
252
|
+
"check-boundaries:strict": "node dist/tools/check-package-boundaries.js --strict",
|
|
253
|
+
"extract-api": "node dist/tools/extract-api.js",
|
|
251
254
|
"lint": "node tools/lint-open.mjs",
|
|
252
255
|
"run:demo": "node dist/tools/run-demo.js",
|
|
253
256
|
"run:vertical-slice": "node dist/tools/vertical-slice.js",
|