Comparing version 3.1.15 to 3.1.16
@@ -6,2 +6,3 @@ #!/usr/bin/env node | ||
// Also prints a DAG-JSON form of the block and its CID to stdout. | ||
// If `--inspect` is supplied, don't write the blocks, just print them to stdout. | ||
@@ -17,3 +18,3 @@ import fs from 'fs' | ||
if (!process.argv[2]) { | ||
console.log('Usage: example-dump-car.js <path/to/car>') | ||
console.log('Usage: dump-car.js [--inspect] <path/to/car>') | ||
process.exit(1) | ||
@@ -38,9 +39,16 @@ } | ||
async function run () { | ||
const inStream = fs.createReadStream(process.argv[2]) | ||
const inspect = process.argv.includes('--inspect') | ||
const inStream = fs.createReadStream(process.argv.filter((a) => a !== '--inspect')[2]) | ||
const reader = await CarBlockIterator.fromIterable(inStream) | ||
console.log(`Version: ${reader.version}`) | ||
console.log(`Roots: [${(await reader.getRoots()).map((r) => r.toString()).join(', ')}]`) | ||
console.log('Blocks:') | ||
let i = 1 | ||
for await (const { cid, bytes } of reader) { | ||
await fs.promises.writeFile(cid.toString(), bytes) | ||
if (!inspect) { | ||
await fs.promises.writeFile(cid.toString(), bytes) | ||
} | ||
const decoded = decode(cid, bytes) | ||
console.log(`${cid} [${codecs[cid.code].name}]`) | ||
console.log(`#${i++} ${cid} [${codecs[cid.code].name}]`) | ||
console.dir(new TextDecoder().decode(dagJson.encode(decoded))) | ||
@@ -47,0 +55,0 @@ } |
@@ -49,17 +49,20 @@ import assert from 'assert' | ||
assert.strictEqual(stdout, | ||
`bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm [dag-cbor] | ||
`Version: 1 | ||
Roots: [bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm, bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm] | ||
Blocks: | ||
#1 bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm [dag-cbor] | ||
'{"link":{"/":"QmNX6Tffavsya4xgBi2VJQnSuqy9GsxongxZZ9uZBqp16d"},"name":"blip"}' | ||
QmNX6Tffavsya4xgBi2VJQnSuqy9GsxongxZZ9uZBqp16d [dag-pb] | ||
#2 QmNX6Tffavsya4xgBi2VJQnSuqy9GsxongxZZ9uZBqp16d [dag-pb] | ||
'{"Links":[{"Hash":{"/":"bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke"},"Name":"bear","Tsize":4},{"Hash":{"/":"QmWXZxVQ9yZfhQxLD35eDR8LiMRsYtHxYqTFCBbJoiJVys"},"Name":"second","Tsize":149}]}' | ||
bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke [raw] | ||
#3 bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke [raw] | ||
'{"/":{"bytes":"Y2NjYw"}}' | ||
QmWXZxVQ9yZfhQxLD35eDR8LiMRsYtHxYqTFCBbJoiJVys [dag-pb] | ||
#4 QmWXZxVQ9yZfhQxLD35eDR8LiMRsYtHxYqTFCBbJoiJVys [dag-pb] | ||
'{"Links":[{"Hash":{"/":"bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4"},"Name":"dog","Tsize":4},{"Hash":{"/":"QmdwjhxpxzcMsR3qUuj7vUL8pbA7MgR3GAxWi2GLHjsKCT"},"Name":"first","Tsize":51}]}' | ||
bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4 [raw] | ||
#5 bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4 [raw] | ||
'{"/":{"bytes":"YmJiYg"}}' | ||
QmdwjhxpxzcMsR3qUuj7vUL8pbA7MgR3GAxWi2GLHjsKCT [dag-pb] | ||
#6 QmdwjhxpxzcMsR3qUuj7vUL8pbA7MgR3GAxWi2GLHjsKCT [dag-pb] | ||
'{"Links":[{"Hash":{"/":"bafkreidbxzk2ryxwwtqxem4l3xyyjvw35yu4tcct4cqeqxwo47zhxgxqwq"},"Name":"cat","Tsize":4}]}' | ||
bafkreidbxzk2ryxwwtqxem4l3xyyjvw35yu4tcct4cqeqxwo47zhxgxqwq [raw] | ||
#7 bafkreidbxzk2ryxwwtqxem4l3xyyjvw35yu4tcct4cqeqxwo47zhxgxqwq [raw] | ||
'{"/":{"bytes":"YWFhYQ"}}' | ||
bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm [dag-cbor] | ||
#8 bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm [dag-cbor] | ||
'{"link":null,"name":"limbo"}' | ||
@@ -71,2 +74,8 @@ `) | ||
}) | ||
}).then(async () => { | ||
await runExample('car-to-fixture', ['../test/go.car']).then(({ stdout, stderr }) => { | ||
assert.strictEqual(stderr, '') | ||
assert.strictEqual(stdout, '{"blocks":[{"blockLength":55,"blockOffset":137,"cid":{"/":"bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm"},"content":{"link":{"/":"QmNX6Tffavsya4xgBi2VJQnSuqy9GsxongxZZ9uZBqp16d"},"name":"blip"},"length":92,"offset":100},{"blockLength":97,"blockOffset":228,"cid":{"/":"QmNX6Tffavsya4xgBi2VJQnSuqy9GsxongxZZ9uZBqp16d"},"content":{"Links":[{"Hash":{"/":"bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke"},"Name":"bear","Tsize":4},{"Hash":{"/":"QmWXZxVQ9yZfhQxLD35eDR8LiMRsYtHxYqTFCBbJoiJVys"},"Name":"second","Tsize":149}]},"length":133,"offset":192},{"blockLength":4,"blockOffset":362,"cid":{"/":"bafkreifw7plhl6mofk6sfvhnfh64qmkq73oeqwl6sloru6rehaoujituke"},"content":{"/":{"bytes":"Y2NjYw"}},"length":41,"offset":325},{"blockLength":94,"blockOffset":402,"cid":{"/":"QmWXZxVQ9yZfhQxLD35eDR8LiMRsYtHxYqTFCBbJoiJVys"},"content":{"Links":[{"Hash":{"/":"bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4"},"Name":"dog","Tsize":4},{"Hash":{"/":"QmdwjhxpxzcMsR3qUuj7vUL8pbA7MgR3GAxWi2GLHjsKCT"},"Name":"first","Tsize":51}]},"length":130,"offset":366},{"blockLength":4,"blockOffset":533,"cid":{"/":"bafkreiebzrnroamgos2adnbpgw5apo3z4iishhbdx77gldnbk57d4zdio4"},"content":{"/":{"bytes":"YmJiYg"}},"length":41,"offset":496},{"blockLength":47,"blockOffset":572,"cid":{"/":"QmdwjhxpxzcMsR3qUuj7vUL8pbA7MgR3GAxWi2GLHjsKCT"},"content":{"Links":[{"Hash":{"/":"bafkreidbxzk2ryxwwtqxem4l3xyyjvw35yu4tcct4cqeqxwo47zhxgxqwq"},"Name":"cat","Tsize":4}]},"length":82,"offset":537},{"blockLength":4,"blockOffset":656,"cid":{"/":"bafkreidbxzk2ryxwwtqxem4l3xyyjvw35yu4tcct4cqeqxwo47zhxgxqwq"},"content":{"/":{"bytes":"YWFhYQ"}},"length":41,"offset":619},{"blockLength":18,"blockOffset":697,"cid":{"/":"bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm"},"content":{"link":null,"name":"limbo"},"length":55,"offset":660}],"header":{"roots":[{"/":"bafyreihyrpefhacm6kkp4ql6j6udakdit7g3dmkzfriqfykhjw6cad5lrm"},{"/":"bafyreidj5idub6mapiupjwjsyyxhyhedxycv4vihfsicm2vt46o7morwlm"}],"version":1}}\n') | ||
console.log('\u001b[32m✔\u001b[39m [example] car-to-fixture ../test/go.car') | ||
}) | ||
}).catch((err) => { | ||
@@ -73,0 +82,0 @@ console.error(err.stack) |
{ | ||
"name": "@ipld/car", | ||
"version": "3.1.15", | ||
"version": "3.1.16", | ||
"description": "Content Addressable aRchive format reader and writer", | ||
@@ -5,0 +5,0 @@ "main": "./cjs/car.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
743788
183
18342
53