@helia/unixfs 1.0.1 → 1.0.3

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.
@@ -0,0 +1,9 @@
1
+ import type { CID } from 'multiformats/cid';
2
+ import type { Blockstore } from 'interface-blockstore';
3
+ import { ByteStream, DirectoryCandidate, FileCandidate, ImportCandidateStream, ImporterOptions, ImportResult } from 'ipfs-unixfs-importer';
4
+ export declare function addAll(source: ImportCandidateStream, blockstore: Blockstore, options?: Partial<ImporterOptions>): AsyncGenerator<ImportResult, void, unknown>;
5
+ export declare function addBytes(bytes: Uint8Array, blockstore: Blockstore, options?: Partial<ImporterOptions>): Promise<CID>;
6
+ export declare function addByteStream(bytes: ByteStream, blockstore: Blockstore, options?: Partial<ImporterOptions>): Promise<CID>;
7
+ export declare function addFile(file: FileCandidate, blockstore: Blockstore, options?: Partial<ImporterOptions>): Promise<CID>;
8
+ export declare function addDirectory(dir: Partial<DirectoryCandidate>, blockstore: Blockstore, options?: Partial<ImporterOptions>): Promise<CID>;
9
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAiC,qBAAqB,EAA6B,eAAe,EAAc,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEhN,wBAAwB,MAAM,CAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAE1K;AAED,wBAAsB,QAAQ,CAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAI/H;AAED,wBAAsB,aAAa,CAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAIpI;AAED,wBAAsB,OAAO,CAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAIhI;AAED,wBAAsB,YAAY,CAAE,GAAG,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAOlJ"}
@@ -0,0 +1,24 @@
1
+ import { importBytes, importByteStream, importDirectory, importer, importFile } from 'ipfs-unixfs-importer';
2
+ export async function* addAll(source, blockstore, options = {}) {
3
+ yield* importer(source, blockstore, options);
4
+ }
5
+ export async function addBytes(bytes, blockstore, options = {}) {
6
+ const { cid } = await importBytes(bytes, blockstore, options);
7
+ return cid;
8
+ }
9
+ export async function addByteStream(bytes, blockstore, options = {}) {
10
+ const { cid } = await importByteStream(bytes, blockstore, options);
11
+ return cid;
12
+ }
13
+ export async function addFile(file, blockstore, options = {}) {
14
+ const { cid } = await importFile(file, blockstore, options);
15
+ return cid;
16
+ }
17
+ export async function addDirectory(dir, blockstore, options = {}) {
18
+ const { cid } = await importDirectory({
19
+ ...dir,
20
+ path: dir.path ?? '-'
21
+ }, blockstore, options);
22
+ return cid;
23
+ }
24
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/add.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiD,WAAW,EAAE,gBAAgB,EAAyB,eAAe,EAAE,QAAQ,EAAmB,UAAU,EAAgB,MAAM,sBAAsB,CAAA;AAEhN,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,MAAM,CAAE,MAA6B,EAAE,UAAsB,EAAE,UAAoC,EAAE;IAC3H,KAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAE,KAAiB,EAAE,UAAsB,EAAE,UAAoC,EAAE;IAC/G,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAE7D,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAE,KAAiB,EAAE,UAAsB,EAAE,UAAoC,EAAE;IACpH,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAElE,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAE,IAAmB,EAAE,UAAsB,EAAE,UAAoC,EAAE;IAChH,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAE3D,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,GAAgC,EAAE,UAAsB,EAAE,UAAoC,EAAE;IAClI,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,eAAe,CAAC;QACpC,GAAG,GAAG;QACN,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG;KACtB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAEvB,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hamt-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EAEP,MAAM,eAAe,CAAA;AAKtB,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAMpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKxD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,mBAAmB,WAAkB,MAAM,cAAc,UAAU,UAAU,OAAO,GAAG,CAAC,WAAW,0BAA0B,KAAG,QAAQ,gBAAgB,CA6BpK,CAAA;AAED,eAAO,MAAM,iBAAiB,eAAsB,UAAU,SAAS,MAAM,EAAE,cAAc,OAAO,GAAG,CAAC,gBAAgB,OAAO,GAAG,CAAC,oBAAoB,MAAM,WAAW,YAAY,KAAG,QAAQ,OAAO,GAAG,CAAC,CAWzM,CAAA;AAED,eAAO,MAAM,wBAAwB,UAAiB,MAAM,EAAE,KAAG,QAAQ,OAAO,GAAG,CAAC,CA6BnF,CAAA;AAED,eAAO,MAAM,oBAAoB,eAAsB,UAAU,SAAS,MAAM,EAAE,UAAU,OAAO,GAAG,CAAC,cAAc,OAAO,GAAG,CAAC,WAAW,YAAY,KAAG,QAAQ,IAAI,CA0BrK,CAAA;AAED,eAAO,MAAM,QAAQ,aAAc,MAAM,KAAG,MAM3C,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,YAAY,SAAgB,SAAS,QAAQ,MAAM,cAAc,UAAU,WAAW,YAAY,KAAG,QAAQ,eAAe,EAAE,CAwG1I,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,eAAsB,UAAU,YAAY,MAAM;IAAE,MAAM,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,WAAW,kBAAkB,KAAG,QAAQ,YAAY,CA2BtK,CAAA"}
1
+ {"version":3,"file":"hamt-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EAEP,MAAM,eAAe,CAAA;AAKtB,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAMpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKxD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,mBAAmB,WAAkB,MAAM,cAAc,UAAU,UAAU,OAAO,GAAG,CAAC,WAAW,0BAA0B,KAAG,QAAQ,gBAAgB,CA6BpK,CAAA;AAED,eAAO,MAAM,iBAAiB,eAAsB,UAAU,SAAS,MAAM,EAAE,cAAc,OAAO,GAAG,CAAC,gBAAgB,OAAO,GAAG,CAAC,oBAAoB,MAAM,WAAW,YAAY,KAAG,QAAQ,OAAO,GAAG,CAAC,CAWzM,CAAA;AAED,eAAO,MAAM,wBAAwB,UAAiB,MAAM,EAAE,KAAG,QAAQ,OAAO,GAAG,CAAC,CA8BnF,CAAA;AAED,eAAO,MAAM,oBAAoB,eAAsB,UAAU,SAAS,MAAM,EAAE,UAAU,OAAO,GAAG,CAAC,cAAc,OAAO,GAAG,CAAC,WAAW,YAAY,KAAG,QAAQ,IAAI,CA2BrK,CAAA;AAED,eAAO,MAAM,QAAQ,aAAc,MAAM,KAAG,MAM3C,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,YAAY,SAAgB,SAAS,QAAQ,MAAM,cAAc,UAAU,WAAW,YAAY,KAAG,QAAQ,eAAe,EAAE,CAsG1I,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,eAAsB,UAAU,YAAY,MAAM;IAAE,MAAM,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,WAAW,kBAAkB,KAAG,QAAQ,YAAY,CA2BtK,CAAA"}
@@ -58,6 +58,7 @@ export const recreateInitialHamtLevel = async (links) => {
58
58
  bits: bucket._options.bits
59
59
  }, bucket, pos);
