@helia/unixfs 0.0.0 → 1.0.1

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.
Files changed (110) hide show
  1. package/README.md +10 -4
  2. package/dist/index.min.js +1 -1
  3. package/dist/src/commands/cat.d.ts +1 -1
  4. package/dist/src/commands/cat.d.ts.map +1 -1
  5. package/dist/src/commands/cat.js +1 -1
  6. package/dist/src/commands/cat.js.map +1 -1
  7. package/dist/src/commands/chmod.d.ts.map +1 -1
  8. package/dist/src/commands/chmod.js +14 -12
  9. package/dist/src/commands/chmod.js.map +1 -1
  10. package/dist/src/commands/cp.d.ts +1 -1
  11. package/dist/src/commands/cp.d.ts.map +1 -1
  12. package/dist/src/commands/cp.js +5 -2
  13. package/dist/src/commands/cp.js.map +1 -1
  14. package/dist/src/commands/ls.d.ts +2 -1
  15. package/dist/src/commands/ls.d.ts.map +1 -1
  16. package/dist/src/commands/ls.js +1 -1
  17. package/dist/src/commands/ls.js.map +1 -1
  18. package/dist/src/commands/mkdir.d.ts.map +1 -1
  19. package/dist/src/commands/mkdir.js +4 -2
  20. package/dist/src/commands/mkdir.js.map +1 -1
  21. package/dist/src/commands/rm.d.ts +1 -1
  22. package/dist/src/commands/rm.d.ts.map +1 -1
  23. package/dist/src/commands/rm.js +9 -3
  24. package/dist/src/commands/rm.js.map +1 -1
  25. package/dist/src/commands/stat.d.ts +1 -1
  26. package/dist/src/commands/stat.d.ts.map +1 -1
  27. package/dist/src/commands/stat.js +19 -15
  28. package/dist/src/commands/stat.js.map +1 -1
  29. package/dist/src/commands/touch.d.ts.map +1 -1
  30. package/dist/src/commands/touch.js +15 -13
  31. package/dist/src/commands/touch.js.map +1 -1
  32. package/dist/src/commands/utils/add-link.d.ts +4 -2
  33. package/dist/src/commands/utils/add-link.d.ts.map +1 -1
  34. package/dist/src/commands/utils/add-link.js +24 -24
  35. package/dist/src/commands/utils/add-link.js.map +1 -1
  36. package/dist/src/commands/utils/cid-to-directory.d.ts +3 -3
  37. package/dist/src/commands/utils/cid-to-directory.d.ts.map +1 -1
  38. package/dist/src/commands/utils/cid-to-directory.js +1 -1
  39. package/dist/src/commands/utils/cid-to-directory.js.map +1 -1
  40. package/dist/src/commands/utils/cid-to-pblink.d.ts +3 -3
  41. package/dist/src/commands/utils/cid-to-pblink.d.ts.map +1 -1
  42. package/dist/src/commands/utils/cid-to-pblink.js.map +1 -1
  43. package/dist/src/commands/utils/constants.d.ts +2 -0
  44. package/dist/src/commands/utils/constants.d.ts.map +1 -0
  45. package/dist/src/commands/utils/constants.js +2 -0
  46. package/dist/src/commands/utils/constants.js.map +1 -0
  47. package/dist/src/commands/utils/dir-sharded.d.ts +47 -41
  48. package/dist/src/commands/utils/dir-sharded.d.ts.map +1 -1
  49. package/dist/src/commands/utils/dir-sharded.js +99 -15
  50. package/dist/src/commands/utils/dir-sharded.js.map +1 -1
  51. package/dist/src/commands/utils/errors.d.ts +22 -6
  52. package/dist/src/commands/utils/errors.d.ts.map +1 -1
  53. package/dist/src/commands/utils/errors.js +34 -8
  54. package/dist/src/commands/utils/errors.js.map +1 -1
  55. package/dist/src/commands/utils/hamt-constants.d.ts +1 -1
  56. package/dist/src/commands/utils/hamt-constants.d.ts.map +1 -1
  57. package/dist/src/commands/utils/hamt-constants.js +1 -1
  58. package/dist/src/commands/utils/hamt-constants.js.map +1 -1
  59. package/dist/src/commands/utils/hamt-utils.d.ts +15 -12
  60. package/dist/src/commands/utils/hamt-utils.d.ts.map +1 -1
  61. package/dist/src/commands/utils/hamt-utils.js +40 -39
  62. package/dist/src/commands/utils/hamt-utils.js.map +1 -1
  63. package/dist/src/commands/utils/is-over-shard-threshold.d.ts +10 -0
  64. package/dist/src/commands/utils/is-over-shard-threshold.d.ts.map +1 -0
  65. package/dist/src/commands/utils/is-over-shard-threshold.js +62 -0
  66. package/dist/src/commands/utils/is-over-shard-threshold.js.map +1 -0
  67. package/dist/src/commands/utils/persist.d.ts +7 -6
  68. package/dist/src/commands/utils/persist.d.ts.map +1 -1
  69. package/dist/src/commands/utils/persist.js +6 -3
  70. package/dist/src/commands/utils/persist.js.map +1 -1
  71. package/dist/src/commands/utils/remove-link.d.ts +6 -2
  72. package/dist/src/commands/utils/remove-link.d.ts.map +1 -1
  73. package/dist/src/commands/utils/remove-link.js +143 -55
  74. package/dist/src/commands/utils/remove-link.js.map +1 -1
  75. package/dist/src/commands/utils/resolve.d.ts +6 -3
  76. package/dist/src/commands/utils/resolve.d.ts.map +1 -1
  77. package/dist/src/commands/utils/resolve.js +4 -4
  78. package/dist/src/commands/utils/resolve.js.map +1 -1
  79. package/dist/src/index.d.ts +14 -7
  80. package/dist/src/index.d.ts.map +1 -1
  81. package/dist/src/index.js +0 -7
  82. package/dist/src/index.js.map +1 -1
  83. package/dist/typedoc-urls.json +14 -0
  84. package/package.json +8 -7
  85. package/src/commands/cat.ts +3 -2
  86. package/src/commands/chmod.ts +13 -10
  87. package/src/commands/cp.ts +7 -4
  88. package/src/commands/ls.ts +4 -3
  89. package/src/commands/mkdir.ts +5 -3
  90. package/src/commands/rm.ts +9 -5
  91. package/src/commands/stat.ts +22 -17
  92. package/src/commands/touch.ts +15 -12
  93. package/src/commands/utils/add-link.ts +32 -31
  94. package/src/commands/utils/cid-to-directory.ts +4 -4
  95. package/src/commands/utils/cid-to-pblink.ts +3 -3
  96. package/src/commands/utils/constants.ts +2 -0
  97. package/src/commands/utils/dir-sharded.ts +162 -63
  98. package/src/commands/utils/errors.ts +42 -8
  99. package/src/commands/utils/hamt-constants.ts +1 -1
  100. package/src/commands/utils/hamt-utils.ts +59 -50
  101. package/src/commands/utils/is-over-shard-threshold.ts +78 -0
  102. package/src/commands/utils/persist.ts +13 -8
  103. package/src/commands/utils/remove-link.ts +178 -77
  104. package/src/commands/utils/resolve.ts +12 -7
  105. package/src/index.ts +15 -17
  106. package/dist/src/commands/add.d.ts +0 -6
  107. package/dist/src/commands/add.d.ts.map +0 -1
  108. package/dist/src/commands/add.js +0 -38
  109. package/dist/src/commands/add.js.map +0 -1
  110. package/src/commands/add.ts +0 -46
