@fireproof/vendor 1.1.0 → 1.2.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/package.json +97 -4
- package/src/@ipld/car/LICENSE +4 -0
- package/src/@ipld/car/README.md +1132 -0
- package/src/@ipld/car/dist/index.min.js +5 -0
- package/src/@ipld/car/dist/src/api.d.ts +72 -0
- package/src/@ipld/car/dist/src/api.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/buffer-decoder.d.ts +67 -0
- package/src/@ipld/car/dist/src/buffer-decoder.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/buffer-reader-browser.d.ts +116 -0
- package/src/@ipld/car/dist/src/buffer-reader-browser.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/buffer-reader.d.ts +31 -0
- package/src/@ipld/car/dist/src/buffer-reader.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/buffer-writer.d.ts +86 -0
- package/src/@ipld/car/dist/src/buffer-writer.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/coding.d.ts +49 -0
- package/src/@ipld/car/dist/src/coding.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/decoder-common.d.ts +43 -0
- package/src/@ipld/car/dist/src/decoder-common.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/decoder.d.ts +87 -0
- package/src/@ipld/car/dist/src/decoder.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/encoder.d.ts +17 -0
- package/src/@ipld/car/dist/src/encoder.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/header-validator.d.ts +5 -0
- package/src/@ipld/car/dist/src/header-validator.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/index-browser.d.ts +10 -0
- package/src/@ipld/car/dist/src/index-browser.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/index.d.ts +11 -0
- package/src/@ipld/car/dist/src/index.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/indexed-reader-browser.d.ts +5 -0
- package/src/@ipld/car/dist/src/indexed-reader-browser.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/indexed-reader.d.ts +152 -0
- package/src/@ipld/car/dist/src/indexed-reader.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/indexer.d.ts +95 -0
- package/src/@ipld/car/dist/src/indexer.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/iterator-channel.d.ts +7 -0
- package/src/@ipld/car/dist/src/iterator-channel.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/iterator.d.ts +174 -0
- package/src/@ipld/car/dist/src/iterator.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/promise-fs-opts.d.ts +28 -0
- package/src/@ipld/car/dist/src/promise-fs-opts.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/reader-browser.d.ts +151 -0
- package/src/@ipld/car/dist/src/reader-browser.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/reader.d.ts +40 -0
- package/src/@ipld/car/dist/src/reader.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/writer-browser.d.ts +155 -0
- package/src/@ipld/car/dist/src/writer-browser.d.ts.map +1 -0
- package/src/@ipld/car/dist/src/writer.d.ts +45 -0
- package/src/@ipld/car/dist/src/writer.d.ts.map +1 -0
- package/src/@ipld/car/src/api.ts +90 -0
- package/src/@ipld/car/src/buffer-decoder.js +213 -0
- package/src/@ipld/car/src/buffer-reader-browser.js +144 -0
- package/src/@ipld/car/src/buffer-reader.js +51 -0
- package/src/@ipld/car/src/buffer-writer.js +286 -0
- package/src/@ipld/car/src/coding.ts +68 -0
- package/src/@ipld/car/src/decoder-common.js +82 -0
- package/src/@ipld/car/src/decoder.js +347 -0
- package/src/@ipld/car/src/encoder.js +76 -0
- package/src/@ipld/car/src/header-validator.js +214 -0
- package/src/@ipld/car/src/header.ipldsch +18 -0
- package/src/@ipld/car/src/index-browser.js +18 -0
- package/src/@ipld/car/src/index.js +21 -0
- package/src/@ipld/car/src/indexed-reader-browser.js +7 -0
- package/src/@ipld/car/src/indexed-reader.js +211 -0
- package/src/@ipld/car/src/indexer.js +130 -0
- package/src/@ipld/car/src/iterator-channel.js +91 -0
- package/src/@ipld/car/src/iterator.js +267 -0
- package/src/@ipld/car/src/promise-fs-opts.js +46 -0
- package/src/@ipld/car/src/reader-browser.js +194 -0
- package/src/@ipld/car/src/reader.js +54 -0
- package/src/@ipld/car/src/writer-browser.js +250 -0
- package/src/@ipld/car/src/writer.js +81 -0
- package/src/@ipld/dag-cbor/LICENSE +4 -0
- package/src/@ipld/dag-cbor/README.md +80 -0
- package/src/@ipld/dag-cbor/dist/index.min.js +3 -0
- package/src/@ipld/dag-cbor/dist/src/index.d.ts +67 -0
- package/src/@ipld/dag-cbor/dist/src/index.d.ts.map +1 -0
- package/src/@ipld/dag-cbor/src/index.js +147 -0
- package/src/@ipld/dag-json/LICENSE +4 -0
- package/src/@ipld/dag-json/README.md +58 -0
- package/src/@ipld/dag-json/dist/index.min.js +3 -0
- package/src/@ipld/dag-json/dist/src/index.d.ts +12 -0
- package/src/@ipld/dag-json/dist/src/index.d.ts.map +1 -0
- package/src/@ipld/dag-json/src/index.js +291 -0
- package/src/@web3-storage/pail/dist/src/batch/index.d.ts +53 -1
- package/src/@web3-storage/pail/dist/src/batch/index.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/batch/shard.d.ts +1 -1
- package/src/@web3-storage/pail/dist/src/batch/shard.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/block.d.ts +2 -2
- package/src/@web3-storage/pail/dist/src/block.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/clock/index.d.ts +2 -2
- package/src/@web3-storage/pail/dist/src/clock/index.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/crdt/batch/index.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/crdt/index.d.ts +2 -2
- package/src/@web3-storage/pail/dist/src/crdt/index.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/diff.d.ts +3 -3
- package/src/@web3-storage/pail/dist/src/diff.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/index.d.ts +1 -1
- package/src/@web3-storage/pail/dist/src/index.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/merge.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/src/shard.d.ts +4 -4
- package/src/@web3-storage/pail/dist/src/shard.d.ts.map +1 -1
- package/src/@web3-storage/pail/dist/tsconfig.tsbuildinfo +1 -1
- package/src/@web3-storage/pail/src/api.ts +1 -1
- package/src/@web3-storage/pail/src/clock/index.js +1 -1
- package/src/@web3-storage/pail/src/shard.js +1 -1
- package/src/cborg/.github/dependabot.yml +16 -0
- package/src/cborg/.github/workflows/test-and-release.yml +52 -0
- package/src/cborg/CHANGELOG.md +513 -0
- package/src/cborg/LICENSE +13 -0
- package/src/cborg/README.md +515 -0
- package/src/cborg/bench/bench.js +117 -0
- package/src/cborg/bench/json.js +124 -0
- package/src/cborg/bench/package.json +8 -0
- package/src/cborg/cborg/bin.js +189 -0
- package/src/cborg/cborg/common.js +28 -0
- package/src/cborg/cborg/decode.js +211 -0
- package/src/cborg/cborg/diagnostic.js +158 -0
- package/src/cborg/cborg/diagnostic_test.js +117 -0
- package/src/cborg/cborg/encode.js +466 -0
- package/src/cborg/cborg/index.js +33 -0
- package/src/cborg/cborg/is.js +106 -0
- package/src/cborg/cborg/length.js +62 -0
- package/src/cborg/example-bytestrings.js +180 -0
- package/src/cborg/example-json.js +6 -0
- package/src/cborg/example.js +5 -0
- package/src/cborg/interface.ts +59 -0
- package/src/cborg/json/decode.js +462 -0
- package/src/cborg/json/encode.js +302 -0
- package/src/cborg/json/json.js +4 -0
- package/src/cborg/taglib.js +75 -0
- package/src/cborg/test/appendix_a.js +647 -0
- package/src/cborg/test/common.js +18 -0
- package/src/cborg/test/node-test-bin.js +402 -0
- package/src/cborg/test/noop-bin-test.js +3 -0
- package/src/cborg/test/test-0uint.js +103 -0
- package/src/cborg/test/test-1negint.js +96 -0
- package/src/cborg/test/test-2bytes.js +198 -0
- package/src/cborg/test/test-3string.js +136 -0
- package/src/cborg/test/test-4array.js +93 -0
- package/src/cborg/test/test-5map.js +284 -0
- package/src/cborg/test/test-6tag.js +84 -0
- package/src/cborg/test/test-7float.js +131 -0
- package/src/cborg/test/test-bl.js +37 -0
- package/src/cborg/test/test-cbor-vectors.js +107 -0
- package/src/cborg/test/test-decode-errors.js +65 -0
- package/src/cborg/test/test-fuzz.js +42 -0
- package/src/cborg/test/test-json.js +219 -0
- package/src/cborg/test/test-length.js +65 -0
- package/src/cborg/test/test-partial.js +111 -0
- package/src/cborg/tsconfig.json +48 -0
- package/src/cborg/types/cborg/decode.d.ts +43 -0
- package/src/cborg/types/cborg/decode.d.ts.map +1 -0
- package/src/cborg/types/cborg/encode.d.ts +51 -0
- package/src/cborg/types/cborg/encode.d.ts.map +1 -0
- package/src/cborg/types/cborg/index.d.ts +26 -0
- package/src/cborg/types/cborg/index.d.ts.map +1 -0
- package/src/cborg/types/cborg/is.d.ts +6 -0
- package/src/cborg/types/cborg/is.d.ts.map +1 -0
- package/src/cborg/types/example.d.ts +2 -0
- package/src/cborg/types/example.d.ts.map +1 -0
- package/src/cborg/types/interface.d.ts +49 -0
- package/src/cborg/types/interface.d.ts.map +1 -0
- package/src/cborg/types/json/decode.d.ts +67 -0
- package/src/cborg/types/json/decode.d.ts.map +1 -0
- package/src/cborg/types/json/encode.d.ts +11 -0
- package/src/cborg/types/json/encode.d.ts.map +1 -0
- package/src/cborg/types/json/json.d.ts +6 -0
- package/src/cborg/types/json/json.d.ts.map +1 -0
- package/src/cborg/types/taglib.d.ts +18 -0
- package/src/cborg/types/taglib.d.ts.map +1 -0
- package/src/cborg/types/tsconfig.tsbuildinfo +1 -0
- package/src/cborg/types/utils/0uint.d.ts +102 -0
- package/src/cborg/types/utils/0uint.d.ts.map +1 -0
- package/src/cborg/types/utils/1negint.d.ts +59 -0
- package/src/cborg/types/utils/1negint.d.ts.map +1 -0
- package/src/cborg/types/utils/2bytes.d.ts +69 -0
- package/src/cborg/types/utils/2bytes.d.ts.map +1 -0
- package/src/cborg/types/utils/3string.d.ts +46 -0
- package/src/cborg/types/utils/3string.d.ts.map +1 -0
- package/src/cborg/types/utils/4array.d.ts +66 -0
- package/src/cborg/types/utils/4array.d.ts.map +1 -0
- package/src/cborg/types/utils/5map.d.ts +66 -0
- package/src/cborg/types/utils/5map.d.ts.map +1 -0
- package/src/cborg/types/utils/6tag.d.ts +62 -0
- package/src/cborg/types/utils/6tag.d.ts.map +1 -0
- package/src/cborg/types/utils/7float.d.ts +60 -0
- package/src/cborg/types/utils/7float.d.ts.map +1 -0
- package/src/cborg/types/utils/bl.d.ts +26 -0
- package/src/cborg/types/utils/bl.d.ts.map +1 -0
- package/src/cborg/types/utils/byte-utils.d.ts +53 -0
- package/src/cborg/types/utils/byte-utils.d.ts.map +1 -0
- package/src/cborg/types/utils/common.d.ts +8 -0
- package/src/cborg/types/utils/common.d.ts.map +1 -0
- package/src/cborg/types/utils/index.d.ts +13 -0
- package/src/cborg/types/utils/index.d.ts.map +1 -0
- package/src/cborg/types/utils/jump.d.ts +16 -0
- package/src/cborg/types/utils/jump.d.ts.map +1 -0
- package/src/cborg/types/utils/token.d.ts +59 -0
- package/src/cborg/types/utils/token.d.ts.map +1 -0
- package/src/cborg/utils/0uint.js +229 -0
- package/src/cborg/utils/1negint.js +111 -0
- package/src/cborg/utils/2bytes.js +135 -0
- package/src/cborg/utils/3string.js +90 -0
- package/src/cborg/utils/4array.js +114 -0
- package/src/cborg/utils/5map.js +113 -0
- package/src/cborg/utils/6tag.js +81 -0
- package/src/cborg/utils/7float.js +310 -0
- package/src/cborg/utils/bl.js +124 -0
- package/src/cborg/utils/byte-utils.js +417 -0
- package/src/cborg/utils/common.js +11 -0
- package/src/cborg/utils/index.js +12 -0
- package/src/cborg/utils/jump.js +222 -0
- package/src/cborg/utils/token.js +76 -0
- package/src/ipfs-unixfs-exporter/LICENSE +4 -0
- package/src/ipfs-unixfs-exporter/README.md +105 -0
- package/src/ipfs-unixfs-exporter/dist/index.min.js +3 -0
- package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts +57 -0
- package/src/ipfs-unixfs-exporter/dist/src/errors.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/errors.js +73 -0
- package/src/ipfs-unixfs-exporter/dist/src/errors.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/index.d.ts +355 -0
- package/src/ipfs-unixfs-exporter/dist/src/index.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/index.js +197 -0
- package/src/ipfs-unixfs-exporter/dist/src/index.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js +9 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-cbor.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js +9 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/dag-json.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js +38 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/identity.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js +30 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/index.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js +9 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/json.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js +37 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/raw.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js +29 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/directory.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js +153 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/file.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js +59 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/hamt-sharded-directory.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js +25 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/content/raw.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js +104 -0
- package/src/ipfs-unixfs-exporter/dist/src/resolvers/unixfs-v1/index.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts +3 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js +20 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/extract-data-from-block.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts +6 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js +116 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/find-cid-in-shard.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts +4 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js +57 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/resolve-object-path.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts +6 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.d.ts.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js +30 -0
- package/src/ipfs-unixfs-exporter/dist/src/utils/validate-offset-and-length.js.map +1 -0
- package/src/ipfs-unixfs-exporter/dist/typedoc-urls.json +58 -0
- package/src/ipfs-unixfs-exporter/src/errors.ts +87 -0
- package/src/ipfs-unixfs-exporter/src/index.ts +498 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/dag-cbor.ts +12 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/dag-json.ts +12 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/identity.ts +49 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/index.ts +35 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/json.ts +12 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/raw.ts +49 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/directory.ts +39 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/file.ts +198 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/hamt-sharded-directory.ts +76 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/content/raw.ts +37 -0
- package/src/ipfs-unixfs-exporter/src/resolvers/unixfs-v1/index.ts +121 -0
- package/src/ipfs-unixfs-exporter/src/utils/extract-data-from-block.ts +24 -0
- package/src/ipfs-unixfs-exporter/src/utils/find-cid-in-shard.ts +149 -0
- package/src/ipfs-unixfs-exporter/src/utils/resolve-object-path.ts +62 -0
- package/src/ipfs-unixfs-exporter/src/utils/validate-offset-and-length.ts +38 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Tokeniser } from './decode.js'
|
|
2
|
+
import { uintBoundaries, toHex, fromHex, Type } from "@fireproof/vendor/cborg/utils"
|
|
3
|
+
|
|
4
|
+
const utf8Encoder = new TextEncoder()
|
|
5
|
+
const utf8Decoder = new TextDecoder()
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @param {Uint8Array} inp
|
|
9
|
+
* @param {number} [width]
|
|
10
|
+
*/
|
|
11
|
+
function * tokensToDiagnostic (inp, width = 100) {
|
|
12
|
+
const tokeniser = new Tokeniser(inp, {
|
|
13
|
+
decodeErrPrefix: 'Diagnostic decode error: ',
|
|
14
|
+
retainStringBytes: true,
|
|
15
|
+
allowBigInt: true
|
|
16
|
+
})
|
|
17
|
+
let pos = 0
|
|
18
|
+
const indent = []
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @param {number} start
|
|
22
|
+
* @param {number} length
|
|
23
|
+
* @returns {string}
|
|
24
|
+
*/
|
|
25
|
+
const slc = (start, length) => {
|
|
26
|
+
return toHex(inp.slice(pos + start, pos + start + length))
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
while (!tokeniser.done()) {
|
|
30
|
+
const token = tokeniser.next()
|
|
31
|
+
let margin = ''.padStart(indent.length * 2, ' ')
|
|
32
|
+
// @ts-ignore should be safe for decode
|
|
33
|
+
let vLength = token.encodedLength - 1
|
|
34
|
+
/** @type {string|number} */
|
|
35
|
+
let v = String(token.value)
|
|
36
|
+
let outp = `${margin}${slc(0, 1)}`
|
|
37
|
+
const str = token.type.equals(Type.bytes) || token.type.equals(Type.string)
|
|
38
|
+
if (token.type.equals(Type.string)) {
|
|
39
|
+
v = v.length
|
|
40
|
+
vLength -= v
|
|
41
|
+
} else if (token.type.equals(Type.bytes)) {
|
|
42
|
+
v = token.value.length
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
vLength -= v
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
let multilen
|
|
48
|
+
switch (token.type.name) {
|
|
49
|
+
case Type.string.name:
|
|
50
|
+
case Type.bytes.name:
|
|
51
|
+
case Type.map.name:
|
|
52
|
+
case Type.array.name:
|
|
53
|
+
// for bytes and string, we want to print out the length part of the value prefix if it
|
|
54
|
+
// exists - it exists for short lengths (<24) but does for longer lengths
|
|
55
|
+
multilen = token.type.equals(Type.string) ? utf8Encoder.encode(token.value).length : token.value.length
|
|
56
|
+
if (multilen >= uintBoundaries[0]) {
|
|
57
|
+
if (multilen < uintBoundaries[1]) {
|
|
58
|
+
outp += ` ${slc(1, 1)}`
|
|
59
|
+
} else if (multilen < uintBoundaries[2]) {
|
|
60
|
+
outp += ` ${slc(1, 2)}`
|
|
61
|
+
/* c8 ignore next 5 */
|
|
62
|
+
} else if (multilen < uintBoundaries[3]) { // sus
|
|
63
|
+
outp += ` ${slc(1, 4)}`
|
|
64
|
+
} else if (multilen < uintBoundaries[4]) { // orly?
|
|
65
|
+
outp += ` ${slc(1, 8)}`
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
break
|
|
69
|
+
default:
|
|
70
|
+
// print the value if it's not compacted into the first byte
|
|
71
|
+
outp += ` ${slc(1, vLength)}`
|
|
72
|
+
break
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
outp = outp.padEnd(width / 2, ' ')
|
|
76
|
+
outp += `# ${margin}${token.type.name}`
|
|
77
|
+
// there should be a method to get a Type from a String
|
|
78
|
+
if (token.type.name !== v) {
|
|
79
|
+
outp += `(${v})`
|
|
80
|
+
}
|
|
81
|
+
yield outp
|
|
82
|
+
|
|
83
|
+
if (str) {
|
|
84
|
+
let asString = token.type.equals(Type.string)
|
|
85
|
+
margin += ' '
|
|
86
|
+
let repr = asString ? utf8Encoder.encode(token.value) : token.value
|
|
87
|
+
if (asString && token.byteValue !== undefined) {
|
|
88
|
+
if (repr.length !== token.byteValue.length) {
|
|
89
|
+
// bail on printing this as a string, it's probably not utf8, so treat it as bytes
|
|
90
|
+
// (you can probably blame a Go programmer for this)
|
|
91
|
+
repr = token.byteValue
|
|
92
|
+
asString = false
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const wh = ((width / 2) - margin.length - 1) / 2
|
|
96
|
+
let snip = 0
|
|
97
|
+
while (repr.length - snip > 0) {
|
|
98
|
+
const piece = repr.slice(snip, snip + wh)
|
|
99
|
+
snip += piece.length
|
|
100
|
+
const st = asString
|
|
101
|
+
? utf8Decoder.decode(piece)
|
|
102
|
+
: piece.reduce((/** @type {string} */ p, /** @type {number} */ c) => {
|
|
103
|
+
if (c < 0x20 || (c >= 0x7f && c < 0xa1) || c === 0xad) {
|
|
104
|
+
return `${p}\\x${c.toString(16).padStart(2, '0')}`
|
|
105
|
+
}
|
|
106
|
+
return `${p}${String.fromCharCode(c)}`
|
|
107
|
+
}, '')
|
|
108
|
+
yield `${margin}${toHex(piece)}`.padEnd(width / 2, ' ') + `# ${margin}"${st}"`
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (indent.length) {
|
|
113
|
+
indent[indent.length - 1]--
|
|
114
|
+
}
|
|
115
|
+
if (!token.type.terminal) {
|
|
116
|
+
switch (token.type.name) {
|
|
117
|
+
case Type.map.name:
|
|
118
|
+
indent.push(token.value * 2)
|
|
119
|
+
break
|
|
120
|
+
case Type.array.name:
|
|
121
|
+
indent.push(token.value)
|
|
122
|
+
break
|
|
123
|
+
// TODO: test tags .. somehow
|
|
124
|
+
/* c8 ignore next 5 */
|
|
125
|
+
case Type.tag.name:
|
|
126
|
+
indent.push(1)
|
|
127
|
+
break
|
|
128
|
+
default:
|
|
129
|
+
throw new Error(`Unknown token type '${token.type.name}'`)
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
while (indent.length && indent[indent.length - 1] <= 0) {
|
|
133
|
+
indent.pop()
|
|
134
|
+
}
|
|
135
|
+
// @ts-ignore it should be set on a decode operation
|
|
136
|
+
pos += token.encodedLength
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Convert an input string formatted as CBOR diagnostic output into binary CBOR form.
|
|
142
|
+
* @param {string} input
|
|
143
|
+
* @returns {Uint8Array}
|
|
144
|
+
*/
|
|
145
|
+
function fromDiag (input) {
|
|
146
|
+
/* c8 ignore next 3 */
|
|
147
|
+
if (typeof input !== 'string') {
|
|
148
|
+
throw new TypeError('Expected string input')
|
|
149
|
+
}
|
|
150
|
+
input = input.replace(/#.*?$/mg, '').replace(/[\s\r\n]+/mg, '')
|
|
151
|
+
/* c8 ignore next 3 */
|
|
152
|
+
if (/[^a-f0-9]/i.test(input)) {
|
|
153
|
+
throw new TypeError('Input string was not CBOR diagnostic format')
|
|
154
|
+
}
|
|
155
|
+
return fromHex(input)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export { tokensToDiagnostic, fromDiag }
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { tokensToDiagnostic } from './diagnostic.js'
|
|
2
|
+
import { fromHex } from "@fireproof/vendor/cborg/utils"
|
|
3
|
+
|
|
4
|
+
const inp = `
|
|
5
|
+
a7
|
|
6
|
+
62
|
|
7
|
+
6964
|
|
8
|
+
78 40
|
|
9
|
+
6469643a6578616d706c653a31324433
|
|
10
|
+
4b6f6f574d4864727a6377706a626472
|
|
11
|
+
5a733547477145524176636771583362
|
|
12
|
+
3564707550745061396f743639796577
|
|
13
|
+
65
|
|
14
|
+
70726f6f66
|
|
15
|
+
a4
|
|
16
|
+
64
|
|
17
|
+
74797065
|
|
18
|
+
74
|
|
19
|
+
656432353531395369676e617475726532303138
|
|
20
|
+
67
|
|
21
|
+
63726561746564
|
|
22
|
+
74
|
|
23
|
+
323032302d30352d30315430333a30303a30325a
|
|
24
|
+
67
|
|
25
|
+
63726561746f72
|
|
26
|
+
78 8c
|
|
27
|
+
6469643a6578616d706c653a31324433
|
|
28
|
+
4b6f6f574d4864727a6377706a626472
|
|
29
|
+
5a733547477145524176636771583362
|
|
30
|
+
3564707550745061396f743639796577
|
|
31
|
+
3b206578616d706c653a6b65793d6964
|
|
32
|
+
3d626166797265696375627478357771
|
|
33
|
+
6f336e6f73633463617a726b63746668
|
|
34
|
+
776436726577657a6770776f65347377
|
|
35
|
+
69726c733465626468733269
|
|
36
|
+
6e
|
|
37
|
+
7369676e617475726556616c7565
|
|
38
|
+
78 58
|
|
39
|
+
6f3972364c78676f474e38466f616565
|
|
40
|
+
554136456444637631324776447a4645
|
|
41
|
+
6d43676a577a76707572325953517941
|
|
42
|
+
3857327230535357554b2b6e4835744d
|
|
43
|
+
717a61464c756e3677775a31456f7433
|
|
44
|
+
37616d4744673d3d
|
|
45
|
+
67
|
|
46
|
+
63726561746564
|
|
47
|
+
74
|
|
48
|
+
323031382d31322d30315430333a30303a30305a
|
|
49
|
+
67
|
|
50
|
+
75706461746564
|
|
51
|
+
74
|
|
52
|
+
323032302d30352d30315430333a30303a30305a
|
|
53
|
+
68
|
|
54
|
+
40636f6e74657874
|
|
55
|
+
78 1c
|
|
56
|
+
68747470733a2f2f7777772e77332e6f
|
|
57
|
+
72672f6e732f6469642f7631
|
|
58
|
+
69
|
|
59
|
+
7075626c69634b6579
|
|
60
|
+
81
|
|
61
|
+
a5
|
|
62
|
+
62
|
|
63
|
+
6964
|
|
64
|
+
78 85
|
|
65
|
+
6261667972656963756274783577716f
|
|
66
|
+
336e6f73633463617a726b6374666877
|
|
67
|
+
6436726577657a6770776f6534737769
|
|
68
|
+
726c7334656264687332693b6578616d
|
|
69
|
+
706c653a6b65793d6964626166797265
|
|
70
|
+
6963756274783577716f336e6f736334
|
|
71
|
+
63617a726b6374666877643672657765
|
|
72
|
+
7a6770776f6534737769726c73346562
|
|
73
|
+
6468733269
|
|
74
|
+
64
|
|
75
|
+
74797065
|
|
76
|
+
6e
|
|
77
|
+
45644473615075626c69634b6579
|
|
78
|
+
65
|
|
79
|
+
6375727665
|
|
80
|
+
67
|
|
81
|
+
65643235353139
|
|
82
|
+
67
|
|
83
|
+
65787069726573
|
|
84
|
+
74
|
|
85
|
+
323031392d31322d30315430333a30303a30305a
|
|
86
|
+
6f
|
|
87
|
+
7075626c69634b6579426173653634
|
|
88
|
+
78 2c
|
|
89
|
+
716d7a3774704c4e4b4b4b646c376344
|
|
90
|
+
375062656a4469425670374f4e706d5a
|
|
91
|
+
62666d633763454b396d673d
|
|
92
|
+
6e
|
|
93
|
+
61757468656e7469636174696f6e
|
|
94
|
+
81
|
|
95
|
+
78 83
|
|
96
|
+
6469643a6578616d706c653a31324433
|
|
97
|
+
4b6f6f574d4864727a6377706a626472
|
|
98
|
+
5a733547477145524176636771583362
|
|
99
|
+
3564707550745061396f743639796577
|
|
100
|
+
3b6b65792d69643d6261667972656963
|
|
101
|
+
756274783577716f336e6f7363346361
|
|
102
|
+
7a726b63746668776436726577657a67
|
|
103
|
+
70776f6534737769726c733465626468
|
|
104
|
+
733269
|
|
105
|
+
`.replace(/[\n ]/g, '')
|
|
106
|
+
|
|
107
|
+
// tokensToDiagnostic(fromHex('861864fb4376345785d8a0002063796570428411fb3ff199999999999a'))
|
|
108
|
+
for (const line of tokensToDiagnostic(fromHex('851864fb4376345785d8a00020a661624284116166f46168f7616ef6617379012c7965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965707965706174f5fb3ff199999999999a'))) {
|
|
109
|
+
console.log(line)
|
|
110
|
+
}
|
|
111
|
+
for (const line of tokensToDiagnostic(fromHex(inp))) {
|
|
112
|
+
console.log(line)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
for (const line of tokensToDiagnostic(fromHex('82410181a161318182410041ff'))) {
|
|
116
|
+
console.log(line)
|
|
117
|
+
}
|