9.11.2 • Published 5 months ago

@peerbit/document v9.11.2

Weekly downloads
-
License
MIT
Repository
-
Last release
5 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

6 months ago

9.8.0

6 months ago

9.6.2-2292bf0

6 months ago

9.3.11-fbb4e31

7 months ago

9.5.3-79582c9

6 months ago

9.5.4-a762412

6 months ago

9.0.15-bae87a5

9 months ago

9.0.12-a97d716

9 months ago

9.3.3-e182140

8 months ago

8.0.1-10f303c

11 months ago

9.9.0

6 months ago

9.0.11-17e5d15

9 months ago

7.1.14-1c77281

1 year ago

9.3.8-a4bb1df

8 months ago

9.11.1

5 months ago

9.11.2

5 months ago

9.11.0

5 months ago

7.1.16-5cf61cb

11 months ago

9.11.1-1169e60

5 months ago

9.9.0-29724c7

5 months ago

9.0.4-d0d863b

9 months ago

9.4.1-327e5c9

7 months ago

9.3.6-e16ac5f

8 months ago

9.0.17-e5392af

9 months ago

9.5.0-f5a378c

7 months ago

8.0.2-91f517a

11 months ago

9.10.0

5 months ago

9.10.1

5 months ago

9.2.1-5652381

8 months ago

9.0.5-115f7aa

9 months ago

9.3.5-592398d

8 months ago

9.0.21-baf4bd8

9 months ago

9.7.0-077dde4

6 months ago

9.4.2-3a4b77c

7 months ago

9.4.0-bf22247

7 months ago

9.0.25-12d090c

9 months ago

9.3.1-a2796fd

8 months ago

9.6.1-523d88d

6 months ago

9.4.3

7 months ago

9.4.2

7 months ago

9.0.26-a70fbaa

9 months ago

8.1.2-f461b9a

10 months ago

9.4.1

7 months ago

9.4.0

7 months ago

9.1.3-d9795af

8 months ago

8.0.6-03739af

10 months ago

8.0.6-27dca31

10 months ago

8.0.5-8abb258

10 months ago

9.7.0-470ffb3

6 months ago

9.0.17

9 months ago

9.0.16

9 months ago

9.0.19

9 months ago

9.0.18

9 months ago

9.0.13

9 months ago

9.0.12

9 months ago

9.0.15

9 months ago

9.0.14

9 months ago

9.0.11

9 months ago

9.0.10

9 months ago

9.5.5-6c5db3c

6 months ago

9.3.18-d8e5bfb

7 months ago

9.5.5

6 months ago

9.5.4

6 months ago

9.5.3

7 months ago

9.5.2

7 months ago

9.0.2-6b5241d

9 months ago

9.5.1

7 months ago

9.5.0

7 months ago

9.2.2-a1dd3d8

8 months ago

9.0.24

9 months ago

9.0.23

9 months ago

9.0.20-8cae2b9

9 months ago

9.0.26

9 months ago

9.0.25

9 months ago

9.0.20

9 months ago

9.0.22

9 months ago

9.5.6

6 months ago

9.0.21

9 months ago

9.0.15-49afc60

9 months ago

9.8.0-9c1dc07

6 months ago

8.1.1-7d319f1

10 months ago

9.1.2-5226a66

8 months ago

9.6.4

6 months ago

9.6.3

6 months ago

9.6.2

6 months ago

9.6.1

6 months ago

9.6.0

6 months ago

9.3.4-9084059

8 months ago

9.8.1-b1540c6

6 months ago

9.3.4-d4093c8

8 months ago

9.7.0

6 months ago

9.0.21-da013fc

9 months ago

9.3.9-263159d

8 months ago

9.0.6-b900404

9 months ago

9.0.7-837e7f1

9 months ago

9.7.0-b3a3de9

6 months ago

9.3.12-c5f9b43

7 months ago

9.10.0-dbba3c6

5 months ago

9.5.2-22acbe9

7 months ago

9.10.0-9ef01e7

5 months ago

9.3.10-7c08aa6

8 months ago

9.0.9

9 months ago

9.0.8

9 months ago

9.0.8-313f84c

9 months ago