@@ -6,20 +6,10 @@ import { DirSharded } from './dir-sharded.js';
6
6
  import { updateHamtDirectory, recreateHamtLevel, recreateInitialHamtLevel, createShard, toPrefix, addLinksToHamtBucket } from './hamt-utils.js';
7
7
  import last from 'it-last';
8
8
  import { sha256 } from 'multiformats/hashes/sha2';
9
- import { AlreadyExistsError, InvalidPBNodeError } from './errors.js';
10
- import { InvalidParametersError } from '@helia/interface/errors';
9
+ import { AlreadyExistsError, InvalidParametersError, InvalidPBNodeError } from './errors.js';
10
+ import { isOverShardThreshold } from './is-over-shard-threshold.js';
11
11
  const log = logger('helia:unixfs:components:utils:add-link');
12
12
  export async function addLink(parent, child, blockstore, options) {
13
- if (parent.node.Data == null) {
14
- throw new InvalidParametersError('Invalid parent passed to addLink');
15
- }
16
- // FIXME: this should work on block size not number of links
17
- if (parent.node.Links.length >= 1000) {
18
- log('converting directory to sharded directory');
19
- const result = await convertToShardedDirectory(parent, blockstore);
20
- parent.cid = result.cid;
21
- parent.node = dagPB.decode(await blockstore.get(result.cid));
22
- }
23
13
  if (parent.node.Data == null) {
24
14
  throw new InvalidParametersError('Invalid parent passed to addLink');
25
15
  }
@@ -29,7 +19,14 @@ export async function addLink(parent, child, blockstore, options) {
29
19
  return await addToShardedDirectory(parent, child, blockstore, options);
30
20
  }
31
21
  log(`adding ${child.Name} (${child.Hash}) to regular directory`);
32
- return await addToDirectory(parent, child, blockstore, options);
22
+ const result = await addToDirectory(parent, child, blockstore, options);
23
+ if (await isOverShardThreshold(result.node, blockstore, options.shardSplitThresholdBytes)) {
24
+ log('converting directory to sharded directory');
25
+ const converted = await convertToShardedDirectory(result, blockstore);
26
+ result.cid = converted.cid;
27
+ result.node = dagPB.decode(await blockstore.get(converted.cid));
28
+ }
29
+ return result;
33
30
  }
