9.11.2 • Published 7 months ago

@peerbit/document v9.11.2

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

Documents

Distributed document store.

This store is built on top of the base store. This store allows for type-safe document storage and retrieval accross peers.

As of now, go through the tests for documentation on how to use the module.

Example

import { field, option, serialize, variant } from "@dao-xyz/borsh";
import { Program } from "@peerbit/program";
import { Peerbit } from "peerbit";
import {
	Documents,
	DocumentIndex,
	SearchRequest,
	StringMatch,
	StringMatchMethod,
	Results,
} from "@peerbit/document";


@variant("document")
class Document {
    @field({ type: "string" })
    id: string;

    @field({ type: option("string") })
    name?: string;

    @field({ type: option("u64") })
    number?: bigint;

    constructor(opts?: Document) {
        if (opts) {
            Object.assign(this, opts);
        }
    }
}

@variant("test_documents")
class TestStore extends Program {
    @field({ type: Documents })
    docs: Documents<Document>;

    constructor(properties?: { docs: Documents<Document> }) {
        super();
        if (properties) {
            this.docs = properties.docs;
        }
    }
    async open(): Promise<void> {
        await this.docs.open({ 
			type: Document, 
			index: {
				fields: (obj) => obj // here you can filter and transform what fields you want to index
			}})
    }
}

// later 

const peer = await Peerbit.create ({libp2p: your_libp2p_instance})
const store = peer.open(new TestStore());
console.log(store.address) /// this address can be opened by another peer 


// insert
let doc = new Document({
    id: "1",
    name: "hello world",
    number: 1n,
});
let doc2 = new Document({
    id: "2",
    name: "hello world",
    number: 2n,
});

let doc3 = new Document({
    id: "3",
    name: "foo",
    number: 3n,
});

await store.docs.put(doc);
await store.docs.put(doc2);
await store.docs.put(doc3);


// search for documents from another peer
const peer2 = await Peerbit.create ({libp2: another_libp2p_instance})
const store2 = peer2.open(store.address);

let responses: Document[] = await store2.docs.index.search(
    new SearchRequest({
        query: [
          new StringMatch({
                key: "name",
                value: "ello",
				method: StringMatchMethod.contains
            }),
        ],
    })
);
expect(responses]).to.have.length(2);
expect(responses.map((x) => x.value.id)).to.deep.equal(["1", "2"]);
9.8.1

8 months ago

9.8.0

8 months ago

9.6.2-2292bf0

8 months ago

9.3.11-fbb4e31

10 months ago

9.5.3-79582c9

9 months ago

9.5.4-a762412

9 months ago

9.0.15-bae87a5

11 months ago

9.0.12-a97d716

11 months ago

9.3.3-e182140

10 months ago

8.0.1-10f303c

1 year ago

9.9.0

8 months ago

9.0.11-17e5d15

11 months ago

7.1.14-1c77281

1 year ago

9.3.8-a4bb1df

10 months ago

9.11.1

7 months ago

9.11.2

7 months ago

9.11.0

7 months ago

7.1.16-5cf61cb

1 year ago

9.11.1-1169e60

7 months ago

9.9.0-29724c7

7 months ago

9.0.4-d0d863b

11 months ago

9.4.1-327e5c9

9 months ago

9.3.6-e16ac5f

10 months ago

9.0.17-e5392af

11 months ago

9.5.0-f5a378c

9 months ago

8.0.2-91f517a

1 year ago

9.10.0

7 months ago

9.10.1

7 months ago

9.2.1-5652381

10 months ago

9.0.5-115f7aa

11 months ago

9.3.5-592398d

10 months ago

9.0.21-baf4bd8

11 months ago

9.7.0-077dde4

8 months ago

9.4.2-3a4b77c

9 months ago

9.4.0-bf22247

9 months ago

9.0.25-12d090c

11 months ago

9.3.1-a2796fd

10 months ago

9.6.1-523d88d

8 months ago

9.4.3

9 months ago

9.4.2

9 months ago

9.0.26-a70fbaa

