9.11.2 • Published 10 months ago

@peerbit/document v9.11.2

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

10 months ago

9.8.0

10 months ago

9.6.2-2292bf0

10 months ago

9.3.11-fbb4e31

12 months ago

9.5.3-79582c9

11 months ago

9.5.4-a762412

11 months ago

9.0.15-bae87a5

1 year ago

9.0.12-a97d716

1 year ago

9.3.3-e182140

12 months ago

8.0.1-10f303c

1 year ago

9.9.0

10 months ago

9.0.11-17e5d15

1 year ago

7.1.14-1c77281

1 year ago

9.3.8-a4bb1df

12 months ago

9.11.1

10 months ago

9.11.2

10 months ago

9.11.0

10 months ago

7.1.16-5cf61cb

1 year ago

9.11.1-1169e60

10 months ago

9.9.0-29724c7

10 months ago

9.0.4-d0d863b

1 year ago

9.4.1-327e5c9

11 months ago

9.3.6-e16ac5f

12 months ago

9.0.17-e5392af

1 year ago

9.5.0-f5a378c

11 months ago

8.0.2-91f517a

1 year ago

9.10.0

10 months ago

9.10.1

10 months ago

9.2.1-5652381

1 year ago

9.0.5-115f7aa

1 year ago

9.3.5-592398d

12 months ago

9.0.21-baf4bd8

1 year ago

9.7.0-077dde4

10 months ago

9.4.2-3a4b77c

11 months ago

9.4.0-bf22247

11 months ago

9.0.25-12d090c

1 year ago

9.3.1-a2796fd

12 months ago

9.6.1-523d88d

10 months ago

9.4.3

11 months ago

9.4.2

11 months ago

9.0.26-a70fbaa

1 year ago

8.1.2-f461b9a

1 year ago

9.4.1

11 months ago

9.4.0

11 months ago

9.1.3-d9795af

1 year 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

10 months ago

9.0.17

1 year ago

9.0.16

1 year ago

9.0.19

1 year ago

9.0.18

1 year ago

9.0.13

1 year ago

9.0.12

1 year ago

9.0.15

1 year ago

9.0.14

1 year ago

9.0.11

1 year ago

9.0.10

1 year ago

9.5.5-6c5db3c

11 months ago

9.3.18-d8e5bfb

11 months ago

9.5.5

11 months ago

9.5.4

11 months ago

9.5.3

11 months ago

9.5.2

11 months ago

9.0.2-6b5241d

1 year ago

9.5.1

11 months ago

9.5.0

11 months ago

9.2.2-a1dd3d8

1 year ago

9.0.24

1 year ago

9.0.23

1 year ago

9.0.20-8cae2b9

1 year ago

9.0.26

1 year ago

9.0.25

1 year ago

9.0.20

1 year ago

9.0.22

1 year ago

9.5.6

11 months ago

9.0.21

1 year ago

9.0.15-49afc60

1 year ago

9.8.0-9c1dc07

10 months ago

8.1.1-7d319f1

1 year ago

9.1.2-5226a66

1 year ago

9.6.4

10 months ago

9.6.3

10 months ago

9.6.2

10 months ago

9.6.1

10 months ago

9.6.0

11 months ago

9.3.4-9084059

12 months ago

9.8.1-b1540c6

10 months ago

9.3.4-d4093c8

12 months ago

9.7.0

10 months ago

9.0.21-da013fc

1 year ago

9.3.9-263159d

12 months ago

9.0.6-b900404

1 year ago

9.0.7-837e7f1

1 year ago

9.7.0-b3a3de9

10 months ago

9.3.12-c5f9b43

12 months ago

9.10.0-dbba3c6

10 months ago

9.5.2-22acbe9

11 months ago

9.10.0-9ef01e7

10 months ago

9.3.10-7c08aa6

12 months ago

9.0.9

1 year ago

9.0.8

1 year ago

9.0.8-313f84c

1 year ago

9.0.7

1 year ago

9.0.6

1 year ago

9.0.5

1 year ago

9.0.4

1 year ago

9.0.3

1 year ago

9.0.9-e0eabcf

1 year ago

9.5.3-820506

11 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

1 year ago

8.1.1

1 year ago

9.6.0-8d1952b

10 months ago

9.0.6-617e97c

1 year ago

9.0.3-2ec6eb5

1 year ago

8.0.4-39e9da6

1 year ago

9.1.3-e3e1b7f

1 year ago

9.3.19

11 months ago

9.0.26-f0d763d

1 year ago

9.1.3

1 year ago

9.1.2

1 year ago

9.3.14

12 months ago

9.3.13

12 months ago

9.3.12

12 months ago

9.3.11

12 months ago

9.3.18

11 months ago

9.3.17

11 months ago

9.3.16

11 months ago

9.3.15

12 months ago

9.0.18-2de0560

1 year ago

9.3.10

12 months ago

9.10.0-c7dcc32

10 months ago

9.3.7-61928d4

12 months ago

9.0.0-63e24d5

1 year ago

9.0.13-961cb66

1 year ago

8.2.0

1 year ago

8.0.5-f5c8aec

1 year ago