34
31
  const convertToShardedDirectory = async (parent, blockstore) => {
35
32
  if (parent.node.Data == null) {
@@ -38,11 +35,12 @@ const convertToShardedDirectory = async (parent, blockstore) => {
38
35
  const unixfs = UnixFS.unmarshal(parent.node.Data);
39
36
  const result = await createShard(blockstore, parent.node.Links.map(link => ({
40
37
  name: (link.Name ?? ''),
41
- size: link.Tsize ?? 0,
38
+ size: BigInt(link.Tsize ?? 0),
42
39
  cid: link.Hash
43
40
  })), {
44
41
  mode: unixfs.mode,
45
- mtime: unixfs.mtime
42
+ mtime: unixfs.mtime,
43
+ cidVersion: parent.cid.version
46
44
  });
47
45
  log(`Converted directory to sharded directory ${result.cid}`);
48
46
  return result;
@@ -67,7 +65,7 @@ const addToDirectory = async (parent, child, blockstore, options) => {
67
65
  const ms = Date.now();
68
66
  const secs = Math.floor(ms / 1000);
69
67
  node.mtime = {
70
- secs,
68
+ secs: BigInt(secs),
71
69
  nsecs: (ms - (secs * 1000)) * 1000
72
70
  };
73
71
  data = node.marshal();
@@ -100,11 +98,7 @@ const addToShardedDirectory = async (parent, child, blockstore, options) => {
100
98
  const node = dagPB.decode(block);
101
99
  // we have written out the shard, but only one sub-shard will have been written so replace it in the original shard
102
100
  const parentLinks = parent.node.Links.filter((link) => {
103
- const matches = (link.Name ?? '').substring(0, 2) === path[0].prefix;
104
- if (matches && !options.allowOverwriting) {
105
- throw new AlreadyExistsError();
106
- }
107
- return !matches;
101
+ return (link.Name ?? '').substring(0, 2) !== path[0].prefix;
108
102
  });
109
103
  const newLink = node.Links
110
104
  .find(link => (link.Name ?? '').substring(0, 2) === path[0].prefix);
@@ -112,7 +106,10 @@ const addToShardedDirectory = async (parent, child, blockstore, options) => {
112
106
  throw new Error(`No link found with prefix ${path[0].prefix}`);
113
107
  }
114
108
  parentLinks.push(newLink);
115
- return await updateHamtDirectory(parent, blockstore, parentLinks, path[0].bucket, options);
109
+ return await updateHamtDirectory({
110
+ Data: parent.node.Data,
111
+ Links: parentLinks
112
+ }, blockstore, path[0].bucket, options);
116
113
  };
117
114
  const addFileToShardedDirectory = async (parent, child, blockstore, options) => {
118
115
  if (parent.node.Data == null) {
@@ -138,7 +135,7 @@ const addFileToShardedDirectory = async (parent, child, blockstore, options) =>
138
135
  if (node.mtime != null) {
139
136
  // update mtime if previously set
140
137
  shard.mtime = {
141
- secs: Math.round(Date.now() / 1000)
138
+ secs: BigInt(Math.round(Date.now() / 1000))
142
139
  };
143
140
  }
144
141
  // load subshards until the bucket & position no longer changes
@@ -162,6 +159,9 @@ const addFileToShardedDirectory = async (parent, child, blockstore, options) =>
162
159
  break;
163
160
  }
164
161
  if (link.Name === `${segment.prefix}${child.Name}`) {
162
+ if (!options.allowOverwriting) {
163
+ throw new AlreadyExistsError();
164
+ }
165
165
  // file already existed, file will be added to the current bucket
166
166
  log(`Link ${segment.prefix}${child.Name} will be replaced`);
167
167
  index = path.length;
@@ -196,7 +196,7 @@ const addFileToShardedDirectory = async (parent, child, blockstore, options) =>
196
196
  }
197
197
  // finally add the new file into the shard
198
198
  await shard._bucket.put(child.Name, {
199
- size: child.Tsize,
199
+ size: BigInt(child.Tsize),
200
200
  cid: child.Hash
201
201
  });
202
202
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"add-link.js","sourceRoot":"","sources":["../../../../src/commands/utils/add-link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-link.js","sourceRoot":"","sources":["../../../../src/commands/utils/add-link.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { Blockstore } from 'ipfs-unixfs-exporter';
1
+ import { ExporterOptions } from 'ipfs-unixfs-exporter';
2
2
  import type { CID } from 'multiformats/cid';
3
3
  import type { PBNode } from '@ipld/dag-pb';
4
- import type { AbortOptions } from '@libp2p/interfaces';
4
+ import type { Blockstore } from 'interface-blockstore';
5
5
  export interface Directory {
6
6
  cid: CID;
7
7
  node: PBNode;
8
8
  }
9
- export declare function cidToDirectory(cid: CID, blockstore: Blockstore, options?: AbortOptions): Promise<Directory>;
9
+ export declare function cidToDirectory(cid: CID, blockstore: Blockstore, options?: ExporterOptions): Promise<Directory>;
10
10
  //# sourceMappingURL=cid-to-directory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cid-to-directory.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-directory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAsB,cAAc,CAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAWtH"}
1
+ {"version":3,"file":"cid-to-directory.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGtD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAsB,cAAc,CAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAWzH"}
@@ -1,5 +1,5 @@
1
- import { NotADirectoryError } from '@helia/interface/errors';
2
1
  import { exporter } from 'ipfs-unixfs-exporter';
2
+ import { NotADirectoryError } from './errors.js';
3
3
  export async function cidToDirectory(cid, blockstore, options = {}) {
4
4
  const entry = await exporter(cid, blockstore, options);
5
5
  if (entry.type !== 'directory') {
@@ -1 +1 @@
1
- {"version":3,"file":"cid-to-directory.js","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAc,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAU3D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,GAAQ,EAAE,UAAsB,EAAE,UAAwB,EAAE;IAChG,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAEtD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;QAC9B,MAAM,IAAI,kBAAkB,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAA;KAC7E;IAED,OAAO;QACL,GAAG;QACH,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"cid-to-directory.js","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAA;AAIhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAOhD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,GAAQ,EAAE,UAAsB,EAAE,UAA2B,EAAE;IACnG,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAEtD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;QAC9B,MAAM,IAAI,kBAAkB,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAA;KAC7E;IAED,OAAO;QACL,GAAG;QACH,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAA;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
- import { Blockstore } from 'ipfs-unixfs-exporter';
1
+ import { ExporterOptions } from 'ipfs-unixfs-exporter';
2
2
  import type { CID } from 'multiformats/cid';
3
3
  import type { PBLink } from '@ipld/dag-pb';
4
- import type { AbortOptions } from '@libp2p/interfaces';
5
- export declare function cidToPBLink(cid: CID, name: string, blockstore: Blockstore, options?: AbortOptions): Promise<Required<PBLink>>;
4
+ import type { Blockstore } from 'interface-blockstore';
5
+ export declare function cidToPBLink(cid: CID, name: string, blockstore: Blockstore, options?: ExporterOptions): Promise<Required<PBLink>>;
6
6
  //# sourceMappingURL=cid-to-pblink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cid-to-pblink.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-pblink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,wBAAsB,WAAW,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAYpI"}
1
+ {"version":3,"file":"cid-to-pblink.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-pblink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,wBAAsB,WAAW,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAYvI"}
@@ -1 +1 @@
1
- {"version":3,"file":"cid-to-pblink.js","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-pblink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,GAAQ,EAAE,IAAY,EAAE,UAAsB,EAAE,OAAsB;IACvG,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAE5D,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;QACjG,MAAM,IAAI,cAAc,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAA;KACpE;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,WAAW,CAAC,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;QAC5G,IAAI,EAAE,GAAG;KACV,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAE,IAAY;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAE9E,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,SAAS,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"cid-to-pblink.js","sourceRoot":"","sources":["../../../../src/commands/utils/cid-to-pblink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAA;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,GAAQ,EAAE,IAAY,EAAE,UAAsB,EAAE,OAAyB;IAC1G,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAE5D,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE;QACjG,MAAM,IAAI,cAAc,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAA;KACpE;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,WAAW,CAAC,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;QAC5G,IAAI,EAAE,GAAG;KACV,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAE,IAAY;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAE9E,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,SAAS,CAAA;AAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SHARD_SPLIT_THRESHOLD_BYTES = 262144;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,2BAA2B,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const SHARD_SPLIT_THRESHOLD_BYTES = 262144;
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/commands/utils/constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAA"}
@@ -1,28 +1,20 @@
1
1
  import { UnixFS } from 'ipfs-unixfs';
2
+ import { PersistOptions } from './persist.js';
2
3
  import { Bucket, BucketChild } from 'hamt-sharding';
3
- import type { CID, Version } from 'multiformats/cid';
4
- import type { PBNode } from '@ipld/dag-pb/interface';
4
+ import { CID } from 'multiformats/cid';
5
5
  import type { Mtime } from 'ipfs-unixfs';
6
- import type { BlockCodec } from 'multiformats/codecs/interface';
7
- import type { Blockstore } from 'ipfs-unixfs-importer';
8
- export interface ImportResult {
9
- cid: CID;
10
- node: PBNode;
11
- size: number;
12
- }
13
- export interface DirContents {
14
- cid?: CID;
15
- size?: number;
6
+ import type { Blockstore } from 'interface-blockstore';
7
+ interface InProgressImportResult extends ImportResult {
8
+ single?: boolean;
9
+ originalPath?: string;
16
10
  }
17
- export interface DirOptions {
18
- mtime?: Mtime;
19
- mode?: number;
20
- codec?: BlockCodec<any, any>;
21
- cidVersion?: Version;
22
- onlyHash?: boolean;
23
- signal?: AbortSignal;
11
+ interface ImportResult {
12
+ cid: CID;
13
+ size: bigint;
14
+ path?: string;
15
+ unixfs?: UnixFS;
24
16
  }
25
- export interface DirProps {
17
+ interface DirProps {
26
18
  root: boolean;
27
19
  dir: boolean;
28
20
  path: string;
@@ -34,34 +26,48 @@ export interface DirProps {
34
26
  mode?: number;
35
27
  mtime?: Mtime;
36
28
  }
37
- export declare abstract class Dir {
38
- protected options: DirOptions;
39
- protected root: boolean;
40
- protected dir: boolean;
41
- protected path: string;
42
- protected dirty: boolean;
43
- protected flat: boolean;
44
- protected parent?: Dir;
45
- protected parentKey?: string;
46
- protected unixfs?: UnixFS;
47
- protected mode?: number;
29
+ declare abstract class Dir {
30
+ options: PersistOptions;
31
+ root: boolean;
32
+ dir: boolean;
33
+ path: string;
34
+ dirty: boolean;
35
+ flat: boolean;
36
+ parent?: Dir;
37
+ parentKey?: string;
38
+ unixfs?: UnixFS;
39
+ mode?: number;
48
40
  mtime?: Mtime;
49
- protected cid?: CID;
50
- protected size?: number;
51
- constructor(props: DirProps, options: DirOptions);
41
+ cid?: CID;
42
+ size?: number;
43
+ nodeSize?: number;
44
+ constructor(props: DirProps, options: PersistOptions);
45
+ abstract put(name: string, value: InProgressImportResult | Dir): Promise<void>;
46
+ abstract get(name: string): Promise<InProgressImportResult | Dir | undefined>;
47
+ abstract eachChildSeries(): AsyncIterable<{
48
+ key: string;
49
+ child: InProgressImportResult | Dir;
50
+ }>;
51
+ abstract flush(blockstore: Blockstore): AsyncGenerator<ImportResult>;
52
+ abstract estimateNodeSize(): number;
53
+ abstract childCount(): number;
52
54
  }
53
55
  export declare class DirSharded extends Dir {
54
- _bucket: Bucket<DirContents>;
55
- constructor(props: DirProps, options: DirOptions);
56
- put(name: string, value: DirContents): Promise<void>;
57
- get(name: string): Promise<DirContents | undefined>;
56
+ _bucket: Bucket<InProgressImportResult | Dir>;
57
+ constructor(props: DirProps, options: PersistOptions);
58
+ put(name: string, value: InProgressImportResult | Dir): Promise<void>;
59
+ get(name: string): Promise<InProgressImportResult | Dir | undefined>;
58
60
  childCount(): number;
59
61
  directChildrenCount(): number;
60
- onlyChild(): Bucket<DirContents> | BucketChild<DirContents>;
62
+ onlyChild(): Bucket<InProgressImportResult | Dir> | BucketChild<InProgressImportResult | Dir>;
61
63
  eachChildSeries(): AsyncGenerator<{
62
64
  key: string;
63
- child: DirContents;
65
+ child: InProgressImportResult | Dir;
64
66
  }>;
65
- flush(blockstore: Blockstore): AsyncIterable<ImportResult>;
67
+ estimateNodeSize(): number;
68
+ flush(blockstore: Blockstore): AsyncGenerator<ImportResult>;
66
69
  }
70
+ export declare const CID_V0: CID<unknown, number, number, import("multiformats/cid").Version>;
71
+ export declare const CID_V1: CID<unknown, number, number, import("multiformats/cid").Version>;
72
+ export {};
67
73
  //# sourceMappingURL=dir-sharded.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dir-sharded.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dir-sharded.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dir-sharded.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dir-sharded.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import { encode, prepare } from '@ipld/dag-pb';
2
2
  import { UnixFS } from 'ipfs-unixfs';
3
3
  import { persist } from './persist.js';
4
4
  import { createHAMT, Bucket } from 'hamt-sharding';
5
- import { hamtHashCode, hamtHashFn, hamtBucketBits } from './hamt-constants.js';
6
- export class Dir {
5
+ import { hamtHashCode, hamtHashFn } from './hamt-constants.js';
6
+ import { CID } from 'multiformats/cid';
7
+ class Dir {
7
8
  constructor(props, options) {
8
9
  this.options = options ?? {};
9
10
  this.root = props.root;
@@ -21,13 +22,15 @@ export class Dir {
21
22
  export class DirSharded extends Dir {
22
23
  constructor(props, options) {
23
24
  super(props, options);
24
- /** @type {Bucket<DirContents>} */
25
25
  this._bucket = createHAMT({
26
26
  hashFn: hamtHashFn,
27
- bits: hamtBucketBits
27
+ bits: 8
28
28
  });
29
29
  }
30
30
  async put(name, value) {
31
+ this.cid = undefined;
32
+ this.size = undefined;
33
+ this.nodeSize = undefined;
31
34
  await this._bucket.put(name, value);
32
35
  }
33
36
  async get(name) {
@@ -50,14 +53,26 @@ export class DirSharded extends Dir {
50
53
  };
51
54
  }
52
55
  }
56
+ estimateNodeSize() {
57
+ if (this.nodeSize !== undefined) {
58
+ return this.nodeSize;
59
+ }
60
+ this.nodeSize = calculateSize(this._bucket, this, this.options);
61
+ return this.nodeSize;
62
+ }
53
63
  async *flush(blockstore) {
54
- yield* flush(this._bucket, blockstore, this, this.options);
64
+ for await (const entry of flush(this._bucket, blockstore, this, this.options)) {
65
+ yield {
66
+ ...entry,
67
+ path: this.path
68
+ };
69
+ }
55
70
  }
56
71
  }
57
72
  async function* flush(bucket, blockstore, shardRoot, options) {
58
73
  const children = bucket._children;
59
74
  const links = [];
60
- let childrenSize = 0;
75
+ let childrenSize = 0n;
61
76
  for (let i = 0; i < children.length; i++) {
62
77
  const child = children.get(i);
63
78
  if (child == null) {
@@ -74,25 +89,28 @@ async function* flush(bucket, blockstore, shardRoot, options) {
74
89
  }
75
90
  links.push({
76
91
  Name: labelPrefix,
77
- Tsize: shard.size,
92
+ Tsize: Number(shard.size),
78
93
  Hash: shard.cid
79
94
  });
80
95
  childrenSize += shard.size;
81
96
  }
82
- else if (typeof child.value.flush === 'function') {
97
+ else if (isDir(child.value)) {
83
98
  const dir = child.value;
84
99
  let flushedDir;
85
100
  for await (const entry of dir.flush(blockstore)) {
86
101
  flushedDir = entry;
87
102
  yield flushedDir;
88
103
  }
104
+ if (flushedDir == null) {
105
+ throw new Error('Did not flush dir');
106
+ }
89
107
  const label = labelPrefix + child.key;
90
108
  links.push({
91
109
  Name: label,
92
- Tsize: flushedDir.size,
110
+ Tsize: Number(flushedDir.size),
93
111
  Hash: flushedDir.cid
94
112
  });
95
- childrenSize += flushedDir.size; // eslint-disable-line @typescript-eslint/restrict-plus-operands
113
+ childrenSize += flushedDir.size;
96
114
  }
97
115
  else {
98
116
  const value = child.value;
@@ -103,10 +121,10 @@ async function* flush(bucket, blockstore, shardRoot, options) {
103
121
  const size = value.size;
104
122
  links.push({
105
123
  Name: label,
106
- Tsize: size,
124
+ Tsize: Number(size),
107
125
  Hash: value.cid
108
126
  });
109
- childrenSize += size ?? 0; // eslint-disable-line @typescript-eslint/restrict-plus-operands
127
+ childrenSize += BigInt(size ?? 0);
110
128
  }
111
129
  }
112
130
  // go-ipfs uses little endian, that's why we have to
@@ -115,7 +133,7 @@ async function* flush(bucket, blockstore, shardRoot, options) {
115
133
  const dir = new UnixFS({
116
134
  type: 'hamt-sharded-directory',
117
135
  data,
118
- fanout: bucket.tableSize(),
136
+ fanout: BigInt(bucket.tableSize()),
119
137
  hashType: hamtHashCode,
120
138
  mtime: shardRoot?.mtime,
121
139
  mode: shardRoot?.mode
@@ -126,11 +144,77 @@ async function* flush(bucket, blockstore, shardRoot, options) {
126
144
  };
127
145
  const buffer = encode(prepare(node));
128
146
  const cid = await persist(buffer, blockstore, options);
129
- const size = buffer.length + childrenSize;
147
+ const size = BigInt(buffer.byteLength) + childrenSize;
130
148
  yield {
131
149
  cid,
132
- node,
150
+ unixfs: dir,
133
151
  size
134
152
  };
135
153
  }
154
+ function isDir(obj) {
155
+ return typeof obj.flush === 'function';
156
+ }
157
+ function calculateSize(bucket, shardRoot, options) {
158
+ const children = bucket._children;
159
+ const links = [];
160
+ for (let i = 0; i < children.length; i++) {
161
+ const child = children.get(i);
162
+ if (child == null) {
163
+ continue;
164
+ }
165
+ const labelPrefix = i.toString(16).toUpperCase().padStart(2, '0');
166
+ if (child instanceof Bucket) {
167
+ const size = calculateSize(child, null, options);
168
+ links.push({
169
+ Name: labelPrefix,
170
+ Tsize: Number(size),
171
+ Hash: options.cidVersion === 0 ? CID_V0 : CID_V1
172
+ });
173
+ }
174
+ else if (typeof child.value.flush === 'function') {
175
+ const dir = child.value;
176
+ const size = dir.nodeSize();
177
+ links.push({
178
+ Name: labelPrefix + child.key,
179
+ Tsize: Number(size),
180
+ Hash: options.cidVersion === 0 ? CID_V0 : CID_V1
181
+ });
182
+ }
183
+ else {
184
+ const value = child.value;
185
+ if (value.cid == null) {
186
+ continue;
187
+ }
188
+ const label = labelPrefix + child.key;
189
+ const size = value.size;
190
+ links.push({
191
+ Name: label,
192
+ Tsize: Number(size),
193
+ Hash: value.cid
194
+ });
195
+ }
196
+ }
197
+ // go-ipfs uses little endian, that's why we have to
198
+ // reverse the bit field before storing it
199
+ const data = Uint8Array.from(children.bitField().reverse());
200
+ const dir = new UnixFS({
201
+ type: 'hamt-sharded-directory',
202
+ data,
203
+ fanout: BigInt(bucket.tableSize()),
204
+ hashType: hamtHashCode,
205
+ mtime: shardRoot?.mtime,
206
+ mode: shardRoot?.mode
207
+ });
208
+ const buffer = encode(prepare({
209
+ Data: dir.marshal(),
210
+ Links: links
211
+ }));
212
+ return buffer.length;
213
+ }
214
+ // we use these to calculate the node size to use as a check for whether a directory
215
+ // should be sharded or not. Since CIDs have a constant length and We're only
216
+ // interested in the data length and not the actual content identifier we can use
217
+ // any old CID instead of having to hash the data which is expensive.
218
+ export const CID_V0 = CID.parse('QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn');
219
+ export const CID_V1 = CID.parse('zdj7WbTaiJT1fgatdet9Ei9iDB5hdCxkbVyhyh8YTUnXMiwYi');
136
220
  //# sourceMappingURL=dir-sharded.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dir-sharded.js","sourceRoot":"","sources":["../../../../src/commands/utils/dir-sharded.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dir-sharded.js","sourceRoot":"","sources":["../../../../src/commands/utils/dir-sharded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAe,MAAM,eAAe,CAAA;AAC/D,OAAO,EACL,YAAY,EACZ,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AA6BtC,MAAe,GAAG;IAgBhB,YAAa,KAAe,EAAE,OAAuB;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAE5B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IAC1B,CAAC;CAQF;AAED,MAAM,OAAO,UAAW,SAAQ,GAAG;IAGjC,YAAa,KAAe,EAAE,OAAuB;QACnD,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAErB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;YACxB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,CAAC;SACR,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,IAAY,EAAE,KAAmC;QAC1D,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QAEzB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,IAAY;QACrB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;IACjC,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,CAAE,eAAe;QACrB,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE;YAChE,MAAM;gBACJ,GAAG;gBACH,KAAK,EAAE,KAAK;aACb,CAAA;SACF;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,OAAO,IAAI,CAAC,QAAQ,CAAA;SACrB;QAED,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/D,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,CAAE,KAAK,CAAE,UAAsB;QACnC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7E,MAAM;gBACJ,GAAG,KAAK;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAA;SACF;IACH,CAAC;CACF;AAED,KAAK,SAAU,CAAC,CAAC,KAAK,CAAE,MAA4C,EAAE,UAAsB,EAAE,SAA4B,EAAE,OAAuB;IACjJ,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAA;IACjC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,YAAY,GAAG,EAAE,CAAA;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAE7B,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,SAAQ;SACT;QAED,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAEjE,IAAI,KAAK,YAAY,MAAM,EAAE;YAC3B,IAAI,KAAK,CAAA;YAET,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gBACpE,KAAK,GAAG,QAAQ,CAAA;aACjB;YAED,IAAI,KAAK,IAAI,IAAI,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;aACxE;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBACzB,IAAI,EAAE,KAAK,CAAC,GAAG;aAChB,CAAC,CAAA;YACF,YAAY,IAAI,KAAK,CAAC,IAAI,CAAA;SAC3B;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;YACvB,IAAI,UAAoC,CAAA;YAExC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAC/C,UAAU,GAAG,KAAK,CAAA;gBAElB,MAAM,UAAU,CAAA;aACjB;YAED,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;aACrC;YAED,MAAM,KAAK,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG,CAAA;YACrC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC9B,IAAI,EAAE,UAAU,CAAC,GAAG;aACrB,CAAC,CAAA;YAEF,YAAY,IAAI,UAAU,CAAC,IAAI,CAAA;SAChC;aAAM;YACL,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YAEzB,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE;gBACrB,SAAQ;aACT;YAED,MAAM,KAAK,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG,CAAA;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YAEvB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,KAAK,CAAC,GAAG;aAChB,CAAC,CAAA;YACF,YAAY,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;SAClC;KACF;IAED,oDAAoD;IACpD,0CAA0C;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC;QACrB,IAAI,EAAE,wBAAwB;QAC9B,IAAI;QACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,SAAS,EAAE,KAAK;QACvB,IAAI,EAAE,SAAS,EAAE,IAAI;KACtB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,KAAK;KACb,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,YAAY,CAAA;IAErD,MAAM;QACJ,GAAG;QACH,MAAM,EAAE,GAAG;QACX,IAAI;KACL,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAE,GAAQ;IACtB,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,CAAA;AACxC,CAAC;AAED,SAAS,aAAa,CAAE,MAAmB,EAAE,SAA4B,EAAE,OAAuB;IAChG,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAA;IACjC,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAE7B,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,SAAQ;SACT;QAED,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAEjE,IAAI,KAAK,YAAY,MAAM,EAAE;YAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAEhD,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,OAAO,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACjD,CAAC,CAAA;SACH;aAAM,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;YAClD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAE3B,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG;gBAC7B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,OAAO,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACjD,CAAC,CAAA;SACH;aAAM;YACL,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YAEzB,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE;gBACrB,SAAQ;aACT;YAED,MAAM,KAAK,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG,CAAA;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YAEvB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,KAAK,CAAC,GAAG;aAChB,CAAC,CAAA;SACH;KACF;IAED,oDAAoD;IACpD,0CAA0C;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC;QACrB,IAAI,EAAE,wBAAwB;QAC9B,IAAI;QACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,SAAS,EAAE,KAAK;QACvB,IAAI,EAAE,SAAS,EAAE,IAAI;KACtB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC,CAAA;IAEH,OAAO,MAAM,CAAC,MAAM,CAAA;AACtB,CAAC;AAED,oFAAoF;AACpF,6EAA6E;AAC7E,iFAAiF;AACjF,qEAAqE;AACrE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;AACjF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA"}
@@ -1,17 +1,33 @@
1
- import { HeliaError } from '@helia/interface/errors';
2
- export declare class NotUnixFSError extends HeliaError {
1
+ export declare abstract class UnixFSError extends Error {
2
+ readonly name: string;
3
+ readonly code: string;
4
+ constructor(message: string, name: string, code: string);
5
+ }
6
+ export declare class NotUnixFSError extends UnixFSError {
7
+ constructor(message?: string);
8
+ }
9
+ export declare class InvalidPBNodeError extends UnixFSError {
10
+ constructor(message?: string);
11
+ }
12
+ export declare class UnknownError extends UnixFSError {
13
+ constructor(message?: string);
14
+ }
15
+ export declare class AlreadyExistsError extends UnixFSError {
16
+ constructor(message?: string);
17
+ }
18
+ export declare class DoesNotExistError extends UnixFSError {
3
19
  constructor(message?: string);
4
20
  }
5
- export declare class InvalidPBNodeError extends HeliaError {
21
+ export declare class NoContentError extends UnixFSError {
6
22
  constructor(message?: string);
7
23
  }
8
- export declare class UnknownError extends HeliaError {
24
+ export declare class NotAFileError extends UnixFSError {
9
25
  constructor(message?: string);
10
26
  }
11
- export declare class AlreadyExistsError extends HeliaError {
27
+ export declare class NotADirectoryError extends UnixFSError {
12
28
  constructor(message?: string);
13
29
  }
14
- export declare class DoesNotExistError extends HeliaError {
30
+ export declare class InvalidParametersError extends UnixFSError {
15
31
  constructor(message?: string);
16
32
  }
17
33
  //# sourceMappingURL=errors.d.ts.map