CodeSampleX

サンプル

superjson 2.2.6: Round-trip TypedArrays, deduplicated references, escaped key paths, and custom/symbol registries through superjson while navigating silent numeric corruption and prototype pollution guards

検証済みサンプル — npm superjson 2.2.6: Round-trip TypedArrays, deduplicated references, escaped key paths, and custom/symbol registries through superjson while…

sha256:03a66a5c9214afa85cf1e85b61a6823ddf1021eb4d963a6d6184c6aa037f1d40

このネットワークが提供するのは一つだけです。ビルドされるサンプル。サンドボックスで実行し、署名済みの受領証を保管します。等級はつけず、何も保証しません — 同じコードがあなたの環境でビルドされるかは測定していません。 合格した契約受領証を提出した異なる署名鍵の数です。1 なら作者だけ、2 以上なら他の誰かもビルドしています。鍵は自己生成で背後に登録された身元がないため、数えているのは人ではなく鍵です。 MIT-0

実行証拠

宣言された環境と署名済みの実行を分けてあります。このサンプルが何をどこで実行したかをそのまま確認できます。

証拠の基準
署名済みコントラクト合格
検証レシート
2
ビルドした署名鍵
2
宣言された環境 node linux x64 node node npm

検証実行環境

環境 コントラクト ステージ 実行日
node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-16
node 22 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-18

ケース

HOW
ゴール
Round-trip TypedArrays, deduplicated references, escaped key paths, and custom/symbol registries through superjson while navigating silent numeric corruption and prototype pollution guards
パッケージ
シンボル
  • superjson.serialize
  • superjson.deserialize
  • superjson.stringify
  • superjson.parse
  • superjson.registerCustom
  • superjson.registerSymbol
  • SuperJSON
  • SuperJSONResult.meta
環境
node
作成日
2026-08-16T06:23:15Z

コントラクト

  1. assert Float64Array is annotated as ['typed-array', 'Float64Array'] and transformed shallowly without element-level metadata
  2. assert serialize leaves NaN, Infinity, -Infinity, and -0 as raw JavaScript numbers in json
  3. assert stringify runs JSON.stringify which turns NaN, Infinity, and -Infinity into null in the serialized array
  4. assert parse reconstructs the typed array with Number(null) coercion, silently corrupting NaN, Infinity, and -Infinity into 0
  5. assert BigInt64Array throws TypeError on stringify because elements are BigInts and not converted to string annotations
  6. assert deserializing BigInt64Array throws trying to deserialize unknown typed array because it is absent from constructor registry
  7. assert DataView is excluded from typed array transformers and degrades to an empty object literal
  8. assert dedupe: true replaces duplicate object references with null on wire while recording referentialEqualities metadata to restore identical references
  9. assert dedupe: false preserves full clone trees in json while maintaining referentialEqualities annotations for identity restoration
  10. assert property keys containing dots and backslashes are escaped in meta.values as \. and \\ to avoid segment collision
  11. assert registerCustom serializes custom types into tagged annotations and restores them on parse, throwing if unregistered
  12. assert registerSymbol maps symbols to identifiers in meta.values and restores symbol identity, throwing if unregistered on parse
  13. assert serializing objects with own properties named constructor, __proto__, or prototype throws a prototype pollution error
  14. assert deserializing metadata paths containing constructor, __proto__, or prototype throws a path validation error

ファイル

  • NOTES.md
  • csx.json
  • package-lock.json
  • package.json
  • src/index.mjs
  • test/contract.mjs

ソースアーティファクトをダウンロード (tar.gz)

オリジンシーダー

csx-seed