v2.0.0
2.0.0 (2024-09-28)
⚠ BREAKING CHANGES
- data-types:
tb
をtable
に改名 - data-types/standard: Duration の
set
をsub
に修正 - formatter: Sec-Websocket-Protocol ヘッダーを必ず指定する
- clients/standard: Jwt の
.getTimeUntilExpiration
を.getSecondsUntilExpiration
に変更 - surreal/surql: メソッド名に統一感出す
- disconnect を close に改名
- v2
Changes
- clients/standard: Jwt の
.getTimeUntilExpiration
を.getSecondsUntilExpiration
に変更 (c4bd5da) - data-types:
tb
をtable
に改名 (72809e0) - disconnect を close に改名 (a4588a9)
- engines/websocket: 名前空間とデータベースの矛盾を検知しない (9bdbc58)
- formatters/json: CBOR と同様に proto と constructor を安全ではないキーとみなす (30b7357)
- scripts: Vitest が報告するエラーのフォーマットを変更 (4ef9e8e)
- surreal/surql: メソッド名に統一感出す (0750def)
- surreal/surql: 事前準備されたクエリーがエンコード前のクエリーを保持するようにする (a0af5e5)
Features
insert_relation
を実装 (5656331)- cbor-values: Datetime を追加 (9f80696)
- cbor-values: Decimal を実装 (8a303f3)
- cbor-values: Duration を追加 (214794c)
- cbor-values: ジオメトリを追加 (4e07f24)
- cbor-values: データ型を判定するための隠しプロパティを追加 (25187b9)
- clients/basic: デフォルトのエラーハンドラーをオフにするオプションを追加 (5906a2b)
- clients/standard: Jwt に
.getMillisecondsUntilExpiration
を追加 (70645a9) - clients/standard: JWT を安全に扱いやすくする。 (930126b)
- clients: basic クライアントと standard クライアントを追加 (f33719c)
- data-types: .structure メソッドを追加 (959966e)
- data-types/encodable: Thing を ID ジェネレーターに対応させる (11cc58c)
- data-types/standard:
Future
とRange
関連に.clone()
メソッドを生やす (#39) (2979052) - data-types/standard: GeometryLine にリング系のプロパティーを追加 (64877f6)
- data-types:
Bound
に型パラメーターを追加する (853a5fc) - data-types: Table を追加 (e8b5278)
- data-types: Thing を追加 (2557860)
- data-types: Uuid を追加 (d05b388)
- data-types: 実験的な
Future
を実装 (0ebdadd) - data-types: 実験的な
Range
を実装 (0874743) - engines/http: HTTP エンジンに RPC レスポンスのイベントを追加 (#41) (64235ba)
- engines/websocket:
use
メソッドの機能強化 (526efb1) - formatters/cbor: CBOR のエンコーダーとデコーダーを追加 (27a66ce)
- formatters: json フォーマッターと cbor フォーマッターを追加 (df0fe13)
- http エンジンと websocket エンジンを追加 (6fa7a40)
- surreal/surql:
.as
のエイリアスに.type
、.to
のエイリアスに.toransform
(b022a25) - surreal: 1 回限りの RPC を実行する関数を追加 (fbf82c4)
- surreal: initSurreal とデフォルトの Surreal を追加 (2c988d8)
- surreal: SurrealQL に文字列を埋め込む surql.raw を追加 (4bff2a6)
- surreal: SurrealQL を事前定義する関数を実験的に追加 (6c35d2a)
- surreal: エンドポイントを自動変形させないためのオプションを追加 (cdb90bc)
- surreal: スロットに値を検証する機能を追加 (81fefe8)
- surreal: 事前準備されたクエリーが持つ型を推論するユーティリティを追加 (aa345be)
- surreal: 事前準備されたクエリーが結果を変形できるようにする (fea1e9d)
- surreal: 事前準備されたクエリーに返値を検証する機能を追加 (0f034cf)
- surreal: 実験的なクエリーユーティリティを追加 (f31f7ff)
- types: 型を色々追加 (f471278)
- utils: getTimeoutSignal を追加 (26b3146)
- utils: isArrayBuffer を追加 (765ffe3)
- utils: isSafeNumber を追加 (aac4bbd)
- utils: makeAbortApi を追加 (1e8a895)
- utils: Serial を追加 (55d5eac)
- utils: StatefulPromise を追加 (d51eadb)
- utils: TaskEmitter を追加 (621a30c)
- utils: TaskQueue を追加 (f10945e)
- utils: throwIdAborted を追加 (d950b8c)
- utils: エスケープ関連の関数を追加 (9eac0d4)
- validators: NoopValidator を追加 (716c3c1)
- ライブクエリーに
record
プロパティを追加 (94ca01c) - 事前に定義されたクエリーに後から変数を割り当てる機能を追加 (1ee76a8)
- 実験的な
graphql
を実装 (f7c4e58)
Bug Fixes
~/
エイリアスを削除 (95eb7e9)- cbor:
undefined
のエンコードを SurrealDB 式に合わせる (e9f46a3) - cbor: Lexcer を終了する前にループを抜け出す (310e4f3)
- cbor: lexer の制限に関するバグを修正 (ecad937)
- cbor: maxDepth + 1 までネストできていた不具合を修正 (a12aecb)
- cbor: SurrealDB との互換性を向上させる (b7f7ea4)
- cbor: toCBOR で Writer に書き込むとエンコードが終わらないバグを修正 (b5dd88e)
- cbor: エンコード時の循環参照エラーを追加 (259061f)
- cbor: タグ付きデータアイテムの値がエンコードされないバグを修正 (8c81ad5)
- cbor: タンクサイズを超える入力が合った時にエンコードに失敗する不具合を修正 (e6d1439)
- cbor: ネストされたオブジェクトのエンコード時に循環参照を検知できないことがる不具合を修正 (8a8674a)
- cbor: バッファーの必要サイズの要求時に安全な整数値を超える可能性がある (8109455)
- cbor: 不定長文字列内に不定長文字列を入れてエラーにならない不具合を修正 (92cc063)
- CI (9df7708)
- CI (3be3f56)
- ci: Bun のスクリプトを修正 (254e9c7)
- ci: codecov にアップロードし忘れた (6a82243)
- ci: ブラウザのミディアムテストでスモールテストをしていたミスを修正 (3aa98e8)
- ci: 不要なスクリプトを削除 (83575cf)
- ci: 修正! (18545f6)
- clients/standard:
graphql
の API を修正 (8a63cbf) - clients/standard:
insert
の引数であるテーブル名をオプションにする (3e95f30) - clients/standard: クエリーの変数を必須にする条件を修正 (9a85f64)
- clients/standard: 型を修正 (56b138f)
- clients/standard: 変数名と型を自明に (9d88437)
- clients:
use
メソッドで null と undefined を区別する (b38d0e8) - data-types/decode-only: Datetime が -0 を 0 にしない不具合を修正 (622a263)
- data-types/encodable: typo (c6b0310)
- data-types/encodable: ファイルパスを修正 (dba6642)
- data-types/standard: Decimal のstructure を encodable から拡張する (9c64683)
- data-types/standard: Duration の
set
をsub
に修正 (5233ee1) - data-types:
Range
の SurrealQL 表現を修正 (a2702d6) - data-types: multiline -> multilinestring (d5a21fb)
- data-types: Thing の id の型を改善 (ee8f24a)
- data-types: 継承元の型を export (fd67887)
- docs: リダイレクト時にハッシュが消える不具合を修正 (2eda9b0)
- Duration の型を修正 (f28e01f)
- engines/http: 名前空間とデータベースのから文字列を許可する (e69b5f6)
- engines/websocket: 3000 番台のステータスコードで iana に登録されているコードを避ける (7fa876d)
- engines/websocket: Blob に対応する (f09326d)
- engines/websocket: close イベント内のエラーを送信する (c416eb7)
- engines/websocket: ライブクエリの結果をすべて受け取る (95f6c42)
- engines/websocket: 予約済みのステータスコードをエラーとして扱わない (2e6d97d)
- engine: 名前空間とデータベース選択に関するバグを修正 (5fc1f78)
- engine: 接続情報の命名ミスを修正 (cf47291)
- engine: 遷移時の状態をエラーメッセージに反映できていなかった不具合を修正 (e955a5f)
- errors: .toSorted() が使えない環境に対応 (1c1cd38)
- errors: 古いブラウザーをサポートするために静的初期化ブロックを使わない (314bbae)
- experimental 属性のつけ忘れ (131f49f)
- formatters/cbor: Buffer 判定をして Uint8Array にする。 (b19f163)
- formatters/cbor: UUID のタグ付けを修正 (7420a89)
- formatters/cbor: デフォルトで実験的機能を実装しない (06c1146)
- formatters/json: 不変にする (ef7cd13)
- formatters: Buffer をすべて使う (0e2e433)
- formatter: Sec-Websocket-Protocol ヘッダーを必ず指定する (5ba5757)
- insert の型を修正 (3048988)
- pinger を正しく終了させる (c879c14)
- PR (e8597bb)
- size-limit でインポートする値を修正 (a4c583f)
- surreal/inline: インライン RPC に
graphql
を追加 (368c9e1) - surreal/utils: WebSocket でステータスコードが
1012
1013
なら再接続を試みる。 (533f8c2) - surreal: rpc に非同期デコードを実装し忘れた (f4516e5)
- surreal: クライエントに引数をすべて渡せていなかった (92549e7)
- surreal: スロットの .required でデフォルト値が引き継がれる不具合を修正 (3bd2ad5)
- surreal: 特定の変数名から始まるスロットでエラー (eb6c600)
- test-env/deno: パッケージのファイルパスを修正 (7bc6ab1)
- test-env: assert を Node 環境以外でも動くようにする (db88ea6)
- test-env: Deno でエラーが出る箇所を修正 (2d42341)
- test-env: fix (7a2fecd)
- test-env: match と doesNotMatch を修正 (5bb96c4)
- test-env: match と doesNotMatch を修正 (bc9e624)
- test-env: match と doesNotMatch を修正 (285f580)
- test-env: ブラウザのテスト結果が成否しか出ない問題を修正 (f5d013c)
- test-env: ブラウザ環境の判定を修正 (79b336d)
- test-env: ポリフィルのオプションを修正して assert パッケージが読み込まれるようにする (adc0b07)
- test-env: 依存関係の入れ忘れを修正 (3937f07)
- tests/small/cbor-values: コンストラクターの引数を修正 (a87cfdd)
- tests: CBOR 限定のテストに JSON を含めていたミスを修正 (4834c87)
- tests: WebKit 用のテストを別途用意 (890df8c)
- tests: テスト環境と型の修正 (5c6c621)
- tests: 予期する値の変更ミスを修正 (e9338cc)
- tests: 期待する値の設定ミスを修正 (23a17a2)
- trait に検証項目を追加 (35e2784)
- types: 命名に一貫性をもたせる (260eeae)
- typo (3d066bd)
- Uint8Array に関連する型を修正 (040b1f4)
- utils: API リファレンスの URL を修正 (8c08770)
- utils: isLiveResult で record プロパティーの存在を確認する (553e325)
- utils: StatefulPromise が Promise で解決できない不具合を修正 (767bc88)
- utils: toSurql CBOR 形式にできる値を受け入れるようにする (58e0351)
- utils: プレーンオブジェクトの判定をより厳格に行う (28846ca)
- utils: レコード ID のエスケープを修正 (ab00006)
- values/tiny を廃止して型を修正 (cefd1a9)
- values: datetime の NaN 判定を修正 (9f810e6)
- WebSocket の自動選択を賢くする (3288895)
- おそらくBun以外修正 (2412abe)
- 型を修正 (939be31)
- 接続/切断テストで出た不具合を修正 (0cd3edb)
Code Refactoring
- v2 (a81cf50)