11 months ago

8.1.2-f461b9a

12 months ago

9.4.1

9 months ago

9.4.0

9 months ago

9.1.3-d9795af

10 months ago

8.0.6-03739af

1 year ago

8.0.6-27dca31

1 year ago

8.0.5-8abb258

1 year ago

9.7.0-470ffb3

8 months ago

9.0.17

11 months ago

9.0.16

11 months ago

9.0.19

11 months ago

9.0.18

11 months ago

9.0.13

11 months ago

9.0.12

11 months ago

9.0.15

11 months ago

9.0.14

11 months ago

9.0.11

11 months ago

9.0.10

11 months ago

9.5.5-6c5db3c

8 months ago

9.3.18-d8e5bfb

9 months ago

9.5.5

9 months ago

9.5.4

9 months ago

9.5.3

9 months ago

9.5.2

9 months ago

9.0.2-6b5241d

12 months ago

9.5.1

9 months ago

9.5.0

9 months ago

9.2.2-a1dd3d8

10 months ago

9.0.24

11 months ago

9.0.23

11 months ago

9.0.20-8cae2b9

11 months ago

9.0.26

11 months ago

9.0.25

11 months ago

9.0.20

11 months ago

9.0.22

11 months ago

9.5.6

8 months ago

9.0.21

11 months ago

9.0.15-49afc60

11 months ago

9.8.0-9c1dc07

8 months ago

8.1.1-7d319f1

12 months ago

9.1.2-5226a66

10 months ago

9.6.4

8 months ago

9.6.3

8 months ago

9.6.2

8 months ago

9.6.1

8 months ago

9.6.0

8 months ago

9.3.4-9084059

10 months ago

9.8.1-b1540c6

8 months ago

9.3.4-d4093c8

10 months ago

9.7.0

8 months ago

9.0.21-da013fc

11 months ago

9.3.9-263159d

10 months ago

9.0.6-b900404

11 months ago

9.0.7-837e7f1

11 months ago

9.7.0-b3a3de9

8 months ago

9.3.12-c5f9b43

9 months ago

9.10.0-dbba3c6

7 months ago

9.5.2-22acbe9

9 months ago

9.10.0-9ef01e7

7 months ago

9.3.10-7c08aa6

10 months ago

9.0.9

11 months ago

9.0.8

11 months ago

9.0.8-313f84c

11 months ago

9.0.7

11 months ago

9.0.6

11 months ago

9.0.5

11 months ago

9.0.4

11 months ago

9.0.3

12 months ago

9.0.9-e0eabcf

11 months ago

9.5.3-820506

9 months ago

8.0.3-e5f6c17

1 year ago

8.0.0-05f4bef

1 year ago

8.1.0

1 year ago

8.1.2

12 months ago

8.1.1

1 year ago

9.6.0-8d1952b

8 months ago

9.0.6-617e97c

11 months ago

9.0.3-2ec6eb5

11 months ago

8.0.4-39e9da6

1 year ago

9.1.3-e3e1b7f

10 months ago

9.3.19

9 months ago

9.0.26-f0d763d

10 months ago

9.1.3

10 months ago

9.1.2

10 months ago

9.3.14

9 months ago

9.3.13

9 months ago

9.3.12

10 months ago

9.3.11

10 months ago

9.3.18

9 months ago

9.3.17

9 months ago

9.3.16

9 months ago

9.3.15

9 months ago

9.0.18-2de0560

11 months ago

9.3.10

10 months ago

9.10.0-c7dcc32

7 months ago

9.3.7-61928d4

10 months ago

9.0.0-63e24d5

12 months ago

9.0.13-961cb66

11 months ago

8.2.0

12 months ago

8.0.5-f5c8aec

1 year ago

9.3.10-9930e60

10 months ago

9.0.2

12 months ago

9.0.1

12 months ago

9.0.0

12 months ago

9.6.4-7ca5c48

8 months ago

9.2.2

10 months ago

9.6.1-902158c

8 months ago

9.2.1

10 months ago

