orbitdb-relay-pinner 0.4.0 → 0.6.0

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 CHANGED
@@ -1,5 +1,8 @@
1
1
  # orbitdb-relay-pinner
2
2
 
3
+ [![Build](https://github.com/NiKrause/orbitdb-relay-pinner/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/NiKrause/orbitdb-relay-pinner/actions/workflows/ci.yml?query=branch%3Amain)
4
+ [![Relay media integration](https://github.com/NiKrause/orbitdb-relay-pinner/actions/workflows/relay-media-integration.yml/badge.svg?branch=main)](https://github.com/NiKrause/orbitdb-relay-pinner/actions/workflows/relay-media-integration.yml?query=branch%3Amain)
5
+
3
6
  OrbitDB relay + pinning/sync service used by our apps and tests.
4
7
 
5
8
  ## AI Agents
@@ -36,13 +39,23 @@ orbitdb-relay-pinner --test
36
39
 
37
40
  - `orbitdb` (built-in OrbitDB access controller)
38
41
  - `orbitdb-deferred` (custom deferred OrbitDB ACL registered by this package)
39
- - `todo-delegation` (custom delegated todo controller registered by this package)
42
+ - `todo-delegation` delegated todo writes (same rules as the app; see below)
40
43
 
41
44
  Notes:
42
45
 
43
46
  - Existing databases are opened using the manifest `accessController.type`.
44
47
  - Creating a new database without explicitly passing an `AccessController` still defaults to `orbitdb`.
45
48
 
49
+ ### `todo-delegation` package
50
+
51
+ The delegated todo access controller lives in **`@le-space/orbitdb-access-controller-delegated-todo`** (shared with simple-todo) so pinning uses the same `canAppend` and `verifyDelegationWriterIdentity` behavior as the browser. This relay depends on **`^0.1.0`** of that package.
52
+
53
+ If `npm install` cannot resolve it yet, install from a local checkout of simple-todo:
54
+
55
+ ```bash
56
+ npm install ../path/to/simple-todo/packages/orbitdb-access-controller-delegated-todo
57
+ ```
58
+
46
59
  ## Identity providers (OrbitDB)
47
60
 
48
61
  The relay registers OrbitDB identity providers so it can verify oplog entries from peers that use passkey-backed identities (same stack as `@le-space/orbitdb-identity-provider-webauthn-did`):
@@ -66,6 +79,8 @@ See **`.env.example`** for a full list including **circuit relay v2** tuning (`R
66
79
 
67
80
  ## Development
68
81
 
82
+ Mocha suites live under **`mocha/`** (not `test/`) so **`node --test`** (Node’s built-in runner) does not auto-load them; those files use Mocha’s `describe` / `it`. Run **`npm test`** for Mocha.
83
+
69
84
  ```bash
70
85
  npm i
71
86
  npm run build
@@ -1,2 +1,2 @@
1
- export declare const verifyIdentityWithFallback: (identities: any, writerIdentity: any) => Promise<boolean>;
1
+ export { verifyDelegationWriterIdentity, verifyIdentityWithFallback } from '@le-space/orbitdb-access-controller-delegated-todo';
2
2
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/access/shared.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,GAAU,YAAY,GAAG,EAAE,gBAAgB,GAAG,KAAG,OAAO,CAAC,OAAO,CAiBtG,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/access/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,8BAA8B,EAC9B,0BAA0B,EAC1B,MAAM,oDAAoD,CAAA"}
@@ -1,20 +1,2 @@
1
- export const verifyIdentityWithFallback = async (identities, writerIdentity) => {
2
- const fallback = identities?.verifyIdentityFallback;
3
- try {
4
- const verified = await identities.verifyIdentity(writerIdentity);
5
- if (verified)
6
- return true;
7
- if (typeof fallback === 'function') {
8
- return await fallback(writerIdentity);
9
- }
10
- return false;
11
- }
12
- catch (error) {
13
- // Primary verify can throw (e.g. provider edge cases). Prefer fallback for relay robustness.
14
- if (typeof fallback === 'function') {
15
- return await fallback(writerIdentity);
16
- }
17
- throw error;
18
- }
19
- };
1
+ export { verifyDelegationWriterIdentity, verifyIdentityWithFallback } from '@le-space/orbitdb-access-controller-delegated-todo';
20
2
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/access/shared.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,UAAe,EAAE,cAAmB,EAAoB,EAAE;IACzG,MAAM,QAAQ,GAAG,UAAU,EAAE,sBAAsB,CAAA;IAEnD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;QAChE,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAA;QACzB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAA;QACvC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6FAA6F;QAC7F,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAA;QACvC,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/access/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,8BAA8B,EAC9B,0BAA0B,EAC1B,MAAM,oDAAoD,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Public libp2p bootstrap multiaddrs used to join the default IPFS DHT swarm (same set as Kubo / Helia).
3
+ * @see https://github.com/ipfs/helia/blob/main/packages/helia/src/utils/bootstrappers.ts
4
+ */
5
+ export declare const IPFS_PUBLIC_BOOTSTRAP_LIST: string[];
6
+ //# sourceMappingURL=ipfs-bootstrap-peers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfs-bootstrap-peers.d.ts","sourceRoot":"","sources":["../../src/config/ipfs-bootstrap-peers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,EAM9C,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Public libp2p bootstrap multiaddrs used to join the default IPFS DHT swarm (same set as Kubo / Helia).
3
+ * @see https://github.com/ipfs/helia/blob/main/packages/helia/src/utils/bootstrappers.ts
4
+ */
5
+ export const IPFS_PUBLIC_BOOTSTRAP_LIST = [
6
+ '/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN',
7
+ '/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb',
8
+ '/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt',
9
+ '/dnsaddr/va1.bootstrap.libp2p.io/p2p/12D3KooWKnDdG3iXw9eTFijk3EWSunZcFi54Zka4wmtqtt6rPxc8',
10
+ '/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ',
11
+ ];
12
+ //# sourceMappingURL=ipfs-bootstrap-peers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfs-bootstrap-peers.js","sourceRoot":"","sources":["../../src/config/ipfs-bootstrap-peers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAa;IAClD,iFAAiF;IACjF,iFAAiF;IACjF,iFAAiF;IACjF,2FAA2F;IAC3F,iFAAiF;CAClF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/config/libp2p.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAiCpD,eAAO,MAAM,kBAAkB,GAAI,YAAY,UAAU,EAAE,WAAW,SAAS,KAgE1E,GAAI,CAAA"}
1
+ {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/config/libp2p.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAwDpD,eAAO,MAAM,kBAAkB,GAAI,YAAY,UAAU,EAAE,WAAW,SAAS,KA8ExE,GACN,CAAA"}
@@ -16,84 +16,119 @@ import { autoTLS } from '@ipshipyard/libp2p-auto-tls';
16
16
  import { keychain } from '@libp2p/keychain';
17
17
  import { prometheusMetrics } from '@libp2p/prometheus-metrics';
18
18
  import { getCircuitRelayDefaultDataLimitBytes, getCircuitRelayDefaultDurationLimitMs, getCircuitRelayHopTimeoutMs, getCircuitRelayMaxReservations, getCircuitRelayReservationTtlMs, } from './circuit-relay-env.js';
19
- const appendAnnounce = (process.env.NODE_ENV === 'development' ? process.env.VITE_APPEND_ANNOUNCE_DEV : process.env.VITE_APPEND_ANNOUNCE) || '';
20
- const appendAnnounceArray = appendAnnounce
21
- .split(',')
22
- .map((addr) => addr.trim())
23
- .filter(Boolean);
24
- const RELAY_TCP_PORT = Number(process.env.RELAY_TCP_PORT || 9091);
25
- const RELAY_WS_PORT = Number(process.env.RELAY_WS_PORT || 9092);
26
- const RELAY_WEBRTC_PORT = Number(process.env.RELAY_WEBRTC_PORT || 9093);
27
- const RELAY_LISTEN_IPV4 = process.env.RELAY_LISTEN_IPV4 || '0.0.0.0';
28
- const RELAY_LISTEN_IPV6 = process.env.RELAY_LISTEN_IPV6 || '::';
29
- const RELAY_DISABLE_IPV6 = process.env.RELAY_DISABLE_IPV6 === 'true' || process.env.RELAY_DISABLE_IPV6 === '1';
30
- const RELAY_DISABLE_WEBRTC = process.env.RELAY_DISABLE_WEBRTC === 'true' || process.env.RELAY_DISABLE_WEBRTC === '1';
31
- const PUBSUB_TOPICS = (process.env.PUBSUB_TOPICS || process.env.VITE_PUBSUB_TOPICS || 'todo._peer-discovery._p2p._pubsub')
32
- .split(',')
33
- .map((t) => t.trim())
34
- .filter(Boolean);
35
- export const createLibp2pConfig = (privateKey, datastore) => ({
36
- privateKey,
37
- datastore,
38
- metrics: prometheusMetrics(),
39
- addresses: {
40
- listen: [
41
- `/ip4/${RELAY_LISTEN_IPV4}/tcp/${RELAY_TCP_PORT}`,
42
- `/ip4/${RELAY_LISTEN_IPV4}/tcp/${RELAY_WS_PORT}/ws`,
43
- ...(!RELAY_DISABLE_WEBRTC ? [`/ip4/${RELAY_LISTEN_IPV4}/udp/${RELAY_WEBRTC_PORT}/webrtc-direct`] : []),
44
- ...(!RELAY_DISABLE_IPV6
19
+ import { IPFS_PUBLIC_BOOTSTRAP_LIST } from './ipfs-bootstrap-peers.js';
20
+ /** Read env at config build time so tests (and multiple `startRelay` calls) can change ports between runs. */
21
+ function readRelayListenEnv() {
22
+ const appendAnnounce = (process.env.NODE_ENV === 'development' ? process.env.VITE_APPEND_ANNOUNCE_DEV : process.env.VITE_APPEND_ANNOUNCE) ||
23
+ '';
24
+ const appendAnnounceArray = appendAnnounce
25
+ .split(',')
26
+ .map((addr) => addr.trim())
27
+ .filter(Boolean);
28
+ const tcpPort = Number(process.env.RELAY_TCP_PORT || 9091);
29
+ const wsPort = Number(process.env.RELAY_WS_PORT || 9092);
30
+ const webrtcPort = Number(process.env.RELAY_WEBRTC_PORT || 9093);
31
+ const listenIpv4 = process.env.RELAY_LISTEN_IPV4 || '0.0.0.0';
32
+ const listenIpv6 = process.env.RELAY_LISTEN_IPV6 || '::';
33
+ const disableIpv6 = process.env.RELAY_DISABLE_IPV6 === 'true' || process.env.RELAY_DISABLE_IPV6 === '1';
34
+ const disableWebRtc = process.env.RELAY_DISABLE_WEBRTC === 'true' || process.env.RELAY_DISABLE_WEBRTC === '1';
35
+ const disableBootstrap = process.env.RELAY_DISABLE_BOOTSTRAP === 'true' || process.env.RELAY_DISABLE_BOOTSTRAP === '1';
36
+ const pubsubTopics = (process.env.PUBSUB_TOPICS ||
37
+ process.env.VITE_PUBSUB_TOPICS ||
38
+ 'todo._peer-discovery._p2p._pubsub')
39
+ .split(',')
40
+ .map((t) => t.trim())
41
+ .filter(Boolean);
42
+ return {
43
+ appendAnnounceArray,
44
+ tcpPort,
45
+ wsPort,
46
+ webrtcPort,
47
+ listenIpv4,
48
+ listenIpv6,
49
+ disableIpv6,
50
+ disableWebRtc,
51
+ disableBootstrap,
52
+ pubsubTopics,
53
+ };
54
+ }
55
+ export const createLibp2pConfig = (privateKey, datastore) => {
56
+ const e = readRelayListenEnv();
57
+ return {
58
+ privateKey,
59
+ datastore,
60
+ metrics: prometheusMetrics(),
61
+ addresses: {
62
+ listen: [
63
+ `/ip4/${e.listenIpv4}/tcp/${e.tcpPort}`,
64
+ `/ip4/${e.listenIpv4}/tcp/${e.wsPort}/ws`,
65
+ ...(!e.disableWebRtc ? [`/ip4/${e.listenIpv4}/udp/${e.webrtcPort}/webrtc-direct`] : []),
66
+ ...(!e.disableIpv6
67
+ ? [
68
+ `/ip6/${e.listenIpv6}/tcp/${e.tcpPort}`,
69
+ `/ip6/${e.listenIpv6}/tcp/${e.wsPort}/ws`,
70
+ ...(!e.disableWebRtc ? [`/ip6/${e.listenIpv6}/udp/${e.webrtcPort}/webrtc-direct`] : []),
71
+ ]
72
+ : []),
73
+ ],
74
+ ...(e.appendAnnounceArray.length > 0 && { appendAnnounce: e.appendAnnounceArray }),
75
+ },
76
+ transports: [
77
+ circuitRelayTransport(),
78
+ tcp(),
79
+ ...(!e.disableWebRtc ? [webRTC(), webRTCDirect()] : []),
80
+ webSockets(),
81
+ ],
82
+ peerDiscovery: [
83
+ ...(!e.disableBootstrap
45
84
  ? [
46
- `/ip6/${RELAY_LISTEN_IPV6}/tcp/${RELAY_TCP_PORT}`,
47
- `/ip6/${RELAY_LISTEN_IPV6}/tcp/${RELAY_WS_PORT}/ws`,
48
- ...(!RELAY_DISABLE_WEBRTC ? [`/ip6/${RELAY_LISTEN_IPV6}/udp/${RELAY_WEBRTC_PORT}/webrtc-direct`] : []),
85
+ bootstrap({
86
+ list: IPFS_PUBLIC_BOOTSTRAP_LIST,
87
+ }),
49
88
  ]
50
89
  : []),
90
+ pubsubPeerDiscovery({
91
+ interval: 5000,
92
+ topics: e.pubsubTopics,
93
+ listenOnly: false,
94
+ emitSelf: true,
95
+ }),
51
96
  ],
52
- ...(appendAnnounceArray.length > 0 && { appendAnnounce: appendAnnounceArray }),
53
- },
54
- transports: [circuitRelayTransport(), tcp(), ...(!RELAY_DISABLE_WEBRTC ? [webRTC(), webRTCDirect()] : []), webSockets()],
55
- peerDiscovery: [
56
- pubsubPeerDiscovery({
57
- interval: 5000,
58
- topics: PUBSUB_TOPICS,
59
- listenOnly: false,
60
- emitSelf: true,
61
- }),
62
- ],
63
- connectionEncrypters: [noise()],
64
- streamMuxers: [yamux()],
65
- services: {
66
- ping: ping(),
67
- autonat: autoNAT(),
68
- dcutr: dcutr(),
69
- aminoDHT: kadDHT({
70
- protocol: '/ipfs/kad/1.0.0',
71
- peerInfoMapper: removePrivateAddressesMapper,
72
- }),
73
- relay: circuitRelayServer({
74
- hopTimeout: getCircuitRelayHopTimeoutMs(),
75
- reservations: {
76
- maxReservations: getCircuitRelayMaxReservations(),
77
- reservationTtl: getCircuitRelayReservationTtlMs(),
78
- defaultDataLimit: getCircuitRelayDefaultDataLimitBytes(),
79
- defaultDurationLimit: getCircuitRelayDefaultDurationLimitMs(),
80
- },
81
- }),
82
- identify: identify(),
83
- identifyPush: identifyPush(),
84
- pubsub: gossipsub({ allowPublishToZeroTopicPeers: true }),
85
- ...(!process.env.disableAutoTLS && {
86
- autoTLS: autoTLS({
87
- autoConfirmAddress: true,
88
- ...(process.env.STAGING === 'true' && {
89
- acmeDirectory: 'https://acme-staging-v02.api.letsencrypt.org/directory',
97
+ connectionEncrypters: [noise()],
98
+ streamMuxers: [yamux()],
99
+ services: {
100
+ ping: ping(),
101
+ autonat: autoNAT(),
102
+ dcutr: dcutr(),
103
+ aminoDHT: kadDHT({
104
+ protocol: '/ipfs/kad/1.0.0',
105
+ peerInfoMapper: removePrivateAddressesMapper,
106
+ }),
107
+ relay: circuitRelayServer({
108
+ hopTimeout: getCircuitRelayHopTimeoutMs(),
109
+ reservations: {
110
+ maxReservations: getCircuitRelayMaxReservations(),
111
+ reservationTtl: getCircuitRelayReservationTtlMs(),
112
+ defaultDataLimit: getCircuitRelayDefaultDataLimitBytes(),
113
+ defaultDurationLimit: getCircuitRelayDefaultDurationLimitMs(),
114
+ },
115
+ }),
116
+ identify: identify(),
117
+ identifyPush: identifyPush(),
118
+ pubsub: gossipsub({ allowPublishToZeroTopicPeers: true }),
119
+ ...(!process.env.disableAutoTLS && {
120
+ autoTLS: autoTLS({
121
+ autoConfirmAddress: true,
122
+ ...(process.env.STAGING === 'true' && {
123
+ acmeDirectory: 'https://acme-staging-v02.api.letsencrypt.org/directory',
124
+ }),
90
125
  }),
91
126
  }),
92
- }),
93
- keychain: keychain(),
94
- },
95
- connectionGater: {
96
- denyDialMultiaddr: async () => false,
97
- },
98
- });
127
+ keychain: keychain(),
128
+ },
129
+ connectionGater: {
130
+ denyDialMultiaddr: async () => false,
131
+ },
132
+ };
133
+ };
99
134
  //# sourceMappingURL=libp2p.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/config/libp2p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/config/libp2p.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Injectable verifiers for {@link createRelayVerifyIdentityFallback} (production defaults + tests).
3
+ */
4
+ export type RelayVerifyIdentityDeps = {
5
+ verifyDidIdentity: (identity: any) => Promise<boolean>;
6
+ verifyWebauthnIdentity: (identity: any) => Promise<boolean>;
7
+ verifyVarsigIdentity: (identity: any) => Promise<boolean>;
8
+ verifyWorkerEd25519Identity: (identity: any) => Promise<boolean>;
9
+ };
10
+ /**
11
+ * Same routing as the OrbitDB `identities.verifyIdentityFallback` used by the relay, so mixed
12
+ * writer modes (did, worker WebAuthn, hardware varsig, worker-ed25519) verify without throwing on
13
+ * unsupported primary `verifyIdentity` shapes.
14
+ */
15
+ export declare function createRelayVerifyIdentityFallback(deps: RelayVerifyIdentityDeps): (identity: any) => Promise<boolean>;
16
+ export declare function defaultRelayVerifyIdentityDeps(): RelayVerifyIdentityDeps;
17
+ //# sourceMappingURL=relay-verify-fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-verify-fallback.d.ts","sourceRoot":"","sources":["../../src/identity/relay-verify-fallback.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACtD,sBAAsB,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACzD,2BAA2B,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACjE,CAAA;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,uBAAuB,GAC5B,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CA+BrC;AAED,wBAAgB,8BAA8B,IAAI,uBAAuB,CAQxE"}
@@ -0,0 +1,54 @@
1
+ import { OrbitDBWebAuthnIdentityProviderFunction, verifyVarsigIdentity } from '@le-space/orbitdb-identity-provider-webauthn-did';
2
+ import OrbitDBIdentityProviderDID from '@orbitdb/identity-provider-did';
3
+ import { verifyWorkerEd25519Identity } from './worker-ed25519.js';
4
+ /**
5
+ * Same routing as the OrbitDB `identities.verifyIdentityFallback` used by the relay, so mixed
6
+ * writer modes (did, worker WebAuthn, hardware varsig, worker-ed25519) verify without throwing on
7
+ * unsupported primary `verifyIdentity` shapes.
8
+ */
9
+ export function createRelayVerifyIdentityFallback(deps) {
10
+ return async (identity) => {
11
+ if (!identity)
12
+ return false;
13
+ const t = identity?.type;
14
+ if (t === 'did') {
15
+ try {
16
+ return await deps.verifyDidIdentity(identity);
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ if (t === 'webauthn' && typeof OrbitDBWebAuthnIdentityProviderFunction.verifyIdentity === 'function') {
23
+ try {
24
+ return await deps.verifyWebauthnIdentity(identity);
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ }
30
+ if (t === 'webauthn-varsig') {
31
+ try {
32
+ return await deps.verifyVarsigIdentity(identity);
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ try {
39
+ return await deps.verifyWorkerEd25519Identity(identity);
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ };
45
+ }
46
+ export function defaultRelayVerifyIdentityDeps() {
47
+ return {
48
+ verifyDidIdentity: async (identity) => await OrbitDBIdentityProviderDID.verifyIdentity(identity),
49
+ verifyWebauthnIdentity: async (identity) => await OrbitDBWebAuthnIdentityProviderFunction.verifyIdentity(identity),
50
+ verifyVarsigIdentity: async (identity) => await verifyVarsigIdentity(identity),
51
+ verifyWorkerEd25519Identity: verifyWorkerEd25519Identity,
52
+ };
53
+ }
54
+ //# sourceMappingURL=relay-verify-fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-verify-fallback.js","sourceRoot":"","sources":["../../src/identity/relay-verify-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uCAAuC,EACvC,oBAAoB,EACrB,MAAM,kDAAkD,CAAA;AACzD,OAAO,0BAA0B,MAAM,gCAAgC,CAAA;AAEvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAYjE;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,IAA6B;IAE7B,OAAO,KAAK,EAAE,QAAa,EAAE,EAAE;QAC7B,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAC3B,MAAM,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAA;QACxB,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,IAAI,OAAQ,uCAA+C,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAC9G,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,iBAAiB,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE,CAAC,MAAM,0BAA0B,CAAC,cAAc,CAAC,QAAQ,CAAC;QACrG,sBAAsB,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE,CAC9C,MAAO,uCAA+C,CAAC,cAAc,CAAC,QAAQ,CAAC;QACjF,oBAAoB,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE,CAAC,MAAM,oBAAoB,CAAC,QAAQ,CAAC;QACnF,2BAA2B,EAAE,2BAA2B;KACzD,CAAA;AACH,CAAC"}
@@ -24,8 +24,12 @@ export declare class DatabaseService {
24
24
  constructor();
25
25
  createPinningHttpHandlers(): PinningHttpHandlers;
26
26
  /**
27
- * Same as {@link syncAllOrbitDBRecords} but returns whether the sync completed without error
28
- * (for HTTP `/pinning/sync`).
27
+ * GET `/ipfs/<cid>` stream content only when the CID is pinned in Helia and all bytes come from the local blockstore.
28
+ */
29
+ private streamPinnedIpfsContent;
30
+ /**
31
+ * Same as {@link syncAllOrbitDBRecords} but returns structured result for HTTP `/pinning/sync`
32
+ * and observability.
29
33
  */
30
34
  private syncAllOrbitDBRecordsWithResult;
31
35
  initialize(ipfs: any, directory?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"AAcA,OAAO,MAAM,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAYtE,qBAAa,eAAe;IAC1B,OAAO,EAAE,aAAa,CAAA;IACtB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,GAAG,CAAA;IACZ,IAAI,EAAE,GAAG,CAAA;IACT,0FAA0F;IAC1F,qBAAqB,EAAE,MAAM,CAAA;IAC7B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;;IAmBhF,yBAAyB,IAAI,mBAAmB;IAuBhD;;;OAGG;YACW,+BAA+B;IAgFvC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;IA4D9C,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,gBAAgB;YAWV,WAAW;IAQzB,OAAO,CAAC,0BAA0B;YA2BpB,kBAAkB;IAkChC,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,iBAAiB;YAWX,YAAY;YA+BZ,uBAAuB;YAqCvB,oBAAoB;YA+BpB,uBAAuB;YAmDvB,YAAY;IAiB1B,OAAO,CAAC,iCAAiC;YAwD3B,mBAAmB;YAsDnB,4BAA4B;YA2B5B,qBAAqB;YA4BrB,4BAA4B;IAkBpC,qBAAqB,CAAC,SAAS,EAAE,MAAM;IAK7C,aAAa;IAIP,IAAI;CAaX"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"AAeA,OAAO,MAAM,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAA8B,MAAM,cAAc,CAAA;AAkBlG,qBAAa,eAAe;IAC1B,OAAO,EAAE,aAAa,CAAA;IACtB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,GAAG,CAAA;IACZ,IAAI,EAAE,GAAG,CAAA;IACT,0FAA0F;IAC1F,qBAAqB,EAAE,MAAM,CAAA;IAC7B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;;IAmBhF,yBAAyB,IAAI,mBAAmB;IAkChD;;OAEG;YACW,uBAAuB;IAgDrC;;;OAGG;YACW,+BAA+B;IA6HvC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;IA+B9C,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,gBAAgB;YAWV,WAAW;IAQzB,OAAO,CAAC,0BAA0B;YA2BpB,kBAAkB;IAkChC,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,iBAAiB;YAWX,YAAY;YA+BZ,uBAAuB;YAqCvB,oBAAoB;YA+BpB,uBAAuB;YAmDvB,YAAY;IAiB1B,OAAO,CAAC,iCAAiC;YAwD3B,mBAAmB;YAsDnB,4BAA4B;YA2B5B,qBAAqB;YA4BrB,4BAA4B;IAkBpC,qBAAqB,CAAC,SAAS,EAAE,MAAM;IAK7C,aAAa;IAIP,IAAI;CAaX"}
@@ -2,6 +2,7 @@ import { createOrbitDB, Identities, parseAddress, useAccessController, useIdenti
2
2
  import { OrbitDBWebAuthnIdentityProviderFunction, verifyVarsigIdentity } from '@le-space/orbitdb-identity-provider-webauthn-did';
3
3
  import OrbitDBIdentityProviderDID from '@orbitdb/identity-provider-did';
4
4
  import * as KeyDIDResolver from 'key-did-resolver';
5
+ import { unixfs } from '@helia/unixfs';
5
6
  import { CID } from 'multiformats/cid';
6
7
  import * as Block from 'multiformats/block';
7
8
  import * as dagCbor from '@ipld/dag-cbor';
@@ -14,10 +15,14 @@ import { MetricsServer } from './metrics.js';
14
15
  import { log, syncLog, logSyncStats } from '../utils/logger.js';
15
16
  import { loggingConfig } from '../config/logging.js';
16
17
  import IPFSAccessController from '../access/ipfs-access-controller.js';
17
- import DelegatedTodoAccessController from '../access/delegated-todo-access-controller.js';
18
+ import DelegatedTodoAccessControllerBase from '@le-space/orbitdb-access-controller-delegated-todo';
18
19
  import DeferredOrbitDBAccessController from '../access/deferred-orbitdb-access-controller.js';
19
20
  import { verifyIdentityWithFallback } from '../access/shared.js';
20
- import { inspectWorkerEd25519Identity, verifyWorkerEd25519Identity } from '../identity/worker-ed25519.js';
21
+ import { createRelayVerifyIdentityFallback, defaultRelayVerifyIdentityDeps } from '../identity/relay-verify-fallback.js';
22
+ import { inspectWorkerEd25519Identity } from '../identity/worker-ed25519.js';
23
+ /** Relay: same delegated AC as clients, without verbose browser logging. */
24
+ const DelegatedTodoAccessController = (opts = {}) => DelegatedTodoAccessControllerBase({ ...opts, verbose: false });
25
+ DelegatedTodoAccessController.type = DelegatedTodoAccessControllerBase.type;
21
26
  const DEFERRED_ACL_PREFIX = '/orbitdb-deferred/';
22
27
  const ORBITDB_PREFIX = '/orbitdb/';
23
28
  export class DatabaseService {
@@ -60,6 +65,7 @@ export class DatabaseService {
60
65
  totalPinned: this.pinnedDatabasesByAddress.size,
61
66
  syncOperations: this.pinningSyncOperations,
62
67
  failedSyncs: this.pinningFailedSyncs,
68
+ pinnedMediaCids: Array.from(this.pinnedImageCids),
63
69
  timestamp: new Date().toISOString(),
64
70
  }),
65
71
  getDatabases: () => {
@@ -68,27 +74,100 @@ export class DatabaseService {
68
74
  },
69
75
  syncDatabase: async (dbAddress) => {
70
76
  try {
71
- const ok = await this.syncAllOrbitDBRecordsWithResult(dbAddress);
72
- return ok ? { ok: true } : { ok: false, error: 'Sync failed' };
77
+ const r = await this.syncAllOrbitDBRecordsWithResult(dbAddress);
78
+ if (!r.success) {
79
+ return { ok: false, error: 'Sync failed' };
80
+ }
81
+ return {
82
+ ok: true,
83
+ receivedUpdate: r.receivedUpdate,
84
+ fallbackScanUsed: r.fallbackScanUsed,
85
+ extractedMediaCids: r.extractedMediaCids,
86
+ ...(r.coalesced ? { coalesced: true } : {}),
87
+ };
73
88
  }
74
89
  catch (e) {
75
90
  return { ok: false, error: e?.message || String(e) };
76
91
  }
77
92
  },
93
+ streamPinnedCid: (cidStr, pathWithin) => this.streamPinnedIpfsContent(cidStr, pathWithin),
78
94
  };
79
95
  }
80
96
  /**
81
- * Same as {@link syncAllOrbitDBRecords} but returns whether the sync completed without error
82
- * (for HTTP `/pinning/sync`).
97
+ * GET `/ipfs/<cid>` stream content only when the CID is pinned in Helia and all bytes come from the local blockstore.
98
+ */
99
+ async streamPinnedIpfsContent(cidStr, pathWithin) {
100
+ if (!this.ipfs?.pins?.isPinned || !this.ipfs?.blockstore?.get) {
101
+ return { ok: false, status: 503, error: 'IPFS node not available' };
102
+ }
103
+ let cid;
104
+ try {
105
+ cid = CID.parse(cidStr);
106
+ }
107
+ catch {
108
+ return { ok: false, status: 400, error: 'Invalid CID' };
109
+ }
110
+ let pinned;
111
+ try {
112
+ pinned = await this.ipfs.pins.isPinned(cid);
113
+ }
114
+ catch {
115
+ return { ok: false, status: 500, error: 'Pin check failed' };
116
+ }
117
+ if (!pinned) {
118
+ return { ok: false, status: 404, error: 'CID is not pinned locally' };
119
+ }
120
+ const ufs = unixfs(this.ipfs);
121
+ const statOpts = { offline: true, ...(pathWithin ? { path: pathWithin } : {}) };
122
+ try {
123
+ const st = await ufs.stat(cid, statOpts);
124
+ if (st.type === 'directory') {
125
+ return { ok: false, status: 400, error: 'Directory download is not supported; specify a file path under the CID' };
126
+ }
127
+ const chunks = ufs.cat(cid, { offline: true, ...(pathWithin ? { path: pathWithin } : {}) });
128
+ return { ok: true, contentType: 'application/octet-stream', chunks };
129
+ }
130
+ catch {
131
+ try {
132
+ if (pathWithin) {
133
+ return { ok: false, status: 404, error: 'Content not available locally at path' };
134
+ }
135
+ const block = await this.ipfs.blockstore.get(cid, { offline: true });
136
+ async function* single() {
137
+ yield block;
138
+ }
139
+ return { ok: true, contentType: 'application/octet-stream', chunks: single() };
140
+ }
141
+ catch {
142
+ return { ok: false, status: 404, error: 'Content not available locally' };
143
+ }
144
+ }
145
+ }
146
+ /**
147
+ * Same as {@link syncAllOrbitDBRecords} but returns structured result for HTTP `/pinning/sync`
148
+ * and observability.
83
149
  */
84
150
  async syncAllOrbitDBRecordsWithResult(dbAddress) {
151
+ const empty = {
152
+ success: false,
153
+ receivedUpdate: false,
154
+ fallbackScanUsed: false,
155
+ extractedMediaCids: [],
156
+ };
85
157
  if (this.isShuttingDown)
86
- return false;
158
+ return empty;
87
159
  const existing = this.syncInFlight.get(dbAddress);
88
160
  if (existing) {
89
161
  syncLog('Sync already in progress for database, skipping duplicate request:', dbAddress);
90
162
  await existing;
91
- return this.pinnedDatabasesByAddress.has(dbAddress);
163
+ const ok = this.pinnedDatabasesByAddress.has(dbAddress);
164
+ return {
165
+ success: ok,
166
+ receivedUpdate: false,
167
+ fallbackScanUsed: false,
168
+ extractedMediaCids: [],
169
+ coalesced: true,
170
+ };
92
171
  }
93
172
  const syncPromise = (async () => {
94
173
  this.pinningSyncOperations++;
@@ -97,6 +176,9 @@ export class DatabaseService {
97
176
  let db;
98
177
  let aclDb;
99
178
  let success = false;
179
+ let receivedUpdate = false;
180
+ let fallbackScanUsed = false;
181
+ let extractedMediaCids = [];
100
182
  try {
101
183
  aclDb = await this.preOpenAccessController(dbAddress);
102
184
  syncLog('Opening database:', dbAddress);
@@ -112,10 +194,28 @@ export class DatabaseService {
112
194
  syncLog('Received update event for database:', dbAddress, 'updates:', updates.length);
113
195
  }
114
196
  if (didReceiveUpdate) {
197
+ receivedUpdate = true;
115
198
  const updateRecords = updates.map((entry) => ({ value: entry?.payload?.value ?? entry?.value ?? entry }));
116
- const imageCids = this.extractImageCids(updateRecords);
117
- syncLog('Extracted media CIDs from updates:', dbAddress, 'count:', imageCids.length);
118
- this.enqueueImageCidsForPinning(imageCids);
199
+ extractedMediaCids = this.extractImageCids(updateRecords);
200
+ syncLog('Extracted media CIDs from updates:', dbAddress, 'count:', extractedMediaCids.length);
201
+ this.enqueueImageCidsForPinning(extractedMediaCids);
202
+ }
203
+ else if (typeof db?.all === 'function') {
204
+ // HTTP sync often runs after the writer already replicated; no new `update` may fire.
205
+ syncLog('Falling back to db.all() scan for media CIDs:', dbAddress);
206
+ try {
207
+ const all = await db.all();
208
+ const rows = Array.isArray(all) ? all : [];
209
+ extractedMediaCids = this.extractImageCids(rows.map((row) => ({ value: row?.value ?? row })));
210
+ if (extractedMediaCids.length > 0) {
211
+ fallbackScanUsed = true;
212
+ this.enqueueImageCidsForPinning(extractedMediaCids);
213
+ syncLog('Extracted media CIDs from db.all():', dbAddress, 'count:', extractedMediaCids.length);
214
+ }
215
+ }
216
+ catch (scanErr) {
217
+ syncLog('db.all() fallback failed:', dbAddress, scanErr?.message || scanErr);
218
+ }
119
219
  }
120
220
  this.metrics.trackSync('documents', 'success');
121
221
  endTimer();
@@ -150,7 +250,7 @@ export class DatabaseService {
150
250
  // ignore close failures
151
251
  }
152
252
  }
153
- return success;
253
+ return { success, receivedUpdate, fallbackScanUsed, extractedMediaCids };
154
254
  })();
155
255
  this.syncInFlight.set(dbAddress, syncPromise.then(() => { }));
156
256
  try {
@@ -180,41 +280,7 @@ export class DatabaseService {
180
280
  // Only run DID JWS verification for `did` identities. The DID provider's verifyIdentity
181
281
  // builds a JWS from signatures.publicKey; calling it for webauthn / varsig shapes hits
182
282
  // dids ("No kid found in jws") or unhandled rejections because verifyJWS is not awaited upstream.
183
- verifyIdentityFallback: async (identity) => {
184
- if (!identity)
185
- return false;
186
- const t = identity?.type;
187
- if (t === 'did') {
188
- try {
189
- return await OrbitDBIdentityProviderDID.verifyIdentity(identity);
190
- }
191
- catch {
192
- return false;
193
- }
194
- }
195
- if (t === 'webauthn' && typeof OrbitDBWebAuthnIdentityProviderFunction.verifyIdentity === 'function') {
196
- try {
197
- return await OrbitDBWebAuthnIdentityProviderFunction.verifyIdentity(identity);
198
- }
199
- catch {
200
- return false;
201
- }
202
- }
203
- if (t === 'webauthn-varsig') {
204
- try {
205
- return await verifyVarsigIdentity(identity);
206
- }
207
- catch {
208
- return false;
209
- }
210
- }
211
- try {
212
- return await verifyWorkerEd25519Identity(identity);
213
- }
214
- catch {
215
- return false;
216
- }
217
- }
283
+ verifyIdentityFallback: createRelayVerifyIdentityFallback(defaultRelayVerifyIdentityDeps())
218
284
  };
219
285
  this.orbitdb = await createOrbitDB({
220
286
  ipfs,
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"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"}
@@ -8,16 +8,41 @@ type Libp2pLike = {
8
8
  }>;
9
9
  getConnections?: () => unknown[];
10
10
  };
11
+ /** Result of POST `/pinning/sync` (also embedded in JSON response with `dbAddress`). */
12
+ export type PinningSyncResult = {
13
+ ok: boolean;
14
+ error?: string;
15
+ /** Relay observed at least one OrbitDB `update` while syncing this address. */
16
+ receivedUpdate?: boolean;
17
+ /** True when no live `update` arrived and media CIDs were taken from `db.all()` instead. */
18
+ fallbackScanUsed?: boolean;
19
+ /** Media CIDs extracted from updates and/or `db.all()` fallback (same field rules as update-driven pinning). */
20
+ extractedMediaCids?: string[];
21
+ /** True when this request waited on another in-flight sync for the same address. */
22
+ coalesced?: boolean;
23
+ };
24
+ /** Result of {@link PinningHttpHandlers.streamPinnedCid} for GET `/ipfs/...`. */
25
+ export type StreamPinnedCidResult = {
26
+ ok: true;
27
+ contentType?: string;
28
+ chunks: AsyncIterable<Uint8Array>;
29
+ } | {
30
+ ok: false;
31
+ status: number;
32
+ error: string;
33
+ };
11
34
  export type PinningHttpHandlers = {
12
35
  getStats: () => Record<string, unknown>;
13
36
  getDatabases: () => {
14
37
  databases: Array<Record<string, unknown>>;
15
38
  total: number;
16
39
  };
17
- syncDatabase: (dbAddress: string) => Promise<{
18
- ok: boolean;
19
- error?: string;
20
- }>;
40
+ syncDatabase: (dbAddress: string) => Promise<PinningSyncResult>;
41
+ /**
42
+ * Stream bytes for a CID only if it is pinned in Helia and only from local storage
43
+ * (`offline` / no network fetch). Optional `pathWithin` is a UnixFS path inside a directory CID.
44
+ */
45
+ streamPinnedCid?: (cidStr: string, pathWithin?: string) => Promise<StreamPinnedCidResult>;
21
46
  };
22
47
  type MetricsServerOptions = {
23
48
  getLibp2p?: () => Libp2pLike | null;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/services/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;IACnC,aAAa,CAAC,EAAE,MAAM,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC,CAAA;IACvD,cAAc,CAAC,EAAE,MAAM,OAAO,EAAE,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,YAAY,EAAE,MAAM;QAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAChF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC9E,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B,CAAA;AAuCD,qBAAa,aAAa;IACxB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAChD,OAAO,EAAE,oBAAoB,CAAA;gBAEjB,OAAO,GAAE,oBAAyB;IAmBxC,UAAU;IAIhB,OAAO,CAAC,SAAS;IAQjB,KAAK,CAAC,IAAI,GAAE,MAAM,GAAG,MAAyC;IAyJ9D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAY;IAI1C,cAAc,CAAC,IAAI,EAAE,MAAM;IAIrB,IAAI;CAYX"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/services/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;IACnC,aAAa,CAAC,EAAE,MAAM,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC,CAAA;IACvD,cAAc,CAAC,EAAE,MAAM,OAAO,EAAE,CAAA;CACjC,CAAA;AAED,wFAAwF;AACxF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gHAAgH;IAChH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAAE,GACrE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,YAAY,EAAE,MAAM;QAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAChF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC/D;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;CAC1F,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B,CAAA;AAuCD,qBAAa,aAAa;IACxB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAChD,OAAO,EAAE,oBAAoB,CAAA;gBAEjB,OAAO,GAAE,oBAAyB;IAmBxC,UAAU;IAIhB,OAAO,CAAC,SAAS;IAQjB,KAAK,CAAC,IAAI,GAAE,MAAM,GAAG,MAAyC;IAyN9D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAY;IAI1C,cAAc,CAAC,IAAI,EAAE,MAAM;IAIrB,IAAI;CAYX"}
@@ -133,7 +133,19 @@ export class MetricsServer {
133
133
  }
134
134
  const result = await pinning.syncDatabase(dbAddress);
135
135
  res.statusCode = result.ok ? 200 : 500;
136
- res.end(JSON.stringify(result.ok ? { ok: true, dbAddress } : { ok: false, error: result.error || 'sync failed' }));
136
+ if (result.ok) {
137
+ res.end(JSON.stringify({
138
+ ok: true,
139
+ dbAddress,
140
+ receivedUpdate: result.receivedUpdate,
141
+ fallbackScanUsed: result.fallbackScanUsed,
142
+ extractedMediaCids: result.extractedMediaCids,
143
+ ...(result.coalesced ? { coalesced: true } : {}),
144
+ }));
145
+ }
146
+ else {
147
+ res.end(JSON.stringify({ ok: false, error: result.error || 'sync failed' }));
148
+ }
137
149
  }
138
150
  catch (e) {
139
151
  res.statusCode = 400;
@@ -141,6 +153,58 @@ export class MetricsServer {
141
153
  }
142
154
  return;
143
155
  }
156
+ if (pinning?.streamPinnedCid && req.method === 'GET' && pathname.startsWith('/ipfs/')) {
157
+ const tail = pathname.slice('/ipfs/'.length);
158
+ let parts;
159
+ try {
160
+ parts = tail.split('/').filter((p) => p.length > 0).map((p) => decodeURIComponent(p));
161
+ }
162
+ catch {
163
+ res.statusCode = 400;
164
+ res.setHeader('Content-Type', 'application/json');
165
+ res.end(JSON.stringify({ error: 'Invalid path encoding' }));
166
+ return;
167
+ }
168
+ if (parts.length === 0) {
169
+ res.statusCode = 400;
170
+ res.setHeader('Content-Type', 'application/json');
171
+ res.end(JSON.stringify({ error: 'Missing CID' }));
172
+ return;
173
+ }
174
+ const cidStr = parts[0];
175
+ const pathWithin = parts.length > 1 ? parts.slice(1).join('/') : undefined;
176
+ const out = await pinning.streamPinnedCid(cidStr, pathWithin);
177
+ if (!out.ok) {
178
+ res.statusCode = out.status;
179
+ res.setHeader('Content-Type', 'application/json');
180
+ res.end(JSON.stringify({ error: out.error }));
181
+ return;
182
+ }
183
+ res.statusCode = 200;
184
+ if (out.contentType) {
185
+ res.setHeader('Content-Type', out.contentType);
186
+ }
187
+ res.setHeader('Cache-Control', 'private, no-store');
188
+ try {
189
+ for await (const chunk of out.chunks) {
190
+ if (!res.write(chunk)) {
191
+ await new Promise((resolve) => res.once('drain', resolve));
192
+ }
193
+ }
194
+ res.end();
195
+ }
196
+ catch (e) {
197
+ if (!res.writableEnded) {
198
+ try {
199
+ res.destroy(e);
200
+ }
201
+ catch {
202
+ // ignore
203
+ }
204
+ }
205
+ }
206
+ return;
207
+ }
144
208
  if (pathname === '/metrics') {
145
209
  res.setHeader('Content-Type', client.register.contentType);
146
210
  res.end(await this.getMetrics());
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/services/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/services/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;AAEpC,IAAI,eAAe,GAAyB,IAAI,CAAA;AAChD,IAAI,yBAAyB,GAAG,KAAK,CAAA;AA2CrC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC;IACrC,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,oDAAoD;IAC1D,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC/B,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC;IACjD,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,gDAAgD;IACtD,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;CACjC,CAAC,CAAA;AAEF,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,KAAK,CAAA;IAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC3C,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,KAAK,CAAA;IAC9C,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAA;IACtE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAe;IAC1C,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAClC,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,OAAO,aAAa;IACxB,MAAM,CAAoB;IAC1B,YAAY,CAAoC;IAChD,OAAO,CAAsB;IAE7B,YAAY,UAAgC,EAAE;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,eAAe,GAAG,IAAI,CAAA;QACxB,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,eAAe,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QACvD,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,eAAe,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QACnD,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IACxC,CAAC;IAEO,SAAS;QACf,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,IAAI,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAwB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI;QAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;YACpF,GAAG,CAAC,4CAA4C,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpD,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAA;QAE/C,IAAI,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,gCAAgC,CAAC,EAAE,CAAC;YACrG,MAAM,CAAC,qBAAqB,EAAE,CAAA;YAC9B,yBAAyB,GAAG,IAAI,CAAA;QAClC,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAElE,MAAM,YAAY,GAAG,CAAC,GAAyB,EAAoB,EAAE,CACnE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3E,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAClD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChB,OAAO,CAAC,EAAE,CAAC,CAAA;oBACX,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QAEJ,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;QAEnF,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;YAEpC,IAAI,OAAO,IAAI,QAAQ,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrE,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;gBACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC3C,OAAM;YACR,CAAC;YAED,IAAI,OAAO,IAAI,QAAQ,KAAK,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACzE,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;gBACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;gBAC/C,OAAM;YACR,CAAC;YAED,IAAI,OAAO,IAAI,QAAQ,KAAK,eAAe,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACrE,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;gBACjD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAA2B,CAAA;oBAChE,MAAM,SAAS,GAAG,OAAO,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;oBAClF,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;wBACpB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAA;wBAC7E,OAAM;oBACR,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;oBACpD,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;oBACtC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;wBACd,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;4BACb,EAAE,EAAE,IAAI;4BACR,SAAS;4BACT,cAAc,EAAE,MAAM,CAAC,cAAc;4BACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;4BACzC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;4BAC7C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACjD,CAAC,CACH,CAAA;oBACH,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC,CAAA;oBAC9E,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;oBACpB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACxE,CAAC;gBACD,OAAM;YACR,CAAC;YAED,IAAI,OAAO,EAAE,eAAe,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC5C,IAAI,KAAe,CAAA;gBACnB,IAAI,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;gBACvF,CAAC;gBAAC,MAAM,CAAC;oBACP,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;oBACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;oBACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAA;oBAC3D,OAAM;gBACR,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;oBACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;oBACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;oBACjD,OAAM;gBACR,CAAC;gBACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACvB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBAE1E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;gBAC7D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAA;oBAC3B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;oBACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;oBAC7C,OAAM;gBACR,CAAC;gBACD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;gBACpB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;gBAChD,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;gBACnD,IAAI,CAAC;oBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BACtB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;wBAClE,CAAC;oBACH,CAAC;oBACD,GAAG,CAAC,GAAG,EAAE,CAAA;gBACX,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;wBACvB,IAAI,CAAC;4BACH,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;wBAChB,CAAC;wBAAC,MAAM,CAAC;4BACP,SAAS;wBACX,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAM;YACR,CAAC;YAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;gBAC1D,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;gBAChC,OAAM;YACR,CAAC;YAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC/B,MAAM,WAAW,GAAG,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAA;gBACpD,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE/E,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;gBACjD,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;oBACb,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI;oBAC5C,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE;oBAC3C,UAAU,EAAE,UAAU,CAAC,MAAM;oBAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CACH,CAAA;gBACD,OAAM;YACR,CAAC;YAED,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;gBAC/B,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC7F,MAAM,WAAW,GAAG;oBAClB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAClD,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACpE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAClD,CAAA;gBAED,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;gBACjD,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;oBACb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI;oBAC5C,GAAG;oBACH,WAAW;oBACX,IAAI,EAAE;wBACJ,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI;wBACrC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI;wBAC3C,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI;qBAChC;oBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CACH,CAAA;gBACD,OAAM;YACR,CAAC;YAED,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACtB,CAAC,CAAC,CAAA;QAEJ,MAAM,MAAM,GAAG,CAAC,CAAS,EAA+B,EAAE,CACxD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;YAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;gBAC9B,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1C,GAAG,CAAC,gBAAgB,CAAC,wCAAwC,CAAC,CAAA;oBAC9D,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACvB,OAAM;gBACR,CAAC;gBACD,GAAG,CAAC,iCAAiC,EAAE,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,CAAA;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEJ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAM,GAAG,SAAS;QACxC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;IACxC,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,qBAAqB,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,CAAA;QACzB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAM;QAExB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbitdb-relay-pinner",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "OrbitDB relay + pinning/sync service for Helia/libp2p stacks.",
@@ -42,8 +42,8 @@
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -p tsconfig.json && node scripts/add-shebang.mjs",
45
- "test": "npm run build && mocha --timeout 180000 \"test/**/*.test.mjs\"",
46
- "test:integration:relay-media": "npm run build && mocha --timeout 180000 \"test/relay-media-replication.test.mjs\"",
45
+ "test": "npm run build && mocha --timeout 180000 \"mocha/**/*.mjs\"",
46
+ "test:integration:relay-media": "npm run build && mocha --timeout 180000 \"mocha/relay-media-replication.mjs\"",
47
47
  "prepack": "npm run build"
48
48
  },
49
49
  "overrides": {
@@ -56,9 +56,12 @@
56
56
  "@chainsafe/libp2p-gossipsub": "14.1.1",
57
57
  "@chainsafe/libp2p-noise": "^16.1.4",
58
58
  "@chainsafe/libp2p-yamux": "^7.0.4",
59
+ "@helia/unixfs": "^5.1.0",
59
60
  "@ipshipyard/libp2p-auto-tls": "^1.0.0",
61
+ "@le-space/orbitdb-access-controller-delegated-todo": "^0.1.0",
60
62
  "@le-space/orbitdb-identity-provider-webauthn-did": "^0.2.10",
61
63
  "@libp2p/autonat": "^2.0.38",
64
+ "@libp2p/bootstrap": "^11.0.47",
62
65
  "@libp2p/circuit-relay-v2": "^3.2.24",
63
66
  "@libp2p/crypto": "^5.1.1",
64
67
  "@libp2p/dcutr": "^2.0.38",
@@ -1,5 +0,0 @@
1
- declare const DelegatedTodoAccessController: ({ write }?: {
2
- write?: string[];
3
- }) => ({ orbitdb, identities, address, name }: any) => Promise<any>;
4
- export default DelegatedTodoAccessController;
5
- //# sourceMappingURL=delegated-todo-access-controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegated-todo-access-controller.d.ts","sourceRoot":"","sources":["../../src/access/delegated-todo-access-controller.ts"],"names":[],"mappings":"AAmBA,QAAA,MAAM,6BAA6B,GAChC,YAAW;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,MAC9B,wCAAwC,GAAG,iBAqDjD,CAEF;AAED,eAAe,6BAA6B,CAAA"}
@@ -1,77 +0,0 @@
1
- import { OrbitDBAccessController } from '@orbitdb/core';
2
- import { verifyIdentityWithFallback } from './shared.js';
3
- const type = 'todo-delegation';
4
- function parseDelegationActionKey(key) {
5
- if (typeof key !== 'string')
6
- return null;
7
- const match = /^delegation-action\/([^/]+)\/([^/]+)\/[^/]+$/.exec(key);
8
- if (!match)
9
- return null;
10
- try {
11
- return {
12
- taskKey: match[1],
13
- delegateDid: decodeURIComponent(match[2])
14
- };
15
- }
16
- catch {
17
- return null;
18
- }
19
- }
20
- const DelegatedTodoAccessController = ({ write } = {}) => async ({ orbitdb, identities, address, name }) => {
21
- const baseFactory = OrbitDBAccessController({ write });
22
- const baseAccess = await baseFactory({ orbitdb, identities, address, name });
23
- const canAppend = async (entry) => {
24
- if (await baseAccess.canAppend(entry)) {
25
- return true;
26
- }
27
- const payload = entry?.payload;
28
- if (!payload || payload.op !== 'PUT')
29
- return false;
30
- const parsedKey = parseDelegationActionKey(payload.key);
31
- if (!parsedKey)
32
- return false;
33
- const value = payload.value;
34
- if (!value || value.type !== 'delegation-action')
35
- return false;
36
- if (!['set-completed', 'patch-fields'].includes(value.action))
37
- return false;
38
- if (value.action === 'set-completed' && typeof value.setCompleted !== 'boolean') {
39
- return false;
40
- }
41
- if (value.action === 'patch-fields') {
42
- if (!value.patch || typeof value.patch !== 'object')
43
- return false;
44
- const allowedPatchKeys = ['text', 'description'];
45
- const patchKeys = Object.keys(value.patch);
46
- if (patchKeys.length === 0)
47
- return false;
48
- if (!patchKeys.every((k) => allowedPatchKeys.includes(k)))
49
- return false;
50
- if (value.patch.text !== undefined && typeof value.patch.text !== 'string')
51
- return false;
52
- if (value.patch.description !== undefined && typeof value.patch.description !== 'string') {
53
- return false;
54
- }
55
- }
56
- if (value.taskKey !== parsedKey.taskKey)
57
- return false;
58
- if (value.delegateDid !== parsedKey.delegateDid)
59
- return false;
60
- if (value.expiresAt && Date.parse(value.expiresAt) < Date.now())
61
- return false;
62
- const writerIdentity = await identities.getIdentity(entry.identity);
63
- if (!writerIdentity)
64
- return false;
65
- if (!(await verifyIdentityWithFallback(identities, writerIdentity)))
66
- return false;
67
- return writerIdentity.id === value.delegateDid;
68
- };
69
- return {
70
- ...baseAccess,
71
- type,
72
- canAppend
73
- };
74
- };
75
- DelegatedTodoAccessController.type = type;
76
- export default DelegatedTodoAccessController;
77
- //# sourceMappingURL=delegated-todo-access-controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegated-todo-access-controller.js","sourceRoot":"","sources":["../../src/access/delegated-todo-access-controller.ts"],"names":[],"mappings":"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"}