@helia/unixfs 7.0.4-eaeb734d → 7.1.0-080e4f91

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 (96) hide show
  1. package/dist/index.min.js +4 -4
  2. package/dist/index.min.js.map +4 -4
  3. package/dist/src/commands/add.d.ts +7 -7
  4. package/dist/src/commands/add.d.ts.map +1 -1
  5. package/dist/src/commands/add.js +12 -4
  6. package/dist/src/commands/add.js.map +1 -1
  7. package/dist/src/commands/cat.d.ts +3 -3
  8. package/dist/src/commands/cat.d.ts.map +1 -1
  9. package/dist/src/commands/cat.js +2 -2
  10. package/dist/src/commands/cat.js.map +1 -1
  11. package/dist/src/commands/chmod.d.ts +3 -3
  12. package/dist/src/commands/chmod.d.ts.map +1 -1
  13. package/dist/src/commands/chmod.js +3 -3
  14. package/dist/src/commands/chmod.js.map +1 -1
  15. package/dist/src/commands/cp.d.ts +3 -3
  16. package/dist/src/commands/cp.d.ts.map +1 -1
  17. package/dist/src/commands/cp.js +4 -4
  18. package/dist/src/commands/cp.js.map +1 -1
  19. package/dist/src/commands/ls.d.ts +3 -3
  20. package/dist/src/commands/ls.d.ts.map +1 -1
  21. package/dist/src/commands/ls.js +1 -1
  22. package/dist/src/commands/ls.js.map +1 -1
  23. package/dist/src/commands/mkdir.d.ts +3 -3
  24. package/dist/src/commands/mkdir.d.ts.map +1 -1
  25. package/dist/src/commands/mkdir.js +4 -4
  26. package/dist/src/commands/mkdir.js.map +1 -1
  27. package/dist/src/commands/rm.d.ts +3 -3
  28. package/dist/src/commands/rm.d.ts.map +1 -1
  29. package/dist/src/commands/rm.js +3 -3
  30. package/dist/src/commands/rm.js.map +1 -1
  31. package/dist/src/commands/stat.d.ts +2 -2
  32. package/dist/src/commands/stat.js +2 -2
  33. package/dist/src/commands/touch.d.ts +3 -3
  34. package/dist/src/commands/touch.d.ts.map +1 -1
  35. package/dist/src/commands/touch.js +3 -3
  36. package/dist/src/commands/touch.js.map +1 -1
  37. package/dist/src/commands/utils/add-link.d.ts +4 -6
  38. package/dist/src/commands/utils/add-link.d.ts.map +1 -1
  39. package/dist/src/commands/utils/add-link.js +23 -17
  40. package/dist/src/commands/utils/add-link.js.map +1 -1
  41. package/dist/src/commands/utils/cid-to-directory.d.ts +1 -1
  42. package/dist/src/commands/utils/cid-to-directory.js +1 -1
  43. package/dist/src/commands/utils/cid-to-pblink.d.ts +1 -1
  44. package/dist/src/commands/utils/cid-to-pblink.js +1 -1
  45. package/dist/src/commands/utils/hamt-utils.d.ts +9 -8
  46. package/dist/src/commands/utils/hamt-utils.d.ts.map +1 -1
  47. package/dist/src/commands/utils/hamt-utils.js +18 -16
  48. package/dist/src/commands/utils/hamt-utils.js.map +1 -1
  49. package/dist/src/commands/utils/is-over-shard-threshold.d.ts +6 -2
  50. package/dist/src/commands/utils/is-over-shard-threshold.d.ts.map +1 -1
  51. package/dist/src/commands/utils/is-over-shard-threshold.js +58 -13
  52. package/dist/src/commands/utils/is-over-shard-threshold.js.map +1 -1
  53. package/dist/src/commands/utils/persist.d.ts +3 -3
  54. package/dist/src/commands/utils/persist.d.ts.map +1 -1
  55. package/dist/src/commands/utils/remove-link.d.ts +5 -6
  56. package/dist/src/commands/utils/remove-link.d.ts.map +1 -1
  57. package/dist/src/commands/utils/remove-link.js +10 -9
  58. package/dist/src/commands/utils/remove-link.js.map +1 -1
  59. package/dist/src/commands/utils/resolve.d.ts +1 -1
  60. package/dist/src/commands/utils/resolve.js +4 -4
  61. package/dist/src/index.d.ts +24 -54
  62. package/dist/src/index.d.ts.map +1 -1
  63. package/dist/src/index.js +3 -3
  64. package/dist/src/index.js.map +1 -1
  65. package/dist/src/unixfs.d.ts +1 -1
  66. package/dist/src/unixfs.js +9 -9
  67. package/dist/src/utils/glob-source.js +2 -2
  68. package/dist/src/utils/url-source.d.ts +1 -1
  69. package/dist/src/utils/url-source.js +1 -1
  70. package/package.json +5 -6
  71. package/src/commands/add.ts +19 -11
  72. package/src/commands/cat.ts +5 -5
  73. package/src/commands/chmod.ts +6 -6
  74. package/src/commands/cp.ts +7 -7
  75. package/src/commands/ls.ts +4 -4
  76. package/src/commands/mkdir.ts +7 -7
  77. package/src/commands/rm.ts +6 -6
  78. package/src/commands/stat.ts +4 -4
  79. package/src/commands/touch.ts +6 -6
  80. package/src/commands/utils/add-link.ts +30 -24
  81. package/src/commands/utils/cid-to-directory.ts +2 -2
  82. package/src/commands/utils/cid-to-pblink.ts +2 -2
  83. package/src/commands/utils/hamt-utils.ts +29 -23
  84. package/src/commands/utils/is-over-shard-threshold.ts +88 -13
  85. package/src/commands/utils/persist.ts +3 -3
  86. package/src/commands/utils/remove-link.ts +17 -17
  87. package/src/commands/utils/resolve.ts +5 -5
  88. package/src/index.ts +25 -61
  89. package/src/unixfs.ts +10 -10
  90. package/src/utils/glob-source.ts +2 -2
  91. package/src/utils/url-source.ts +2 -2
  92. package/dist/src/commands/utils/dir-sharded.d.ts +0 -74
  93. package/dist/src/commands/utils/dir-sharded.d.ts.map +0 -1
  94. package/dist/src/commands/utils/dir-sharded.js +0 -235
  95. package/dist/src/commands/utils/dir-sharded.js.map +0 -1
  96. package/src/commands/utils/dir-sharded.ts +0 -321