9.0.7

9 months ago

9.0.6

9 months ago

9.0.5

9 months ago

9.0.4

9 months ago

9.0.3

9 months ago

9.0.9-e0eabcf

9 months ago

9.5.3-820506

6 months ago

8.0.3-e5f6c17

11 months ago

8.0.0-05f4bef

11 months ago

8.1.0

10 months ago

8.1.2

10 months ago

8.1.1

10 months ago

9.6.0-8d1952b

6 months ago

9.0.6-617e97c

9 months ago

9.0.3-2ec6eb5

9 months ago

8.0.4-39e9da6

11 months ago

9.1.3-e3e1b7f

8 months ago

9.3.19

7 months ago

9.0.26-f0d763d

8 months ago

9.1.3

8 months ago

9.1.2

8 months ago

9.3.14

7 months ago

9.3.13

7 months ago

9.3.12

7 months ago

9.3.11

8 months ago

9.3.18

7 months ago

9.3.17

7 months ago

9.3.16

7 months ago

9.3.15

7 months ago

9.0.18-2de0560

9 months ago

9.3.10

8 months ago

9.10.0-c7dcc32

5 months ago

9.3.7-61928d4

8 months ago

9.0.0-63e24d5

10 months ago

9.0.13-961cb66

9 months ago

8.2.0

10 months ago

8.0.5-f5c8aec

10 months ago

9.3.10-9930e60

8 months ago

9.0.2

10 months ago

9.0.1

10 months ago

9.0.0

10 months ago

9.6.4-7ca5c48

6 months ago

9.2.2

8 months ago

9.6.1-902158c

6 months ago

9.2.1

8 months ago

9.0.26-aea0cef

8 months ago

9.6.3-a547831

6 months ago

9.1.1-bf9c70f

8 months ago

9.1.1

8 months ago

9.1.0

8 months ago

9.3.7

8 months ago

9.3.6

8 months ago

9.3.5

8 months ago

9.3.4

8 months ago

9.3.3

8 months ago

9.3.2

8 months ago

9.3.13-f151ed4

7 months ago

9.3.1

8 months ago

9.3.0

8 months ago

9.3.9

8 months ago

9.5.1-2f92713

7 months ago

9.3.8

8 months ago

9.3.14-8df5439

7 months ago

9.3.17-cd90eb0

7 months ago

9.3.18-61266e7

7 months ago

9.2.0

8 months ago

9.0.19-58dee0c

9 months ago

9.0.16-182ba4d

9 months ago

9.0.10-03f5b18

9 months ago

9.3.2-6335205

8 months ago

9.0.22-c709e20

9 months ago

8.1.0-43685b6

10 months ago

9.3.16-b9539fc

7 months ago

9.3.19-1e362c1

7 months ago

9.3.15-ed011b4

7 months ago

9.2.0-b4531d8

8 months ago

9.0.14-d8eb9b0

9 months ago

9.3.16-e280087

7 months ago

9.3.12-6ba92be

7 months ago

9.9.0-c66c749

6 months ago

9.1.0-e9b2c20

8 months ago

9.5.3-951a98f

6 months ago

9.4.0-c5744ae

7 months ago

9.0.24-ee20213

9 months ago

7.1.15-4d7d8ba

1 year ago

9.5.6-363580e

6 months ago

9.1.3-df2357c

8 months ago

9.0.22-b25d754

9 months ago

8.0.5

11 months ago

8.0.4

11 months ago

8.0.6

10 months ago

8.2.0-5fa75cc

10 months ago

8.0.6-6d2cda9

10 months ago

9.4.1-ca1f7f3

7 months ago

9.10.1-f2d727c

5 months ago

9.4.3-fb47029

7 months ago

9.11.0-f511993

5 months ago

9.3.0-821030a

8 months ago

7.1.15

1 year ago

7.1.16

1 year ago

8.2.0-a4ac71a

10 months ago

8.0.1

11 months ago

8.0.0

11 months ago

8.0.3

11 months ago

8.0.2

11 months ago

9.0.1-c0de42e

10 months ago

9.0.23-6dbebf0

9 months ago

9.0.8-e5510e0

9 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

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago