UNPKG

@furystack/repository

Version:

Repository implementation for FuryStack

182 lines (100 loc) 5.42 kB
# Changelog ## [11.0.1] - 2026-05-21 ### 📚 Documentation - Rewrote JSDoc on `DataSet`, `DataSetSetting`, `defineDataSet`, and the helpers to follow the new value-test guidance: dropped restate-the-type narration, kept intent / trade-offs / constraints around authorization, validation, and the lifecycle hooks. ### ⬆️ Dependencies - Bump dev `vitest` to `^4.1.5`. - Bumped `vitest` to `^4.1.7`. No source changes — dev-tooling bump only. ## [11.0.0] - 2026-04-25 ### 💥 Breaking Changes The `Repository` class is gone — DataSets are now first-class DI tokens. See the [v7 migration guide](../../docs/migrations/v7-functional-di.md) for rationale, recipes, and pitfalls. - Removed `Repository`, `getRepository(injector)`, `Repository.createDataSet(Model, 'pk', settings)`. Declare DataSets with `defineDataSet({ name, store, settings? })` at module scope; the returned `DataSetToken<T, PK>` resolves a configured `DataSet`. - `getDataSetFor(injector, DataSetToken)` now takes a single token argument. The old `(injector, Model, 'pk')` overload is gone. - Every consumer that used to take `{ model, primaryKey }` (endpoint generators, `registerModel`, etc.) now takes a `DataSetToken` directly. ## [10.1.11] - 2026-04-17 ### ⬆️ Dependencies - Raised `typescript` to ^6.0.3 and `vitest` to ^4.1.4 so package builds and tests track the workspace toolchain. ## [10.1.10] - 2026-03-27 ### ⬆️ Dependencies - Updated `vitest` to ^4.1.2 ## [10.1.9] - 2026-03-25 ### 📦 Build - Removed deprecated `baseUrl` from tsconfig.json for TypeScript 6 compatibility ### ⬆️ Dependencies - Upgraded `typescript` from ^5.9.3 to ^6.0.2 - Upgraded `vitest` from ^4.1.0 to ^4.1.1 ## [10.1.8] - 2026-03-19 ### ⬆️ Dependencies - Upgraded `vite` from ^7.3.1 to ^8.0.0 for improved build performance and new features - Upgraded `vitest` from ^4.0.18 to ^4.1.0 - Upgraded `@vitest/coverage-istanbul` from ^4.0.18 to ^4.1.0 - Updated `@furystack/core` dependency to the latest major version. ## [10.1.7] - 2026-03-10 ### ⬆️ Dependencies - Updated `@furystack/core` dependency to the new major version ## [10.1.6] - 2026-03-07 ### ⬆️ Dependencies - Updated internal FuryStack dependencies ## [10.1.5] - 2026-03-06 ### ⬆️ Dependencies - Updated internal FuryStack dependencies ## [10.1.4] - 2026-03-03 ### 🔧 Changed - Added `onListenerError` to `DataSet` event map for consistent EventHub listener error handling across all stores ## [10.1.3] - 2026-02-26 ### ⬆️ Dependencies - Updated internal `@furystack/*` dependencies - Bumped due to updated workspace dependencies ## [10.1.2] - 2026-02-26 ### ⬆️ Dependencies - Updated `@furystack/core` dependency ## [10.1.1] - 2026-02-22 ### ⬆️ Dependencies - Updated `@furystack/core` dependency ## [10.1.0] - 2026-02-20 ### ✨ Features ### Bulk Remove in DataSet `DataSet.remove()` now accepts multiple primary keys via rest parameters, allowing removal of several entities in a single call. Authorization checks run against all entities before any are deleted (all-or-nothing), and an `onEntityRemoved` event is emitted for each removed entity. **Usage:** ```typescript // Before - remove one at a time await dataSet.remove(injector, key1) await dataSet.remove(injector, key2) // After - remove multiple at once await dataSet.remove(injector, key1, key2, key3) ``` ### 🐛 Bug Fixes - Fixed `DataSet.get()` to fetch the full entity before running `authorizeGetEntity`, then applying field selection afterward. Previously, the entity passed to the authorization callback could have missing fields when `select` was provided. ### ♻️ Refactoring - `DataSet.get()` return type is now properly generic as `PartialResult<T, TSelect>`, improving type inference for callers that pass a `select` parameter ### 🧪 Tests - Added tests for bulk removal: removing multiple entities, event emission per key, per-entity authorization, and all-or-nothing rollback when authorization fails ## [10.0.37] - 2026-02-19 ### 📚 Documentation - Expanded JSDoc on `DataSet` class to explain its role as the authorized write gateway with event dispatching - Expanded JSDoc on `add()`, `update()`, and `remove()` to document authorization checks, hooks, and emitted events - Expanded JSDoc on `getDataSetFor()` with usage examples for server-side writes using `useSystemIdentityContext` - Added README section covering server-side writes with the elevated `IdentityContext`, including a warning about bypassing the DataSet layer ### ⬆️ Dependencies - Updated `@furystack/core` ## [10.0.36] - 2026-02-11 ### ⬆️ Dependencies - Bump `vitest` from `^4.0.17` to `^4.0.18` - Updated internal dependencies ## [10.0.35] - 2026-02-09 ### ⬆️ Dependencies - Updated `@furystack/core` dependency - Updated `@furystack/*` dependencies ## [10.0.34] - 2026-01-26 ### 🔧 Chores - Standardized author format, improved keywords, removed obsolete `gitHead`, added `engines` (Node 22+) and `sideEffects: false` ## [10.0.33] - 2026-01-26 ### ⬆️ Dependencies - Updated `@furystack/inject` with fix for singleton injector reference being overwritten by child injectors ## [10.0.32] - 2026-01-22 ### ⬆️ Dependencies - Dependency updates ### 📚 Documentation - Improved README with clearer examples and better structure ### 🔧 Chores - Migrated to centralized changelog management system