@@ -1,4 +1,4 @@
1
- import type { GetStore } from '../../unixfs.js';
1
+ import type { GetStore } from '../../unixfs.ts';
2
2
  import type { PBLink } from '@ipld/dag-pb';
3
3
  import type { ExporterOptions } from 'ipfs-unixfs-exporter';
4
4
  import type { CID } from 'multiformats/cid';
@@ -1,6 +1,6 @@
1
1
  import * as dagPb from '@ipld/dag-pb';
2
2
  import { exporter } from 'ipfs-unixfs-exporter';
3
- import { NotUnixFSError } from '../../errors.js';
3
+ import { NotUnixFSError } from "../../errors.js";
4
4
  export async function cidToPBLink(cid, name, blockstore, options) {
5
5
  const sourceEntry = await exporter(cid, blockstore, options);
6
6
  if (sourceEntry.type !== 'directory' && sourceEntry.type !== 'file' && sourceEntry.type !== 'raw') {
@@ -1,17 +1,16 @@
1
1
  import * as dagPB from '@ipld/dag-pb';
2
2
  import SparseArray from 'sparse-array';
3
- import type { InfiniteHash } from './consumable-hash.js';
4
- import type { PersistOptions } from './persist.js';
5
- import type { GetStore, PutStore } from '../../unixfs.js';
3
+ import type { InfiniteHash } from './consumable-hash.ts';
4
+ import type { GetStore, PutStore } from '../../unixfs.ts';
6
5
  import type { AbortOptions } from '@libp2p/interface';
7
6
  import type { Blockstore } from 'interface-blockstore';
8
7
  import type { Mtime } from 'ipfs-unixfs';
9
- import type { ImportResult } from 'ipfs-unixfs-importer';
8
+ import type { ImporterOptions, ImportResult } from 'ipfs-unixfs-importer';
10
9
  import type { CID, Version } from 'multiformats/cid';
11
- export interface UpdateHamtDirectoryOptions extends AbortOptions {
10
+ export interface UpdateHamtDirectoryOptions extends HAMTOptions {
12
11
  cidVersion?: Version;
13
12
  }
14
- export declare const toPrefix: (position: number) => string;
13
+ export declare const toPrefix: (position: number, bits?: number) => string;
15
14
  export interface CreateShardOptions {
16
15
  mtime?: Mtime;
17
16
  mode?: number;
@@ -27,11 +26,13 @@ export interface HAMTPath {
27
26
  children: SparseArray;
28
27
  node: dagPB.PBNode;
29
28
  }
30
- export declare const updateShardedDirectory: (path: HAMTPath[], blockstore: GetStore & PutStore, options: PersistOptions) => Promise<{
29
+ export declare const updateShardedDirectory: (path: HAMTPath[], blockstore: GetStore & PutStore, options: HAMTOptions) => Promise<{
31
30
  cid: CID;
32
31
  node: dagPB.PBNode;
33
32
  }>;
34
- export declare const recreateShardedDirectory: (cid: CID, fileName: string, blockstore: Pick<Blockstore, "get">, options: AbortOptions) => Promise<{
33
+ export interface HAMTOptions extends AbortOptions, Pick<ImporterOptions, 'shardFanoutBits' | 'shardSplitStrategy' | 'shardSplitThresholdBytes'> {
34
+ }
35
+ export declare const recreateShardedDirectory: (cid: CID, fileName: string, blockstore: Pick<Blockstore, "get">, options: HAMTOptions) => Promise<{
35
36
  path: HAMTPath[];
36
37
  hash: InfiniteHash;
37
38
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"hamt-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAMrC,OAAO,WAAW,MAAM,cAAc,CAAA;AAUtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAIpD,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,KAAG,MAM3C,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,eAAO,MAAM,WAAW,GAAU,YAAY,QAAQ,EAAE,UAAU,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,YAAY,CA2BpK,CAAA;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,sBAAsB,GAAU,MAAM,QAAQ,EAAE,EAAE,YAAY,QAAQ,GAAG,QAAQ,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAA;CAAE,CAiEjK,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,KAAK,GAAG,EAAE,UAAU,MAAM,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,SAAS,YAAY,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CA+DvL,CAAA"}
1
+ {"version":3,"file":"hamt-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAOrC,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAIpD,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,EAAE,aAAqB,KAAG,MAQlE,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,eAAO,MAAM,WAAW,GAAU,YAAY,QAAQ,EAAE,UAAU,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,YAAY,CA2BpK,CAAA;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,sBAAsB,GAAU,MAAM,QAAQ,EAAE,EAAE,YAAY,QAAQ,GAAG,QAAQ,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAA;CAAE,CAiE9J,CAAA;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;CAE9I;AAED,eAAO,MAAM,wBAAwB,GAAU,KAAK,GAAG,EAAE,UAAU,MAAM,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAgEtL,CAAA"}
@@ -1,22 +1,23 @@
1
1
  import * as dagPB from '@ipld/dag-pb';
2
2
  import { logger } from '@libp2p/logger';
3
3
  import { UnixFS } from 'ipfs-unixfs';
4
+ import { DirSharded } from 'ipfs-unixfs-importer/utils';
4
5
  import last from 'it-last';
5
6
  import toBuffer from 'it-to-buffer';
6
7
  // @ts-expect-error no types
7
8
  import SparseArray from 'sparse-array';
8
9
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
9
- import { wrapHash } from './consumable-hash.js';
10
- import { DirSharded } from './dir-sharded.js';
11
- import { hamtHashCode, hamtHashFn, hamtBucketBits } from './hamt-constants.js';
12
- import { persist } from './persist.js';
10
+ import { wrapHash } from "./consumable-hash.js";
11
+ import { hamtHashCode, hamtHashFn, hamtBucketBits } from "./hamt-constants.js";
12
+ import { persist } from "./persist.js";
13
13
  const log = logger('helia:unixfs:commands:utils:hamt-utils');
14
- export const toPrefix = (position) => {
14
+ export const toPrefix = (position, bits = hamtBucketBits) => {
15
+ const length = (Math.pow(2, bits) - 1).toString(16).length;
15
16
  return position
16
17
  .toString(16)
17
18
  .toUpperCase()
18
- .padStart(2, '0')
19
- .substring(0, 2);
19
+ .padStart(length, '0')
20
+ .substring(0, length);
20
21
  };
21
22
  export const createShard = async (blockstore, contents, options) => {
22
23
  const shard = new DirSharded({
@@ -31,7 +32,7 @@ export const createShard = async (blockstore, contents, options) => {
31
32
  mode: options.mode
32
33
  }, options);
33
34
  for (let i = 0; i < contents.length; i++) {
34
- await shard._bucket.put(contents[i].name, {
35
+ await shard.bucket.put(contents[i].name, {
35
36
  size: contents[i].size,
36
37
  cid: contents[i].cid
37
38
  });
@@ -46,7 +47,7 @@ export const updateShardedDirectory = async (path, blockstore, options) => {
46
47
  // persist any metadata on the shard root
47
48
  const shardRoot = UnixFS.unmarshal(path[0].node.Data ?? new Uint8Array(0));
48
49
  // this is always the same
49
- const fanout = BigInt(Math.pow(2, hamtBucketBits));
50
+ const fanout = BigInt(Math.pow(2, options.shardFanoutBits ?? hamtBucketBits));
50
51
  // start from the leaf and ascend to the root
51
52
  path.reverse();
52
53
  let cid;
@@ -97,13 +98,14 @@ export const recreateShardedDirectory = async (cid, fileName, blockstore, option
97
98
  const wrapped = wrapHash(hamtHashFn);
98
99
  const hash = wrapped(uint8ArrayFromString(fileName));
99
100
  const path = [];
101
+ const hashBits = options.shardFanoutBits ?? hamtBucketBits;
100
102
  // descend the HAMT, loading each layer as we head towards the target child
101
103
  while (true) {
102
104
  const block = await toBuffer(blockstore.get(cid, options));
103
105
  const node = dagPB.decode(block);
104
106
  const children = new SparseArray();
105
- const index = await hash.take(hamtBucketBits);
106
- const prefix = toPrefix(index);
107
+ const index = await hash.take(hashBits);
108
+ const prefix = toPrefix(index, hashBits);
107
109
  path.push({
108
110
  prefix,
109
111
  children,
@@ -114,10 +116,10 @@ export const recreateShardedDirectory = async (cid, fileName, blockstore, option
114
116
  // intermediate DAG node so this is required to generate consistent hashes
115
117
  for (const link of node.Links) {
116
118
  const linkName = link.Name ?? '';
117
- if (linkName.length < 2) {
119
+ if (linkName.length < prefix.length) {
118
120
  throw new Error('Invalid HAMT - link name was too short');
119
121
  }
120
- const position = parseInt(linkName.substring(0, 2), 16);
122
+ const position = parseInt(linkName.substring(0, prefix.length), 16);
121
123
  children.set(position, true);
122
124
  // we found the child we are looking for
123
125
  if (linkName.startsWith(prefix)) {
@@ -126,14 +128,14 @@ export const recreateShardedDirectory = async (cid, fileName, blockstore, option
126
128
  }
127
129
  if (childLink == null) {
128
130
  log('no link found with prefix %s for %s', prefix, fileName);
129
- // hash.untake(hamtBucketBits)
131
+ // hash.untake(hashBits)
130
132
  break;
131
133
  }
132
134
  const linkName = childLink.Name ?? '';
133
- if (linkName.length < 2) {
135
+ if (linkName.length < prefix.length) {
134
136
  throw new Error('Invalid HAMT - link name was too short');
135
137
  }
136
- if (linkName.length === 2) {
138
+ if (linkName.length === prefix.length) {
137
139
  // found sub-shard
138
140
  cid = childLink.Hash;
139
141
  log('descend into sub-shard with prefix %s', linkName);
@@ -1 +1 @@
1
- {"version":3,"file":"hamt-utils.js","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hamt-utils.js","sourceRoot":"","sources":["../../../../src/commands/utils/hamt-utils.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import type { GetStore } from '../../unixfs.js';
2
2
  import type { PBNode } from '@ipld/dag-pb';
3
3
  import type { AbortOptions } from '@libp2p/interface';
4
+ import type { ImporterOptions } from 'ipfs-unixfs-importer';
5
+ export interface IsOverShardThresholdOptions extends AbortOptions, Pick<ImporterOptions, 'profile' | 'shardSplitThresholdBytes' | 'shardSplitStrategy' | 'shardFanoutBits'> {
6
+ }
4
7
  /**
5
8
  * Estimate node size only based on DAGLink name and CID byte lengths
6
9
  * https://github.com/ipfs/go-unixfsnode/blob/37b47f1f917f1b2f54c207682f38886e49896ef9/data/builder/directory.go#L81-L96
7
10
  *
8
- * If the node is a hamt sharded directory the calculation is based on if it was a regular directory.
11
+ * If the node is a hamt sharded directory the calculation is based on if it was
12
+ * a regular directory.
9
13
  */
10
- export declare function isOverShardThreshold(node: PBNode, blockstore: GetStore, threshold: number, options: AbortOptions): Promise<boolean>;
14
+ export declare function isOverShardThreshold(node: PBNode, blockstore: GetStore, options: IsOverShardThresholdOptions): Promise<boolean>;
11
15
  //# sourceMappingURL=is-over-shard-threshold.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-over-shard-threshold.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/is-over-shard-threshold.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB1I"}
1
+ {"version":3,"file":"is-over-shard-threshold.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/is-over-shard-threshold.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,sBAAsB,CAAA;AAE/E,MAAM,WAAW,2BAA4B,SAAQ,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,0BAA0B,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;CAE1K;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CA+BtI"}
@@ -1,27 +1,39 @@
1
1
  import * as dagPb from '@ipld/dag-pb';
2
+ import { InvalidParametersError } from '@libp2p/interface';
2
3
  import { UnixFS } from 'ipfs-unixfs';
4
+ import { dataFieldSerializedSize, linkSerializedSize, utf8ByteLength } from 'ipfs-unixfs-importer/utils';
3
5
  import toBuffer from 'it-to-buffer';
4
- import { CID_V0, CID_V1 } from './dir-sharded.js';
6
+ import { DEFAULT_SHARD_SPLIT_THRESHOLD_BYTES } from "../../constants.js";
7
+ import { hamtBucketBits } from "./hamt-constants.js";
5
8
  /**
6
9
  * Estimate node size only based on DAGLink name and CID byte lengths
7
10
  * https://github.com/ipfs/go-unixfsnode/blob/37b47f1f917f1b2f54c207682f38886e49896ef9/data/builder/directory.go#L81-L96
8
11
  *
9
- * If the node is a hamt sharded directory the calculation is based on if it was a regular directory.
12
+ * If the node is a hamt sharded directory the calculation is based on if it was
13
+ * a regular directory.
10
14
  */
11
- export async function isOverShardThreshold(node, blockstore, threshold, options) {
15
+ export async function isOverShardThreshold(node, blockstore, options) {
12
16
  if (node.Data == null) {
13
17
  throw new Error('DagPB node had no data');
14
18
  }
19
+ const threshold = options.shardSplitThresholdBytes ?? DEFAULT_SHARD_SPLIT_THRESHOLD_BYTES;
20
+ let strategy = options.shardSplitStrategy ?? 'links-bytes';
21
+ if (options.profile === 'unixfs-v0-2015') {
22
+ strategy = 'links-bytes';
23
+ }
15
24
  const unixfs = UnixFS.unmarshal(node.Data);
16
- let size;
25
+ if (!unixfs.isDirectory()) {
26
+ throw new Error('Can only estimate the size of directories or shards');
27
+ }
28
+ if (strategy !== 'links-bytes' && strategy !== 'block-bytes') {
29
+ throw new InvalidParametersError(`Invalid shard split threshold "${strategy}"`);
30
+ }
31
+ let size = 0;
17
32
  if (unixfs.type === 'directory') {
18
- size = estimateNodeSize(node);
33
+ size = strategy === 'links-bytes' ? estimateNodeSize(node) : calculateNodeSize(unixfs, node);
19
34
  }
20
35
  else if (unixfs.type === 'hamt-sharded-directory') {
21
- size = await estimateShardSize(node, 0, threshold, blockstore, options);
22
- }
23
- else {
24
- throw new Error('Can only estimate the size of directories or shards');
36
+ size = strategy === 'links-bytes' ? await estimateShardSize(node, 0, threshold, blockstore, options) : await calculateShardSize(node, dataFieldSerializedSize(unixfs.mode, unixfs.mtime), threshold, blockstore, options);
25
37
  }
26
38
  return size > threshold;
27
39
  }
@@ -30,8 +42,15 @@ function estimateNodeSize(node) {
30
42
  // estimate size only based on DAGLink name and CID byte lengths
31
43
  // https://github.com/ipfs/go-unixfsnode/blob/37b47f1f917f1b2f54c207682f38886e49896ef9/data/builder/directory.go#L81-L96
32
44
  for (const link of node.Links) {
33
- size += (link.Name ?? '').length;
34
- size += link.Hash.version === 1 ? CID_V1.bytes.byteLength : CID_V0.bytes.byteLength;
45
+ size += utf8ByteLength(link.Name ?? '');
46
+ size += link.Hash.byteLength;
47
+ }
48
+ return size;
49
+ }
50
+ function calculateNodeSize(unixfs, node) {
51
+ let size = dataFieldSerializedSize(unixfs.mode, unixfs.mtime);
52
+ for (const link of node.Links) {
53
+ size += linkSerializedSize(utf8ByteLength(link.Name ?? ''), link.Hash.byteLength, Number(link.Tsize ?? 0));
35
54
  }
36
55
  return size;
37
56
  }
@@ -46,11 +65,12 @@ async function estimateShardSize(node, current, max, blockstore, options) {
46
65
  if (!unixfs.isDirectory()) {
47
66
  return current;
48
67
  }
68
+ const prefixLength = (Math.pow(2, options.shardFanoutBits ?? hamtBucketBits) - 1).toString(16).length;
49
69
  for (const link of node.Links) {
50
70
  let name = link.Name ?? '';
51
71
  // remove hamt hash prefix from name
52
- name = name.substring(2);
53
- current += name.length;
72
+ name = name.substring(prefixLength);
73
+ current += utf8ByteLength(name);
54
74
  current += link.Hash.bytes.byteLength;
55
75
  if (link.Hash.code === dagPb.code) {
56
76
  const block = await toBuffer(blockstore.get(link.Hash, options));
@@ -60,4 +80,29 @@ async function estimateShardSize(node, current, max, blockstore, options) {
60
80
  }
61
81
  return current;
62
82
  }
83
+ async function calculateShardSize(node, current, max, blockstore, options) {
84
+ if (current > max) {
85
+ return max;
86
+ }
87
+ if (node.Data == null) {
88
+ return current;
89
+ }
90
+ const unixfs = UnixFS.unmarshal(node.Data);
91
+ if (!unixfs.isDirectory()) {
92
+ return current;
93
+ }
94
+ const prefixLength = (Math.pow(2, options.shardFanoutBits ?? hamtBucketBits) - 1).toString(16).length;
95
+ for (const link of node.Links) {
96
+ let name = link.Name ?? '';
97
+ // remove hamt hash prefix from name
98
+ name = name.substring(prefixLength);
99
+ current += linkSerializedSize(utf8ByteLength(name), link.Hash.byteLength, Number(link.Tsize ?? 0));
100
+ if (link.Hash.code === dagPb.code) {
101
+ const block = await toBuffer(blockstore.get(link.Hash, options));
102
+ const node = dagPb.decode(block);
103
+ current += await calculateShardSize(node, current, max, blockstore, options);
104
+ }
105
+ }
106
+ return current;
107
+ }
63
108
  //# sourceMappingURL=is-over-shard-threshold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-over-shard-threshold.js","sourceRoot":"","sources":["../../../../src/commands/utils/is-over-shard-threshold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"is-over-shard-threshold.js","sourceRoot":"","sources":["../../../../src/commands/utils/is-over-shard-threshold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AACxG,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAUpD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAE,IAAY,EAAE,UAAoB,EAAE,OAAoC;IAClH,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,IAAI,mCAAmC,CAAA;IACzF,IAAI,QAAQ,GAAuB,OAAO,CAAC,kBAAkB,IAAI,aAAa,CAAA;IAE9E,IAAI,OAAO,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACzC,QAAQ,GAAG,aAAa,CAAA;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE1C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC7D,MAAM,IAAI,sBAAsB,CAAC,kCAAkC,QAAQ,GAAG,CAAC,CAAA;IACjF,CAAC;IAED,IAAI,IAAI,GAAW,CAAC,CAAA;IAEpB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,IAAI,GAAG,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9F,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;QACpD,IAAI,GAAG,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC3N,CAAC;IAED,OAAO,IAAI,GAAG,SAAS,CAAA;AACzB,CAAC;AAED,SAAS,gBAAgB,CAAE,IAAY;IACrC,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,gEAAgE;IAChE,wHAAwH;IACxH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACvC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,iBAAiB,CAAE,MAAc,EAAE,IAAY;IACtD,IAAI,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAE7D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,kBAAkB,CACxB,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAC/E,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAE,IAAY,EAAE,OAAe,EAAE,GAAW,EAAE,UAAoB,EAAE,OAAoC;IACtI,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE1C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;IAErG,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAE1B,oCAAoC;QACpC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAEnC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;QAErC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;YAChE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAEhC,OAAO,IAAI,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAE,IAAY,EAAE,OAAe,EAAE,GAAW,EAAE,UAAoB,EAAE,OAAoC;IACvI,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE1C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;IAErG,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAE1B,oCAAoC;QACpC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAEnC,OAAO,IAAI,kBAAkB,CAC3B,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CACpE,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;YAChE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAEhC,OAAO,IAAI,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { CID } from 'multiformats/cid';
2
- import type { PutStore } from '../../unixfs.js';
2
+ import type { PutStore } from '../../unixfs.ts';
3
+ import type { AbortOptions } from '@libp2p/interface';
3
4
  import type { Version as CIDVersion } from 'multiformats/cid';
4
5
  import type { BlockCodec } from 'multiformats/codecs/interface';
5
- export interface PersistOptions {
6
+ export interface PersistOptions extends AbortOptions {
6
7
  codec?: BlockCodec<any, any>;
7
8
  cidVersion?: CIDVersion;
8
- signal?: AbortSignal;
9
9
  }
10
10
  export declare const persist: (buffer: Uint8Array, blockstore: PutStore, options: PersistOptions) => Promise<CID>;
11
11
  //# sourceMappingURL=persist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/persist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE/D,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,eAAO,MAAM,OAAO,GAAU,QAAQ,UAAU,EAAE,YAAY,QAAQ,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,GAAG,CAc5G,CAAA"}
1
+ {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/persist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE/D,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,eAAO,MAAM,OAAO,GAAU,QAAQ,UAAU,EAAE,YAAY,QAAQ,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,GAAG,CAc5G,CAAA"}
@@ -1,11 +1,10 @@
1
- import type { Directory } from './cid-to-directory.js';
2
- import type { GetStore, PutStore } from '../../unixfs.js';
1
+ import type { Directory } from './cid-to-directory.ts';
2
+ import type { GetStore, PutStore } from '../../unixfs.ts';
3
3
  import type { PBNode } from '@ipld/dag-pb';
4
4
  import type { AbortOptions } from '@libp2p/interface';
5
- import type { CID, Version } from 'multiformats/cid';
6
- export interface RmLinkOptions extends AbortOptions {
7
- shardSplitThresholdBytes?: number;
8
- cidVersion?: Version;
5
+ import type { ImporterOptions } from 'ipfs-unixfs-importer';
6
+ import type { CID } from 'multiformats/cid';
7
+ export interface RmLinkOptions extends AbortOptions, Pick<ImporterOptions, 'profile' | 'shardSplitThresholdBytes' | 'shardSplitStrategy' | 'shardFanoutBits' | 'cidVersion'> {
9
8
  }
10
9
  export interface RemoveLinkResult {
11
10
  node: PBNode;
@@ -1 +1 @@
1
- {"version":3,"file":"remove-link.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/remove-link.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAIpD,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;CACT;AAED,wBAAsB,UAAU,CAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwBrJ"}
1
+ {"version":3,"file":"remove-link.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/remove-link.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAI3C,MAAM,WAAW,aAAc,SAAQ,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,0BAA0B,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,YAAY,CAAC;CAE3K;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;CACT;AAED,wBAAsB,UAAU,CAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwBrJ"}
@@ -2,11 +2,11 @@ import * as dagPB from '@ipld/dag-pb';
2
2
  import { logger } from '@libp2p/logger';
3
3
  import { UnixFS } from 'ipfs-unixfs';
4
4
  import { exporter } from 'ipfs-unixfs-exporter';
5
- import { DEFAULT_SHARD_SPLIT_THRESHOLD_BYTES } from "../../constants.js";
6
- import { InvalidParametersError, InvalidPBNodeError } from '../../errors.js';
7
- import { recreateShardedDirectory, updateShardedDirectory } from './hamt-utils.js';
8
- import { isOverShardThreshold } from './is-over-shard-threshold.js';
9
- import { persist } from './persist.js';
5
+ import { InvalidParametersError, InvalidPBNodeError } from "../../errors.js";
6
+ import { hamtBucketBits } from "./hamt-constants.js";
7
+ import { recreateShardedDirectory, updateShardedDirectory } from "./hamt-utils.js";
8
+ import { isOverShardThreshold } from "./is-over-shard-threshold.js";
9
+ import { persist } from "./persist.js";
10
10
  const log = logger('helia:unixfs:utils:remove-link');
11
11
  export async function removeLink(parent, name, blockstore, options) {
12
12
  if (parent.node.Data == null) {
@@ -16,7 +16,7 @@ export async function removeLink(parent, name, blockstore, options) {
16
16
  if (meta.type === 'hamt-sharded-directory') {
17
17
  log(`removing ${name} from sharded directory`);
18
18
  const result = await removeFromShardedDirectory(parent, name, blockstore, options);
19
- if (!(await isOverShardThreshold(result.node, blockstore, options.shardSplitThresholdBytes ?? DEFAULT_SHARD_SPLIT_THRESHOLD_BYTES, options))) {
19
+ if (!(await isOverShardThreshold(result.node, blockstore, options))) {
20
20
  log('converting shard to flat directory %c', parent.cid);
21
21
  return convertToFlatDirectory(result, blockstore, options);
22
22
  }
@@ -47,11 +47,12 @@ const removeFromShardedDirectory = async (parent, name, blockstore, options) =>
47
47
  if (finalSegment == null) {
48
48
  throw new Error('Invalid HAMT, could not generate path');
49
49
  }
50
- const linkName = finalSegment.node.Links.filter(l => (l.Name ?? '').substring(2) === name).map(l => l.Name).pop();
50
+ const prefixLength = (Math.pow(2, options.shardFanoutBits ?? hamtBucketBits) - 1).toString(16).length;
51
+ const linkName = finalSegment.node.Links.filter(l => (l.Name ?? '').substring(prefixLength) === name).map(l => l.Name).pop();
51
52
  if (linkName == null) {
52
53
  throw new Error('File not found');
53
54
  }
54
- const prefix = linkName.substring(0, 2);
55
+ const prefix = linkName.substring(0, prefixLength);
55
56
  const index = parseInt(prefix, 16);
56
57
  // remove the file from the shard
57
58
  finalSegment.node.Links = finalSegment.node.Links.filter(link => link.Name !== linkName);
@@ -76,7 +77,7 @@ const removeFromShardedDirectory = async (parent, name, blockstore, options) =>
76
77
  nextSegment.node.Links = nextSegment.node.Links.filter(l => !(l.Name ?? '').startsWith(nextSegment.prefix));
77
78
  nextSegment.node.Links.push({
78
79
  Hash: link.Hash,
79
- Name: `${nextSegment.prefix}${(link.Name ?? '').substring(2)}`,
80
+ Name: `${nextSegment.prefix}${(link.Name ?? '').substring(prefixLength)}`,
80
81
  Tsize: link.Tsize
81
82
  });
82
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remove-link.js","sourceRoot":"","sources":["../../../../src/commands/utils/remove-link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remove-link.js","sourceRoot":"","sources":["../../../../src/commands/utils/remove-link.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { GetStore, PutStore } from '../../unixfs.js';
1
+ import type { GetStore, PutStore } from '../../unixfs.ts';
2
2
  import type { AbortOptions } from '@libp2p/interface';
3
3
  import type { PathEntry } from 'ipfs-unixfs-exporter';
4
4
  import type { CID } from 'multiformats/cid';
@@ -1,10 +1,10 @@
1
1
  import { logger } from '@libp2p/logger';
2
2
  import { walkPath } from 'ipfs-unixfs-exporter';
3
3
  import all from 'it-all';
4
- import { DoesNotExistError } from '../../errors.js';
5
- import { addLink } from './add-link.js';
6
- import { cidToDirectory } from './cid-to-directory.js';
7
- import { cidToPBLink } from './cid-to-pblink.js';
4
+ import { DoesNotExistError } from "../../errors.js";
5
+ import { addLink } from "./add-link.js";
6
+ import { cidToDirectory } from "./cid-to-directory.js";
7
+ import { cidToPBLink } from "./cid-to-pblink.js";
8
8
  const log = logger('helia:unixfs:components:utils:resolve');
9
9
  export async function resolve(cid, path, blockstore, options) {
10
10
  if (path == null || path === '') {