@dxos/teleport-extension-replicator 0.1.56-main.ed2f871 → 0.1.56-main.fd2d497

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.
@@ -1,4 +1,4 @@
1
- import { FeedStore } from '@dxos/feed-store';
1
+ import { FeedOptions, FeedStore } from '@dxos/feed-store';
2
2
  import { Keyring } from '@dxos/keyring';
3
3
  import { PublicKey } from '@dxos/keys';
4
4
  import { Teleport } from '@dxos/teleport';
@@ -11,7 +11,7 @@ export declare class TestAgent {
11
11
  keyring: Keyring;
12
12
  feedStore: FeedStore<{}>;
13
13
  createWriteFeed(numBlocks?: number): Promise<import("@dxos/feed-store").FeedWrapper<{}>>;
14
- createReadFeed(key: PublicKey): Promise<import("@dxos/feed-store").FeedWrapper<{}>>;
14
+ createReadFeed(key: PublicKey, opts?: FeedOptions): Promise<import("@dxos/feed-store").FeedWrapper<{}>>;
15
15
  }
16
16
  /**
17
17
  * Simulates two peers connected via P2P network.
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,qBAAa,WAAW;IACtB,WAAW,IAAI,SAAS;CAGzB;AAGD,qBAAa,SAAS;IACb,OAAO,gDAA4C;IACnD,OAAO,UAAwD;IAC/D,SAAS,gBAEb;IAEG,eAAe,CAAC,SAAS,SAAI;IAUnC,cAAc,CAAC,GAAG,EAAE,SAAS;CAG9B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;EAuB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;EAUhC,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,qBAAa,WAAW;IACtB,WAAW,IAAI,SAAS;CAGzB;AAGD,qBAAa,SAAS;IACb,OAAO,gDAA4C;IACnD,OAAO,UAAwD;IAC/D,SAAS,gBAEb;IAEG,eAAe,CAAC,SAAS,SAAI;IAUnC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW;CAGlD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;EAuB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;EAUhC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/teleport-extension-replicator",
3
- "version": "0.1.56-main.ed2f871",
3
+ "version": "0.1.56-main.fd2d497",
4
4
  "description": "Replicator extension for teleport.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -16,25 +16,25 @@
16
16
  "src"
17
17
  ],
18
18
  "dependencies": {
19
- "@dxos/async": "0.1.56-main.ed2f871",
20
- "@dxos/context": "0.1.56-main.ed2f871",
21
- "@dxos/debug": "0.1.56-main.ed2f871",
22
- "@dxos/feed-store": "0.1.56-main.ed2f871",
23
- "@dxos/invariant": "0.1.56-main.ed2f871",
24
- "@dxos/keys": "0.1.56-main.ed2f871",
25
- "@dxos/log": "0.1.56-main.ed2f871",
26
- "@dxos/node-std": "0.1.56-main.ed2f871",
27
- "@dxos/protocols": "0.1.56-main.ed2f871",
28
- "@dxos/rpc": "0.1.56-main.ed2f871",
29
- "@dxos/teleport": "0.1.56-main.ed2f871",
30
- "@dxos/util": "0.1.56-main.ed2f871"
19
+ "@dxos/async": "0.1.56-main.fd2d497",
20
+ "@dxos/context": "0.1.56-main.fd2d497",
21
+ "@dxos/debug": "0.1.56-main.fd2d497",
22
+ "@dxos/feed-store": "0.1.56-main.fd2d497",
23
+ "@dxos/invariant": "0.1.56-main.fd2d497",
24
+ "@dxos/keys": "0.1.56-main.fd2d497",
25
+ "@dxos/log": "0.1.56-main.fd2d497",
26
+ "@dxos/node-std": "0.1.56-main.fd2d497",
27
+ "@dxos/protocols": "0.1.56-main.fd2d497",
28
+ "@dxos/rpc": "0.1.56-main.fd2d497",
29
+ "@dxos/teleport": "0.1.56-main.fd2d497",
30
+ "@dxos/util": "0.1.56-main.fd2d497"
31
31
  },
32
32
  "devDependencies": {
33
33
  "add": "^2.0.6",
34
34
  "fast-check": "~3.3.0",
35
35
  "typescript": "^5.0.4",
36
- "@dxos/keyring": "0.1.56-main.ed2f871",
37
- "@dxos/random-access-storage": "0.1.56-main.ed2f871"
36
+ "@dxos/keyring": "0.1.56-main.fd2d497",
37
+ "@dxos/random-access-storage": "0.1.56-main.fd2d497"
38
38
  },
39
39
  "publishConfig": {
40
40
  "access": "public"
@@ -6,6 +6,7 @@ import expect from 'expect';
6
6
 
7
7
  import { Event, sleep } from '@dxos/async';
8
8
  import { describe, test } from '@dxos/test';
9
+ import { range } from '@dxos/util';
9
10
 
10
11
  import { createReplicatorPair, TestBuilder } from './testing';
11
12
 
@@ -103,6 +104,33 @@ describe('ReplicatorExtension', () => {
103
104
  await Event.wrap(feed1B, 'download').waitForCondition(() => feed1B.length === 10);
104
105
  });
105
106
 
107
+ test('sparse replication', async () => {
108
+ const builder = new TestBuilder();
109
+ const agent1 = builder.createAgent();
110
+ const agent2 = builder.createAgent();
111
+
112
+ const { replicator1, replicator2 } = await createReplicatorPair();
113
+
114
+ replicator1.setOptions({ upload: true });
115
+ replicator2.setOptions({ upload: true });
116
+
117
+ const feed1 = await agent1.createWriteFeed(10);
118
+ const feed2 = await agent2.createReadFeed(feed1.key, { sparse: true });
119
+
120
+ replicator1.addFeed(feed1);
121
+ replicator2.addFeed(feed2);
122
+
123
+ void feed2.download({ start: 10, linear: true });
124
+
125
+ await sleep(50);
126
+
127
+ expect(range(10).every((idx) => feed2.has(idx))).toEqual(false);
128
+
129
+ void feed2.download({ start: 0, linear: true });
130
+
131
+ await Event.wrap(feed2, 'download').waitForCondition(() => range(10).every((idx) => feed2.has(idx)));
132
+ });
133
+
106
134
  // TODO: not working yet.
107
135
  // eslint-disable-next-line mocha/no-skipped-tests
108
136
  test.skip('enabling upload mid replication', async () => {
package/src/testing.ts CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { pipeline } from 'stream';
6
6
 
7
- import { FeedFactory, FeedStore } from '@dxos/feed-store';
7
+ import { FeedFactory, FeedOptions, FeedStore } from '@dxos/feed-store';
8
8
  import { Keyring } from '@dxos/keyring';
9
9
  import { PublicKey } from '@dxos/keys';
10
10
  import { log } from '@dxos/log';
@@ -39,8 +39,8 @@ export class TestAgent {
39
39
  return feed;
40
40
  }
41
41
 
42
- createReadFeed(key: PublicKey) {
43
- return this.feedStore.openFeed(key);
42
+ createReadFeed(key: PublicKey, opts?: FeedOptions) {
43
+ return this.feedStore.openFeed(key, opts);
44
44
  }
45
45
  }
46
46