@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
@@ -1,11 +1,11 @@
1
1
  import * as dagPB from '@ipld/dag-pb';
2
- import { CID } from 'multiformats/cid';
3
2
  import { logger } from '@libp2p/logger';
4
3
  import { UnixFS } from 'ipfs-unixfs';
5
4
  import { generatePath, updateHamtDirectory } from './hamt-utils.js';
6
- import { sha256 } from 'multiformats/hashes/sha2';
7
- import { InvalidPBNodeError } from './errors.js';
8
- import { InvalidParametersError } from '@helia/interface/errors';
5
+ import { InvalidParametersError, InvalidPBNodeError } from './errors.js';
6
+ import { exporter } from 'ipfs-unixfs-exporter';
7
+ import { persist } from './persist.js';
8
+ import { isOverShardThreshold } from './is-over-shard-threshold.js';
9
9
  const log = logger('helia:unixfs:utils:remove-link');
10
10
  export async function removeLink(parent, name, blockstore, options) {
11
11
  if (parent.node.Data == null) {
@@ -13,10 +13,15 @@ export async function removeLink(parent, name, blockstore, options) {
13
13
  }
14
14
  const meta = UnixFS.unmarshal(parent.node.Data);
15
15
  if (meta.type === 'hamt-sharded-directory') {
16
- log(`Removing ${name} from sharded directory`);
17
- return await removeFromShardedDirectory(parent, name, blockstore, options);
16
+ log(`removing ${name} from sharded directory`);
17
+ const result = await removeFromShardedDirectory(parent, name, blockstore, options);
18
+ if (!(await isOverShardThreshold(result.node, blockstore, options.shardSplitThresholdBytes))) {
19
+ log('converting shard to flat directory %c', parent.cid);
20
+ return await convertToFlatDirectory(result, blockstore, options);
21
+ }
22
+ return result;
18
23
  }
19
- log(`Removing link ${name} regular directory`);
24
+ log(`removing link ${name} regular directory`);
20
25
  return await removeFromDirectory(parent, name, blockstore, options);
21
26
  }
22
27
  const removeFromDirectory = async (parent, name, blockstore, options) => {
@@ -25,9 +30,10 @@ const removeFromDirectory = async (parent, name, blockstore, options) => {
25
30
  return link.Name !== name;
26
31
  });
27
32
  const parentBlock = dagPB.encode(parent.node);
28
- const hash = await sha256.digest(parentBlock);
29
- const parentCid = CID.create(parent.cid.version, dagPB.code, hash);
30
- await blockstore.put(parentCid, parentBlock, options);
33
+ const parentCid = await persist(parentBlock, blockstore, {
34
+ ...options,
35
+ cidVersion: parent.cid.version
36
+ });
31
37
  log(`Updated regular directory ${parentCid}`);
32
38
  return {
33
39
  node: parent.node,
@@ -35,58 +41,140 @@ const removeFromDirectory = async (parent, name, blockstore, options) => {
35
41
  };
36
42
  };
37
43
  const removeFromShardedDirectory = async (parent, name, blockstore, options) => {
38
- const { rootBucket, path } = await generatePath(parent, name, blockstore, options);
44
+ const path = await generatePath(parent, name, blockstore, options);
45
+ // remove file from root bucket
46
+ const rootBucket = path[path.length - 1].bucket;
47
+ if (rootBucket == null) {
48
+ throw new Error('Could not generate HAMT path');
49
+ }
39
50
  await rootBucket.del(name);
40
- const { node } = await updateShard(parent, blockstore, path, name, options);
41
- return await updateHamtDirectory(parent, blockstore, node.Links, rootBucket, options);
51
+ // update all nodes in the shard path
52
+ return await updateShard(path, name, blockstore, options);
42
53
  };
43
- const updateShard = async (parent, blockstore, positions, name, options) => {
44
- const last = positions.pop();
45
- if (last == null) {
46
- throw new InvalidParametersError('Could not find parent');
54
+ /**
55
+ * The `path` param is a list of HAMT path segments starting with th
56
+ */
57
+ const updateShard = async (path, name, blockstore, options) => {
58
+ const fileName = `${path[0].prefix}${name}`;
59
+ // skip first path segment as it is the file to remove
60
+ for (let i = 1; i < path.length; i++) {
61
+ const lastPrefix = path[i - 1].prefix;
62
+ const segment = path[i];
63
+ if (segment.node == null) {
64
+ throw new InvalidParametersError('Path segment had no associated PBNode');
65
+ }
66
+ const link = segment.node.Links
67
+ .find(link => (link.Name ?? '').substring(0, 2) === lastPrefix);
68
+ if (link == null) {
69
+ throw new InvalidParametersError(`No link found with prefix ${lastPrefix} for file ${name}`);
70
+ }
71
+ if (link.Name == null) {
72
+ throw new InvalidParametersError(`${lastPrefix} link had no name`);
73
+ }
74
+ if (link.Name === fileName) {
75
+ log(`removing existing link ${link.Name}`);
76
+ const links = segment.node.Links.filter((nodeLink) => {
77
+ return nodeLink.Name !== link.Name;
78
+ });
79
+ if (segment.bucket == null) {
80
+ throw new Error('Segment bucket was missing');
81
+ }
82
+ await segment.bucket.del(name);
83
+ const result = await updateHamtDirectory({
84
+ Data: segment.node.Data,
85
+ Links: links
86
+ }, blockstore, segment.bucket, options);
87
+ segment.node = result.node;
88
+ segment.cid = result.cid;
89
+ segment.size = result.size;
90
+ }
91
+ if (link.Name === lastPrefix) {
92
+ log(`updating subshard with prefix ${lastPrefix}`);
93
+ const lastSegment = path[i - 1];
94
+ if (lastSegment.node?.Links.length === 1) {
95
+ log(`removing subshard for ${lastPrefix}`);
96
+ // convert subshard back to normal file entry
97
+ const link = lastSegment.node.Links[0];
98
+ link.Name = `${lastPrefix}${(link.Name ?? '').substring(2)}`;
99
+ // remove existing prefix
100
+ segment.node.Links = segment.node.Links.filter((link) => {
101
+ return link.Name !== lastPrefix;
102
+ });
103
+ // add new child
104
+ segment.node.Links.push(link);
105
+ }
106
+ else {
107
+ // replace subshard entry
108
+ log(`replacing subshard for ${lastPrefix}`);
109
+ // remove existing prefix
110
+ segment.node.Links = segment.node.Links.filter((link) => {
111
+ return link.Name !== lastPrefix;
112
+ });
113
+ if (lastSegment.cid == null) {
114
+ throw new Error('Did not persist previous segment');
115
+ }
116
+ // add new child
117
+ segment.node.Links.push({
118
+ Name: lastPrefix,
119
+ Hash: lastSegment.cid,
120
+ Tsize: lastSegment.size
121
+ });
122
+ }
123
+ if (segment.bucket == null) {
124
+ throw new Error('Segment bucket was missing');
125
+ }
126
+ const result = await updateHamtDirectory(segment.node, blockstore, segment.bucket, options);
127
+ segment.node = result.node;
128
+ segment.cid = result.cid;
129
+ segment.size = result.size;
130
+ }
47
131
  }
48
- const { bucket, prefix, node } = last;
49
- if (node == null) {
50
- throw new InvalidParametersError('Could not find parent');
132
+ const rootSegment = path[path.length - 1];
133
+ if (rootSegment == null || rootSegment.cid == null || rootSegment.node == null) {
134
+ throw new InvalidParametersError('Failed to update shard');
51
135
  }
52
- const link = node.Links
53
- .find(link => (link.Name ?? '').substring(0, 2) === prefix);
54
- if (link == null) {
55
- throw new InvalidParametersError(`No link found with prefix ${prefix} for file ${name}`);
56
- }
57
- if (link.Name === `${prefix}${name}`) {
58
- log(`Removing existing link ${link.Name}`);
59
- const links = node.Links.filter((nodeLink) => {
60
- return nodeLink.Name !== link.Name;
61
- });
62
- await bucket.del(name);
63
- parent.node = node;
64
- return await updateHamtDirectory(parent, blockstore, links, bucket, options);
136
+ return {
137
+ cid: rootSegment.cid,
138
+ node: rootSegment.node
139
+ };
140
+ };
141
+ const convertToFlatDirectory = async (parent, blockstore, options) => {
142
+ if (parent.node.Data == null) {
143
+ throw new InvalidParametersError('Invalid parent passed to convertToFlatDirectory');
65
144
  }
66
- log(`Descending into sub-shard ${link.Name} for ${prefix}${name}`);
67
- const result = await updateShard(parent, blockstore, positions, name, options);
68
- const child = {
69
- Hash: result.cid,
70
- Tsize: result.size,
71
- Name: prefix
145
+ const rootNode = {
146
+ Links: []
72
147
  };
73
- if (result.node.Links.length === 1) {
74
- log(`Removing subshard for ${prefix}`);
75
- // convert shard back to normal dir
76
- const link = result.node.Links[0];
77
- child.Name = `${prefix}${(link.Name ?? '').substring(2)}`;
78
- child.Hash = link.Hash;
79
- child.Tsize = link.Tsize ?? 0;
148
+ const dir = await exporter(parent.cid, blockstore);
149
+ if (dir.type !== 'directory') {
150
+ throw new Error('Unexpected node type');
80
151
  }
81
- log(`Updating shard ${prefix} with name ${child.Name}`);
82
- return await updateShardParent(parent, child, prefix, blockstore, bucket, options);
83
- };
84
- const updateShardParent = async (parent, child, oldName, blockstore, bucket, options) => {
85
- // Remove existing link if it exists
86
- const parentLinks = parent.node.Links.filter((link) => {
87
- return link.Name !== oldName;
152
+ for await (const entry of dir.content()) {
153
+ let tsize = 0;
154
+ if (entry.node instanceof Uint8Array) {
155
+ tsize = entry.node.byteLength;
156
+ }
157
+ else {
158
+ tsize = dagPB.encode(entry.node).length;
159
+ }
160
+ rootNode.Links.push({
161
+ Hash: entry.cid,
162
+ Name: entry.name,
163
+ Tsize: tsize
164
+ });
165
+ }
166
+ // copy mode/mtime over if set
167
+ const oldUnixfs = UnixFS.unmarshal(parent.node.Data);
168
+ rootNode.Data = new UnixFS({ type: 'directory', mode: oldUnixfs.mode, mtime: oldUnixfs.mtime }).marshal();
169
+ const block = dagPB.encode(dagPB.prepare(rootNode));
170
+ const cid = await persist(block, blockstore, {
171
+ codec: dagPB,
172
+ cidVersion: parent.cid.version,
173
+ signal: options.signal
88
174
  });
89
- parentLinks.push(child);
90
- return await updateHamtDirectory(parent, blockstore, parentLinks, bucket, options);
175
+ return {
176
+ cid,
177
+ node: rootNode
178
+ };
91
179
  };
92
180
  //# sourceMappingURL=remove-link.js.map
@@ -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,10 +1,10 @@
1
1
  import type { CID } from 'multiformats/cid';
2
- import { Blockstore } from 'ipfs-unixfs-exporter';
3
2
  import type { AbortOptions } from '@libp2p/interfaces';
3
+ import type { Blockstore } from 'interface-blockstore';
4
4
  export interface Segment {
5
5
  name: string;
6
6
  cid: CID;
7
- size: number;
7
+ size: bigint;
8
8
  }
9
9
  export interface ResolveResult {
10
10
  /**
@@ -20,9 +20,12 @@ export interface ResolveResult {
20
20
  segments?: Segment[];
21
21
  }
22
22
  export declare function resolve(cid: CID, path: string | undefined, blockstore: Blockstore, options: AbortOptions): Promise<ResolveResult>;
23
+ export interface UpdatePathCidsOptions extends AbortOptions {
24
+ shardSplitThresholdBytes: number;
25
+ }
23
26
  /**
24
27
  * Where we have descended into a DAG to update a child node, ascend up the DAG creating
25
28
  * new hashes and blocks for the changed content
26
29
  */
27
- export declare function updatePathCids(cid: CID, result: ResolveResult, blockstore: Blockstore, options: AbortOptions): Promise<CID>;
30
+ export declare function updatePathCids(cid: CID, result: ResolveResult, blockstore: Blockstore, options: UpdatePathCidsOptions): Promise<CID>;
28
31
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAUtD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB;AAED,wBAAsB,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAsDxI;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAmClI"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB;AAED,wBAAsB,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAsDxI;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,wBAAwB,EAAE,MAAM,CAAA;CACjC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,CAoC3I"}
@@ -1,7 +1,6 @@
1
1
  import { exporter } from 'ipfs-unixfs-exporter';
2
- import { InvalidParametersError } from '@helia/interface/errors';
3
2
  import { logger } from '@libp2p/logger';
4
- import { DoesNotExistError } from './errors.js';
3
+ import { DoesNotExistError, InvalidParametersError } from './errors.js';
5
4
  import { addLink } from './add-link.js';
6
5
  import { cidToDirectory } from './cid-to-directory.js';
7
6
  import { cidToPBLink } from './cid-to-pblink.js';
@@ -15,7 +14,7 @@ export async function resolve(cid, path, blockstore, options) {
15
14
  const segments = [{
16
15
  name: '',
17
16
  cid,
18
- size: 0
17
+ size: 0n
19
18
  }];
20
19
  for (let i = 0; i < parts.length; i++) {
21
20
  const part = parts[i];
@@ -74,7 +73,8 @@ export async function updatePathCids(cid, result, blockstore, options) {
74
73
  ]);
75
74
  const result = await addLink(directory, pblink, blockstore, {
76
75
  ...options,
77
- allowOverwriting: true
76
+ allowOverwriting: true,
77
+ cidVersion: cid.version
78
78
  });
79
79
  cid = result.cid;
80
80
  parent.cid = cid;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/commands/utils/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/commands/utils/resolve.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import type { CID, Version } from 'multiformats/cid';
2
2
  import type { Blockstore } from 'interface-blockstore';
3
3
  import type { AbortOptions } from '@libp2p/interfaces';
4
- import type { ImportCandidate, ImportResult, UserImporterOptions } from 'ipfs-unixfs-importer';
5
4
  import type { Mtime } from 'ipfs-unixfs';
6
5
  import type { UnixFSEntry } from 'ipfs-unixfs-exporter';
7
6
  export interface UnixFSComponents {
@@ -15,9 +14,11 @@ export interface CatOptions extends AbortOptions {
15
14
  export interface ChmodOptions extends AbortOptions {
16
15
  recursive: boolean;
17
16
  path?: string;
17
+ shardSplitThresholdBytes: number;
18
18
  }
19
19
  export interface CpOptions extends AbortOptions {
20
20
  force: boolean;
21
+ shardSplitThresholdBytes: number;
21
22
  }
22
23
  export interface LsOptions extends AbortOptions {
23
24
  path?: string;
@@ -29,8 +30,10 @@ export interface MkdirOptions extends AbortOptions {
29
30
  force: boolean;
30
31
  mode?: number;
31
32
  mtime?: Mtime;
33
+ shardSplitThresholdBytes: number;
32
34
  }
33
35
  export interface RmOptions extends AbortOptions {
36
+ shardSplitThresholdBytes: number;
34
37
  }
35
38
  export interface StatOptions extends AbortOptions {
36
39
  path?: string;
@@ -51,19 +54,19 @@ export interface UnixFSStats {
51
54
  /**
52
55
  * The size of the file in bytes
53
56
  */
54
- fileSize: number;
57
+ fileSize: bigint;
55
58
  /**
56
59
  * The size of the DAG that holds the file in bytes
57
60
  */
58
- dagSize: number;
61
+ dagSize: bigint;
59
62
  /**
60
63
  * How much of the file is in the local block store
61
64
  */
62
- localFileSize: number;
65
+ localFileSize: bigint;
63
66
  /**
64
67
  * How much of the DAG that holds the file is in the local blockstore
65
68
  */
66
- localDagSize: number;
69
+ localDagSize: bigint;
67
70
  /**
68
71
  * How many blocks make up the DAG - nb. this will only be accurate
69
72
  * if all blocks are present in the local blockstore
@@ -73,15 +76,19 @@ export interface UnixFSStats {
73
76
  * The type of file
74
77
  */
75
78
  type: 'file' | 'directory' | 'raw';
79
+ /**
80
+ * UnixFS metadata about this file or directory. Will not be present
81
+ * if the node is a `raw` type.
82
+ */
83
+ unixfs?: import('ipfs-unixfs').UnixFS;
76
84
  }
77
85
  export interface TouchOptions extends AbortOptions {
78
86
  mtime?: Mtime;
79
87
  path?: string;
80
88
  recursive: boolean;
89
+ shardSplitThresholdBytes: number;
81
90
  }
82
91
  export interface UnixFS {
83
- add: (source: Uint8Array | Iterator<Uint8Array> | AsyncIterator<Uint8Array> | ImportCandidate, options?: Partial<UserImporterOptions>) => Promise<CID>;
84
- addStream: (source: Iterable<ImportCandidate> | AsyncIterable<ImportCandidate>, options?: Partial<UserImporterOptions>) => AsyncGenerator<ImportResult>;
85
92
  cat: (cid: CID, options?: Partial<CatOptions>) => AsyncIterable<Uint8Array>;
86
93
  chmod: (source: CID, mode: number, options?: Partial<ChmodOptions>) => Promise<CID>;
87
94
  cp: (source: CID, target: CID, name: string, options?: Partial<CpOptions>) => Promise<CID>;
@@ -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,4 +1,3 @@
1
- import { add, addStream } from './commands/add.js';
2
1
  import { cat } from './commands/cat.js';
3
2
  import { mkdir } from './commands/mkdir.js';
4
3
  import { cp } from './commands/cp.js';
@@ -11,12 +10,6 @@ class DefaultUnixFS {
11
10
  constructor(components) {
12
11
  this.components = components;
13
12
  }
14
- async add(source, options = {}) {
15
- return await add(source, this.components.blockstore, options);
16
- }
17
- async *addStream(source, options = {}) {
18
- yield* addStream(source, this.components.blockstore, options);
19
- }
20
13
  async *cat(cid, options = {}) {
21
14
  yield* cat(cid, this.components.blockstore, options);
22
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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"}
@@ -0,0 +1,14 @@
1
+ {
2
+ "CatOptions": "https://ipfs.github.io/helia-unixfs/interfaces/CatOptions.html",
3
+ "ChmodOptions": "https://ipfs.github.io/helia-unixfs/interfaces/ChmodOptions.html",
4
+ "CpOptions": "https://ipfs.github.io/helia-unixfs/interfaces/CpOptions.html",
5
+ "LsOptions": "https://ipfs.github.io/helia-unixfs/interfaces/LsOptions.html",
6
+ "MkdirOptions": "https://ipfs.github.io/helia-unixfs/interfaces/MkdirOptions.html",
7
+ "RmOptions": "https://ipfs.github.io/helia-unixfs/interfaces/RmOptions.html",
8
+ "StatOptions": "https://ipfs.github.io/helia-unixfs/interfaces/StatOptions.html",
9
+ "TouchOptions": "https://ipfs.github.io/helia-unixfs/interfaces/TouchOptions.html",
10
+ "UnixFS": "https://ipfs.github.io/helia-unixfs/interfaces/UnixFS.html",
11
+ "UnixFSComponents": "https://ipfs.github.io/helia-unixfs/interfaces/UnixFSComponents.html",
12
+ "UnixFSStats": "https://ipfs.github.io/helia-unixfs/interfaces/UnixFSStats.html",
13
+ "unixfs": "https://ipfs.github.io/helia-unixfs/functions/unixfs-1.html"
14
+ }
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@helia/unixfs",
3
- "version": "0.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "A Helia-compatible wrapper for UnixFS",
5
5
  "license": "Apache-2.0 OR MIT",
6
- "homepage": "https://github.com/ipfs/helia/tree/master/packages/unixfs#readme",
6
+ "homepage": "https://github.com/ipfs/helia-unixfs#readme",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/ipfs/helia.git"
9
+ "url": "git+https://github.com/ipfs/helia-unixfs.git"
10
10
  },
11
11
  "bugs": {
12
- "url": "https://github.com/ipfs/helia/issues"
12
+ "url": "https://github.com/ipfs/helia-unixfs/issues"
13
13
  },
14
14
  "keywords": [
15
15
  "IPFS"
@@ -146,9 +146,9 @@
146
146
  "@multiformats/murmur3": "^2.1.2",
147
147
  "hamt-sharding": "^3.0.2",
148
148
  "interface-blockstore": "^4.0.1",
149
- "ipfs-unixfs": "^9.0.0",
150
- "ipfs-unixfs-exporter": "^10.0.0",
151
- "ipfs-unixfs-importer": "^12.0.0",
149
+ "ipfs-unixfs": "^11.0.0",
150
+ "ipfs-unixfs-exporter": "^12.0.0",
151
+ "ipfs-unixfs-importer": "^14.0.1",
152
152
  "it-last": "^2.0.0",
153
153
  "it-pipe": "^2.0.5",
154
154
  "merge-options": "^3.0.4",
@@ -160,6 +160,7 @@
160
160
  "delay": "^5.0.0",
161
161
  "it-all": "^2.0.0",
162
162
  "it-drain": "^2.0.0",
163
+ "it-first": "^2.0.0",
163
164
  "it-to-buffer": "^3.0.0",
164
165
  "uint8arrays": "^4.0.3"
165
166
  }
@@ -1,9 +1,10 @@
1
- import { NoContentError, NotAFileError } from '@helia/interface/errors'
2
- import { Blockstore, exporter } from 'ipfs-unixfs-exporter'
1
+ import { exporter } from 'ipfs-unixfs-exporter'
3
2
  import type { CID } from 'multiformats/cid'
4
3
  import type { CatOptions } from '../index.js'
5
4
  import { resolve } from './utils/resolve.js'
6
5
  import mergeOpts from 'merge-options'
6
+ import type { Blockstore } from 'interface-blockstore'
7
+ import { NoContentError, NotAFileError } from './utils/errors.js'
7
8
 
8
9
  const mergeOptions = mergeOpts.bind({ ignoreUndefined: true })
9
10
 
@@ -15,12 +15,14 @@ import last from 'it-last'
15
15
  import { sha256 } from 'multiformats/hashes/sha2'
16
16
  import { resolve, updatePathCids } from './utils/resolve.js'
17
17
  import * as raw from 'multiformats/codecs/raw'
18
+ import { SHARD_SPLIT_THRESHOLD_BYTES } from './utils/constants.js'
18
19
 
19
20
  const mergeOptions = mergeOpts.bind({ ignoreUndefined: true })
20
21
  const log = logger('helia:unixfs:chmod')
21
22
 
22
23
  const defaultOptions: ChmodOptions = {
23
- recursive: false
24
+ recursive: false,
25
+ shardSplitThresholdBytes: SHARD_SPLIT_THRESHOLD_BYTES
24
26
  }
25
27
 
26
28
  export async function chmod (cid: CID, mode: number, blockstore: Blockstore, options: Partial<ChmodOptions> = {}): Promise<CID> {
@@ -61,28 +63,29 @@ export async function chmod (cid: CID, mode: number, blockstore: Blockstore, opt
61
63
  }
62
64
  }
63
65
  },
64
- // @ts-expect-error we account for the incompatible source type with our custom dag builder below
65
66
  (source) => importer(source, blockstore, {
66
67
  ...opts,
67
- pin: false,
68
- dagBuilder: async function * (source, block, opts) {
68
+ dagBuilder: async function * (source, block) {
69
69
  for await (const entry of source) {
70
70
  yield async function () {
71
71
  // @ts-expect-error cannot derive type
72
72
  const node: PBNode = entry.content
73
73
 
74
74
  const buf = dagPB.encode(node)
75
- const cid = await persist(buf, block, opts)
75
+ const updatedCid = await persist(buf, block, {
76
+ ...opts,
77
+ cidVersion: cid.version
78
+ })
76
79
 
77
80
  if (node.Data == null) {
78
- throw new InvalidPBNodeError(`${cid} had no data`)
81
+ throw new InvalidPBNodeError(`${updatedCid} had no data`)
79
82
  }
80
83
 
81
84
  const unixfs = UnixFS.unmarshal(node.Data)
82
85
 
83
86
  return {
84
- cid,
85
- size: buf.length,
87
+ cid: updatedCid,
88
+ size: BigInt(buf.length),
86
89
  path: entry.path,
87
90
  unixfs
88
91
  }
@@ -97,7 +100,7 @@ export async function chmod (cid: CID, mode: number, blockstore: Blockstore, opt
97
100
  throw new UnknownError(`Could not chmod ${resolved.cid.toString()}`)
98
101
  }
99
102
 
100
- return await updatePathCids(root.cid, resolved, blockstore, options)
103
+ return await updatePathCids(root.cid, resolved, blockstore, opts)
101
104
  }
102
105
 
103
106
  const block = await blockstore.get(resolved.cid)
@@ -129,5 +132,5 @@ export async function chmod (cid: CID, mode: number, blockstore: Blockstore, opt
129
132
 
130
133
  await blockstore.put(updatedCid, updatedBlock)
131
134
 
132
- return await updatePathCids(updatedCid, resolved, blockstore, options)
135
+ return await updatePathCids(updatedCid, resolved, blockstore, opts)
133
136
  }