koota-kit 0.3.0 → 0.3.1

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,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.1](https://github.com/jbcom/koota-kit/compare/v0.3.0...v0.3.1) (2026-10-07)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * declare maintained Node support and align OSS protection gates ([20f6aa3](https://github.com/jbcom/koota-kit/commit/20f6aa37b971138d3d7fbca54152f44b99d1f2d8))
9
+ * declare the supported Node lines and test each in CI ([94ed880](https://github.com/jbcom/koota-kit/commit/94ed8803242a43c055a9ae9333327b0856109bb5))
10
+
3
11
  ## [0.3.0](https://github.com/jbcom/koota-kit/compare/v0.2.1...v0.3.0) (2026-10-06)
4
12
 
5
13
 
package/CONTRIBUTING.md CHANGED
@@ -5,7 +5,7 @@ Thanks for taking the time to contribute.
5
5
  ## Getting set up
6
6
 
7
7
  With [mise](https://mise.jdx.dev) (recommended — installs the Node and pnpm
8
- versions pinned in `mise.toml`):
8
+ toolchain selected in `mise.toml`; Node selects a major, not an exact patch):
9
9
 
10
10
  ```sh
11
11
  mise install
package/README.md CHANGED
@@ -34,7 +34,9 @@ pnpm add koota-kit koota
34
34
 
35
35
  Requirements:
36
36
 
37
- - Node.js 22 or newer (CI covers Node 22/24/26 on Linux and Node 24 on Windows)
37
+ - Node.js 22, 24 and 26 (CI covers each on Linux and Node 24 on Windows).
38
+ The package declares `>=22`; support follows maintained Node lines rather
39
+ than requiring one exact patch release.
38
40
  - Koota `^0.6.6`, installed by the application as a peer dependency
39
41
 
40
42
  The package ships native ESM and CommonJS entry points with format-correct
@@ -2,8 +2,7 @@
2
2
  /**
3
3
  * `src/traits/` — trait-authoring conventions, kept in a LEAF sub-package.
4
4
  *
5
- * Packaging pattern (from medieval-hexagon-gameboard): trait declarations
6
- * live in a leaf sub-package with ZERO sibling imports — this file imports
5
+ * Trait declarations live in a leaf sub-package with ZERO sibling imports — this file imports
7
6
  * only `koota` (the npm dep) and pure types, never runtime values from
8
7
  * sibling modules like ./world or ./rng. That is what prevents the
9
8
  * koota ↔ world-facade ↔ game-scenario top-level evaluation cycle that a
@@ -12,8 +11,7 @@
12
11
  * from exactly one location so trait reference-identity holds regardless of
13
12
  * which subpath a consumer imports from.
14
13
  *
15
- * The AoS-aliasing footgun this module guards against (timber-town's
16
- * documented convention): object-valued fields in a SoA schema must use the
14
+ * Object-valued fields in a SoA schema must use the
17
15
  * AoS-factory pattern (`() => ({...})`) so each entity gets its own object
18
16
  * instance — koota's SoA pattern would otherwise alias state across
19
17
  * entities (one shared object literal mutated by every entity that has the
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * `src/traits/` — trait-authoring conventions, kept in a LEAF sub-package.
3
3
  *
4
- * Packaging pattern (from medieval-hexagon-gameboard): trait declarations
5
- * live in a leaf sub-package with ZERO sibling imports — this file imports
4
+ * Trait declarations live in a leaf sub-package with ZERO sibling imports — this file imports
6
5
  * only `koota` (the npm dep) and pure types, never runtime values from
7
6
  * sibling modules like ./world or ./rng. That is what prevents the
8
7
  * koota ↔ world-facade ↔ game-scenario top-level evaluation cycle that a
@@ -11,8 +10,7 @@
11
10
  * from exactly one location so trait reference-identity holds regardless of
12
11
  * which subpath a consumer imports from.
13
12
  *
14
- * The AoS-aliasing footgun this module guards against (timber-town's
15
- * documented convention): object-valued fields in a SoA schema must use the
13
+ * Object-valued fields in a SoA schema must use the
16
14
  * AoS-factory pattern (`() => ({...})`) so each entity gets its own object
17
15
  * instance — koota's SoA pattern would otherwise alias state across
18
16
  * entities (one shared object literal mutated by every entity that has the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGjD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAC/D,CAAC,GACD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GACtD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACjB,KAAK,GACL,CAAC,CAAC,CAAC,CAAC;CACX,CAAC;AAEN;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAgBvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGjD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAC/D,CAAC,GACD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GACtD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACjB,KAAK,GACL,CAAC,CAAC,CAAC,CAAC;CACX,CAAC;AAEN;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAgBvF"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * `src/traits/` — trait-authoring conventions, kept in a LEAF sub-package.
3
3
  *
4
- * Packaging pattern (from medieval-hexagon-gameboard): trait declarations
5
- * live in a leaf sub-package with ZERO sibling imports — this file imports
4
+ * Trait declarations live in a leaf sub-package with ZERO sibling imports — this file imports
6
5
  * only `koota` (the npm dep) and pure types, never runtime values from
7
6
  * sibling modules like ./world or ./rng. That is what prevents the
8
7
  * koota ↔ world-facade ↔ game-scenario top-level evaluation cycle that a
@@ -11,8 +10,7 @@
11
10
  * from exactly one location so trait reference-identity holds regardless of
12
11
  * which subpath a consumer imports from.
13
12
  *
14
- * The AoS-aliasing footgun this module guards against (timber-town's
15
- * documented convention): object-valued fields in a SoA schema must use the
13
+ * Object-valued fields in a SoA schema must use the
16
14
  * AoS-factory pattern (`() => ({...})`) so each entity gets its own object
17
15
  * instance — koota's SoA pattern would otherwise alias state across
18
16
  * entities (one shared object literal mutated by every entity that has the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGjD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAC/D,CAAC,GACD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GACtD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACjB,KAAK,GACL,CAAC,CAAC,CAAC,CAAC;CACX,CAAC;AAEN;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAgBvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traits/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGjD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAC/D,CAAC,GACD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GACtD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACjB,KAAK,GACL,CAAC,CAAC,CAAC,CAAC;CACX,CAAC;AAEN;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAgBvF"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * `src/traits/` — trait-authoring conventions, kept in a LEAF sub-package.
3
3
  *
4
- * Packaging pattern (from medieval-hexagon-gameboard): trait declarations
5
- * live in a leaf sub-package with ZERO sibling imports — this file imports
4
+ * Trait declarations live in a leaf sub-package with ZERO sibling imports — this file imports
6
5
  * only `koota` (the npm dep) and pure types, never runtime values from
7
6
  * sibling modules like ./world or ./rng. That is what prevents the
8
7
  * koota ↔ world-facade ↔ game-scenario top-level evaluation cycle that a
@@ -11,8 +10,7 @@
11
10
  * from exactly one location so trait reference-identity holds regardless of
12
11
  * which subpath a consumer imports from.
13
12
  *
14
- * The AoS-aliasing footgun this module guards against (timber-town's
15
- * documented convention): object-valued fields in a SoA schema must use the
13
+ * Object-valued fields in a SoA schema must use the
16
14
  * AoS-factory pattern (`() => ({...})`) so each entity gets its own object
17
15
  * instance — koota's SoA pattern would otherwise alias state across
18
16
  * entities (one shared object literal mutated by every entity that has the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koota-kit",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Deterministic Koota simulation conventions: world lifecycle, dual RNG streams, safe object traits, and world-scoped event logs.",
5
5
  "type": "module",
6
6
  "license": "MIT",