9.3.10-9930e60

12 months ago

9.0.2

1 year ago

9.0.1

1 year ago

9.0.0

1 year ago

9.6.4-7ca5c48

10 months ago

9.2.2

1 year ago

9.6.1-902158c

10 months ago

9.2.1

1 year ago

9.0.26-aea0cef

1 year ago

9.6.3-a547831

10 months ago

9.1.1-bf9c70f

1 year ago

9.1.1

1 year ago

9.1.0

1 year ago

9.3.7

12 months ago

9.3.6

12 months ago

9.3.5

12 months ago

9.3.4

12 months ago

9.3.3

12 months ago

9.3.2

12 months ago

9.3.13-f151ed4

12 months ago

9.3.1

1 year ago

9.3.0

1 year ago

9.3.9

12 months ago

9.5.1-2f92713

11 months ago

9.3.8

12 months ago

9.3.14-8df5439

12 months ago

9.3.17-cd90eb0

11 months ago

9.3.18-61266e7

11 months ago

9.2.0

1 year ago

9.0.19-58dee0c

1 year ago

9.0.16-182ba4d

1 year ago

9.0.10-03f5b18

1 year ago

9.3.2-6335205

12 months ago

9.0.22-c709e20

1 year ago

8.1.0-43685b6

1 year ago

9.3.16-b9539fc

11 months ago

9.3.19-1e362c1

11 months ago

9.3.15-ed011b4

11 months ago

9.2.0-b4531d8

1 year ago

9.0.14-d8eb9b0

1 year ago

9.3.16-e280087

11 months ago

9.3.12-6ba92be

12 months ago

9.9.0-c66c749

10 months ago

9.1.0-e9b2c20

1 year ago

9.5.3-951a98f

11 months ago

9.4.0-c5744ae

11 months ago

9.0.24-ee20213

1 year ago

7.1.15-4d7d8ba

1 year ago

9.5.6-363580e

11 months ago

9.1.3-df2357c

1 year ago

9.0.22-b25d754

1 year ago

8.0.5

1 year ago

8.0.4

1 year ago

8.0.6

1 year ago

8.2.0-5fa75cc

1 year ago

8.0.6-6d2cda9

1 year ago

9.4.1-ca1f7f3

11 months ago

9.10.1-f2d727c

10 months ago

9.4.3-fb47029

11 months ago

9.11.0-f511993

10 months ago

9.3.0-821030a

1 year ago

7.1.15

1 year ago

7.1.16

1 year ago

8.2.0-a4ac71a

1 year 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

1 year ago

9.0.23-6dbebf0

1 year ago

9.0.8-e5510e0

1 year 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

2 years ago

7.0.1-eb9dc6e

2 years ago

7.0.14-ccaf4f4

2 years ago

7.0.6-a0a3f23

2 years ago

7.0.8

2 years ago

7.0.7

2 years ago

7.0.12-d66695a

2 years ago

7.0.6

2 years ago

7.0.5

2 years ago

7.0.9

2 years ago

7.0.1-ac53fba

2 years ago

7.1.0-57b8640

2 years ago

7.0.11-c07c1c7

2 years ago

7.0.5-171d517

2 years ago

7.0.0-3a75d6e

2 years ago

7.1.1-4ec760d

2 years ago

7.0.9-8c33ab6

2 years ago

7.0.8-b57d808

2 years ago

7.0.2-2bc15a6

2 years ago

7.0.0

2 years ago

7.0.5-65f11ae

2 years ago

7.0.4

2 years ago

7.0.3

2 years ago

7.0.4-bf3e3ed

2 years ago

7.0.2

2 years ago

7.0.1

2 years ago

7.0.5-2b760c3

2 years ago

7.0.12

2 years ago

7.0.13

2 years ago

7.0.11

2 years ago

7.0.7-2d408db

2 years ago

7.0.14

2 years ago

7.0.5-1d1274c

2 years ago

7.0.9-343b1fa

2 years ago

7.0.13-e1db01f

2 years ago

7.0.5-5901172

2 years ago

7.0.4-5b40851

2 years ago

7.1.1

2 years ago

7.1.0

2 years ago

7.0.0-934594a

2 years ago

7.0.9-325235b

2 years ago

7.0.9-4b0fbf1

2 years ago

6.0.7-cccc078

2 years ago

7.0.3-9e66213

2 years ago

7.0.5-372e20f

2 years ago

7.0.13-42268a2

2 years ago

7.0.7-a16b978

2 years ago

7.1.0-b064d22

2 years ago

7.0.7-5ed4c57

2 years ago

7.0.5-8b0cac0

2 years ago

7.0.3-5e0d4ec

2 years ago

7.0.10-61d3cec

2 years ago

7.0.0-55cebfe

2 years 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

3 years ago

3.1.6

3 years ago

3.1.5

3 years ago

3.1.4

3 years ago

3.1.3

3 years ago

3.1.2

3 years ago

3.1.1

3 years ago

3.1.0

3 years ago

3.0.8

3 years ago

3.0.7

3 years ago

3.0.6

3 years ago

3.0.5

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.0.1

3 years ago

2.0.0

3 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