@pkcprotocol/pkc-js 0.0.94 → 0.0.96
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/dist/browser/community/community-client-manager.d.ts +1 -0
- package/dist/browser/community/community-client-manager.js +27 -6
- package/dist/browser/community/community-client-manager.js.map +1 -1
- package/dist/browser/community/remote-community.js +13 -0
- package/dist/browser/community/remote-community.js.map +1 -1
- package/dist/browser/generated-version.d.ts +1 -1
- package/dist/browser/generated-version.js +1 -1
- package/dist/browser/helia/helia-for-pkc.d.ts +1 -0
- package/dist/browser/helia/helia-for-pkc.js +101 -7
- package/dist/browser/helia/helia-for-pkc.js.map +1 -1
- package/dist/browser/helia/libp2pjsClient.d.ts +3 -1
- package/dist/browser/helia/libp2pjsClient.js +1 -0
- package/dist/browser/helia/libp2pjsClient.js.map +1 -1
- package/dist/browser/helia/types.d.ts +9 -0
- package/dist/browser/helia/util.d.ts +2 -1
- package/dist/browser/helia/util.js +12 -1
- package/dist/browser/helia/util.js.map +1 -1
- package/dist/browser/test/test-util.d.ts +8 -1
- package/dist/browser/test/test-util.js +101 -20
- package/dist/browser/test/test-util.js.map +1 -1
- package/dist/bundled/bundle-manifest.json +31 -31
- package/dist/bundled/chunks/{helia-for-pkc-Bj-Zb4JN.js → helia-for-pkc-CmSUHQVn.js} +70 -37
- package/dist/bundled/chunks/{local-community-Ce7303vY.js → local-community-DK5HhKZf.js} +30 -30
- package/dist/bundled/chunks/{local-community-BrMLMEmt.js → local-community-DVG9tyIW.js} +1 -1
- package/dist/bundled/chunks/{node-C37nDOa8.js → node-CyXajPvJ.js} +5 -5
- package/dist/bundled/chunks/{rpc-local-community-Dr_-Lb8I.js → rpc-local-community-CdG4JLzO.js} +16 -2
- package/dist/bundled/chunks/{schema-5-rYJ-bC.js → schema-BIik7LGj.js} +1 -1
- package/dist/bundled/chunks/{util-_-fNQNIV.js → util-y_hIxyCS.js} +3 -2
- package/dist/bundled/index.js +1 -1
- package/dist/bundled/rpc/src/index.js +4 -4
- package/dist/node/community/community-client-manager.d.ts +1 -0
- package/dist/node/community/community-client-manager.js +27 -6
- package/dist/node/community/community-client-manager.js.map +1 -1
- package/dist/node/community/remote-community.js +13 -0
- package/dist/node/community/remote-community.js.map +1 -1
- package/dist/node/generated-version.d.ts +1 -1
- package/dist/node/generated-version.js +1 -1
- package/dist/node/helia/helia-for-pkc.d.ts +1 -0
- package/dist/node/helia/helia-for-pkc.js +101 -7
- package/dist/node/helia/helia-for-pkc.js.map +1 -1
- package/dist/node/helia/libp2pjsClient.d.ts +3 -1
- package/dist/node/helia/libp2pjsClient.js +1 -0
- package/dist/node/helia/libp2pjsClient.js.map +1 -1
- package/dist/node/helia/types.d.ts +9 -0
- package/dist/node/helia/util.d.ts +2 -1
- package/dist/node/helia/util.js +12 -1
- package/dist/node/helia/util.js.map +1 -1
- package/dist/node/test/test-util.d.ts +8 -1
- package/dist/node/test/test-util.js +101 -20
- package/dist/node/test/test-util.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"node:module"
|
|
15
15
|
],
|
|
16
16
|
"dynamicImports": [
|
|
17
|
-
"chunks/node-
|
|
17
|
+
"chunks/node-CyXajPvJ.js"
|
|
18
18
|
],
|
|
19
19
|
"inputs": [
|
|
20
20
|
"dist/node/runtime/node/compile-cache.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"index.js": {
|
|
25
25
|
"isEntry": true,
|
|
26
26
|
"imports": [
|
|
27
|
-
"chunks/node-
|
|
27
|
+
"chunks/node-CyXajPvJ.js"
|
|
28
28
|
],
|
|
29
29
|
"dynamicImports": [],
|
|
30
30
|
"inputs": []
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"rpc/src/index.js": {
|
|
33
33
|
"isEntry": true,
|
|
34
34
|
"imports": [
|
|
35
|
-
"chunks/rpc-local-community-
|
|
36
|
-
"chunks/node-
|
|
37
|
-
"chunks/schema-
|
|
38
|
-
"chunks/local-community-
|
|
35
|
+
"chunks/rpc-local-community-CdG4JLzO.js",
|
|
36
|
+
"chunks/node-CyXajPvJ.js",
|
|
37
|
+
"chunks/schema-BIik7LGj.js",
|
|
38
|
+
"chunks/local-community-DK5HhKZf.js",
|
|
39
39
|
"node:url",
|
|
40
40
|
"path",
|
|
41
41
|
"assert",
|
|
@@ -65,12 +65,12 @@
|
|
|
65
65
|
"\u0000rolldown/runtime.js"
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
|
-
"chunks/helia-for-pkc-
|
|
68
|
+
"chunks/helia-for-pkc-CmSUHQVn.js": {
|
|
69
69
|
"isEntry": false,
|
|
70
70
|
"imports": [
|
|
71
71
|
"chunks/chunk-2rV9d50f.js",
|
|
72
|
-
"chunks/schema-
|
|
73
|
-
"chunks/util-
|
|
72
|
+
"chunks/schema-BIik7LGj.js",
|
|
73
|
+
"chunks/util-y_hIxyCS.js",
|
|
74
74
|
"chunks/src-DKntVmyX.js",
|
|
75
75
|
"chunks/src-Cpx2Sts8.js",
|
|
76
76
|
"node:url",
|
|
@@ -187,20 +187,12 @@
|
|
|
187
187
|
"dist/node/helia/helia-for-pkc.js"
|
|
188
188
|
]
|
|
189
189
|
},
|
|
190
|
-
"chunks/local-community-
|
|
191
|
-
"isEntry": false,
|
|
192
|
-
"imports": [
|
|
193
|
-
"chunks/local-community-Ce7303vY.js"
|
|
194
|
-
],
|
|
195
|
-
"dynamicImports": [],
|
|
196
|
-
"inputs": []
|
|
197
|
-
},
|
|
198
|
-
"chunks/local-community-Ce7303vY.js": {
|
|
190
|
+
"chunks/local-community-DK5HhKZf.js": {
|
|
199
191
|
"isEntry": false,
|
|
200
192
|
"imports": [
|
|
201
193
|
"chunks/chunk-2rV9d50f.js",
|
|
202
|
-
"chunks/rpc-local-community-
|
|
203
|
-
"chunks/schema-
|
|
194
|
+
"chunks/rpc-local-community-CdG4JLzO.js",
|
|
195
|
+
"chunks/schema-BIik7LGj.js",
|
|
204
196
|
"node:crypto",
|
|
205
197
|
"node:url",
|
|
206
198
|
"node:path",
|
|
@@ -257,13 +249,21 @@
|
|
|
257
249
|
"dist/node/runtime/node/community/local-community.js"
|
|
258
250
|
]
|
|
259
251
|
},
|
|
260
|
-
"chunks/
|
|
252
|
+
"chunks/local-community-DVG9tyIW.js": {
|
|
253
|
+
"isEntry": false,
|
|
254
|
+
"imports": [
|
|
255
|
+
"chunks/local-community-DK5HhKZf.js"
|
|
256
|
+
],
|
|
257
|
+
"dynamicImports": [],
|
|
258
|
+
"inputs": []
|
|
259
|
+
},
|
|
260
|
+
"chunks/node-CyXajPvJ.js": {
|
|
261
261
|
"isEntry": false,
|
|
262
262
|
"imports": [
|
|
263
263
|
"chunks/chunk-2rV9d50f.js",
|
|
264
|
-
"chunks/rpc-local-community-
|
|
265
|
-
"chunks/schema-
|
|
266
|
-
"chunks/util-
|
|
264
|
+
"chunks/rpc-local-community-CdG4JLzO.js",
|
|
265
|
+
"chunks/schema-BIik7LGj.js",
|
|
266
|
+
"chunks/util-y_hIxyCS.js",
|
|
267
267
|
"path",
|
|
268
268
|
"assert",
|
|
269
269
|
"fs",
|
|
@@ -274,8 +274,8 @@
|
|
|
274
274
|
"rpc-websockets"
|
|
275
275
|
],
|
|
276
276
|
"dynamicImports": [
|
|
277
|
-
"chunks/helia-for-pkc-
|
|
278
|
-
"chunks/local-community-
|
|
277
|
+
"chunks/helia-for-pkc-CmSUHQVn.js",
|
|
278
|
+
"chunks/local-community-DK5HhKZf.js"
|
|
279
279
|
],
|
|
280
280
|
"inputs": [
|
|
281
281
|
"node_modules/zod/v4/locales/en.js",
|
|
@@ -317,11 +317,11 @@
|
|
|
317
317
|
"dist/node/index.js"
|
|
318
318
|
]
|
|
319
319
|
},
|
|
320
|
-
"chunks/rpc-local-community-
|
|
320
|
+
"chunks/rpc-local-community-CdG4JLzO.js": {
|
|
321
321
|
"isEntry": false,
|
|
322
322
|
"imports": [
|
|
323
323
|
"chunks/chunk-2rV9d50f.js",
|
|
324
|
-
"chunks/schema-
|
|
324
|
+
"chunks/schema-BIik7LGj.js",
|
|
325
325
|
"chunks/src-CYIMjhjK.js",
|
|
326
326
|
"node:crypto",
|
|
327
327
|
"node:url",
|
|
@@ -875,7 +875,7 @@
|
|
|
875
875
|
"dist/node/community/rpc-local-community.js"
|
|
876
876
|
]
|
|
877
877
|
},
|
|
878
|
-
"chunks/schema-
|
|
878
|
+
"chunks/schema-BIik7LGj.js": {
|
|
879
879
|
"isEntry": false,
|
|
880
880
|
"imports": [
|
|
881
881
|
"chunks/chunk-2rV9d50f.js",
|
|
@@ -1346,10 +1346,10 @@
|
|
|
1346
1346
|
"node_modules/ipfs-unixfs-importer/dist/src/index.js"
|
|
1347
1347
|
]
|
|
1348
1348
|
},
|
|
1349
|
-
"chunks/util-
|
|
1349
|
+
"chunks/util-y_hIxyCS.js": {
|
|
1350
1350
|
"isEntry": false,
|
|
1351
1351
|
"imports": [
|
|
1352
|
-
"chunks/schema-
|
|
1352
|
+
"chunks/schema-BIik7LGj.js",
|
|
1353
1353
|
"ipns/selector",
|
|
1354
1354
|
"ipns/validator",
|
|
1355
1355
|
"ipns",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-2rV9d50f.js";
|
|
2
|
-
import { B as ipnsNameToIpnsOverPubsubTopic, R as hideClassPrivateProps, Sr as PKCError, wr as logger_default, x as binaryKeyToPubsubTopic } from "./schema-
|
|
3
|
-
import { a as fetchBlockWithStalledSessionFailover, c as selectBitswapSessionSeedPeers, i as directFetchIpnsRecordFromProviders, n as cacheIpnsRecordInPubsubLocalStore, o as getHeliaDebugContext, r as connectToPubsubPeers, s as readFreshCachedIpnsRecordFromPubsubLocalStore } from "./util-
|
|
2
|
+
import { B as ipnsNameToIpnsOverPubsubTopic, R as hideClassPrivateProps, Sr as PKCError, wr as logger_default, x as binaryKeyToPubsubTopic } from "./schema-BIik7LGj.js";
|
|
3
|
+
import { a as fetchBlockWithStalledSessionFailover, c as selectBitswapSessionSeedPeers, i as directFetchIpnsRecordFromProviders, n as cacheIpnsRecordInPubsubLocalStore, o as getHeliaDebugContext, r as connectToPubsubPeers, s as readFreshCachedIpnsRecordFromPubsubLocalStore } from "./util-y_hIxyCS.js";
|
|
4
4
|
import { t as map } from "./src-Cpx2Sts8.js";
|
|
5
5
|
import { t as parallelBatch } from "./src-DKntVmyX.js";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import fsp, { rename, writeFile } from "node:fs/promises";
|
|
8
|
-
import
|
|
9
|
-
import path from "path";
|
|
8
|
+
import path, { basename, dirname, join } from "node:path";
|
|
9
|
+
import path$1 from "path";
|
|
10
10
|
import { CID } from "multiformats/cid";
|
|
11
11
|
import { peerIdFromString } from "@libp2p/peer-id";
|
|
12
12
|
import * as Digest from "multiformats/hashes/digest";
|
|
@@ -149,7 +149,7 @@ var require_path = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
149
149
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
150
150
|
exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;
|
|
151
151
|
const os$1 = __require("os");
|
|
152
|
-
const path$
|
|
152
|
+
const path$10 = __require("path");
|
|
153
153
|
const IS_WINDOWS_PLATFORM = os$1.platform() === "win32";
|
|
154
154
|
const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2;
|
|
155
155
|
/**
|
|
@@ -178,7 +178,7 @@ var require_path = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
178
178
|
}
|
|
179
179
|
exports.unixify = unixify;
|
|
180
180
|
function makeAbsolute(cwd, filepath) {
|
|
181
|
-
return path$
|
|
181
|
+
return path$10.resolve(cwd, filepath);
|
|
182
182
|
}
|
|
183
183
|
exports.makeAbsolute = makeAbsolute;
|
|
184
184
|
function removeLeadingDotSegment(entry) {
|
|
@@ -1430,7 +1430,7 @@ var require_braces = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
1430
1430
|
//#endregion
|
|
1431
1431
|
//#region node_modules/picomatch/lib/constants.js
|
|
1432
1432
|
var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1433
|
-
const path$
|
|
1433
|
+
const path$9 = __require("path");
|
|
1434
1434
|
const WIN_SLASH = "\\\\/";
|
|
1435
1435
|
const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
1436
1436
|
const DEFAULT_MAX_EXTGLOB_RECURSION = 0;
|
|
@@ -1555,7 +1555,7 @@ var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
1555
1555
|
CHAR_UNDERSCORE: 95,
|
|
1556
1556
|
CHAR_VERTICAL_LINE: 124,
|
|
1557
1557
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,
|
|
1558
|
-
SEP: path$
|
|
1558
|
+
SEP: path$9.sep,
|
|
1559
1559
|
/**
|
|
1560
1560
|
* Create EXTGLOB_CHARS
|
|
1561
1561
|
*/
|
|
@@ -1599,7 +1599,7 @@ var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
1599
1599
|
//#endregion
|
|
1600
1600
|
//#region node_modules/picomatch/lib/utils.js
|
|
1601
1601
|
var require_utils$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
1602
|
-
const path$
|
|
1602
|
+
const path$8 = __require("path");
|
|
1603
1603
|
const win32 = process.platform === "win32";
|
|
1604
1604
|
const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = require_constants$1();
|
|
1605
1605
|
exports.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
|
|
@@ -1619,7 +1619,7 @@ var require_utils$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
1619
1619
|
};
|
|
1620
1620
|
exports.isWindows = (options) => {
|
|
1621
1621
|
if (options && typeof options.windows === "boolean") return options.windows;
|
|
1622
|
-
return win32 === true || path$
|
|
1622
|
+
return win32 === true || path$8.sep === "\\";
|
|
1623
1623
|
};
|
|
1624
1624
|
exports.escapeLast = (input, char, lastIdx) => {
|
|
1625
1625
|
const idx = input.lastIndexOf(char, lastIdx);
|
|
@@ -2989,7 +2989,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
2989
2989
|
//#endregion
|
|
2990
2990
|
//#region node_modules/picomatch/lib/picomatch.js
|
|
2991
2991
|
var require_picomatch$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
2992
|
-
const path$
|
|
2992
|
+
const path$7 = __require("path");
|
|
2993
2993
|
const scan = require_scan();
|
|
2994
2994
|
const parse = require_parse();
|
|
2995
2995
|
const utils = require_utils$2();
|
|
@@ -3128,7 +3128,7 @@ var require_picomatch$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3128
3128
|
* @api public
|
|
3129
3129
|
*/
|
|
3130
3130
|
picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {
|
|
3131
|
-
return (glob instanceof RegExp ? glob : picomatch.makeRe(glob, options)).test(path$
|
|
3131
|
+
return (glob instanceof RegExp ? glob : picomatch.makeRe(glob, options)).test(path$7.basename(input));
|
|
3132
3132
|
};
|
|
3133
3133
|
/**
|
|
3134
3134
|
* Returns true if **any** of the given glob `patterns` match the specified `string`.
|
|
@@ -3683,7 +3683,7 @@ var require_micromatch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3683
3683
|
var require_pattern = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
3684
3684
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3685
3685
|
exports.isAbsolute = exports.partitionAbsoluteAndRelative = exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;
|
|
3686
|
-
const path$
|
|
3686
|
+
const path$6 = __require("path");
|
|
3687
3687
|
const globParent = require_glob_parent();
|
|
3688
3688
|
const micromatch = require_micromatch();
|
|
3689
3689
|
const GLOBSTAR = "**";
|
|
@@ -3791,7 +3791,7 @@ var require_pattern = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
3791
3791
|
}
|
|
3792
3792
|
exports.endsWithSlashGlobStar = endsWithSlashGlobStar;
|
|
3793
3793
|
function isAffectDepthOfReadingPattern(pattern) {
|
|
3794
|
-
const basename = path$
|
|
3794
|
+
const basename = path$6.basename(pattern);
|
|
3795
3795
|
return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);
|
|
3796
3796
|
}
|
|
3797
3797
|
exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;
|
|
@@ -3865,7 +3865,7 @@ var require_pattern = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
3865
3865
|
}
|
|
3866
3866
|
exports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;
|
|
3867
3867
|
function isAbsolute(pattern) {
|
|
3868
|
-
return path$
|
|
3868
|
+
return path$6.isAbsolute(pattern);
|
|
3869
3869
|
}
|
|
3870
3870
|
exports.isAbsolute = isAbsolute;
|
|
3871
3871
|
}));
|
|
@@ -4493,7 +4493,7 @@ var require_fs = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
4493
4493
|
//#region node_modules/@nodelib/fs.scandir/out/settings.js
|
|
4494
4494
|
var require_settings$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
4495
4495
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4496
|
-
const path$
|
|
4496
|
+
const path$5 = __require("path");
|
|
4497
4497
|
const fsStat = require_out$3();
|
|
4498
4498
|
const fs = require_fs();
|
|
4499
4499
|
var Settings = class {
|
|
@@ -4501,7 +4501,7 @@ var require_settings$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
4501
4501
|
this._options = _options;
|
|
4502
4502
|
this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
|
|
4503
4503
|
this.fs = fs.createFileSystemAdapter(this._options.fs);
|
|
4504
|
-
this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$
|
|
4504
|
+
this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$5.sep);
|
|
4505
4505
|
this.stats = this._getValue(this._options.stats, false);
|
|
4506
4506
|
this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
|
|
4507
4507
|
this.fsStatSettings = new fsStat.Settings({
|
|
@@ -5095,7 +5095,7 @@ var require_sync$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
5095
5095
|
//#region node_modules/@nodelib/fs.walk/out/settings.js
|
|
5096
5096
|
var require_settings$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
5097
5097
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5098
|
-
const path$
|
|
5098
|
+
const path$4 = __require("path");
|
|
5099
5099
|
const fsScandir = require_out$2();
|
|
5100
5100
|
var Settings = class {
|
|
5101
5101
|
constructor(_options = {}) {
|
|
@@ -5105,7 +5105,7 @@ var require_settings$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
5105
5105
|
this.deepFilter = this._getValue(this._options.deepFilter, null);
|
|
5106
5106
|
this.entryFilter = this._getValue(this._options.entryFilter, null);
|
|
5107
5107
|
this.errorFilter = this._getValue(this._options.errorFilter, null);
|
|
5108
|
-
this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$
|
|
5108
|
+
this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$4.sep);
|
|
5109
5109
|
this.fsScandirSettings = new fsScandir.Settings({
|
|
5110
5110
|
followSymbolicLinks: this._options.followSymbolicLinks,
|
|
5111
5111
|
fs: this._options.fs,
|
|
@@ -5157,7 +5157,7 @@ var require_out$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
5157
5157
|
//#region node_modules/fast-glob/out/readers/reader.js
|
|
5158
5158
|
var require_reader = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
5159
5159
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5160
|
-
const path$
|
|
5160
|
+
const path$3 = __require("path");
|
|
5161
5161
|
const fsStat = require_out$3();
|
|
5162
5162
|
const utils = require_utils$1();
|
|
5163
5163
|
var Reader = class {
|
|
@@ -5170,7 +5170,7 @@ var require_reader = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
5170
5170
|
});
|
|
5171
5171
|
}
|
|
5172
5172
|
_getFullEntryPath(filepath) {
|
|
5173
|
-
return path$
|
|
5173
|
+
return path$3.resolve(this._settings.cwd, filepath);
|
|
5174
5174
|
}
|
|
5175
5175
|
_makeEntry(stats, pattern) {
|
|
5176
5176
|
const entry = {
|
|
@@ -5505,7 +5505,7 @@ var require_entry = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
5505
5505
|
//#region node_modules/fast-glob/out/providers/provider.js
|
|
5506
5506
|
var require_provider = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
5507
5507
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5508
|
-
const path$
|
|
5508
|
+
const path$2 = __require("path");
|
|
5509
5509
|
const deep_1 = require_deep();
|
|
5510
5510
|
const entry_1 = require_entry$1();
|
|
5511
5511
|
const error_1 = require_error();
|
|
@@ -5519,7 +5519,7 @@ var require_provider = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
5519
5519
|
this.entryTransformer = new entry_2.default(this._settings);
|
|
5520
5520
|
}
|
|
5521
5521
|
_getRootDirectory(task) {
|
|
5522
|
-
return path$
|
|
5522
|
+
return path$2.resolve(this._settings.cwd, task.base);
|
|
5523
5523
|
}
|
|
5524
5524
|
_getReaderOptions(task) {
|
|
5525
5525
|
const basePath = task.base === "." ? "" : task.base;
|
|
@@ -5850,7 +5850,7 @@ var import_out = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((export
|
|
|
5850
5850
|
* Async iterable filename pattern matcher
|
|
5851
5851
|
*/
|
|
5852
5852
|
async function* glob(dir, pattern, options = {}) {
|
|
5853
|
-
const absoluteDir =
|
|
5853
|
+
const absoluteDir = path.resolve(dir);
|
|
5854
5854
|
const stats = await fsp.stat(absoluteDir);
|
|
5855
5855
|
for await (const entry of import_out.default.stream(pattern, {
|
|
5856
5856
|
...options,
|
|
@@ -6020,7 +6020,7 @@ var NextToLast = class {
|
|
|
6020
6020
|
};
|
|
6021
6021
|
}
|
|
6022
6022
|
decode(str) {
|
|
6023
|
-
let fileName =
|
|
6023
|
+
let fileName = path.basename(str);
|
|
6024
6024
|
if (fileName.endsWith(this.extension)) fileName = fileName.substring(0, fileName.length - this.extension.length);
|
|
6025
6025
|
return CID.decode(this.base.decoder.decode(fileName));
|
|
6026
6026
|
}
|
|
@@ -6046,7 +6046,7 @@ var NextToLast = class {
|
|
|
6046
6046
|
async function writeFile$1(file, contents, options) {
|
|
6047
6047
|
try {
|
|
6048
6048
|
options?.signal?.throwIfAborted();
|
|
6049
|
-
await raceSignal(fsp.mkdir(
|
|
6049
|
+
await raceSignal(fsp.mkdir(path.dirname(file), { recursive: true }), options?.signal);
|
|
6050
6050
|
const writer = new Writer(file);
|
|
6051
6051
|
options?.signal?.throwIfAborted();
|
|
6052
6052
|
await writer.write(contents);
|
|
@@ -6071,7 +6071,7 @@ var FsBlockstore = class {
|
|
|
6071
6071
|
deleteManyConcurrency;
|
|
6072
6072
|
shardingStrategy;
|
|
6073
6073
|
constructor(location, init = {}) {
|
|
6074
|
-
this.path =
|
|
6074
|
+
this.path = path.resolve(location);
|
|
6075
6075
|
this.createIfMissing = init.createIfMissing ?? true;
|
|
6076
6076
|
this.errorIfExists = init.errorIfExists ?? false;
|
|
6077
6077
|
this.deleteManyConcurrency = init.deleteManyConcurrency ?? 50;
|
|
@@ -6097,7 +6097,7 @@ var FsBlockstore = class {
|
|
|
6097
6097
|
async put(key, val, options) {
|
|
6098
6098
|
const { dir, file } = this.shardingStrategy.encode(key);
|
|
6099
6099
|
try {
|
|
6100
|
-
await writeFile$1(
|
|
6100
|
+
await writeFile$1(path.join(this.path, dir, file), val, options);
|
|
6101
6101
|
return key;
|
|
6102
6102
|
} catch (err) {
|
|
6103
6103
|
throw new PutFailedError(String(err));
|
|
@@ -6116,7 +6116,7 @@ var FsBlockstore = class {
|
|
|
6116
6116
|
let handle;
|
|
6117
6117
|
try {
|
|
6118
6118
|
options?.signal?.throwIfAborted();
|
|
6119
|
-
handle = await raceSignal(fsp.open(
|
|
6119
|
+
handle = await raceSignal(fsp.open(path.join(this.path, dir, file)), options?.signal);
|
|
6120
6120
|
yield* handle.createReadStream();
|
|
6121
6121
|
} catch (err) {
|
|
6122
6122
|
if (handle != null) await raceSignal(handle.close(), options?.signal);
|
|
@@ -6137,7 +6137,7 @@ var FsBlockstore = class {
|
|
|
6137
6137
|
const { dir, file } = this.shardingStrategy.encode(key);
|
|
6138
6138
|
try {
|
|
6139
6139
|
options?.signal?.throwIfAborted();
|
|
6140
|
-
await raceSignal(fsp.unlink(
|
|
6140
|
+
await raceSignal(fsp.unlink(path.join(this.path, dir, file)), options?.signal);
|
|
6141
6141
|
} catch (err) {
|
|
6142
6142
|
if (err.code === "ENOENT") return;
|
|
6143
6143
|
throw new DeleteFailedError(String(err));
|
|
@@ -6155,14 +6155,14 @@ var FsBlockstore = class {
|
|
|
6155
6155
|
const { dir, file } = this.shardingStrategy.encode(key);
|
|
6156
6156
|
try {
|
|
6157
6157
|
options?.signal?.throwIfAborted();
|
|
6158
|
-
await raceSignal(fsp.access(
|
|
6158
|
+
await raceSignal(fsp.access(path.join(this.path, dir, file)), options?.signal);
|
|
6159
6159
|
} catch (err) {
|
|
6160
6160
|
return false;
|
|
6161
6161
|
}
|
|
6162
6162
|
return true;
|
|
6163
6163
|
}
|
|
6164
6164
|
async *getAll(options) {
|
|
6165
|
-
const pattern = `**/*${this.shardingStrategy.extension}`.split(
|
|
6165
|
+
const pattern = `**/*${this.shardingStrategy.extension}`.split(path.sep).join("/");
|
|
6166
6166
|
const files = glob(this.path, pattern, { absolute: true });
|
|
6167
6167
|
for await (const file of files) try {
|
|
6168
6168
|
options?.signal?.throwIfAborted();
|
|
@@ -6214,7 +6214,7 @@ async function createBlockstoreForLibp2pJsClient({ dataPath, key }) {
|
|
|
6214
6214
|
defaultMaxBytes: DEFAULT_IN_MEMORY_BLOCKSTORE_MAX_BYTES,
|
|
6215
6215
|
close: async () => {}
|
|
6216
6216
|
};
|
|
6217
|
-
const store = new FsBlockstore(path.join(dataPath, "blockstore", key));
|
|
6217
|
+
const store = new FsBlockstore(path$1.join(dataPath, "blockstore", key));
|
|
6218
6218
|
await store.open();
|
|
6219
6219
|
return {
|
|
6220
6220
|
blockstore: store,
|
|
@@ -6443,6 +6443,7 @@ var Libp2pJsClient = class {
|
|
|
6443
6443
|
this._mergedHeliaOptions = libp2pJsClientOptions.mergedHeliaOptions;
|
|
6444
6444
|
this.key = libp2pJsClientOptions.key;
|
|
6445
6445
|
this.countOfUsesOfInstance = libp2pJsClientOptions.countOfUsesOfInstance;
|
|
6446
|
+
this._ipnsPushChannel = libp2pJsClientOptions.ipnsPushChannel;
|
|
6446
6447
|
hideClassPrivateProps(this);
|
|
6447
6448
|
}
|
|
6448
6449
|
};
|
|
@@ -6499,6 +6500,7 @@ function ipnsRouterTag(router) {
|
|
|
6499
6500
|
function isLocalStoreIpnsRouter(router) {
|
|
6500
6501
|
return ipnsRouterTag(router) === "LocalStoreRouting()";
|
|
6501
6502
|
}
|
|
6503
|
+
const IPNS_PUSH_CHANNEL_WATCHDOG_MS = 15 * 6e4;
|
|
6502
6504
|
async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
6503
6505
|
if (!pkcOptions.httpRoutersOptions?.length) throw Error("You need to have pkc.httpRouterOptions to set up helia");
|
|
6504
6506
|
const existingClient = libp2pJsClients[pkcOptions.key];
|
|
@@ -6628,13 +6630,32 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6628
6630
|
const ipnsPubsubLocalStore = ipnsPubsubRouter.localStore;
|
|
6629
6631
|
const ipnsPubsubRouterSubscriptions = ipnsPubsubRouter.subscriptions;
|
|
6630
6632
|
const ipnsRecordNetworkValidatedAtMs = /* @__PURE__ */ new Map();
|
|
6633
|
+
const ipnsPushChannel = {
|
|
6634
|
+
watchdogMs: IPNS_PUSH_CHANNEL_WATCHDOG_MS,
|
|
6635
|
+
lastValidRecordArrivalMs: /* @__PURE__ */ new Map(),
|
|
6636
|
+
routingKeyByTopic: /* @__PURE__ */ new Map(),
|
|
6637
|
+
highestKnownSequenceByTopic: /* @__PURE__ */ new Map()
|
|
6638
|
+
};
|
|
6639
|
+
const isIpnsPushChannelHealthy = (pubsubTopic) => helia.libp2p.services.pubsub.getSubscribers(pubsubTopic).length > 0 && Date.now() - (ipnsPushChannel.lastValidRecordArrivalMs.get(pubsubTopic) ?? 0) < ipnsPushChannel.watchdogMs;
|
|
6640
|
+
const stampIpnsPushChannelArrival = (pubsubTopic, sequence) => {
|
|
6641
|
+
const highestKnown = ipnsPushChannel.highestKnownSequenceByTopic.get(pubsubTopic);
|
|
6642
|
+
if (highestKnown !== void 0 && sequence < highestKnown) {
|
|
6643
|
+
log.trace("Ignoring a stale-replay push-channel heartbeat on IPNS topic", pubsubTopic, sequence, "<", highestKnown);
|
|
6644
|
+
return;
|
|
6645
|
+
}
|
|
6646
|
+
ipnsPushChannel.highestKnownSequenceByTopic.set(pubsubTopic, sequence);
|
|
6647
|
+
ipnsPushChannel.lastValidRecordArrivalMs.set(pubsubTopic, Date.now());
|
|
6648
|
+
};
|
|
6649
|
+
helia.libp2p.services.pubsub.addEventListener("message", (evt) => {
|
|
6650
|
+
const gossipRoutingKey = ipnsPushChannel.routingKeyByTopic.get(evt.detail.topic);
|
|
6651
|
+
if (!gossipRoutingKey) return;
|
|
6652
|
+
ipnsValidator(gossipRoutingKey, evt.detail.data).then(() => stampIpnsPushChannelArrival(evt.detail.topic, unmarshalIPNSRecord(evt.detail.data).sequence)).catch((err) => log.trace("Ignoring an invalid record gossiped on IPNS topic", evt.detail.topic, err));
|
|
6653
|
+
});
|
|
6631
6654
|
const ipnsRecordArrivalListeners = /* @__PURE__ */ new Map();
|
|
6632
6655
|
const originalLocalStorePut = ipnsPubsubLocalStore.put.bind(ipnsPubsubLocalStore);
|
|
6633
6656
|
ipnsPubsubLocalStore.put = async (routingKey, marshalledRecord, options) => {
|
|
6634
6657
|
await originalLocalStorePut(routingKey, marshalledRecord, options);
|
|
6635
6658
|
const pubsubTopic = binaryKeyToPubsubTopic(routingKey);
|
|
6636
|
-
const listeners = ipnsRecordArrivalListeners.get(pubsubTopic);
|
|
6637
|
-
if (!listeners || listeners.size === 0) return;
|
|
6638
6659
|
let record;
|
|
6639
6660
|
try {
|
|
6640
6661
|
record = unmarshalIPNSRecord(marshalledRecord);
|
|
@@ -6642,6 +6663,9 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6642
6663
|
log.error("Failed to unmarshal a cached IPNS record for the arrival listeners of topic", pubsubTopic, e);
|
|
6643
6664
|
return;
|
|
6644
6665
|
}
|
|
6666
|
+
stampIpnsPushChannelArrival(pubsubTopic, record.sequence);
|
|
6667
|
+
const listeners = ipnsRecordArrivalListeners.get(pubsubTopic);
|
|
6668
|
+
if (!listeners || listeners.size === 0) return;
|
|
6645
6669
|
for (const listener of [...listeners]) try {
|
|
6646
6670
|
listener({
|
|
6647
6671
|
pubsubTopic,
|
|
@@ -6689,7 +6713,8 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6689
6713
|
const cachedRecord = await readFreshCachedIpnsRecordFromPubsubLocalStore({
|
|
6690
6714
|
localStore: ipnsPubsubLocalStore,
|
|
6691
6715
|
routingKey,
|
|
6692
|
-
lastNetworkValidatedAtMs: ipnsRecordNetworkValidatedAtMs.get(ipnsPubsubTopic)
|
|
6716
|
+
lastNetworkValidatedAtMs: ipnsRecordNetworkValidatedAtMs.get(ipnsPubsubTopic),
|
|
6717
|
+
pushChannelHealthy: isIpnsPushChannelHealthy(ipnsPubsubTopic)
|
|
6693
6718
|
});
|
|
6694
6719
|
if (cachedRecord) {
|
|
6695
6720
|
log.trace("Serving IPNS record for", currentName, "from the routing-layer cache");
|
|
@@ -6703,6 +6728,7 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6703
6728
|
{
|
|
6704
6729
|
if (!helia.libp2p.services.pubsub.getTopics().includes(ipnsPubsubTopic)) helia.libp2p.services.pubsub.subscribe(ipnsPubsubTopic);
|
|
6705
6730
|
ipnsPubsubRouterSubscriptions.add(ipnsPubsubTopic);
|
|
6731
|
+
ipnsPushChannel.routingKeyByTopic.set(ipnsPubsubTopic, routingKey);
|
|
6706
6732
|
warmupForTopic(ipnsPubsubTopic, options).catch((e) => log.trace("Fire-and-forget warmup failed for", ipnsPubsubTopic, e));
|
|
6707
6733
|
const directStart = Date.now();
|
|
6708
6734
|
try {
|
|
@@ -6725,6 +6751,7 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6725
6751
|
};
|
|
6726
6752
|
const record = unmarshalIPNSRecord(direct.recordBytes);
|
|
6727
6753
|
ipnsRecordNetworkValidatedAtMs.set(ipnsPubsubTopic, Date.now());
|
|
6754
|
+
stampIpnsPushChannelArrival(ipnsPubsubTopic, record.sequence);
|
|
6728
6755
|
try {
|
|
6729
6756
|
await cacheIpnsRecordInPubsubLocalStore({
|
|
6730
6757
|
localStore: ipnsPubsubLocalStore,
|
|
@@ -6801,6 +6828,7 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6801
6828
|
await ipnsValidator(routingKey, recordBytes);
|
|
6802
6829
|
const record = unmarshalIPNSRecord(recordBytes);
|
|
6803
6830
|
ipnsRecordNetworkValidatedAtMs.set(ipnsPubsubTopic, Date.now());
|
|
6831
|
+
stampIpnsPushChannelArrival(ipnsPubsubTopic, record.sequence);
|
|
6804
6832
|
yield record.value;
|
|
6805
6833
|
}
|
|
6806
6834
|
return generator();
|
|
@@ -6912,6 +6940,7 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6912
6940
|
if (listeners.size === 0) ipnsRecordArrivalListeners.delete(pubsubTopic);
|
|
6913
6941
|
}
|
|
6914
6942
|
},
|
|
6943
|
+
isIpnsPushChannelHealthy: ({ pubsubTopic }) => isIpnsPushChannelHealthy(pubsubTopic),
|
|
6915
6944
|
async stop(options) {
|
|
6916
6945
|
const clientFromMap = libp2pJsClients[pkcOptions.key];
|
|
6917
6946
|
if (!clientFromMap) return;
|
|
@@ -6920,6 +6949,9 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6920
6949
|
if (clientFromMap.countOfUsesOfInstance === 0) {
|
|
6921
6950
|
delete libp2pJsClients[pkcOptions.key];
|
|
6922
6951
|
ipnsRecordArrivalListeners.clear();
|
|
6952
|
+
ipnsPushChannel.lastValidRecordArrivalMs.clear();
|
|
6953
|
+
ipnsPushChannel.routingKeyByTopic.clear();
|
|
6954
|
+
ipnsPushChannel.highestKnownSequenceByTopic.clear();
|
|
6923
6955
|
for (const router of ipnsNameResolver.routers) {
|
|
6924
6956
|
const lifecycle = router;
|
|
6925
6957
|
if (typeof lifecycle.stop === "function") try {
|
|
@@ -6962,7 +6994,8 @@ async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
|
|
|
6962
6994
|
mergedHeliaOptions: mergedHeliaInit,
|
|
6963
6995
|
countOfUsesOfInstance: 1,
|
|
6964
6996
|
libp2pJsClientsOptions: pkcOptions,
|
|
6965
|
-
key: pkcOptions.key
|
|
6997
|
+
key: pkcOptions.key,
|
|
6998
|
+
ipnsPushChannel
|
|
6966
6999
|
});
|
|
6967
7000
|
log("Helia/libp2p-js started with key", pkcOptions.key, "and peer id", helia.libp2p.peerId.toString());
|
|
6968
7001
|
libp2pJsClients[pkcOptions.key] = client;
|