@helia/unixfs 1.4.1 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/index.min.js +1 -1
- package/dist/src/commands/cat.js.map +1 -1
- package/dist/src/commands/chmod.js.map +1 -1
- package/dist/src/commands/cp.js.map +1 -1
- package/dist/src/commands/ls.js.map +1 -1
- package/dist/src/commands/mkdir.js.map +1 -1
- package/dist/src/commands/rm.js.map +1 -1
- package/dist/src/commands/stat.js.map +1 -1
- package/dist/src/commands/touch.js.map +1 -1
- package/dist/src/commands/utils/add-link.d.ts +1 -1
- package/dist/src/commands/utils/add-link.d.ts.map +1 -1
- package/dist/src/commands/utils/add-link.js.map +1 -1
- package/dist/src/commands/utils/cid-to-directory.js.map +1 -1
- package/dist/src/commands/utils/cid-to-pblink.js.map +1 -1
- package/dist/src/commands/utils/constants.d.ts.map +1 -1
- package/dist/src/commands/utils/constants.js.map +1 -1
- package/dist/src/commands/utils/consumable-hash.js.map +1 -1
- package/dist/src/commands/utils/dir-sharded.js.map +1 -1
- package/dist/src/commands/utils/hamt-utils.d.ts +1 -1
- package/dist/src/commands/utils/hamt-utils.d.ts.map +1 -1
- package/dist/src/commands/utils/hamt-utils.js.map +1 -1
- package/dist/src/commands/utils/is-over-shard-threshold.d.ts +1 -1
- package/dist/src/commands/utils/is-over-shard-threshold.d.ts.map +1 -1
- package/dist/src/commands/utils/is-over-shard-threshold.js.map +1 -1
- package/dist/src/commands/utils/persist.js.map +1 -1
- package/dist/src/commands/utils/remove-link.d.ts +1 -1
- package/dist/src/commands/utils/remove-link.d.ts.map +1 -1
- package/dist/src/commands/utils/remove-link.js.map +1 -1
- package/dist/src/commands/utils/resolve.d.ts +1 -1
- package/dist/src/commands/utils/resolve.d.ts.map +1 -1
- package/dist/src/commands/utils/resolve.js.map +1 -1
- package/dist/src/index.d.ts +15 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/utils/glob-source.d.ts.map +1 -1
- package/dist/src/utils/glob-source.js +5 -4
- package/dist/src/utils/glob-source.js.map +1 -1
- package/dist/src/utils/to-mtime.d.ts +4 -0
- package/dist/src/utils/to-mtime.d.ts.map +1 -0
- package/dist/src/utils/to-mtime.js +42 -0
- package/dist/src/utils/to-mtime.js.map +1 -0
- package/dist/src/utils/url-source.js.map +1 -1
- package/dist/typedoc-urls.json +25 -1
- package/package.json +10 -14
- package/src/commands/stat.ts +1 -1
- package/src/commands/utils/add-link.ts +1 -1
- package/src/commands/utils/constants.ts +0 -1
- package/src/commands/utils/hamt-utils.ts +1 -1
- package/src/commands/utils/is-over-shard-threshold.ts +1 -1
- package/src/commands/utils/remove-link.ts +1 -2
- package/src/commands/utils/resolve.ts +1 -1
- package/src/index.ts +15 -15
- package/src/utils/glob-source.ts +5 -4
- package/src/utils/to-mtime.ts +57 -0
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAWH,OAAO,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob-source.d.ts","sourceRoot":"","sources":["../../../src/utils/glob-source.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glob-source.d.ts","sourceRoot":"","sources":["../../../src/utils/glob-source.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;IAC9C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAC7B;AAED;;GAEG;AACH,wBAAwB,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,qBAAqB,CAuCxH"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import fs from '
|
|
2
|
-
import fsp from '
|
|
3
|
-
import Path from '
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import fsp from 'fs/promises';
|
|
3
|
+
import Path from 'path';
|
|
4
4
|
import glob from 'it-glob';
|
|
5
5
|
import { InvalidParametersError } from '../errors.js';
|
|
6
|
+
import { toMtime } from './to-mtime.js';
|
|
6
7
|
/**
|
|
7
8
|
* Create an async iterator that yields paths that match requested glob pattern
|
|
8
9
|
*/
|
|
@@ -34,7 +35,7 @@ export async function* globSource(cwd, pattern, options = {}) {
|
|
|
34
35
|
path: toPosix(p.replace(cwd, '')),
|
|
35
36
|
content: stat.isFile() ? fs.createReadStream(p) : undefined,
|
|
36
37
|
mode,
|
|
37
|
-
mtime
|
|
38
|
+
mtime: toMtime(mtime)
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob-source.js","sourceRoot":"","sources":["../../../src/utils/glob-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"glob-source.js","sourceRoot":"","sources":["../../../src/utils/glob-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AA2CvC;;GAEG;AACH,MAAM,CAAC,KAAK,SAAU,CAAC,CAAC,UAAU,CAAE,GAAW,EAAE,OAAe,EAAE,UAA6B,EAAE;IAC/F,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,sBAAsB,CAAC,0BAA0B,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;QACpC,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5B,MAAM,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;KACvE,CAAC,CAAA;IAEF,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE9B,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAEvB,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;QAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAEzB,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACnC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,CAAC;QAED,MAAM;YACJ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,IAAI;YACJ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;SACtB,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-mtime.d.ts","sourceRoot":"","sources":["../../../src/utils/to-mtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEnD,wBAAgB,OAAO,CAAE,SAAS,EAAE,SAAS,GAAG,KAAK,CAAA;AACrD,wBAAgB,OAAO,CAAE,SAAS,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export function toMtime(mtimeLike) {
|
|
2
|
+
if (mtimeLike == null) {
|
|
3
|
+
return undefined;
|
|
4
|
+
}
|
|
5
|
+
if (isMtime(mtimeLike)) {
|
|
6
|
+
return mtimeLike;
|
|
7
|
+
}
|
|
8
|
+
if (mtimeLike instanceof Date) {
|
|
9
|
+
return dateToTimespec(mtimeLike);
|
|
10
|
+
}
|
|
11
|
+
if (Array.isArray(mtimeLike)) {
|
|
12
|
+
const output = {
|
|
13
|
+
secs: BigInt(mtimeLike[0])
|
|
14
|
+
};
|
|
15
|
+
if (mtimeLike.length > 1) {
|
|
16
|
+
output.nsecs = mtimeLike[1];
|
|
17
|
+
}
|
|
18
|
+
return output;
|
|
19
|
+
}
|
|
20
|
+
if (typeof mtimeLike.Seconds === 'number') {
|
|
21
|
+
const output = {
|
|
22
|
+
secs: BigInt(mtimeLike.Seconds)
|
|
23
|
+
};
|
|
24
|
+
if (mtimeLike.FractionalNanoseconds != null) {
|
|
25
|
+
output.nsecs = mtimeLike.FractionalNanoseconds;
|
|
26
|
+
}
|
|
27
|
+
return output;
|
|
28
|
+
}
|
|
29
|
+
throw new Error('Cannot convert object to mtime');
|
|
30
|
+
}
|
|
31
|
+
function dateToTimespec(date) {
|
|
32
|
+
const ms = date.getTime();
|
|
33
|
+
const secs = Math.floor(ms / 1000);
|
|
34
|
+
return {
|
|
35
|
+
secs: BigInt(secs),
|
|
36
|
+
nsecs: (ms - (secs * 1000)) * 1000
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function isMtime(obj) {
|
|
40
|
+
return typeof obj.secs === 'bigint';
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=to-mtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-mtime.js","sourceRoot":"","sources":["../../../src/utils/to-mtime.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,OAAO,CAAE,SAAqB;IAC5C,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,SAAS,YAAY,IAAI,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAU;YACpB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC3B,CAAA;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC7B,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAU;YACpB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;SAChC,CAAA;QAED,IAAI,SAAS,CAAC,qBAAqB,IAAI,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,qBAAqB,CAAA;QAChD,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,cAAc,CAAE,IAAU;IACjC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IAElC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI;KACnC,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAE,GAAQ;IACxB,OAAO,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAA;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-source.js","sourceRoot":"","sources":["../../../src/utils/url-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,UAAU,SAAS,CAAE,GAAQ,EAAE,OAAqB;IACxD,OAAO;QACL,IAAI,EAAE,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACtE,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;KACtC,CAAA;AACH,CAAC;AAED,KAAK,SAAU,CAAC,CAAC,cAAc,CAAE,GAAQ,EAAE,OAAqB;IAC9D,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAErD,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"url-source.js","sourceRoot":"","sources":["../../../src/utils/url-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,UAAU,SAAS,CAAE,GAAQ,EAAE,OAAqB;IACxD,OAAO;QACL,IAAI,EAAE,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACtE,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;KACtC,CAAA;AACH,CAAC;AAED,KAAK,SAAU,CAAC,CAAC,cAAc,CAAE,GAAQ,EAAE,OAAqB;IAC9D,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAErD,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,YAAY,CAAC,mCAAmC,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IAExC,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAE3C,IAAI,IAAI,EAAE,CAAC;gBACT,OAAM;YACR,CAAC;YAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;AACH,CAAC"}
|
package/dist/typedoc-urls.json
CHANGED
|
@@ -1,30 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"AlreadyExistsError": "https://ipfs.github.io/helia-unixfs/classes/errors.AlreadyExistsError.html",
|
|
3
|
+
"./errors:AlreadyExistsError": "https://ipfs.github.io/helia-unixfs/classes/errors.AlreadyExistsError.html",
|
|
3
4
|
"DoesNotExistError": "https://ipfs.github.io/helia-unixfs/classes/errors.DoesNotExistError.html",
|
|
5
|
+
"./errors:DoesNotExistError": "https://ipfs.github.io/helia-unixfs/classes/errors.DoesNotExistError.html",
|
|
4
6
|
"InvalidPBNodeError": "https://ipfs.github.io/helia-unixfs/classes/errors.InvalidPBNodeError.html",
|
|
7
|
+
"./errors:InvalidPBNodeError": "https://ipfs.github.io/helia-unixfs/classes/errors.InvalidPBNodeError.html",
|
|
5
8
|
"InvalidParametersError": "https://ipfs.github.io/helia-unixfs/classes/errors.InvalidParametersError.html",
|
|
9
|
+
"./errors:InvalidParametersError": "https://ipfs.github.io/helia-unixfs/classes/errors.InvalidParametersError.html",
|
|
6
10
|
"NoContentError": "https://ipfs.github.io/helia-unixfs/classes/errors.NoContentError.html",
|
|
11
|
+
"./errors:NoContentError": "https://ipfs.github.io/helia-unixfs/classes/errors.NoContentError.html",
|
|
7
12
|
"NotADirectoryError": "https://ipfs.github.io/helia-unixfs/classes/errors.NotADirectoryError.html",
|
|
13
|
+
"./errors:NotADirectoryError": "https://ipfs.github.io/helia-unixfs/classes/errors.NotADirectoryError.html",
|
|
8
14
|
"NotAFileError": "https://ipfs.github.io/helia-unixfs/classes/errors.NotAFileError.html",
|
|
15
|
+
"./errors:NotAFileError": "https://ipfs.github.io/helia-unixfs/classes/errors.NotAFileError.html",
|
|
9
16
|
"NotUnixFSError": "https://ipfs.github.io/helia-unixfs/classes/errors.NotUnixFSError.html",
|
|
17
|
+
"./errors:NotUnixFSError": "https://ipfs.github.io/helia-unixfs/classes/errors.NotUnixFSError.html",
|
|
10
18
|
"UnixFSError": "https://ipfs.github.io/helia-unixfs/classes/errors.UnixFSError.html",
|
|
19
|
+
"./errors:UnixFSError": "https://ipfs.github.io/helia-unixfs/classes/errors.UnixFSError.html",
|
|
11
20
|
"UnknownError": "https://ipfs.github.io/helia-unixfs/classes/errors.UnknownError.html",
|
|
12
|
-
"
|
|
21
|
+
"./errors:UnknownError": "https://ipfs.github.io/helia-unixfs/classes/errors.UnknownError.html",
|
|
13
22
|
"AddOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.AddOptions.html",
|
|
23
|
+
".:AddOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.AddOptions.html",
|
|
14
24
|
"CatOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.CatOptions.html",
|
|
25
|
+
".:CatOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.CatOptions.html",
|
|
15
26
|
"ChmodOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.ChmodOptions.html",
|
|
27
|
+
".:ChmodOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.ChmodOptions.html",
|
|
16
28
|
"CpOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.CpOptions.html",
|
|
29
|
+
".:CpOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.CpOptions.html",
|
|
17
30
|
"LsOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.LsOptions.html",
|
|
31
|
+
".:LsOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.LsOptions.html",
|
|
18
32
|
"MkdirOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.MkdirOptions.html",
|
|
33
|
+
".:MkdirOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.MkdirOptions.html",
|
|
19
34
|
"RmOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.RmOptions.html",
|
|
35
|
+
".:RmOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.RmOptions.html",
|
|
20
36
|
"StatOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.StatOptions.html",
|
|
37
|
+
".:StatOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.StatOptions.html",
|
|
21
38
|
"TouchOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.TouchOptions.html",
|
|
39
|
+
".:TouchOptions": "https://ipfs.github.io/helia-unixfs/interfaces/index.TouchOptions.html",
|
|
22
40
|
"UnixFS": "https://ipfs.github.io/helia-unixfs/interfaces/index.UnixFS.html",
|
|
41
|
+
".:UnixFS": "https://ipfs.github.io/helia-unixfs/interfaces/index.UnixFS.html",
|
|
23
42
|
"UnixFSComponents": "https://ipfs.github.io/helia-unixfs/interfaces/index.UnixFSComponents.html",
|
|
43
|
+
".:UnixFSComponents": "https://ipfs.github.io/helia-unixfs/interfaces/index.UnixFSComponents.html",
|
|
24
44
|
"UnixFSStats": "https://ipfs.github.io/helia-unixfs/interfaces/index.UnixFSStats.html",
|
|
45
|
+
".:UnixFSStats": "https://ipfs.github.io/helia-unixfs/interfaces/index.UnixFSStats.html",
|
|
25
46
|
"AddEvents": "https://ipfs.github.io/helia-unixfs/types/index.AddEvents.html",
|
|
47
|
+
".:AddEvents": "https://ipfs.github.io/helia-unixfs/types/index.AddEvents.html",
|
|
26
48
|
"GetEvents": "https://ipfs.github.io/helia-unixfs/types/index.GetEvents.html",
|
|
49
|
+
".:GetEvents": "https://ipfs.github.io/helia-unixfs/types/index.GetEvents.html",
|
|
27
50
|
"globSource": "https://ipfs.github.io/helia-unixfs/functions/index.globSource.html",
|
|
28
51
|
"unixfs": "https://ipfs.github.io/helia-unixfs/functions/index.unixfs-1.html",
|
|
52
|
+
".:unixfs": "https://ipfs.github.io/helia-unixfs/functions/index.unixfs-1.html",
|
|
29
53
|
"urlSource": "https://ipfs.github.io/helia-unixfs/functions/index.urlSource.html"
|
|
30
54
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/unixfs",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "A Helia-compatible wrapper for UnixFS",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia-unixfs/tree/master/packages/unixfs#readme",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"eslintConfig": {
|
|
52
52
|
"extends": "ipfs",
|
|
53
53
|
"parserOptions": {
|
|
54
|
+
"project": true,
|
|
54
55
|
"sourceType": "module"
|
|
55
56
|
}
|
|
56
57
|
},
|
|
@@ -144,7 +145,6 @@
|
|
|
144
145
|
"lint": "aegir lint",
|
|
145
146
|
"dep-check": "aegir dep-check",
|
|
146
147
|
"build": "aegir build",
|
|
147
|
-
"docs": "aegir docs",
|
|
148
148
|
"test": "aegir test",
|
|
149
149
|
"test:chrome": "aegir test -t browser --cov",
|
|
150
150
|
"test:chrome-webworker": "aegir test -t webworker",
|
|
@@ -155,10 +155,10 @@
|
|
|
155
155
|
"release": "aegir release"
|
|
156
156
|
},
|
|
157
157
|
"dependencies": {
|
|
158
|
-
"@helia/interface": "^
|
|
158
|
+
"@helia/interface": "^2.0.0",
|
|
159
159
|
"@ipld/dag-pb": "^4.0.0",
|
|
160
|
-
"@libp2p/
|
|
161
|
-
"@libp2p/logger": "^
|
|
160
|
+
"@libp2p/interface": "^0.1.2",
|
|
161
|
+
"@libp2p/logger": "^3.0.2",
|
|
162
162
|
"@multiformats/murmur3": "^2.1.2",
|
|
163
163
|
"hamt-sharding": "^3.0.2",
|
|
164
164
|
"interface-blockstore": "^5.0.0",
|
|
@@ -169,12 +169,12 @@
|
|
|
169
169
|
"it-last": "^3.0.1",
|
|
170
170
|
"it-pipe": "^3.0.1",
|
|
171
171
|
"merge-options": "^3.0.4",
|
|
172
|
-
"multiformats": "^
|
|
172
|
+
"multiformats": "^12.1.1",
|
|
173
173
|
"progress-events": "^1.0.0",
|
|
174
174
|
"sparse-array": "^1.3.2"
|
|
175
175
|
},
|
|
176
176
|
"devDependencies": {
|
|
177
|
-
"aegir": "^
|
|
177
|
+
"aegir": "^41.0.0",
|
|
178
178
|
"blockstore-core": "^4.0.1",
|
|
179
179
|
"delay": "^6.0.0",
|
|
180
180
|
"iso-url": "^1.2.1",
|
|
@@ -185,14 +185,10 @@
|
|
|
185
185
|
"uint8arrays": "^4.0.3",
|
|
186
186
|
"wherearewe": "^2.0.1"
|
|
187
187
|
},
|
|
188
|
-
"typedoc": {
|
|
189
|
-
"entryPoint": "./src/index.ts"
|
|
190
|
-
},
|
|
191
188
|
"browser": {
|
|
192
189
|
"./dist/src/utils/glob-source.js": false,
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
"node:url": false
|
|
190
|
+
"fs": false,
|
|
191
|
+
"path": false,
|
|
192
|
+
"url": false
|
|
197
193
|
}
|
|
198
194
|
}
|
package/src/commands/stat.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { InvalidPBNodeError, NotUnixFSError, UnknownError } from '../errors.js'
|
|
|
8
8
|
import { resolve } from './utils/resolve.js'
|
|
9
9
|
import type { StatOptions, UnixFSStats } from '../index.js'
|
|
10
10
|
import type { Blocks } from '@helia/interface/blocks'
|
|
11
|
-
import type { AbortOptions } from '@libp2p/
|
|
11
|
+
import type { AbortOptions } from '@libp2p/interface'
|
|
12
12
|
import type { Mtime } from 'ipfs-unixfs'
|
|
13
13
|
import type { CID } from 'multiformats/cid'
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@ import { isOverShardThreshold } from './is-over-shard-threshold.js'
|
|
|
19
19
|
import type { Directory } from './cid-to-directory.js'
|
|
20
20
|
import type { Blocks } from '@helia/interface/blocks'
|
|
21
21
|
import type { PBNode, PBLink } from '@ipld/dag-pb/interface'
|
|
22
|
-
import type { AbortOptions } from '@libp2p/
|
|
22
|
+
import type { AbortOptions } from '@libp2p/interface'
|
|
23
23
|
import type { ImportResult } from 'ipfs-unixfs-importer'
|
|
24
24
|
|
|
25
25
|
const log = logger('helia:unixfs:components:utils:add-link')
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
import { persist } from './persist.js'
|
|
16
16
|
import type { PersistOptions } from './persist.js'
|
|
17
17
|
import type { Blocks } from '@helia/interface/blocks'
|
|
18
|
-
import type { AbortOptions } from '@libp2p/
|
|
18
|
+
import type { AbortOptions } from '@libp2p/interface'
|
|
19
19
|
import type { Mtime } from 'ipfs-unixfs'
|
|
20
20
|
import type { ImportResult } from 'ipfs-unixfs-importer'
|
|
21
21
|
import type { CID, Version } from 'multiformats/cid'
|
|
@@ -3,7 +3,7 @@ import { UnixFS } from 'ipfs-unixfs'
|
|
|
3
3
|
import { CID_V0, CID_V1 } from './dir-sharded.js'
|
|
4
4
|
import type { Blocks } from '@helia/interface/blocks'
|
|
5
5
|
import type { PBNode } from '@ipld/dag-pb'
|
|
6
|
-
import type { AbortOptions } from '@libp2p/
|
|
6
|
+
import type { AbortOptions } from '@libp2p/interface'
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Estimate node size only based on DAGLink name and CID byte lengths
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
import * as dagPB from '@ipld/dag-pb'
|
|
3
2
|
import { logger } from '@libp2p/logger'
|
|
4
3
|
import { UnixFS } from 'ipfs-unixfs'
|
|
@@ -14,7 +13,7 @@ import { persist } from './persist.js'
|
|
|
14
13
|
import type { Directory } from './cid-to-directory.js'
|
|
15
14
|
import type { Blocks } from '@helia/interface/blocks'
|
|
16
15
|
import type { PBNode } from '@ipld/dag-pb'
|
|
17
|
-
import type { AbortOptions } from '@libp2p/
|
|
16
|
+
import type { AbortOptions } from '@libp2p/interface'
|
|
18
17
|
import type { CID, Version } from 'multiformats/cid'
|
|
19
18
|
|
|
20
19
|
const log = logger('helia:unixfs:utils:remove-link')
|
|
@@ -5,7 +5,7 @@ import { addLink } from './add-link.js'
|
|
|
5
5
|
import { cidToDirectory } from './cid-to-directory.js'
|
|
6
6
|
import { cidToPBLink } from './cid-to-pblink.js'
|
|
7
7
|
import type { Blocks } from '@helia/interface/blocks'
|
|
8
|
-
import type { AbortOptions } from '@libp2p/
|
|
8
|
+
import type { AbortOptions } from '@libp2p/interface'
|
|
9
9
|
import type { CID } from 'multiformats/cid'
|
|
10
10
|
|
|
11
11
|
const log = logger('helia:unixfs:components:utils:resolve')
|
package/src/index.ts
CHANGED
|
@@ -53,7 +53,7 @@ import { rm } from './commands/rm.js'
|
|
|
53
53
|
import { stat } from './commands/stat.js'
|
|
54
54
|
import { touch } from './commands/touch.js'
|
|
55
55
|
import type { Blocks, GetBlockProgressEvents, PutBlockProgressEvents } from '@helia/interface/blocks'
|
|
56
|
-
import type { AbortOptions } from '@libp2p/
|
|
56
|
+
import type { AbortOptions } from '@libp2p/interface'
|
|
57
57
|
import type { Mtime, UnixFS as IPFSUnixFS } from 'ipfs-unixfs'
|
|
58
58
|
import type { ExporterProgressEvents, UnixFSEntry } from 'ipfs-unixfs-exporter'
|
|
59
59
|
import type { ByteStream, DirectoryCandidate, FileCandidate, ImportCandidateStream, ImporterOptions, ImporterProgressEvents, ImportResult } from 'ipfs-unixfs-importer'
|
|
@@ -363,7 +363,7 @@ export interface UnixFS {
|
|
|
363
363
|
* }
|
|
364
364
|
* ```
|
|
365
365
|
*/
|
|
366
|
-
addAll
|
|
366
|
+
addAll(source: ImportCandidateStream, options?: Partial<AddOptions>): AsyncIterable<ImportResult>
|
|
367
367
|
|
|
368
368
|
/**
|
|
369
369
|
* Add a single `Uint8Array` to your Helia node as a file.
|
|
@@ -376,7 +376,7 @@ export interface UnixFS {
|
|
|
376
376
|
* console.info(cid)
|
|
377
377
|
* ```
|
|
378
378
|
*/
|
|
379
|
-
addBytes
|
|
379
|
+
addBytes(bytes: Uint8Array, options?: Partial<AddOptions>): Promise<CID>
|
|
380
380
|
|
|
381
381
|
/**
|
|
382
382
|
* Add a stream of `Uint8Array` to your Helia node as a file.
|
|
@@ -384,7 +384,7 @@ export interface UnixFS {
|
|
|
384
384
|
* @example
|
|
385
385
|
*
|
|
386
386
|
* ```typescript
|
|
387
|
-
* import fs from '
|
|
387
|
+
* import fs from 'fs'
|
|
388
388
|
*
|
|
389
389
|
* const stream = fs.createReadStream('./foo.txt')
|
|
390
390
|
* const cid = await fs.addByteStream(stream)
|
|
@@ -392,7 +392,7 @@ export interface UnixFS {
|
|
|
392
392
|
* console.info(cid)
|
|
393
393
|
* ```
|
|
394
394
|
*/
|
|
395
|
-
addByteStream
|
|
395
|
+
addByteStream(bytes: ByteStream, options?: Partial<AddOptions>): Promise<CID>
|
|
396
396
|
|
|
397
397
|
/**
|
|
398
398
|
* Add a file to your Helia node with optional metadata.
|
|
@@ -413,7 +413,7 @@ export interface UnixFS {
|
|
|
413
413
|
* console.info(cid)
|
|
414
414
|
* ```
|
|
415
415
|
*/
|
|
416
|
-
addFile
|
|
416
|
+
addFile(file: FileCandidate, options?: Partial<AddOptions>): Promise<CID>
|
|
417
417
|
|
|
418
418
|
/**
|
|
419
419
|
* Add a directory to your Helia node.
|
|
@@ -426,7 +426,7 @@ export interface UnixFS {
|
|
|
426
426
|
* console.info(cid)
|
|
427
427
|
* ```
|
|
428
428
|
*/
|
|
429
|
-
addDirectory
|
|
429
|
+
addDirectory(dir?: Partial<DirectoryCandidate>, options?: Partial<AddOptions>): Promise<CID>
|
|
430
430
|
|
|
431
431
|
/**
|
|
432
432
|
* Retrieve the contents of a file from your Helia node.
|
|
@@ -439,7 +439,7 @@ export interface UnixFS {
|
|
|
439
439
|
* }
|
|
440
440
|
* ```
|
|
441
441
|
*/
|
|
442
|
-
cat
|
|
442
|
+
cat(cid: CID, options?: Partial<CatOptions>): AsyncIterable<Uint8Array>
|
|
443
443
|
|
|
444
444
|
/**
|
|
445
445
|
* Change the permissions on a file or directory in a DAG
|
|
@@ -457,7 +457,7 @@ export interface UnixFS {
|
|
|
457
457
|
* console.info(afterCid, afterStats)
|
|
458
458
|
* ```
|
|
459
459
|
*/
|
|
460
|
-
chmod
|
|
460
|
+
chmod(cid: CID, mode: number, options?: Partial<ChmodOptions>): Promise<CID>
|
|
461
461
|
|
|
462
462
|
/**
|
|
463
463
|
* Add a file or directory to a target directory.
|
|
@@ -473,7 +473,7 @@ export interface UnixFS {
|
|
|
473
473
|
* console.info(updatedCid)
|
|
474
474
|
* ```
|
|
475
475
|
*/
|
|
476
|
-
cp
|
|
476
|
+
cp(source: CID, target: CID, name: string, options?: Partial<CpOptions>): Promise<CID>
|
|
477
477
|
|
|
478
478
|
/**
|
|
479
479
|
* List directory contents.
|
|
@@ -486,7 +486,7 @@ export interface UnixFS {
|
|
|
486
486
|
* }
|
|
487
487
|
* ```
|
|
488
488
|
*/
|
|
489
|
-
ls
|
|
489
|
+
ls(cid: CID, options?: Partial<LsOptions>): AsyncIterable<UnixFSEntry>
|
|
490
490
|
|
|
491
491
|
/**
|
|
492
492
|
* Make a new directory under an existing directory.
|
|
@@ -501,7 +501,7 @@ export interface UnixFS {
|
|
|
501
501
|
* console.info(updatedCid)
|
|
502
502
|
* ```
|
|
503
503
|
*/
|
|
504
|
-
mkdir
|
|
504
|
+
mkdir(cid: CID, dirname: string, options?: Partial<MkdirOptions>): Promise<CID>
|
|
505
505
|
|
|
506
506
|
/**
|
|
507
507
|
* Remove a file or directory from an existing directory.
|
|
@@ -517,7 +517,7 @@ export interface UnixFS {
|
|
|
517
517
|
* console.info(finalCid)
|
|
518
518
|
* ```
|
|
519
519
|
*/
|
|
520
|
-
rm
|
|
520
|
+
rm(cid: CID, path: string, options?: Partial<RmOptions>): Promise<CID>
|
|
521
521
|
|
|
522
522
|
/**
|
|
523
523
|
* Return statistics about a UnixFS DAG.
|
|
@@ -532,7 +532,7 @@ export interface UnixFS {
|
|
|
532
532
|
* console.info(stats)
|
|
533
533
|
* ```
|
|
534
534
|
*/
|
|
535
|
-
stat
|
|
535
|
+
stat(cid: CID, options?: Partial<StatOptions>): Promise<UnixFSStats>
|
|
536
536
|
|
|
537
537
|
/**
|
|
538
538
|
* Update the mtime of a UnixFS DAG
|
|
@@ -550,7 +550,7 @@ export interface UnixFS {
|
|
|
550
550
|
* console.info(afterCid, afterStats)
|
|
551
551
|
* ```
|
|
552
552
|
*/
|
|
553
|
-
touch
|
|
553
|
+
touch(cid: CID, options?: Partial<TouchOptions>): Promise<CID>
|
|
554
554
|
}
|
|
555
555
|
|
|
556
556
|
class DefaultUnixFS implements UnixFS {
|
package/src/utils/glob-source.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import fs from '
|
|
2
|
-
import fsp from '
|
|
3
|
-
import Path from '
|
|
1
|
+
import fs from 'fs'
|
|
2
|
+
import fsp from 'fs/promises'
|
|
3
|
+
import Path from 'path'
|
|
4
4
|
import glob from 'it-glob'
|
|
5
5
|
import { InvalidParametersError } from '../errors.js'
|
|
6
|
+
import { toMtime } from './to-mtime.js'
|
|
6
7
|
import type { MtimeLike } from 'ipfs-unixfs'
|
|
7
8
|
import type { ImportCandidateStream } from 'ipfs-unixfs-importer'
|
|
8
9
|
|
|
@@ -84,7 +85,7 @@ export async function * globSource (cwd: string, pattern: string, options: GlobS
|
|
|
84
85
|
path: toPosix(p.replace(cwd, '')),
|
|
85
86
|
content: stat.isFile() ? fs.createReadStream(p) : undefined,
|
|
86
87
|
mode,
|
|
87
|
-
mtime
|
|
88
|
+
mtime: toMtime(mtime)
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Mtime, MtimeLike } from 'ipfs-unixfs'
|
|
2
|
+
|
|
3
|
+
export function toMtime (mtimeLike: MtimeLike): Mtime
|
|
4
|
+
export function toMtime (mtimeLike?: MtimeLike): Mtime | undefined
|
|
5
|
+
export function toMtime (mtimeLike?: MtimeLike): Mtime | undefined {
|
|
6
|
+
if (mtimeLike == null) {
|
|
7
|
+
return undefined
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (isMtime(mtimeLike)) {
|
|
11
|
+
return mtimeLike
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (mtimeLike instanceof Date) {
|
|
15
|
+
return dateToTimespec(mtimeLike)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (Array.isArray(mtimeLike)) {
|
|
19
|
+
const output: Mtime = {
|
|
20
|
+
secs: BigInt(mtimeLike[0])
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (mtimeLike.length > 1) {
|
|
24
|
+
output.nsecs = mtimeLike[1]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return output
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (typeof mtimeLike.Seconds === 'number') {
|
|
31
|
+
const output: Mtime = {
|
|
32
|
+
secs: BigInt(mtimeLike.Seconds)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (mtimeLike.FractionalNanoseconds != null) {
|
|
36
|
+
output.nsecs = mtimeLike.FractionalNanoseconds
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return output
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
throw new Error('Cannot convert object to mtime')
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function dateToTimespec (date: Date): Mtime {
|
|
46
|
+
const ms = date.getTime()
|
|
47
|
+
const secs = Math.floor(ms / 1000)
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
secs: BigInt(secs),
|
|
51
|
+
nsecs: (ms - (secs * 1000)) * 1000
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function isMtime (obj: any): obj is Mtime {
|
|
56
|
+
return typeof obj.secs === 'bigint'
|
|
57
|
+
}
|