9.0.26-aea0cef

10 months ago

9.6.3-a547831

8 months ago

9.1.1-bf9c70f

10 months ago

9.1.1

10 months ago

9.1.0

10 months ago

9.3.7

10 months ago

9.3.6

10 months ago

9.3.5

10 months ago

9.3.4

10 months ago

9.3.3

10 months ago

9.3.2

10 months ago

9.3.13-f151ed4

9 months ago

9.3.1

10 months ago

9.3.0

10 months ago

9.3.9

10 months ago

9.5.1-2f92713

9 months ago

9.3.8

10 months ago

9.3.14-8df5439

9 months ago

9.3.17-cd90eb0

9 months ago

9.3.18-61266e7

9 months ago

9.2.0

10 months ago

9.0.19-58dee0c

11 months ago

9.0.16-182ba4d

11 months ago

9.0.10-03f5b18

11 months ago

9.3.2-6335205

10 months ago

9.0.22-c709e20

11 months ago

8.1.0-43685b6

1 year ago

9.3.16-b9539fc

9 months ago

9.3.19-1e362c1

9 months ago

9.3.15-ed011b4

9 months ago

9.2.0-b4531d8

10 months ago

9.0.14-d8eb9b0

11 months ago

9.3.16-e280087

9 months ago

9.3.12-6ba92be

9 months ago

9.9.0-c66c749

8 months ago

9.1.0-e9b2c20

10 months ago

9.5.3-951a98f

9 months ago

9.4.0-c5744ae

9 months ago

9.0.24-ee20213

11 months ago

7.1.15-4d7d8ba

1 year ago

9.5.6-363580e

8 months ago

9.1.3-df2357c

10 months ago

9.0.22-b25d754

11 months ago

8.0.5

1 year ago

8.0.4

1 year ago

8.0.6

1 year ago

8.2.0-5fa75cc

12 months ago

8.0.6-6d2cda9

1 year ago

9.4.1-ca1f7f3

9 months ago

9.10.1-f2d727c

7 months ago

9.4.3-fb47029

9 months ago

9.11.0-f511993

7 months ago

9.3.0-821030a

10 months ago

7.1.15

1 year ago

7.1.16

1 year ago

8.2.0-a4ac71a

12 months ago

8.0.1

1 year ago

8.0.0

1 year ago

8.0.3

1 year ago

8.0.2

1 year ago

9.0.1-c0de42e

12 months ago

9.0.23-6dbebf0

11 months ago

9.0.8-e5510e0

11 months ago

7.1.11-7295b96

1 year ago

7.1.13-c679a0d

1 year ago

7.1.11-8cf50a6

1 year ago

7.1.13-30333b6

1 year ago

7.1.11-81d59ee

1 year ago

7.1.14

1 year ago

7.1.12

1 year ago

7.1.13-8bec89f

1 year ago

7.1.12-1a3d976

1 year ago

7.1.11-9aa0186

1 year ago

7.1.11-c577601

1 year ago

7.1.10-5614dfb

1 year ago

7.1.10-b6f9aa8

1 year ago

7.1.11

1 year ago

7.1.9

1 year ago

7.1.8

1 year ago

7.1.9-9559b10

1 year ago

7.1.7-d83d7e7

1 year ago

7.1.9-a6d0306

1 year ago

7.1.10

1 year ago

7.1.9-e9a5cd4

1 year ago

7.1.8-01f2c90

1 year ago

7.1.7

1 year ago

7.1.6-737a4d7

1 year ago

7.1.1-88f45c3

1 year ago

7.1.6

1 year ago

7.1.5

1 year ago

7.1.4

1 year ago

7.1.5-2f48d18

1 year ago

7.1.3-0b8baa8

1 year ago

7.1.3

1 year ago

7.1.2

1 year ago

7.1.5-a2cffec

1 year ago

7.1.2-a3e5123

1 year ago

7.1.4-29dd1b8

1 year ago

7.0.8-7872365

1 year ago

7.0.1-eb9dc6e

1 year ago