60
60
  bucket._putObjectAt(pos, subBucket);
61
+ return;
61
62
  }
62
63
  await bucket.put(linkName.substring(2), {
63
64
  size: link.Tsize,
@@ -80,6 +81,7 @@ export const addLinksToHamtBucket = async (blockstore, links, bucket, rootBucket
80
81
  }, bucket, pos);
81
82
  bucket._putObjectAt(pos, subBucket);
82
83
  await addLinksToHamtBucket(blockstore, node.Links, subBucket, rootBucket, options);
84
+ return;
83
85
  }
84
86
  await rootBucket.put(linkName.substring(2), {
85
87
  size: link.Tsize,
@@ -148,7 +150,7 @@ export const generatePath = async (root, name, blockstore, options) => {
148
150
  // found subshard
149
151
  log(`Found subshard ${segment.prefix}`);
150
152
  const block = await blockstore.get(link.Hash);
151
- const node = dagPB.decode(block);
153
+ const node = segment.node = dagPB.decode(block);
152
154
  // subshard hasn't been loaded, descend to the next level of the HAMT
153
155
  if (path[i + 1] == null) {
154
156
  log(`Loaded new subshard ${segment.prefix}`);
@@ -170,7 +172,6 @@ export const generatePath = async (root, name, blockstore, options) => {
170
172
  }
171
173
  // add intermediate links to bucket
172
174
  await addLinksToHamtBucket(blockstore, node.Links, segment.bucket, rootBucket, options);
173
- segment.node = node;
174
175
  }
175
176
  await rootBucket.put(name, true);
176
177
  path.reverse();
@@ -1 +1 @@
1
- {"version":3,"file":"hamt-utils.js","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EACL,MAAM,EACN,UAAU,EACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACf,MAAM,qBAAqB,CAAA;AAO5B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,GAAG,GAAG,MAAM,CAAC,wCAAwC,CAAC,CAAA;AAY5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAc,EAAE,UAAsB,EAAE,MAAmB,EAAE,OAAmC,EAA6B,EAAE;IACvK,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;KAC9E;IAED,mCAAmC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC;QACrB,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,QAAQ,EAAE,YAAY;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAA;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IACtD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAEnD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,GAAG;QACH,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;KAClF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,UAAsB,EAAE,KAAe,EAAE,UAAuB,EAAE,YAAyB,EAAE,gBAAwB,EAAE,OAAqB,EAAwB,EAAE;IAC5M,kCAAkC;IAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;QAC9B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;KAC/B,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAA;IAClC,YAAY,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAEnD,MAAM,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAE1E,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,KAAe,EAAwB,EAAE;IACtF,MAAM,MAAM,GAAG,UAAU,CAAM;QAC7B,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,cAAc;KACrB,CAAC,CAAA;IAEF,mFAAmF;IACnF,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;QACrB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAClC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC;gBAC3B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAC1B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;aAC3B,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YAEf,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;SACpC;QAED,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACtC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,IAAI;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,UAAsB,EAAE,KAAe,EAAE,MAAmB,EAAE,UAAuB,EAAE,OAAqB,EAAiB,EAAE;IACxK,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;QACrB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAClC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAEhC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC;gBAC3B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;gBAC9B,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI;aAC/B,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YACf,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAEnC,MAAM,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;SACnF;QAED,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC1C,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,IAAI;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAU,EAAE;IACnD,OAAO,QAAQ;SACZ,QAAQ,CAAC,EAAE,CAAC;SACZ,WAAW,EAAE;SACb,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;SAChB,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACpB,CAAC,CAAA;AAUD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAe,EAAE,IAAY,EAAE,UAAsB,EAAE,OAAqB,EAA8B,EAAE;IAC7I,+DAA+D;IAC/D,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAsB,CAAC;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;SAC/B,CAAC,CAAA;IACF,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAA;IAEnC,OAAO,aAAa,KAAK,UAAU,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC;SAC7C,CAAC,CAAA;QAEF,IAAI,aAAa,CAAC,OAAO,IAAI,IAAI,EAAE;YACjC,MAAK;SACN;QAED,aAAa,GAAG,aAAa,CAAC,OAAO,CAAA;KACtC;IAED,kCAAkC;IAClC,IAAI,CAAC,IAAI,CAAC;QACR,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO,EAAE,CAAA;IAEd,oCAAoC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnC,IAAI,eAAe,CAAC,IAAI,IAAI,IAAI,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;SAChD;QAED,uBAAuB;QACvB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK;aACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC;aACpE,GAAG,EAAE,CAAA;QAER,yBAAyB;QACzB,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,mEAAmE;YACnE,GAAG,CAAC,QAAQ,OAAO,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,CAAA;YAClD,cAAc;YACd,SAAQ;SACT;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAEhC,cAAc;QACd,IAAI,QAAQ,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE;YAC3C,GAAG,CAAC,QAAQ,OAAO,CAAC,MAAM,GAAG,IAAI,mBAAmB,CAAC,CAAA;YACrD,iEAAiE;YACjE,cAAc;YACd,SAAQ;SACT;QAED,iBAAiB;QACjB,GAAG,CAAC,kBAAkB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACvC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEhC,qEAAqE;QACrE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE;YACvB,GAAG,CAAC,uBAAuB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAE5C,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;gBACpD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;aACrC;YAED,MAAM,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;YAClH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAE5D,MAAM;YACN,IAAI,CAAC,IAAI,CAAC;gBACR,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC9B,IAAI;aACL,CAAC,CAAA;YAEF,SAAQ;SACT;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;SACrC;QAED,mCAAmC;QACnC,MAAM,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAEvF,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;KACpB;IAED,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAA;IAEd,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,UAAsB,EAAE,QAAyD,EAAE,OAA2B,EAAyB,EAAE;IACzK,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC;QAC3B,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,EAAE,OAAO,CAAC,CAAA;IAEX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACxC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YACtB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;SACrB,CAAC,CAAA;KACH;IAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;IAE/C,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"hamt-utils.js","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,161 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * `@helia/unixfs` is an implementation of a {@link https://github.com/ipfs/specs/blob/main/UNIXFS.md UnixFS filesystem} compatible with {@link https://github.com/ipfs/helia Helia}.
5
+ *
6
+ * See the {@link UnixFS UnixFS interface} for all available operations.
7
+ *
8
+ * @example
9
+ *
10
+ * ```typescript
11
+ * import { createHelia } from 'helia'
12
+ * import { unixfs } from '@helia/unixfs'
13
+ *
14
+ * const helia = createHelia({
15
+ * // ... helia config
16
+ * })
17
+ * const fs = unixfs(helia)
18
+ *
19
+ * // create an empty dir and a file, then add the file to the dir
20
+ * const emptyDirCid = await fs.addDirectory()
21
+ * const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
22
+ * const updateDirCid = await fs.cp(fileCid, emptyDirCid, 'foo.txt')
23
+ *
24
+ * // or doing the same thing as a stream
25
+ * for await (const entry of fs.addAll([{
26
+ * path: 'foo.txt',
27
+ * content: Uint8Array.from([0, 1, 2, 3])
28
+ * }])) {
29
+ * console.info(entry)
30
+ * }
31
+ * ```
32
+ */
1
33
  import type { CID, Version } from 'multiformats/cid';
2
34
  import type { Blockstore } from 'interface-blockstore';
3
35
  import type { AbortOptions } from '@libp2p/interfaces';
4
36
  import type { Mtime } from 'ipfs-unixfs';
5
37
  import type { UnixFSEntry } from 'ipfs-unixfs-exporter';
38
+ import type { ByteStream, DirectoryCandidate, FileCandidate, ImportCandidateStream, ImporterOptions, ImportResult } from 'ipfs-unixfs-importer';
6
39
  export interface UnixFSComponents {
7
40
  blockstore: Blockstore;
8
41
  }
42
+ /**
43
+ * Options to pass to the cat command
44
+ */
9
45
  export interface CatOptions extends AbortOptions {
46
+ /**
47
+ * Start reading the file at this offset
48
+ */
10
49
  offset?: number;
50
+ /**
51
+ * Stop reading the file after this many bytes
52
+ */
11
53
  length?: number;
54
+ /**
55
+ * An optional path to allow reading files inside directories
56
+ */
12
57
  path?: string;
13
58
  }
59
+ /**
60
+ * Options to pass to the chmod command
61
+ */
14
62
  export interface ChmodOptions extends AbortOptions {
63
+ /**
64
+ * If the target of the operation is a directory and this is true,
65
+ * apply the new mode to all directory contents
66
+ */
15
67
  recursive: boolean;
68
+ /**
69
+ * Optional path to set the mode on directory contents
70
+ */
16
71
  path?: string;
72
+ /**
73
+ * DAGs with a root block larger than this value will be sharded. Blocks
74
+ * smaller than this value will be regular UnixFS directories.
75
+ */
17
76
  shardSplitThresholdBytes: number;
18
77
  }
78
+ /**
79
+ * Options to pass to the cp command
80
+ */
19
81
  export interface CpOptions extends AbortOptions {
82
+ /**
83
+ * If true, allow overwriting existing directory entries (default: false)
84
+ */
20
85
  force: boolean;
86
+ /**
87
+ * DAGs with a root block larger than this value will be sharded. Blocks
88
+ * smaller than this value will be regular UnixFS directories.
89
+ */
21
90
  shardSplitThresholdBytes: number;
22
91
  }
92
+ /**
93
+ * Options to pass to the ls command
94
+ */
23
95
  export interface LsOptions extends AbortOptions {
96
+ /**
97
+ * Optional path to list subdirectory contents if the target CID resolves to
98
+ * a directory
99
+ */
24
100
  path?: string;
101
+ /**
102
+ * Start reading the directory entries at this offset
103
+ */
25
104
  offset?: number;
105
+ /**
106
+ * Stop reading the directory contents after this many directory entries
107
+ */
26
108
  length?: number;
27
109
  }
110
+ /**
111
+ * Options to pass to the mkdir command
112
+ */
28
113
  export interface MkdirOptions extends AbortOptions {
114
+ /**
115
+ * The CID version to create the new directory with - defaults to the same
116
+ * version as the containing directory
117
+ */
29
118
  cidVersion: Version;
119
+ /**
120
+ * If true, allow overwriting existing directory entries (default: false)
121
+ */
30
122
  force: boolean;
123
+ /**
124
+ * An optional mode to set on the new directory
125
+ */
31
126
  mode?: number;
127
+ /**
128
+ * An optional mtime to set on the new directory
129
+ */
32
130
  mtime?: Mtime;
131
+ /**
132
+ * DAGs with a root block larger than this value will be sharded. Blocks
133
+ * smaller than this value will be regular UnixFS directories.
134
+ */
33
135
  shardSplitThresholdBytes: number;
34
136
  }
137
+ /**
138
+ * Options to pass to the rm command
139
+ */
35
140
  export interface RmOptions extends AbortOptions {
141
+ /**
142
+ * DAGs with a root block larger than this value will be sharded. Blocks
143
+ * smaller than this value will be regular UnixFS directories.
144
+ */
36
145
  shardSplitThresholdBytes: number;
37
146
  }
147
+ /**
148
+ * Options to pass to the stat command
149
+ */
38
150
  export interface StatOptions extends AbortOptions {
151
+ /**
152
+ * An optional path to allow statting paths inside directories
153
+ */
39
154
  path?: string;
40
155
  }
156
+ /**
157
+ * Statistics relating to a UnixFS DAG
158
+ */
41
159
  export interface UnixFSStats {
42
160
  /**
43
161
  * The file or directory CID
@@ -82,22 +200,234 @@ export interface UnixFSStats {
82
200
  */
83
201
  unixfs?: import('ipfs-unixfs').UnixFS;
84
202
  }
203
+ /**
204
+ * Options to pass to the touch command
205
+ */
85
206
  export interface TouchOptions extends AbortOptions {
207
+ /**
208
+ * Optional mtime to set on the DAG root, defaults to the current time
209
+ */
86
210
  mtime?: Mtime;
211
+ /**
212
+ * Optional path to set mtime on directory contents
213
+ */
87
214
  path?: string;
215
+ /**
216
+ * If the DAG is a directory and this is true, update the mtime on all contents
217
+ */
88
218
  recursive: boolean;
219
+ /**
220
+ * DAGs with a root block larger than this value will be sharded. Blocks
221
+ * smaller than this value will be regular UnixFS directories.
222
+ */
89
223
  shardSplitThresholdBytes: number;
90
224
  }
225
+ /**
226
+ * The UnixFS interface provides familiar filesystem operations to make working with
227
+ * UnixFS DAGs simple and intuitive.
228
+ */
91
229
  export interface UnixFS {
230
+ /**
231
+ * Add all files and directories from the passed stream. This method wraps the
232
+ * `importer` export from the `ipfs-unixfs-importer` module - please see the docs
233
+ * for input/output types.
234
+ *
235
+ * @example
236
+ *
237
+ * ```typescript
238
+ * const source = [{
239
+ * path: './foo.txt',
240
+ * content: Uint8Array.from([0, 1, 2, 3])
241
+ * }, {
242
+ * path: './bar.txt',
243
+ * content: Uint8Array.from([4, 5, 6, 7])
244
+ * }]
245
+ *
246
+ * for await (const entry of fs.import(source)) {
247
+ * console.info(entry)
248
+ * }
249
+ * ```
250
+ */
251
+ addAll: (source: ImportCandidateStream, options?: Partial<ImporterOptions>) => AsyncIterable<ImportResult>;
252
+ /**
253
+ * Add a single `Uint8Array` to your Helia node as a file.
254
+ *
255
+ * @example
256
+ *
257
+ * ```typescript
258
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
259
+ *
260
+ * console.info(cid)
261
+ * ```
262
+ */
263
+ addBytes: (bytes: Uint8Array, options?: Partial<ImporterOptions>) => Promise<CID>;
264
+ /**
265
+ * Add a stream of `Uint8Array` to your Helia node as a file.
266
+ *
267
+ * @example
268
+ *
269
+ * ```typescript
270
+ * import fs from 'node:fs'
271
+ *
272
+ * const stream = fs.createReadStream('./foo.txt')
273
+ * const cid = await fs.addByteStream(stream)
274
+ *
275
+ * console.info(cid)
276
+ * ```
277
+ */
278
+ addByteStream: (bytes: ByteStream, options?: Partial<ImporterOptions>) => Promise<CID>;
279
+ /**
280
+ * Add a file to your Helia node with optional metadata.
281
+ *
282
+ * @example
283
+ *
284
+ * ```typescript
285
+ * const cid = await fs.addFile({
286
+ * path: './foo.txt'
287
+ * content: Uint8Array.from([0, 1, 2, 3]),
288
+ * mode: 0x755,
289
+ * mtime: {
290
+ * secs: 10n,
291
+ * nsecs: 0
292
+ * }
293
+ * })
294
+ *
295
+ * console.info(cid)
296
+ * ```
297
+ */
298
+ addFile: (file: FileCandidate, options?: Partial<ImporterOptions>) => Promise<CID>;
299
+ /**
300
+ * Add a directory to your Helia node.
301
+ *
302
+ * @example
303
+ *
304
+ * ```typescript
305
+ * const cid = await fs.addDirectory()
306
+ *
307
+ * console.info(cid)
308
+ * ```
309
+ */
310
+ addDirectory: (dir?: Partial<DirectoryCandidate>, options?: Partial<ImporterOptions>) => Promise<CID>;
311
+ /**
312
+ * Retrieve the contents of a file from your Helia node.
313
+ *
314
+ * @example
315
+ *
316
+ * ```typescript
317
+ * for await (const buf of fs.cat(cid)) {
318
+ * console.info(buf)
319
+ * }
320
+ * ```
321
+ */
92
322
  cat: (cid: CID, options?: Partial<CatOptions>) => AsyncIterable<Uint8Array>;
93
- chmod: (source: CID, mode: number, options?: Partial<ChmodOptions>) => Promise<CID>;
323
+ /**
324
+ * Change the permissions on a file or directory in a DAG
325
+ *
326
+ * @example
327
+ *
328
+ * ```typescript
329
+ * const beforeCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
330
+ * const beforeStats = await fs.stat(beforeCid)
331
+ *
332
+ * const afterCid = await fs.chmod(cid, 0x755)
333
+ * const afterStats = await fs.stat(afterCid)
334
+ *
335
+ * console.info(beforeCid, beforeStats)
336
+ * console.info(afterCid, afterStats)
337
+ * ```
338
+ */
339
+ chmod: (cid: CID, mode: number, options?: Partial<ChmodOptions>) => Promise<CID>;
340
+ /**
341
+ * Add a file or directory to a target directory.
342
+ *
343
+ * @example
344
+ *
345
+ * ```typescript
346
+ * const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
347
+ * const directoryCid = await fs.addDirectory()
348
+ *
349
+ * const updatedCid = await fs.cp(fileCid, directoryCid, 'foo.txt')
350
+ *
351
+ * console.info(updatedCid)
352
+ * ```
353
+ */
94
354
  cp: (source: CID, target: CID, name: string, options?: Partial<CpOptions>) => Promise<CID>;
355
+ /**
356
+ * List directory contents.
357
+ *
358
+ * @example
359
+ *
360
+ * ```typescript
361
+ * for await (const entry of fs.ls(directoryCid)) {
362
+ * console.info(etnry)
363
+ * }
364
+ * ```
365
+ */
95
366
  ls: (cid: CID, options?: Partial<LsOptions>) => AsyncIterable<UnixFSEntry>;
367
+ /**
368
+ * Make a new directory under an existing directory.
369
+ *
370
+ * @example
371
+ *
372
+ * ```typescript
373
+ * const directoryCid = await fs.addDirectory()
374
+ *
375
+ * const updatedCid = await fs.mkdir(directoryCid, 'new-dir')
376
+ *
377
+ * console.info(updatedCid)
378
+ * ```
379
+ */
96
380
  mkdir: (cid: CID, dirname: string, options?: Partial<MkdirOptions>) => Promise<CID>;
381
+ /**
382
+ * Remove a file or directory from an existing directory.
383
+ *
384
+ * @example
385
+ *
386
+ * ```typescript
387
+ * const directoryCid = await fs.addDirectory()
388
+ * const updatedCid = await fs.mkdir(directoryCid, 'new-dir')
389
+ *
390
+ * const finalCid = await fs.rm(updatedCid, 'new-dir')
391
+ *
392
+ * console.info(finalCid)
393
+ * ```
394
+ */
97
395
  rm: (cid: CID, path: string, options?: Partial<RmOptions>) => Promise<CID>;
396
+ /**
397
+ * Return statistics about a UnixFS DAG.
398
+ *
399
+ * @example
400
+ *
401
+ * ```typescript
402
+ * const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
403
+ *
404
+ * const stats = await fs.stat(fileCid)
405
+ *
406
+ * console.info(stats)
407
+ * ```
408
+ */
98
409
  stat: (cid: CID, options?: Partial<StatOptions>) => Promise<UnixFSStats>;
410
+ /**
411
+ * Update the mtime of a UnixFS DAG
412
+ *
413
+ * @example
414
+ *
415
+ * ```typescript
416
+ * const beforeCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
417
+ * const beforeStats = await fs.stat(beforeCid)
418
+ *
419
+ * const afterCid = await fs.touch(beforeCid)
420
+ * const afterStats = await fs.stat(afterCid)
421
+ *
422
+ * console.info(beforeCid, beforeStats)
423
+ * console.info(afterCid, afterStats)
424
+ * ```
425
+ */
99
426
  touch: (cid: CID, options?: Partial<TouchOptions>) => Promise<CID>;
100
427
  }
428
+ /**
429
+ * Create a {@link UnixFS} instance for use with {@link https://github.com/ipfs/helia Helia}
430
+ */
101
431
  export declare function unixfs(helia: {
102
432
  blockstore: Blockstore;
103
433
  }): UnixFS;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,3 +1,36 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * `@helia/unixfs` is an implementation of a {@link https://github.com/ipfs/specs/blob/main/UNIXFS.md UnixFS filesystem} compatible with {@link https://github.com/ipfs/helia Helia}.
5
+ *
6
+ * See the {@link UnixFS UnixFS interface} for all available operations.
7
+ *
8
+ * @example
9
+ *
10
+ * ```typescript
11
+ * import { createHelia } from 'helia'
12
+ * import { unixfs } from '@helia/unixfs'
13
+ *
14
+ * const helia = createHelia({
15
+ * // ... helia config
16
+ * })
17
+ * const fs = unixfs(helia)
18
+ *
19
+ * // create an empty dir and a file, then add the file to the dir
20
+ * const emptyDirCid = await fs.addDirectory()
21
+ * const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
22
+ * const updateDirCid = await fs.cp(fileCid, emptyDirCid, 'foo.txt')
23
+ *
24
+ * // or doing the same thing as a stream
25
+ * for await (const entry of fs.addAll([{
26
+ * path: 'foo.txt',
27
+ * content: Uint8Array.from([0, 1, 2, 3])
28
+ * }])) {
29
+ * console.info(entry)
30
+ * }
31
+ * ```
32
+ */
33
+ import { addAll, addBytes, addByteStream, addDirectory, addFile } from './commands/add.js';
1
34
  import { cat } from './commands/cat.js';
2
35
  import { mkdir } from './commands/mkdir.js';
3
36
  import { cp } from './commands/cp.js';
@@ -10,11 +43,26 @@ class DefaultUnixFS {
10
43
  constructor(components) {
11
44
  this.components = components;
12
45
  }
46
+ async *addAll(source, options = {}) {
47
+ yield* addAll(source, this.components.blockstore, options);
48
+ }
49
+ async addBytes(bytes, options = {}) {
50
+ return await addBytes(bytes, this.components.blockstore, options);
51
+ }
52
+ async addByteStream(bytes, options = {}) {
53
+ return await addByteStream(bytes, this.components.blockstore, options);
54
+ }
55
+ async addFile(file, options = {}) {
56
+ return await addFile(file, this.components.blockstore, options);
57
+ }
58
+ async addDirectory(dir = {}, options = {}) {
59
+ return await addDirectory(dir, this.components.blockstore, options);
60
+ }
13
61
  async *cat(cid, options = {}) {
14
62
  yield* cat(cid, this.components.blockstore, options);
15
63
  }
16
- async chmod(source, mode, options = {}) {
17
- return await chmod(source, mode, this.components.blockstore, options);
64
+ async chmod(cid, mode, options = {}) {
65
+ return await chmod(cid, mode, this.components.blockstore, options);
18
66
  }
19
67
  async cp(source, target, name, options = {}) {
20
68
  return await cp(source, target, name, this.components.blockstore, options);
@@ -35,6 +83,9 @@ class DefaultUnixFS {
35
83
  return await touch(cid, this.components.blockstore, options);
36
84
  }
37
85
  }
86
+ /**
87
+ * Create a {@link UnixFS} instance for use with {@link https://github.com/ipfs/helia Helia}
88
+ */
38
89
  export function unixfs(helia) {
39
90
  return new DefaultUnixFS(helia);
40
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAqHrC,MAAM,aAAa;IAGjB,YAAa,UAA4B;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,CAAE,GAAG,CAAE,GAAQ,EAAE,UAA+B,EAAE;QACtD,KAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,MAAW,EAAE,IAAY,EAAE,UAAiC,EAAE;QACzE,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,EAAE,CAAE,MAAW,EAAE,MAAW,EAAE,IAAY,EAAE,UAA8B,EAAE;QAChF,OAAO,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,CAAE,EAAE,CAAE,GAAQ,EAAE,UAA8B,EAAE;QACpD,KAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,GAAQ,EAAE,OAAe,EAAE,UAAiC,EAAE;QACzE,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,EAAE,CAAE,GAAQ,EAAE,IAAY,EAAE,UAA8B,EAAE;QAChE,OAAO,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,GAAQ,EAAE,UAAgC,EAAE;QACtD,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,GAAQ,EAAE,UAAiC,EAAE;QACxD,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAE,KAAiC;IACvD,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAsbrC,MAAM,aAAa;IAGjB,YAAa,UAA4B;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,CAAE,MAAM,CAAE,MAA6B,EAAE,UAAoC,EAAE;QACnF,KAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,KAAiB,EAAE,UAAoC,EAAE;QACvE,OAAO,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,KAAK,CAAC,aAAa,CAAE,KAAiB,EAAE,UAAoC,EAAE;QAC5E,OAAO,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,IAAmB,EAAE,UAAoC,EAAE;QACxE,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,YAAY,CAAE,MAAmC,EAAE,EAAE,UAAoC,EAAE;QAC/F,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,CAAE,GAAG,CAAE,GAAQ,EAAE,UAA+B,EAAE;QACtD,KAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,GAAQ,EAAE,IAAY,EAAE,UAAiC,EAAE;QACtE,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,EAAE,CAAE,MAAW,EAAE,MAAW,EAAE,IAAY,EAAE,UAA8B,EAAE;QAChF,OAAO,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,CAAE,EAAE,CAAE,GAAQ,EAAE,UAA8B,EAAE;QACpD,KAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,GAAQ,EAAE,OAAe,EAAE,UAAiC,EAAE;QACzE,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,EAAE,CAAE,GAAQ,EAAE,IAAY,EAAE,UAA8B,EAAE;QAChE,OAAO,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,GAAQ,EAAE,UAAgC,EAAE;QACtD,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,GAAQ,EAAE,UAAiC,EAAE;QACxD,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAE,KAAiC;IACvD,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/unixfs",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "A Helia-compatible wrapper for UnixFS",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia-unixfs#readme",