Commit Graph

31 Commits

Author SHA1 Message Date
Danish Arora a3c45b6e1a
feat(static-sharding)!: allow multiple pubSubTopics (#1586)
* `ProtocolCreateOptions` now has `pubSubTopic` as `pubSubTopic[]`

* chore: update encoder & decoder to support `PubSubTopic`

* feat(protocols): allow multiple `PubSubTopic[]`

* feat(relay): allow multiple `PubSubTopic[]`

* chore(tests): update for new API

* chore: minor fixes

* chore: make store more robust

* fix(relay): correctly set types

* chore(address comments): update terminology around configured pubsub topics

* chore(address comments): minor refactoring

* chore(relay): split `subscribe` into smaller functions for readability & modularity

* chore(address comments): refactor `waitForGossipSubPeerInMesh`

* chore(store): only allow to query one `pubSubTopic`

* fix: `store` bug

* feat(tests): add some basic tests

* sharding utils

* address comments

* feat(relay): re-add API for `getMeshPeers`

* update error message

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>

* refactor for new API

* feat: simplify handling of observers (#1614)

* refactor: simplify handling of observers

* refactor: Remove redundant PubSubTopic from Observer

* use `??` instead of `||`

* update `pubsubTopic` to `pubSubTopic`

* update `interval` typo

* change occurence of `pubsubTopic` to `pubSubTopic`

* relay: rm `getAllMeshPeers` and make `pubSubTopics` public

* relay: use `push_or_init_map` and move to `utils`

* fix: update API for tests

* fix: relay waitForRemotePeer

---------

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>
2023-09-27 15:28:07 +05:30
Sasha 020463c358
chore: update typescript (#1528)
* update typescript, define in root package.json

* update typedoc and fix typedoc comments

* update dev version of tsconfig

* set module and resolution for tsconfig dev

* bump ts plugins

* set order of typedoc generation

* turn off warnings as errors setting
2023-09-21 10:57:37 +02:00
Danish Arora 87717981eb
chore: upgrade libp2p and related deps (#1482)
* chore: update noise

* update: package.lock

* update: @chainsafe/libp2p-gossipsub

* rm unwanted libp2p interface deps & bump up libp2p

* refactor code for new deps

* update: new package.lock

* setup prettier, refactor eslint  and rm trailing commas

* update package.lock

* fix build

* import type for interface

* fix imports for merge

* update typedoc exports

* add: CustomEvent import

* use new libp2p interface

* add aegir as dev dep for tests
2023-08-16 20:18:13 +05:30
Sasha 51f9261a16
chore: update dependencies (#1460)
* update to latest prettier

* fix with prettier: added trailing comma

* remove deps from test package, add sinon types, fix type hack in a test, update esling prettier config

* update typescript eslint plugins

* update package-locks
2023-08-11 15:14:02 +02:00
Danish Arora 376bcf2a0a
chore: new eslint rules (#1416)
* add new eslint rules

* remove eslint scripts for build-utils

* refactor all files to fix breaking changes with new rules

* add a basic eslintrc for build-utils

* test

* fix more linting errors

* test

* update package.lock

* update stopping container

* update px node spec

* enable tests

* fix: conn manager events

* fix: peer exchange

* increase timeout on px test
2023-07-24 16:04:24 +05:30
fryorcraken.eth bd9d07394f
feat: ensure content topic is defined
Waku Messages are considered invalid if the content topic is undefined
or an empty string.

Avoid user error by throwing.
2023-04-04 14:56:59 +10:00
Danish Arora a30b2bd747
chore!: add exports map to @waku/utils (#1201)
* add exports map

* merge: master

* export  subdir with default export path

* import according to the export path
2023-03-14 10:10:38 +05:30
fryorcraken.eth bd983ea48e
feat!: enable encoding of `meta` field 2023-03-14 11:21:09 +11:00
fryorcraken.eth 497588bc36
chore: make topics arbitrary data 2023-03-14 11:21:08 +11:00
fryorcraken.eth 628ac50d71
feat!: expose pubsub topic in `IDecodedMessage`
Needed for deterministic message hash.

Ref: #1208
2023-03-13 13:49:24 +11:00
fryorcraken.eth da1b18d995
feat: export `Decoder`, `Encoder` and `DecodedMessage` types from root
Fixes #1010
2023-03-08 09:52:27 +11:00
fryorcraken.eth 5cf8ed2030
chore!: update message.proto: payload and content topic are always defined
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:33 +11:00
Danish Arora 3b4bc8b25b
chore: update changelog & minor improvements (#1153)
* address comments from https://github.com/waku-org/js-waku/pull/1145

* fix: typedoc

* address comments in https://github.com/waku-org/js-waku/pull/1146#pullrequestreview-1286307508

- update changelog
- change naming for `EciesEncoderOptions` and
`SymmetricEncoderOptions`
2023-02-09 13:15:23 +05:30
Danish Arora b33306655a
chore: move libp2p and byte utils to a single `utils` package (#1149)
* move libp2p and byte utils to a single `utils`
package

* set package version to 0.0.1
2023-02-06 11:22:36 +05:30
Danish Arora 8910a6d76a
chore: move args for `createEncoder` into non-repeating `options` & fix typedoc (#1146)
* move args for `createEncoder` into non-repeating `options` & fix typedoc

* update tests with new API
2023-02-02 11:37:28 +05:30
fryorcraken.eth bff9b857ec
fix: export `Encoder` and `Decoder` types
Enables API consumer to use the types.
2022-12-20 16:11:41 +11:00
fryorcraken.eth 75c8e2be8d
fix: incorrect `proto` import 2022-12-19 16:27:26 +11:00
fryorcraken.eth 574f3ee80f
refactor: remove `waku_` from module names
This is redundant with the context (waku package).
2022-12-12 22:36:13 +11:00
fryorcraken.eth cc691e26ce
feat: added `I` prefix to message/codec interfaces
To make it easier to differentiate with their implementations.
2022-12-12 22:13:46 +11:00
fryorcraken.eth 80d7215e15
doc: `createEncoder` and `createDecoder` 2022-12-05 16:05:20 +11:00
fryorcraken.eth a4ddb45af1
chore: do not use `Partial` when not needed 2022-12-05 15:14:51 +11:00
fryorcraken.eth f7fabec8b3
feat: easy import by having an export map for each type of encryption 2022-12-05 15:14:17 +11:00
fryorcraken.eth 563b66eab5
refactor: separate symmetric and asymmetric encoders 2022-12-05 09:34:17 +11:00
fryorcraken.eth 1d727b2bc0
refactor: extract 26/WAKU-PAYLOAD related function to waku_payload.ts 2022-12-05 09:34:17 +11:00
fryorcraken.eth e65e0a0a80
refactor: move module that define cryptographic operations to crypto/
This is to prepare the split of encoder/decoder/message definition
from index.ts.
2022-12-05 09:34:17 +11:00
fryorcraken.eth ad15f861c3
feat!: hide `Decoder`/`Encoder` classes to user
Reasoning: by exposing the `Decoder` and `Encoder` classes to the user,
the user may care about them, try to use the method etc.

By "hiding" them away and providing `create*` help, the aim is for the
user to just call a function instead of instantiating a class.

Also, `V0` does not provide much information to the user so removing it.
2022-12-05 09:34:17 +11:00
fryorcraken.eth 59992832fe
feat!: add Waku Message ephemeral support 2022-11-16 11:00:43 +11:00
fryorcraken.eth 148123a756
fix: missing extension 2022-11-04 16:18:55 +11:00
fryorcraken.eth 8aa9b43f61
feat!: split outgoing and incoming message interface
While the data structure are similar, they serve different purposes.
Having the same type has show to confuse API consumers

Resolves #979
2022-11-04 14:30:59 +11:00
fryorcraken.eth 1a09aa18d5
chore: fix tests 2022-11-04 11:45:15 +11:00
fryorcraken.eth e6efd0438c
chore: make message-encryption compile 2022-11-04 11:38:32 +11:00