7.0.14-ccaf4f4

1 year ago

7.0.6-a0a3f23

1 year ago

7.0.8

1 year ago

7.0.7

1 year ago

7.0.12-d66695a

1 year ago

7.0.6

1 year ago

7.0.5

1 year ago

7.0.9

1 year ago

7.0.1-ac53fba

1 year ago

7.1.0-57b8640

1 year ago

7.0.11-c07c1c7

1 year ago

7.0.5-171d517

1 year ago

7.0.0-3a75d6e

1 year ago

7.1.1-4ec760d

1 year ago

7.0.9-8c33ab6

1 year ago

7.0.8-b57d808

1 year ago

7.0.2-2bc15a6

1 year ago

7.0.0

1 year ago

7.0.5-65f11ae

1 year ago

7.0.4

1 year ago

7.0.3

1 year ago

7.0.4-bf3e3ed

1 year ago

7.0.2

1 year ago

7.0.1

1 year ago

7.0.5-2b760c3

1 year ago

7.0.12

1 year ago

7.0.13

1 year ago

7.0.11

1 year ago

7.0.7-2d408db

1 year ago

7.0.14

1 year ago

7.0.5-1d1274c

1 year ago

7.0.9-343b1fa

1 year ago

7.0.13-e1db01f

1 year ago

7.0.5-5901172

1 year ago

7.0.4-5b40851

1 year ago

7.1.1

1 year ago

7.1.0

1 year ago

7.0.0-934594a

1 year ago

7.0.9-325235b

1 year ago

7.0.9-4b0fbf1

1 year ago

6.0.7-cccc078

1 year ago

7.0.3-9e66213

1 year ago

7.0.5-372e20f

1 year ago

7.0.13-42268a2

1 year ago

7.0.7-a16b978

1 year ago

7.1.0-b064d22

1 year ago

7.0.7-5ed4c57

1 year ago

7.0.5-8b0cac0

1 year ago

7.0.3-5e0d4ec

1 year ago

7.0.10-61d3cec

1 year ago

7.0.0-55cebfe

1 year ago

6.0.7-aa577a5

2 years ago

6.0.7-0691c73

2 years ago

6.0.7-218a5bb

2 years ago

6.0.7-efee9d3

2 years ago

6.0.7-a9206a8

2 years ago

6.0.7-a4f88b6

2 years ago

6.0.7

2 years ago

6.0.6

2 years ago

6.0.3

2 years ago

6.0.2

2 years ago

6.0.5

2 years ago

6.0.4

2 years ago

6.0.1

2 years ago

6.0.0

2 years ago

5.0.8

2 years ago

5.0.7

2 years ago

5.0.6

2 years ago

5.0.5

2 years ago

5.0.4

2 years ago

5.0.3

2 years ago

5.0.2

2 years ago

5.0.1

2 years ago

4.1.9

2 years ago

5.0.0

2 years ago

4.1.8

2 years ago

4.1.7

2 years ago

4.1.6

2 years ago

4.1.5

2 years ago

4.1.4

2 years ago

4.1.3

2 years ago

4.1.2

2 years ago

4.1.1

2 years ago

4.0.12

2 years ago

4.0.11

2 years ago

4.1.0

2 years ago

4.0.10

2 years ago

4.0.9

2 years ago

4.0.8

2 years ago

4.0.5

2 years ago

4.0.7

2 years ago

4.0.6

2 years ago

4.0.4

2 years ago

4.0.1

2 years ago

4.0.3

2 years ago

4.0.2

2 years ago

3.2.0

2 years ago

3.1.11

2 years ago

3.1.10

2 years ago

3.1.9

2 years ago

3.1.8

2 years ago

3.1.7

2 years ago

3.1.6

2 years ago

3.1.5

2 years ago

3.1.4

2 years ago

3.1.3

2 years ago

3.1.2

2 years ago

3.1.1

2 years ago

3.1.0

2 years ago

3.0.8

2 years ago

3.0.7

2 years ago

3.0.6

2 years ago

3.0.5

2 years ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago