aieventjs 0.3.0 → 0.4.0

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
@@ -10,7 +10,7 @@
10
10
 
11
11
  Part of the [ai\*js micro-runtime ecosystem](https://github.com/yshengliao) — see also [aifsmjs](https://github.com/yshengliao/aifsmjs) (FSM), [aiecsjs](https://github.com/yshengliao/aiecsjs) (ECS), [aibridgejs](https://github.com/yshengliao/aibridgejs) (cross-context RPC), [aipooljs](https://github.com/yshengliao/aipooljs) (object pool), [aiquadtreejs](https://github.com/yshengliao/aiquadtreejs) (spatial partitioning), and [aiaudiojs](https://github.com/yshengliao/aiaudiojs) (Web Audio shell).
12
12
 
13
- > **Status: 0.3.0.** Full implementation shipped; all methods are live. Coverage ≥ 95/90/100/100; ~1050 B gzip (budget 1100 B).
13
+ > **Status: 0.4.0.** Full implementation shipped; all methods are live. Coverage ≥ 95/90/100/100; ~1050 B gzip (budget 1100 B).
14
14
 
15
15
  ---
16
16
 
@@ -148,6 +148,7 @@ Full JSDoc lives in [`src/index.ts`](src/index.ts).
148
148
  | **0.0.1** | Scaffold landed — frozen API surface as a `throw` stub; full config + CI walk clean. |
149
149
  | **0.1.0** | First npm release. `on` / `once` / `off` / `emit` / `clear` / `dispose` implemented; coverage ≥ 95/90/100/100; ≤ 800 B gzip (strict-TS overhead lands at ~747 B). |
150
150
  | **0.3.0** | `captureHandlerErrors` + wildcard sampling/throttling. The v0.2 number was skipped to align with the four-package v0.3 release cohort. |
151
+ | **0.4.0** | Dependency hygiene + stability freeze: removed the unused `tsx` devDependency, aligned `fast-check` to `^4.8.0`, and froze the 0.3.x public surface for the 1.x line. No runtime API change; bundle byte-identical to 0.3.1. |
151
152
  | **0.6+** | Async handler tracking (draft) — see [STABILITY.md](STABILITY.md). |
152
153
 
153
154
  ---
package/llms-full.txt CHANGED
@@ -23,7 +23,7 @@ The short index lives at `llms.txt` (see https://llmstxt.org/).
23
23
 
24
24
  Part of the [ai\*js micro-runtime ecosystem](https://github.com/yshengliao) — see also [aifsmjs](https://github.com/yshengliao/aifsmjs) (FSM), [aiecsjs](https://github.com/yshengliao/aiecsjs) (ECS), [aibridgejs](https://github.com/yshengliao/aibridgejs) (cross-context RPC), [aipooljs](https://github.com/yshengliao/aipooljs) (object pool), [aiquadtreejs](https://github.com/yshengliao/aiquadtreejs) (spatial partitioning), and [aiaudiojs](https://github.com/yshengliao/aiaudiojs) (Web Audio shell).
25
25
 
26
- > **Status: 0.3.0.** Full implementation shipped; all methods are live. Coverage ≥ 95/90/100/100; ~1050 B gzip (budget 1100 B).
26
+ > **Status: 0.4.0.** Full implementation shipped; all methods are live. Coverage ≥ 95/90/100/100; ~1050 B gzip (budget 1100 B).
27
27
 
28
28
  ---
29
29
 
@@ -161,6 +161,7 @@ Full JSDoc lives in [`src/index.ts`](src/index.ts).
161
161
  | **0.0.1** | Scaffold landed — frozen API surface as a `throw` stub; full config + CI walk clean. |
162
162
  | **0.1.0** | First npm release. `on` / `once` / `off` / `emit` / `clear` / `dispose` implemented; coverage ≥ 95/90/100/100; ≤ 800 B gzip (strict-TS overhead lands at ~747 B). |
163
163
  | **0.3.0** | `captureHandlerErrors` + wildcard sampling/throttling. The v0.2 number was skipped to align with the four-package v0.3 release cohort. |
164
+ | **0.4.0** | Dependency hygiene + stability freeze: removed the unused `tsx` devDependency, aligned `fast-check` to `^4.8.0`, and froze the 0.3.x public surface for the 1.x line. No runtime API change; bundle byte-identical to 0.3.1. |
164
165
  | **0.6+** | Async handler tracking (draft) — see [STABILITY.md](STABILITY.md). |
165
166
 
166
167
  ---
@@ -181,6 +182,38 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
181
182
 
182
183
  ## [Unreleased]
183
184
 
185
+ ## [0.4.0] - 2026-05-29
186
+
187
+ Dependency hygiene + stability freeze. No runtime API addition; `dist/` is byte-identical to 0.3.1 (no `src/` change). Consumer-facing behaviour is unchanged.
188
+
189
+ ### Changed
190
+ - Aligned the `fast-check` devDependency to `^4.8.0` (was `^3.23.0`), matching the newer ai*js family cohort. Test-only; never bundled; zero consumer impact.
191
+ - Declared the entire 0.3.x public API surface frozen for the 1.x line — see STABILITY.md. No signatures, error names, or default behaviours changed.
192
+
193
+ ### Removed
194
+ - `tsx` devDependency — unused (no script, config, test, or CI step referenced it). Trims the lockfile subtree; no functional impact.
195
+
196
+ ## [0.3.1] - 2026-05-29
197
+ ### Added
198
+ - `test/emitter.prop.test.ts`: three fast-check property invariants — dispatch
199
+ order (typed before wildcard, registration order preserved), snapshot stability
200
+ under mid-dispatch `off()`, live-set accuracy after upfront unsubscribe.
201
+ `numRuns: 100`; inline `fc.assert` style matching family convention.
202
+ - `test/wildcard-throttle.test.ts` §F: five edge-case tests — pre-aborted signal
203
+ + valid `sampleRate` never registers; `on()` guard-before-signal ordering;
204
+ `captureErrors` + signal leak check (`removeEventListener` called on abort);
205
+ throttled wildcard + mid-dispatch abort (snapshot-in-flight completes);
206
+ `sampleRate` exact boundary (`Math.random() === sampleRate` is a miss).
207
+ - `test/capture-errors.test.ts` §F: dispose-during-capturing-dispatch —
208
+ snapshot completes; `EmitterDisposedError` from re-entrant `emit()` is routed
209
+ through the capture callback; sibling handler still runs.
210
+ - `fast-check ^3.23.0` devDependency (family convention: aifsmjs `^3.20.0`,
211
+ aiquadtreejs `^3.23.0`).
212
+
213
+ ### Changed
214
+ - No `src/index.ts` behaviour change. `dist/` is byte-identical to v0.3.0.
215
+ gzip 1050 B / 1100 B unchanged.
216
+
184
217
  ## [0.3.0] - 2026-05-29
185
218
  ### Added
186
219
  - `EmitterOptions.captureHandlerErrors`: opt-in emitter-level error policy. Accepts `true` (swallow) or `(err, type, payload) => void` callback. Default behaviour (first throw aborts dispatch) is unchanged.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aieventjs",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Small, strict, typed event emitter — on() returns an unsubscribe function, once is built-in, AbortSignal is first-class, dispose() is idempotent, wildcard '*' handlers preserved. Mitt-shaped API; ai*js conventions everywhere else.",
5
5
  "keywords": [
6
6
  "event-emitter",
@@ -61,8 +61,8 @@
61
61
  "@biomejs/biome": "^1.9.0",
62
62
  "@types/node": "^22.0.0",
63
63
  "@vitest/coverage-v8": "^4.1.7",
64
+ "fast-check": "^4.8.0",
64
65
  "tsup": "^8.3.0",
65
- "tsx": "^4.22.3",
66
66
  "typescript": "^5.6.0",
67
67
  "vite": "^8.0.14",
68
68
  "vitest": "^4.1.7"