v0.0.13
v0.0.13
新機能
- ビルダーパターンをクラスの Builder/Branch にする (9ff9ea1)
- WIP - @unikvs/brotli.bun - @unikvs/brotli.node - @unikvs/brotli.wasm - @unikvs/cache-storage - @unikvs/cloudflare-cache - @unikvs/cloudflare-kv - @unikvs/cloudflare-r2 - @unikvs/cookies - @unikvs/etcd - @unikvs/expiry - @unikvs/memcached - @unikvs/metrics - @unikvs/rate-limit - @unikvs/readonly - @unikvs/retry - @unikvs/soft-delete - @unikvs/tracing - @unikvs/ttl - @unikvs/valkey - @unikvs/vercel-blob - @unikvs/vercel-kv - @unikvs/vercel-runtime-cache - @unikvs/zstd.bun (632416b)
- unikvs: vars を設定するメソッドを追加 (088d058)
- writeonly: IStorageラッパーからITransformerへ転換 (65ffab7)
- unikvs: 予約変数の型 UniKvsVariablesTypes を定義 (df7e019)
- unikvs: フックの並列実行と失敗の集約に対応 (ace689f)
- core,unikvs: トランスフォーマーフック ITransformerHooks を追加し has/delete に配線 (87596e5)
- key-prefix: キープレフィックストランスフォーマーを追加 (6dc96fe)
- session-storage: sessionStorageストレージを追加 (d8ce865)
- lru-cache: 上限付きインメモリーキャッシュを追加 (b5d4774)
- utils: toOwnedView で専有域の Buffer を複写せず所有化 (e9de051)
- zstd.node: Zstandard圧縮トランスフォーマーを追加 (99f3057)
- zstd.wasm: Zstandard圧縮トランスフォーマーを追加 (8df1236)
- null: /dev/null相当のNullストレージを追加 (55084bd)
- AllowRepair トランスフォーマーを追加し各ストレージの allowRepair を廃止 (80722d9)
- v8-serde: Node.js 用の v8 シリアライズトランスフォーマーを追加 (ffc161e)
- base64: 標準Base64変換トランスフォーマーを追加 (ff750f2)
- base64url: URL安全なBase64変換トランスフォーマーを追加 (e4d6353)
- hex: 16進変換トランスフォーマーを追加 (7a8f75d)
- localstorage: ブラウザー用 localStorage ストレージを追加 (9bfa71d)
- http: HTTP汎用ストレージを追加 (1c1bbd9)
- redis.node: Node.js 用の Redis ストレージを追加 (8ceed46)
- 書き戻し拒否オプション allowRepair を追加 (d534f8b)
- 読み取り時の書き戻し (repair) を追加 (8fe6f82)
- シリアライズ系のパッケージを追加 (187b407)
- s3.bun: Bun 用の S3 ストレージを追加 (f9508c0)
- redis.bun: Bun 用の Redis ストレージを追加 (3bcff4b)
- fs.bun: Bun 用のローカルファイルストレージを追加 (2bbe532)
- passthrough: データを透過させるトランスフォーマーを追加 (db03775)
- write-only: ストレージを書き込み専用にするプラグインを追加 (9caf480)
- unikvs: 入出力値を Valibot スキーマで検証できる機能を追加 (b873966)
- unikvs: ストレージ登録後もトランスフォーマーを追加できるようにする (c49cf7c)
- memory: clone オプションを追加し読み書き時に複製する (42c5987)
- checksum: 汎用 Checksum クラスを公開する (79a235e)
バグ修正
- 中断処理とチャンク所有権を各パッケージで統一 (7a17d31)
- 諸々修正 (1b46278)
- フォーマットとワークスペースの自動並び替え (a18ab75)
- core,unikvs: clear コンテクストに key を付けない (1c0fed9)
- unikvs: connect メソッドを use メソッドに改名 (0622acc)
- unikvs: repair の分岐解放待ちによるデッドロックを解消する (f9d8935)
- unikvs: use の next 規約を強制し失敗の帰属と abort を修正する (d6ade1b)
- unikvs: パイプライン構築と repair の失敗時にストリームを解放する (f041389)
- unikvs: close の再試行と set のストリーム解放を修正する (58d1e0d)
- unikvs: 共有プラグインの open/close を参照カウントで管理する (8862995)
- unikvs: repair と buildEncodeTree をオニオン実行にする (40cb00d)
- core: 軽微な修正 (7ad36df)
- key-prefix: 重複する実装を PassThrough から引き継ぐ (3ea55fa)
- Variables マージを core に一本化しテストを更新 (0891628)
- Variables をプレーンオブジェクトから Map ライクなクラスにして機能強化 (e918cd4)
- 共通の FastUtf8 インスタンスを utils にまとめる (57f2329)
- zstd.node などに加えた修正を横展開 (e8f639b)
- いくつかの修正 (e7ed542)
- データ操作のロック粒度をグローバル読み取りとキー書き込みに緩和する (148dd1a)
- 集約エラーにストレージ名と登録インデックスを付与する (cffbd45)
- トランスフォーマーのストリーム戻り値を検証する (eaa951b)
- キーロック待機の中断時に構築済みストリームをキャンセルする (18b0c3a)
- open のロック待機中断時に AbortController が残る問題を修正 (67e048b)
- signal 必須化にテストを追随させる (48ea0ae)
- 中断シグナルを活用する (08ed26b)
- core: 出力ファイルの削減 (316d76d)
- indexeddb: 足らないファイルを追加 (4600987)
- debug: デバッグ用のトランスフォーマーを追加 (49ea112)
- README (032f85d)
- writeonly: パッケージ名を変更 (ba0d480)
- unikvs: Readable/WritableStream を instanceof で判定せず、インターフェースで判定する (dd9e5f6)
- utils: chunks が DataView を分割できるようにする (718ff0a)
- unikvs: set(stream) のエンコードチェーン構築失敗時にソースストリームをキャンセルする (2657ee3)
- unikvs: open 完了直前に abort を検査し壊れた接続の作成を防ぐ (f55eb7d)
- opfs: write 失敗時に close ではなく abort して既存データを保全する (50aa411)
- unikvs: stream のセットアップ失敗時と GC 経路でソースストリームをキャンセルする (14d09e8)
- unikvs: has と stream を共有ロックで実行する (f88c384)
- unikvs: open 中断時に abort 理由が集約エラーに埋もれないようにする (5cde73a)
- unikvs: set 失敗時に放棄された tee ブランチをキャンセルする (90c6daf)
- s3.node: partSize を検証し abort signal を Upload へ伝播、clear の警告を文書化 (bb02a78)
- fs.node: close 経路の rename 失敗時にも一時ファイルを削除する (f3f0929)
- fs.node: open 時に解決済みルートパスをインスタンスへ書き戻す (8a1613c)
- unikvs: エラー時に ValueStream を放棄するとキーロックがリークする問題を修正 (6f3d2bf)
- unikvs: has() がストレージの exists() 失敗時に後続ストレージへフォールバックしない問題を修正 (a29e9b3)
- unikvs: 配列形式 context が record スキーマにより破壊され検証系トランスフォーマーが無効化される問題を修正 (fd19274)
- カスタムエラーのコンストラクター引数 args と options を 1 つに統合 (12aeb92)
- unikvs: get/stream が最初のストレージの読み取り失敗時に後続ストレージへフォールバックしない問題を修正 (7af97a8)
- s3.node: アップロード失敗時に pipeTo が永久停止し unhandled rejection になり得る問題を修正 (4162498)
- utils: isValidFilename が NFC 形式の日常的なキー(が、ばいと、café 等)を拒否する問題を修正 (9537432)
- unikvs: setErrorMessage の登録先クラス間違いにより ja メッセージが相互に上書きされる問題を修正 (aa11cd7)
- unikvs: ストレージ登録後の appendTransformer が TypeError: Illegal constructor を投げる問題を修正 (3965d59)
- fs.node: 書き込みが非アトミックで abort しても既存データが置き換わる問題を修正 (6fed715)
- unikvs: close 失敗後に isOpen=true のまま全操作が失敗する壊れた状態になる問題を修正 (0baa3fb)
- unikvs: ValueStream の cancel・エラー・早期 break でキーロックがリークする問題を修正 (40791b7)
- fix (201b430)
- fix (64a08cb)
- memory: index.ts から公開 (30dacd3)
- unikvs: オーバーロードの順番を変える (717002a)
- unikvs: 修正 (fdf766b)
- utils: 修正 (c9e788b)
- 独自拡張 valibot の導入と Context キーの型修正 (86a0bb8)
- unikvs: close 時の中断処理を改善 (83340ad)
- unikvs: インターフェースに特定のクラスの継承を強要しない (67a1874)
- unikvs: 改善 (0ac06d4)
- core: 型の孤立を解消 (b14ed9a)
- opfs: OPFS のルートをストレージとして利用可能にする (ccb7887)
- 依存関係の記載漏れ (0f4eb08)
リファクタリング
- unikvs: 共通の処理を別の場所にまとめる (7917749)
- unikvs: ファイル分割 (8911fbd)
- unikvs: using 構文を使ってネストを淡くする (7e6a330)
- unikvs: open/close の多重実行防止を asyncmux に統一する (c01f70f)
- unikvs: next() の呼び出し規約を強制する (6dd7ba1)
- unikvs: 不要なasキャストを削除 (10a2fdb)
- unikvs: 未使用コードを削除 (f67dad8)
- unikvs: _context を廃止し _contexts に移行し未使用 export を整理 (3c73f3b)
- unikvs: vars 共有対応の _contexts とユーティリティー関数を追加 (62e34a0)
- core: ReadonlyVariableError が変数名を name で保持するよう変更 (4f71ce2)
- unikvs: ミドルウェアに加えた改善を横展開 (bec7897)
- destination 未設定検出とストリーム検証を強化 (41391d2)
- unikvs: Transformer 時代の名残を Middleware に移行 (cf4900f)
- unikvs: 書式・型・カプセル化の思想を本体に適用し既存不良を修正 (2b512ea)
- 書式・型・カプセル化を全パッケージに横展開し既存不良を修正 (0a81705)
- unikvs: 新 Middleware 方式に移行し下流変更の上流可視化に対応 (e0d1c50)
- 全プラグインを新 Context 方式に移行しテスト用 Context を追加 (5ddb682)
- core: repair アクションを廃止し読み取りコンテキストの repair フィールドに移行 (bfa2836)
- core: Variables と旧 IStorage/ITransformer を廃止しコンテキスト型に移行 (6e56de2)
- core: プロパティー順の修正 (2fbba29)
- unikvs: ファイル分割の整理 (8c90a88)
- unikvs: 整理 (9375d2b)
- unikvs: 分岐状態をWeakMap化し内部アクセサー経由で参照する (8d59005)
- unikvs: UniKvsBranch を別ファイルに分離する (8742bbe)
- unikvs: .transform を .connect に改名 (cfbdbc8)
- unikvs: ロジックを概念単位で分割する (bde3f9d)
- testing: パッケージ名を testings から testing に変更 (eaf80c7)
- testings: テストヘルパーを @unikvs/testings に集約 (494f5bc)
- utils: 所有化処理をtoOwnedViewに統合 (3143c9c)
- config APIをtransform/persist/fork(IUniKvsBranch)に刷新しsetVariablesを廃止 (83fc630)
- 重複エラークラスを @unikvs/core に共通化 (fd32d78)
- mergeVars -> mergeVariables (a638211)
- unikvs: createValueStream を廃止し toValueStream に統一 (c09d0ff)
ドキュメント
- unikvs を除く全 @unikvs/ パッケージのドキュメントを追加 (0ddc633)
- core のドキュメントを追加 (45dd40b)
- blume-integrations 追加 (e3a9281)
- 刷新 (b2da43d)
- 様々なパイプラインの定義例と構成図をまとめたページを追加 (a6c7f76)
- 英語語版を整える (68846eb)
- 日本語版を整える (0b76f16)
- 製品名を UniKVS に統一し説明を簡素化、順序を meta.ts で管理 (5b83734)
- 変更履歴のページを追加 (56ad7aa)
- 英語版の writeonly ページを追加し言及を揃える (5c15e86)
- 修正 (280dd8d)
- 修正 (82dc73d)
- 改善 (7c61738)
- 英語ドキュメントも改善 (81dcb59)
- 日本語ドキュメントを改善 (86206c6)
- 英語版を追加 (a774c97)
- JSDoc をドキュメントリンクに置き換え (43bbdac)
- 日本語を改善 (4fced45)
- 刷新 (1e8b2ab)
- JSDoc 手直し (dc2ecfe)
- 修正 (487e522)
- 追加 (4db2490)
- JSDoc を整備 (d40e624)
- docs (403df39)
テスト
- zstd-bun の環境依存な前提アサーションを除去 (4bf0a15)
- 大容量データの比較を bytesEqual に置換してタイムアウトを解消 (412ce72)
- CI で失敗する問題箇所を修正 (00a4b34)
- unikvs: アサーションを rejects/resolves に統一し後片付けを using で自動化する (92328b1)
- unikvs: オニオン構造の回帰テストを追加する (dea0a9d)
- unikvs: バグハントの回帰テストを追加する (ad02e46)
- unikvs: ライフサイクル契約の回帰テストを追加しタイマー依存を除去する (321a299)
- unikvs: signal必須化に合わせて修正 (f1df65a)
- カバレッジ閾値を80%に統一し不足テストを追加 (5a0cbf7)
- unikvs: 最新 API に合わせて修正 (bedb900)
- 修正 (85fc593)
- タイムアウトまでの時間を延長 (b385443)
- カバレッジ計測・しきい値・CI アップロードを追加 (645e079)
- 全パッケージにエントリーポイントのスモークテストを追加 (d702904)
- とにかく強化 (906a5d2)
- unikvs: Memory複製仕様に合わせて期待値を更新 (c9ff13b)
- 体裁を整える (697f875)
- unikvs: bughunt.server.test.ts をテスト内容に応じて適切なテストファイルへ振り分け (9c1a8c8)
- 改善 (689b1ef)
- 改善 (7e0c944)
- fs.node: テスト時間に猶予を与える (1400639)
ビルド・CI
- 内部依存パッケージをビルドするとき最後までたどる (12f370f)
- unikvs/testing をビルド対象に含める (fa3cf59)
- 修正 (fe84948)
- リリース方法を自作スクリプトにする (f6fd2f0)
- Changesets によるリリース手順へ移行 (79fcb62)
- publint と attw による tarball 検証を追加 (2ea0884)
- 修正 (b57be8d)
- 改善 (fafafa4)
- 調整 (2fff1e1)
- リリースワークフローを追加 (90d013c)
- 事前に Docker イメージをダウンロードしておく (5b5c57e)
- 修正 (d750a26)
- 修正 (99f749f)
- 依存パッケージを事前にビルド (fff9067)
その他
- パッケージを更新 (6b235a2)
- 死んでいる oxlint-disable directive を削除 (3237ae3)
- ドキュメントのスキルを追加 (e773f37)
- パッケージを更新 (9a4cba3)
- 開発環境を刷新 (13a41f9)
- vercel-kv: 廃止 (b441982)
- mise.toml tools の revert (a8ca9ed)
- TODO を更新 (bc32487)
- unikvs: abort-signal-utils の throwIfAborted を使う (5b6c77c)
- 設定の軽微な修正 (5877f68)
- 更新 (a515b8d)
- パッケージを更新 (3ee195a)
- workspace: フォルダー順をドキュメント順に一致 (41eb96b)
- 更新 (573bc3f)
- TODO (b495e58)
- utils: 修正 (eec7f6a)
- README (aefd66e)
- 環境刷新 (d1aa68a)
- fix (d5fbe29)
- format (5cfd7c1)
- Context API から Variables へ名称変更 (9fb6687)
- 依存関係を更新 (36d438c)
- 依存関係を更新 (7290be5)
- format (618b2eb)
- 設定を改善 (b45cf74)
- 設定を改善 (b978bd4)
- 設定を改善 (86723ce)
- format (b636a0b)
- format (e62fc2f)
- format (ac0b8b5)
- 設定ファイルの修正 (c62bc19)
- パッケージを更新 (67b239f)
- パッケージを更新 (db45f61)
- README を追加 (4a1e437)
- core: 一部実装を外部パッケージ化 (6e40635)
- 依存関係から testcontainers を剥がす (5289466)
- npm から pnpm に移行 (370cf23)
- パッケージを更新 (80250d9)
- asyncmux を v0.0.8 に引き上げる (4a0d889)
- パッケージ更新のクールダウンを 7 日にする (5d4a16d)
- 調整 (1844a7d)
- WIP (139f889)
Full Changelog: https://github.com/tai-kun/unikvs/commits/@unikvs/core@0.0.13