@waku/core 0.0.1

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.
Files changed (235) hide show
  1. package/CHANGELOG.md +614 -0
  2. package/README.md +56 -0
  3. package/bundle/browser-1e1a2f27.js +722 -0
  4. package/bundle/crypto-8551d579.js +2585 -0
  5. package/bundle/crypto-b00764b7.js +1772 -0
  6. package/bundle/enr-564d4a51.js +20785 -0
  7. package/bundle/enr-9fc5eed8.js +20786 -0
  8. package/bundle/enr-f6e82a53.js +20785 -0
  9. package/bundle/events-158407bb.js +1929 -0
  10. package/bundle/events-fcbda4dc.js +76 -0
  11. package/bundle/index-02d21809.js +20 -0
  12. package/bundle/index-0a4bdddc.js +2976 -0
  13. package/bundle/index-2ae915be.js +1854 -0
  14. package/bundle/index-64ce43f0.js +69 -0
  15. package/bundle/index-691c0be6.js +4059 -0
  16. package/bundle/index-a013a259.js +20 -0
  17. package/bundle/index-ba42b4fc.js +862 -0
  18. package/bundle/index.js +13428 -0
  19. package/bundle/lib/enr.js +8 -0
  20. package/bundle/lib/peer_discovery_dns.js +5018 -0
  21. package/bundle/lib/peer_discovery_static_list.js +75 -0
  22. package/bundle/lib/predefined_bootstrap_nodes.js +59 -0
  23. package/bundle/lib/utils.js +1 -0
  24. package/bundle/lib/wait_for_remote_peer.js +327 -0
  25. package/bundle/lib/waku_message/topic_only_message.js +4 -0
  26. package/bundle/lib/waku_message/version_0.js +4 -0
  27. package/bundle/lib/waku_message/version_1.js +463 -0
  28. package/bundle/message-e2db79d7.js +8393 -0
  29. package/bundle/multiaddr_to_peer_info-c406b1e1.js +19 -0
  30. package/bundle/multiaddr_to_peer_info-fd1de516.js +19 -0
  31. package/bundle/random_subset-75d1c511.js +26 -0
  32. package/bundle/topic_only_message-34f36fa6.js +82 -0
  33. package/bundle/utils-9a3221f2.js +815 -0
  34. package/bundle/version_0-e6fe440c.js +317 -0
  35. package/dist/index.d.ts +16 -0
  36. package/dist/index.js +17 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/lib/constants.d.ts +4 -0
  39. package/dist/lib/constants.js +5 -0
  40. package/dist/lib/constants.js.map +1 -0
  41. package/dist/lib/crypto.d.ts +34 -0
  42. package/dist/lib/crypto.js +79 -0
  43. package/dist/lib/crypto.js.map +1 -0
  44. package/dist/lib/enr/constants.d.ts +4 -0
  45. package/dist/lib/enr/constants.js +8 -0
  46. package/dist/lib/enr/constants.js.map +1 -0
  47. package/dist/lib/enr/enr.d.ts +90 -0
  48. package/dist/lib/enr/enr.js +432 -0
  49. package/dist/lib/enr/enr.js.map +1 -0
  50. package/dist/lib/enr/index.d.ts +5 -0
  51. package/dist/lib/enr/index.js +6 -0
  52. package/dist/lib/enr/index.js.map +1 -0
  53. package/dist/lib/enr/keypair/index.d.ts +8 -0
  54. package/dist/lib/enr/keypair/index.js +53 -0
  55. package/dist/lib/enr/keypair/index.js.map +1 -0
  56. package/dist/lib/enr/keypair/secp256k1.d.ts +13 -0
  57. package/dist/lib/enr/keypair/secp256k1.js +57 -0
  58. package/dist/lib/enr/keypair/secp256k1.js.map +1 -0
  59. package/dist/lib/enr/keypair/types.d.ts +13 -0
  60. package/dist/lib/enr/keypair/types.js +7 -0
  61. package/dist/lib/enr/keypair/types.js.map +1 -0
  62. package/dist/lib/enr/multiaddr_from_fields.d.ts +2 -0
  63. package/dist/lib/enr/multiaddr_from_fields.js +8 -0
  64. package/dist/lib/enr/multiaddr_from_fields.js.map +1 -0
  65. package/dist/lib/enr/multiaddrs_codec.d.ts +3 -0
  66. package/dist/lib/enr/multiaddrs_codec.js +32 -0
  67. package/dist/lib/enr/multiaddrs_codec.js.map +1 -0
  68. package/dist/lib/enr/types.d.ts +8 -0
  69. package/dist/lib/enr/types.js +3 -0
  70. package/dist/lib/enr/types.js.map +1 -0
  71. package/dist/lib/enr/v4.d.ts +3 -0
  72. package/dist/lib/enr/v4.js +14 -0
  73. package/dist/lib/enr/v4.js.map +1 -0
  74. package/dist/lib/enr/waku2_codec.d.ts +8 -0
  75. package/dist/lib/enr/waku2_codec.js +36 -0
  76. package/dist/lib/enr/waku2_codec.js.map +1 -0
  77. package/dist/lib/group_by.d.ts +3 -0
  78. package/dist/lib/group_by.js +13 -0
  79. package/dist/lib/group_by.js.map +1 -0
  80. package/dist/lib/multiaddr_to_peer_info.d.ts +3 -0
  81. package/dist/lib/multiaddr_to_peer_info.js +15 -0
  82. package/dist/lib/multiaddr_to_peer_info.js.map +1 -0
  83. package/dist/lib/peer_discovery_dns/dns.d.ts +48 -0
  84. package/dist/lib/peer_discovery_dns/dns.js +158 -0
  85. package/dist/lib/peer_discovery_dns/dns.js.map +1 -0
  86. package/dist/lib/peer_discovery_dns/dns_over_https.d.ts +32 -0
  87. package/dist/lib/peer_discovery_dns/dns_over_https.js +87 -0
  88. package/dist/lib/peer_discovery_dns/dns_over_https.js.map +1 -0
  89. package/dist/lib/peer_discovery_dns/enrtree.d.ts +33 -0
  90. package/dist/lib/peer_discovery_dns/enrtree.js +76 -0
  91. package/dist/lib/peer_discovery_dns/enrtree.js.map +1 -0
  92. package/dist/lib/peer_discovery_dns/fetch_nodes.d.ts +14 -0
  93. package/dist/lib/peer_discovery_dns/fetch_nodes.js +133 -0
  94. package/dist/lib/peer_discovery_dns/fetch_nodes.js.map +1 -0
  95. package/dist/lib/peer_discovery_dns/index.d.ts +30 -0
  96. package/dist/lib/peer_discovery_dns/index.js +54 -0
  97. package/dist/lib/peer_discovery_dns/index.js.map +1 -0
  98. package/dist/lib/peer_discovery_static_list.d.ts +44 -0
  99. package/dist/lib/peer_discovery_static_list.js +72 -0
  100. package/dist/lib/peer_discovery_static_list.js.map +1 -0
  101. package/dist/lib/predefined_bootstrap_nodes.d.ts +35 -0
  102. package/dist/lib/predefined_bootstrap_nodes.js +56 -0
  103. package/dist/lib/predefined_bootstrap_nodes.js.map +1 -0
  104. package/dist/lib/push_or_init_map.d.ts +1 -0
  105. package/dist/lib/push_or_init_map.js +9 -0
  106. package/dist/lib/push_or_init_map.js.map +1 -0
  107. package/dist/lib/random_subset.d.ts +4 -0
  108. package/dist/lib/random_subset.js +25 -0
  109. package/dist/lib/random_subset.js.map +1 -0
  110. package/dist/lib/select_connection.d.ts +2 -0
  111. package/dist/lib/select_connection.js +19 -0
  112. package/dist/lib/select_connection.js.map +1 -0
  113. package/dist/lib/select_peer.d.ts +15 -0
  114. package/dist/lib/select_peer.js +59 -0
  115. package/dist/lib/select_peer.js.map +1 -0
  116. package/dist/lib/to_proto_message.d.ts +3 -0
  117. package/dist/lib/to_proto_message.js +11 -0
  118. package/dist/lib/to_proto_message.js.map +1 -0
  119. package/dist/lib/utils.d.ts +22 -0
  120. package/dist/lib/utils.js +40 -0
  121. package/dist/lib/utils.js.map +1 -0
  122. package/dist/lib/wait_for_remote_peer.d.ts +22 -0
  123. package/dist/lib/wait_for_remote_peer.js +113 -0
  124. package/dist/lib/wait_for_remote_peer.js.map +1 -0
  125. package/dist/lib/waku.d.ts +61 -0
  126. package/dist/lib/waku.js +174 -0
  127. package/dist/lib/waku.js.map +1 -0
  128. package/dist/lib/waku_filter/filter_rpc.d.ts +25 -0
  129. package/dist/lib/waku_filter/filter_rpc.js +44 -0
  130. package/dist/lib/waku_filter/filter_rpc.js.map +1 -0
  131. package/dist/lib/waku_filter/index.d.ts +50 -0
  132. package/dist/lib/waku_filter/index.js +181 -0
  133. package/dist/lib/waku_filter/index.js.map +1 -0
  134. package/dist/lib/waku_light_push/index.d.ts +38 -0
  135. package/dist/lib/waku_light_push/index.js +83 -0
  136. package/dist/lib/waku_light_push/index.js.map +1 -0
  137. package/dist/lib/waku_light_push/push_rpc.d.ts +11 -0
  138. package/dist/lib/waku_light_push/push_rpc.js +31 -0
  139. package/dist/lib/waku_light_push/push_rpc.js.map +1 -0
  140. package/dist/lib/waku_message/constants.d.ts +12 -0
  141. package/dist/lib/waku_message/constants.js +10 -0
  142. package/dist/lib/waku_message/constants.js.map +1 -0
  143. package/dist/lib/waku_message/ecies.d.ts +17 -0
  144. package/dist/lib/waku_message/ecies.js +126 -0
  145. package/dist/lib/waku_message/ecies.js.map +1 -0
  146. package/dist/lib/waku_message/symmetric.d.ts +3 -0
  147. package/dist/lib/waku_message/symmetric.js +18 -0
  148. package/dist/lib/waku_message/symmetric.js.map +1 -0
  149. package/dist/lib/waku_message/topic_only_message.d.ts +15 -0
  150. package/dist/lib/waku_message/topic_only_message.js +31 -0
  151. package/dist/lib/waku_message/topic_only_message.js.map +1 -0
  152. package/dist/lib/waku_message/version_0.d.ts +26 -0
  153. package/dist/lib/waku_message/version_0.js +96 -0
  154. package/dist/lib/waku_message/version_0.js.map +1 -0
  155. package/dist/lib/waku_message/version_1.d.ts +93 -0
  156. package/dist/lib/waku_message/version_1.js +325 -0
  157. package/dist/lib/waku_message/version_1.js.map +1 -0
  158. package/dist/lib/waku_relay/constants.d.ts +63 -0
  159. package/dist/lib/waku_relay/constants.js +67 -0
  160. package/dist/lib/waku_relay/constants.js.map +1 -0
  161. package/dist/lib/waku_relay/index.d.ts +65 -0
  162. package/dist/lib/waku_relay/index.js +111 -0
  163. package/dist/lib/waku_relay/index.js.map +1 -0
  164. package/dist/lib/waku_store/history_rpc.d.ts +27 -0
  165. package/dist/lib/waku_store/history_rpc.js +71 -0
  166. package/dist/lib/waku_store/history_rpc.js.map +1 -0
  167. package/dist/lib/waku_store/index.d.ts +126 -0
  168. package/dist/lib/waku_store/index.js +218 -0
  169. package/dist/lib/waku_store/index.js.map +1 -0
  170. package/dist/proto/filter.d.ts +65 -0
  171. package/dist/proto/filter.js +425 -0
  172. package/dist/proto/filter.js.map +1 -0
  173. package/dist/proto/light_push.d.ts +57 -0
  174. package/dist/proto/light_push.js +369 -0
  175. package/dist/proto/light_push.js.map +1 -0
  176. package/dist/proto/message.d.ts +29 -0
  177. package/dist/proto/message.js +215 -0
  178. package/dist/proto/message.js.map +1 -0
  179. package/dist/proto/store.d.ts +104 -0
  180. package/dist/proto/store.js +602 -0
  181. package/dist/proto/store.js.map +1 -0
  182. package/dist/proto/topic_only_message.d.ts +10 -0
  183. package/dist/proto/topic_only_message.js +46 -0
  184. package/dist/proto/topic_only_message.js.map +1 -0
  185. package/package.json +292 -0
  186. package/src/index.ts +33 -0
  187. package/src/lib/constants.ts +4 -0
  188. package/src/lib/crypto.ts +100 -0
  189. package/src/lib/enr/constants.ts +10 -0
  190. package/src/lib/enr/enr.ts +516 -0
  191. package/src/lib/enr/index.ts +5 -0
  192. package/src/lib/enr/keypair/index.ts +76 -0
  193. package/src/lib/enr/keypair/secp256k1.ts +69 -0
  194. package/src/lib/enr/keypair/types.ts +14 -0
  195. package/src/lib/enr/multiaddr_from_fields.ts +18 -0
  196. package/src/lib/enr/multiaddrs_codec.ts +50 -0
  197. package/src/lib/enr/types.ts +11 -0
  198. package/src/lib/enr/v4.ts +22 -0
  199. package/src/lib/enr/waku2_codec.ts +39 -0
  200. package/src/lib/group_by.ts +14 -0
  201. package/src/lib/multiaddr_to_peer_info.ts +17 -0
  202. package/src/lib/peer_discovery_dns/dns.ts +223 -0
  203. package/src/lib/peer_discovery_dns/dns_over_https.ts +98 -0
  204. package/src/lib/peer_discovery_dns/enrtree.ts +123 -0
  205. package/src/lib/peer_discovery_dns/fetch_nodes.ts +180 -0
  206. package/src/lib/peer_discovery_dns/index.ts +84 -0
  207. package/src/lib/peer_discovery_static_list.ts +118 -0
  208. package/src/lib/predefined_bootstrap_nodes.ts +72 -0
  209. package/src/lib/push_or_init_map.ts +13 -0
  210. package/src/lib/random_subset.ts +30 -0
  211. package/src/lib/select_connection.ts +24 -0
  212. package/src/lib/select_peer.ts +77 -0
  213. package/src/lib/to_proto_message.ts +15 -0
  214. package/src/lib/utils.ts +50 -0
  215. package/src/lib/wait_for_remote_peer.ts +151 -0
  216. package/src/lib/waku.ts +258 -0
  217. package/src/lib/waku_filter/filter_rpc.ts +57 -0
  218. package/src/lib/waku_filter/index.ts +291 -0
  219. package/src/lib/waku_light_push/index.ts +137 -0
  220. package/src/lib/waku_light_push/push_rpc.ts +39 -0
  221. package/src/lib/waku_message/constants.ts +10 -0
  222. package/src/lib/waku_message/ecies.ts +194 -0
  223. package/src/lib/waku_message/symmetric.ts +33 -0
  224. package/src/lib/waku_message/topic_only_message.ts +40 -0
  225. package/src/lib/waku_message/version_0.ts +121 -0
  226. package/src/lib/waku_message/version_1.ts +457 -0
  227. package/src/lib/waku_relay/constants.ts +77 -0
  228. package/src/lib/waku_relay/index.ts +189 -0
  229. package/src/lib/waku_store/history_rpc.ts +94 -0
  230. package/src/lib/waku_store/index.ts +372 -0
  231. package/src/proto/filter.ts +602 -0
  232. package/src/proto/light_push.ts +526 -0
  233. package/src/proto/message.ts +304 -0
  234. package/src/proto/store.ts +844 -0
  235. package/src/proto/topic_only_message.ts +67 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,614 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.30.0] - 2022-10-28
11
+
12
+ ### Added
13
+
14
+ - `RateLimitProof` field in Waku Message protobuf for RLN.
15
+
16
+ ### Changed
17
+
18
+ - `Message` interface changed to ensure implementations do not omit fields.
19
+ - `Decoder` and `Encoder` interfaces change to better express what the function members do.
20
+
21
+ ### Fixed
22
+
23
+ - Incorrect cursor encoding in Store queries.
24
+ - `WakuStore.queryOrderedCallback` not stopping when callback returns true.
25
+
26
+ ### Removed
27
+
28
+ - Support for Waku Store 2.0.0-beta3.
29
+
30
+ ## [0.29.0] - 2022-09-21
31
+
32
+ ### Changed
33
+
34
+ - Waku message encoding and decoding is more generic, to enable upcoming feature such as [RLN](https://rfc.vac.dev/spec/17/) & [Noise](https://rfc.vac.dev/spec/43/);
35
+ it also enables separating the `version_1` module out to reduce bundle size and improve cross-platform compatibility when not used.
36
+ - Due to the change above, all APIs that handle messages have changed to receive a `Decoder` or `Encoder`.
37
+
38
+ ## [0.28.1] - 2022-09-20
39
+
40
+ ### Added
41
+
42
+ - `WakuRelay.addObserver` now returns a function to delete the observer.
43
+ - `WakuLightPush.push` and `WakuRelay.send` returns `SendResult` with the list of recipients.
44
+
45
+ ### Removed
46
+
47
+ - `queryCallbackOnPromise`'s return value has been simplified to `Promise<void>`.
48
+ - doc: clarified behaviour of `WakuStore` query functions.
49
+
50
+ ### Deleted
51
+
52
+ - `WakuMessage` class in favour of the `Message`, `Encoder`, `Decoder` interfaces and `EncoderV0`, `AsymEncoder`, `SymEncoder` (and related decoders).
53
+
54
+ ## [0.28.0] - 2022-09-16
55
+
56
+ ### Changed
57
+
58
+ - Correct options type for `createFullNode` & `createPrivacy` to enable passing gossipsub options.
59
+ - `WakuStore` now provides several APIs: `queryGenerator`, `queryCallbackOnPromise`, `queryOrderedCallback`;
60
+ each provides different guarantees and performance.
61
+
62
+ ## [0.27.0] - 2022-09-13
63
+
64
+ ### Added
65
+
66
+ - `createLightNode` to create a Waku node for resource restricted environment with Light Push, Filter and Relay.
67
+ - `createPrivacyNode` to create a Waku node for privacy preserving usage with Relay only.
68
+ - `createFullNode` to create a Waku node for with all protocols, for **testing purposes only**.
69
+
70
+ ### Changed
71
+
72
+ - `Waku` is now defined as an interface with `WakuNode` an implementation of it.
73
+ - `createWaku` is deprecated in favour of `createLightNode` and `createPrivacyNode`.
74
+ - `waitForRemotePeer` can throw, default behaviour has changed.
75
+ - `addPeerToAddressBook` is now async.
76
+ - API Docs moved to https://js.waku.org/
77
+ - test: fix typing for nwaku JSON RPC responses.
78
+
79
+ ## [0.26.0] - 2022-09-08
80
+
81
+ ### Added
82
+
83
+ - Simple connection management that selects the most recent connection for store, light push and filter requests.
84
+
85
+ ### Changed
86
+
87
+ - **breaking**: `DecryptionParams` may be passed when using `queryHistory` instead of just keys.
88
+ - Examples have been moved to https://github.com/waku-org/js-waku-examples.
89
+
90
+ ### Fixed
91
+
92
+ - doc: add missing modules.
93
+
94
+ ## [0.25.0] - 2022-09-05
95
+
96
+ ### Changed
97
+
98
+ - Published files moved from `build` to `dist/`.
99
+ - Migrate from ts-proto to protons;
100
+ the latter does not bring Buffer/Long deps, is ESM compatible and remove the need for bufbuild and protoc.
101
+ - Move package to `"type": "module"`, it is now a [pure ESM package](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
102
+ - Use ESM code in Mocha and Karma tests.
103
+ - Upgrade `dns-query` dependency, breaking change on `DnsNodeDiscovery` API.
104
+ - Bump many libp2p libraries to their latest version (which usually are pure ESM).
105
+ - Replace webpack with parcel for bundling
106
+ - Examples: Updated store-js and relay-js to demonstrate usage of ESM bundle in `<script>` tag.
107
+ - Remove need to polyfill `buffer`.
108
+ - **breaking**: Various API changes. Refer to tests to check proper usage of the new API.
109
+ - **breaking**: `createWaku` is in separate exports path.
110
+ - **breaking**: Bootstrap class split: dns discovery, static list.
111
+ - **breaking**: bundled files are now under `bundle/`.
112
+
113
+ ### Fixed
114
+
115
+ - size-limit config to test several usages of Waku.
116
+ - `buffer` is not needed in the browser.
117
+
118
+ ### Removed
119
+
120
+ - `terser` minification and `gzip` compressions have been removed.
121
+
122
+ ## [0.24.0] - 2022-05-27
123
+
124
+ ### Added
125
+
126
+ - `waitForRemotePeer` now accepts a `timeoutMs` parameter that rejects the promise if it is reached. By default, no timeout is applied.
127
+ - **Experimental** support for the [Waku Filter](https://rfc.vac.dev/spec/12/) protocol (client side) added, currently only works in NodeJS.
128
+
129
+ ### Changed
130
+
131
+ - `waitForRemotePeer` waits for a Relay peer by default instead of Relay and Store.
132
+ - **Breaking**: Removed dupe secp256k1 code, removed some unused APIs.
133
+
134
+ ## [0.23.0] - 2022-05-19
135
+
136
+ ### Added
137
+
138
+ - Some dependencies that were used but not declared (often transient).
139
+
140
+ ### Changed
141
+
142
+ - Replaced deprecated `multihashes` with `multiformats`.
143
+
144
+ ### Removed
145
+
146
+ - No more `assert` usage.
147
+
148
+ ## [0.22.0] - 2022-05-10
149
+
150
+ ### Changed
151
+
152
+ - Replaced `secp256k1` and hence `elliptic` dependencies with `@noble/secp256k1`,
153
+ reducing package size, number of dependency and removing need for `crypto-browserify` polyfill.
154
+
155
+ ## [0.21.0] - 2022-05-5
156
+
157
+ ### Added
158
+
159
+ - Support of the `waku2` ENR key: When using DNS Discovery, wanted node capabilities (e.g. relay, store) must be passed.
160
+
161
+ ### Changed
162
+
163
+ - Prefer the use of `BigInt` over integer literal (`n` postfix) to facilitate the use of a polyfill.
164
+
165
+ ### Fixed
166
+
167
+ - Declare `it-pipe` dependency, import as per `it-pipe@2.0.0` convention.
168
+
169
+ ## [0.20.0] - 2022-03-29
170
+
171
+ ### Changed
172
+
173
+ - Examples: Add Relay JavaScript example.
174
+ - **Breaking**: Moved utf-8 conversion functions to `utils`.
175
+ - Froze `libp2p-gossipsub` to `0.13.0` as new patch version bring breaking changes.
176
+
177
+ ### Fixed
178
+
179
+ - Replace Base 64 buggy conversion functions with `uint8arrays`.
180
+
181
+ ### Removed
182
+
183
+ - **Breaking**: Removed `equalByteArrays`, use `uint8arrays/equals` instead.
184
+ See changes in `eth-pm` example.
185
+ - **Breaking**: Removed deprecated utils functions.
186
+
187
+ ## [0.19.2] - 2022-03-21
188
+
189
+ ### Fixed
190
+
191
+ - Enable usage in NodeJS by fixing `exports` field and usage of the `crypto` module.
192
+
193
+ ## [0.19.1] - 2022-03-10
194
+
195
+ ### Added
196
+
197
+ - When using `Waku.create`, `bootstrap.peers` now accepts an array of `Multiaddr`.
198
+ - Exports `Protocols` for easy usage with `waitForRemotePeer`.
199
+
200
+ ## [0.19.0] - 2022-03-09
201
+
202
+ ### Added
203
+
204
+ - New `pubsub_topic` field on the `cursor` of Waku Store queries ([#585](https://github.com/status-im/js-waku/issues/595)).
205
+
206
+ ### Changed
207
+
208
+ - Add `exports` to `package.json` for NodeJS usage (not officially supported but helpful for experiments).
209
+
210
+ ### Fixed
211
+
212
+ - Handle errors thrown by `bytesToUtf8`.
213
+ - `WakuMessage.timestamp` field must use nanoseconds (was using microseconds).
214
+
215
+ ### Removed
216
+
217
+ - Removed `ecies-geth` dependency.
218
+
219
+ ## [0.18.0] - 2022-02-24
220
+
221
+ ### Changed
222
+
223
+ - Replaced `rlp` dependency with `@ethersproject/rlp`.
224
+ - **Breaking**: `staticNoiseKey` changed from `Buffer` to `Uint8Array`.
225
+ - Implement Waku Store 2.0.0-beta4. The `WakuMessage.timestamp` field now stores nanoseconds over the wire.
226
+ - **Breaking**: `HistoryRPC.createQuery` takes `Date` instead of `number` for `startTime` and `endTime`.
227
+
228
+ ### Removed
229
+
230
+ - `base64url` and `bigint-buffer` dependencies.
231
+
232
+ ## [0.17.0] - 2022-02-16
233
+
234
+ ### Changed
235
+
236
+ - **Breaking**: Upgrade `libp2p` to `0.36.2` & `libp2p-gossipsub` to `0.13.0`. Some APIs are now async.
237
+ - docs: Various improvements.
238
+ - Ran `npm audit fix`.
239
+ - `Waku.dial` accepts protocols expected from the peer. Defaults to Waku Relay only.
240
+ - Deprecated `hexToBuf` & `bufToHex` in favour of `hexToBytes` & `bytesToHex` to move towards removing the `buffer` polyfill.
241
+ - **Breaking**: Replaced `getNodesFromHostedJson` with `getPredefinedBootstrapNodes`. Now, it uses a hardcoded list of nodes.
242
+
243
+ ### Removed
244
+
245
+ - `axios` dependency in favour of fetch.
246
+
247
+ ## [0.16.0] - 2022-01-31
248
+
249
+ ### Changed
250
+
251
+ - Test: Upgrade nim-waku node to v0.7.
252
+ - Doc: Renamed "DappConnect" to "Waku Connect".
253
+ - Docs: API Docs are now available at https://js-waku.wakuconnect.dev/.
254
+ - **Breaking**: Replace `waitForConnectedPeer` with `waitForRemotePeer`; the new method checks that the peer is ready before resolving the promise.
255
+
256
+ ## [0.15.0] - 2022-01-17
257
+
258
+ ### Added
259
+
260
+ - Implement DNS Discovery as per [EIP-1459](https://eips.ethereum.org/EIPS/eip-1459),
261
+ with ENR records as defined in [31/WAKU2-ENR](https://rfc.vac.dev/spec/31/);
262
+ Available by passing `{ bootstrap: { enrUrl: enrtree://... } }` to `Waku.create`.
263
+ - When using `addDecryptionKey`,
264
+ it is now possible to specify the decryption method and the content topics of the messages to decrypt;
265
+ this is to reduce the number of decryption attempt done and improve performance.
266
+
267
+ ### Changed
268
+
269
+ - Test: Upgrade nim-waku node to v0.6.
270
+ - **Breaking**: Renamed `getBootstrapNodes` to `getNodesFromHostedJson`.
271
+ - Minimum node version changed to 16.
272
+ - **Breaking**: Changed `Waku.create` bootstrap option from `{ bootstrap: boolean }` to `{ bootstrap: BootstrapOptions }`.
273
+ Replace `{ boostrap: true }` with `{ boostrap: { default: true } }` to retain same behaviour.
274
+ - **Breaking**: `WakuMessage.decode` and `WakuMessage.decodeProto` now accepts method and content topics for the decryption key.
275
+ `WakuMessage.decode(bytes, [key])` becomes `WakuMessage.decode(bytes, [{key: key}])`.
276
+
277
+ ### Fixed
278
+
279
+ - Doc: Some broken links.
280
+
281
+ ## [0.14.2] - 2021-11-30
282
+
283
+ ### Changed
284
+
285
+ - Examples: JS examples uses local ESM folder to replicate behaviour of js-waku publish package.
286
+
287
+ ### Fixed
288
+
289
+ - `TypeError` issue related to constructors using js-waku in a JS project
290
+ ([#323](https://github.com/status-im/js-waku/issues/323)).
291
+
292
+ ## [0.14.1] - 2021-10-22
293
+
294
+ ### Fixed
295
+
296
+ - Issue when importing the `utils` module.
297
+
298
+ ## [0.14.0] - 2021-10-13
299
+
300
+ ### Added
301
+
302
+ - If the `callback` function passed to`WakuStore.queryHistory` returns `true`, then no further pages are retrieved from the store.
303
+ - Use webpack to build UMD bundle of the library, see [README](./README.md) for usage.
304
+
305
+ ### Changed
306
+
307
+ - **Breaking**: Renamed `WakuStore.QueryOptions`'s `direction` to `pageDirection` (and its type) as it only affects the page ordering,
308
+ not the ordering of messages with the page.
309
+
310
+ ### Fixed
311
+
312
+ - Docs: Ensure that `WakuStore`'s `QueryOptions` documentation is available [online](https://js-waku.wakuconnect.dev/).
313
+
314
+ ## [0.13.1] - 2021-09-21
315
+
316
+ ### Fixed
317
+
318
+ - `Error: Bootstrap requires a list of peer addresses` error when using `bootstrap: true` in `Waku.create`.
319
+
320
+ ## [0.13.0] - 2021-09-16
321
+
322
+ ### Changed
323
+
324
+ - Upgrade libp2p libraries: @chainsafe/libp2p-noise@4.1.1, libp2p@0.32.4, libp2p-gossipsub@0.11.1.
325
+ - Connects to a limited number of bootstrap nodes, defaults to 1.
326
+
327
+ ## [0.12.2] - 2021-09-21
328
+
329
+ ### Fixed
330
+
331
+ - **hot fix**: `Error: Bootstrap requires a list of peer addresses` error when using `bootstrap: true` in `Waku.create`.
332
+
333
+ ## [0.12.1] - 2021-09-16
334
+
335
+ ### Changed
336
+
337
+ - **hot fix**: Connects to a limited number of bootstrap nodes, defaults to 1.
338
+
339
+ ## [0.12.0] - 2021-09-2
340
+
341
+ ### Added
342
+
343
+ - Examples (eth-pm): Encrypt Public Key Messages using symmetric encryption.
344
+ - Guides: Encrypt messages using Waku Message Version 1.
345
+ - Allow passing decryption keys in hex string format.
346
+ - Allow passing decryption keys to `WakuStore` instance to avoid having to pass them at every `queryHistory` call.
347
+ - Allow passing decryption keys to `Waku` instance to avoid having to pass them to both `WakuRelay` and `WakuStore`.
348
+ - `Waku.waitForConnectedPeer` helper to ensure that we are connected to Waku peers when using the bootstrap option.
349
+
350
+ ### Changed
351
+
352
+ - **Breaking**: Moved `startTime` and `endTime` for history queries to a `timeFilter` property as both or neither must be passed; passing only one parameter is not supported.
353
+ - Renamed and promote the usage of `generateSymmetricKey()` to generate random symmetric keys.
354
+ - Improved errors thrown by `WakuStore.queryHistory`.
355
+
356
+ ### Fixed
357
+
358
+ - Buffer concat error when using symmetric encryption in the browser.
359
+
360
+ ## [0.11.0] - 2021-08-20
361
+
362
+ ### Added
363
+
364
+ - Examples: New [Ethereum Private Message Using Wallet Encryption Web App](./examples/eth-pm-wallet-encryption/README.md)
365
+ example that demonstrates the usage of `eth_encrypt` API (available on Metamask) and EIP-712 for typed structured data signing.
366
+ - New `bootstrap` option for `Waku.create` to easily connect to Waku nodes upon start up.
367
+ - Support for `startTime` and `endTime` in Store queries to filter by time window as per [21/WAKU2-FTSTORE](https://rfc.vac.dev/spec/21/).
368
+
369
+ ### Changed
370
+
371
+ - Renamed `discover.getStatusFleetNodes` to `discovery.getBootstrapNodes`;
372
+ Changed the API to allow retrieval of bootstrap nodes from other sources.
373
+ - Examples: Renamed `eth-dm` to `eth-pm`; "Direct Message" can lead to confusion with "Direct Connection" that
374
+ refers to low latency network connections.
375
+ - Examples (eth-pm): Use sign typed data EIP-712 instead of personal sign.
376
+ - Upgraded dependencies to remove warning at installation.
377
+ - **Breaking**: Moved `DefaultPubSubTopic` to `waku.ts` and fixed the casing.
378
+ - **Breaking**: Rename all `pubsubTopic` occurrences to `pubSubTopic`, across all interfaces.
379
+
380
+ ### Removed
381
+
382
+ - Examples (cli-chat): The focus of this library is Web environment;
383
+ Several examples now cover usage of Waku Relay and Waku Store making cli-chat example obsolete;
384
+ web-chat POC should be preferred to use the [TOY-CHAT](https://rfc.vac.dev/spec/22/) protocol.
385
+ - `ChatMessage` has been moved from js-waku to web-chat example;
386
+ it is a type used for the [TOY-CHAT](https://rfc.vac.dev/spec/22/) protocol;
387
+ js-waku users should not build on top if this toy protocol and instead design message data structures appropriate to their use case.
388
+ - Unused dependencies & scripts.
389
+
390
+ ## [0.10.0] - 2021-08-06
391
+
392
+ ### Added
393
+
394
+ - Relay and ReactJS guides and examples
395
+ ([#56](https://github.com/status-im/js-waku/issues/56)).
396
+
397
+ ### Changed
398
+
399
+ - **Breaking**: The `WakuMessage` APIs have been changed to move `contentTopic` out of the optional parameters.
400
+ - **Breaking**: Move `contentTopics` out the `WakuStore.queryHistory`'s optional parameters.
401
+ - **Breaking**: `WakuStore.queryHistory` throws when encountering an error instead of returning a `null` value.
402
+
403
+ ### Removed
404
+
405
+ - Examples (web-chat): Remove broken `/fleet` command.
406
+ - **Breaking**: Removed `DefaultContentTopic` as developers must choose a content topic for their app;
407
+ recommendations for content topic can be found at https://rfc.vac.dev/spec/23/.
408
+
409
+ ### Fixed
410
+
411
+ - `WakuMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii characters.
412
+ - `ChatMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii characters.
413
+
414
+ ## [0.9.0] - 2021-07-26
415
+
416
+ ### Changed
417
+
418
+ - **Breaking**: Store Response Protobuf changed to align with nim-waku v0.5
419
+ ([nim-waku#676](https://github.com/status-im/nim-waku/pull/676)).
420
+
421
+ ## [0.8.1] - 2021-07-16
422
+
423
+ ### Added
424
+
425
+ - Examples (web-chat): New `/fleet` command to switch connection between Status prod and test fleets.
426
+ - Export `generatePrivateKey` and `getPublicKey` directly from the root.
427
+ - Usage of the encryption and signature APIs to the readme.
428
+ - Support multiple protocol ids for Waku Relay, allowing interoperability with nim-waku v0.4 and latest master
429
+ ([#238](https://github.com/status-im/js-waku/issues/238)).
430
+
431
+ ### Changed
432
+
433
+ - **Breaking**: Renamed `WakuRelay.(add|delete)PrivateDecryptionKey` to `WakuRelay.(add|delete)DecryptionKey` to make it clearer that it accepts both symmetric keys and asymmetric private keys.
434
+ - Upgrade libp2p to 0.32.0.
435
+ - **Breaking**: Rename `keepAlive` option to `pingKeepAlive`.
436
+ - Introduced new `relayKeepAlive` option on `Waku` with a default to 59s to send ping messages over relay to ensure the relay stream stays open.
437
+ This is a workaround until [js-libp2p#744](https://github.com/libp2p/js-libp2p/issues/744) is done as there are issues when TCP(?) timeouts and the stream gets closed
438
+ ([#185](https://github.com/status-im/js-waku/issues/185), [js-libp2p#939](https://github.com/libp2p/js-libp2p/issues/939))
439
+
440
+ ### Fixed
441
+
442
+ - Align `WakuMessage` readme example with actual code behaviour.
443
+ - Remove infinite loop when an error with Waku Store is encountered.
444
+
445
+ ## [0.8.0] - 2021-07-15
446
+
447
+ ### Added
448
+
449
+ - `WakuRelay.deleteObserver` to allow removal of observers, useful when a React component add observers when mounting and needs to delete it when unmounting.
450
+ - Keep alive feature that pings host regularly, reducing the chance of connections being dropped due to idle.
451
+ Can be disabled or default frequency (10s) can be changed when calling `Waku.create`.
452
+ - New `lib/utils` module for easy, dependency-less hex/bytes conversions.
453
+ - New `peers` and `randomPeer` methods on `WakuStore` and `WakuLightPush` to have a better idea of available peers;
454
+ Note that it does not check whether Waku node is currently connected to said peers.
455
+ - Enable passing decryption private keys to `WakuStore.queryHistory`.
456
+ - Test: Introduce testing in browser environment (Chrome) using Karma.
457
+ - Add support for Waku Message version 1: Asymmetric encryption, symmetric encryption, and signature of the data.
458
+
459
+ ### Changed
460
+
461
+ - **Breaking**: Auto select peer if none provided for store and light push protocols.
462
+ - Upgrade to `libp2p@0.31.7` and `libp2p-gossipsub@0.10.0` to avoid `TextEncoder` errors in ReactJS tests.
463
+ - Disable keep alive by default as latest nim-waku release does not support ping protocol.
464
+ - **Breaking**: Optional parameters for `WakuMessage.fromBytes` and `WakuMessage.fromUtf8String` are now passed in a single `Options` object.
465
+ - **Breaking**: `WakuMessage` static functions are now async to allow for encryption and decryption.
466
+ - **Breaking**: `WakuMessage` constructor is now private, `from*` and `decode*` function should be used.
467
+ - `WakuMessage` version 1 is partially supported, enabling asymmetrical encryption and signature of messages;
468
+ this can be done by passing keys to `WakuMessage.from*` and `WakuMessage.decode*` methods.
469
+ - Examples (eth-dm): Use Waku Message version 1 encryption scheme instead of `eth-crypto`.
470
+ - Examples (eth-dm): Use Protobuf for direct messages instead of JSON ([#214](https://github.com/status-im/js-waku/issues/214)).
471
+
472
+ ### Fixed
473
+
474
+ - Disable `keepAlive` if set to `0`.
475
+
476
+ ## [0.7.0] - 2021-06-15
477
+
478
+ ### Changed
479
+
480
+ - Test: Upgrade nim-waku node to v0.4.
481
+ - Waku Light Push upgraded to `2.0.0-beta1`.
482
+ - Examples (web chat): Catch error if chat message decoding fails.
483
+ - Examples (web chat): Do not send message if shift/alt/ctrl is pressed, enabling multiline messages.
484
+
485
+ ## [0.6.0] - 2021-06-09
486
+
487
+ ### Changed
488
+
489
+ - **Breaking**: Websocket protocol is not automatically added anymore if the user specifies a protocol in `libp2p.modules`
490
+ when using `Waku.create`.
491
+ - **Breaking**: Options passed to `Waku.create` used to be passed to `Libp2p.create`;
492
+ Now, only the `libp2p` property is passed to `Libp2p.create`, allowing for a cleaner interface.
493
+ - Examples (cli chat): Use tcp protocol instead of websocket.
494
+
495
+ ### Added
496
+
497
+ - Enable access to `WakuMessage.timestamp`.
498
+ - Examples (web chat): Use `WakuMessage.timestamp` as unique key for list items.
499
+ - Doc: Link to new [topic guidelines](https://rfc.vac.dev/spec/23/) in README.
500
+ - Doc: Link to [Waku v2 Toy Chat specs](https://rfc.vac.dev/spec/22/) in README.
501
+ - Examples (web chat): Persist nick.
502
+ - Support for custom PubSub Topics to `Waku`, `WakuRelay`, `WakuStore` and `WakuLightPush`;
503
+ Passing a PubSub Topic is optional and still defaults to `/waku/2/default-waku/proto`;
504
+ JS-Waku currently supports one, and only, PubSub topic per instance.
505
+
506
+ ## [0.5.0] - 2021-05-21
507
+
508
+ ### Added
509
+
510
+ - Implement [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
511
+ - Expose `Direction` enum from js-waku root (it was only accessible via the proto module).
512
+ - Examples (cli chat): Use light push to send messages if `--lightPush` is passed.
513
+ - Examples (cli chat): Print usage if `--help` is passed.
514
+
515
+ ## [0.4.0] - 2021-05-18
516
+
517
+ ### Added
518
+
519
+ - `callback` argument to `WakuStore.queryHistory()`, called as messages are retrieved
520
+ ; Messages are retrieved using pagination, and it may take some time to retrieve all messages,
521
+ with the `callback` function, messages are processed as soon as they are received.
522
+
523
+ ### Changed
524
+
525
+ - Testing: Upgrade nim-waku node to v0.3.
526
+ - **Breaking**: Modify `WakuStore.queryHistory()` to accept one `Object` instead of multiple individual arguments.
527
+ - `getStatusFleetNodes` return prod nodes by default, instead of test nodes.
528
+ - Examples (web chat): Connect to prod fleet by default, test fleet for local development.
529
+ - Examples (cli chat): Connect to test fleet by default, use `--prod` to connect to prod fleet.
530
+
531
+ ### Fixed
532
+
533
+ - Expose `Enviroment` and `Protocol` enums to pass to `getStatusFleetNodes`.
534
+
535
+ ## [0.3.0] - 2021-05-15
536
+
537
+ ### Added
538
+
539
+ - `getStatusFleetNodes` to connect to Status' nim-waku nodes.
540
+
541
+ ### Changed
542
+
543
+ - Clarify content topic format in README.md.
544
+
545
+ ## Removed
546
+
547
+ - Unused dependencies.
548
+
549
+ ## [0.2.0] - 2021-05-14
550
+
551
+ ### Added
552
+
553
+ - `WakuRelay.getPeers` method.
554
+ - Use `WakuRelay.getPeers` in web chat app example to disable send button.
555
+
556
+ ### Changed
557
+
558
+ - Enable passing `string`s to `addPeerToAddressBook`.
559
+ - Use `addPeerToAddressBook` in examples and usage doc.
560
+ - Settle on `js-waku` name across the board.
561
+ - **Breaking**: `RelayDefaultTopic` renamed to `DefaultPubsubTopic`.
562
+
563
+ ## [0.1.0] - 2021-05-12
564
+
565
+ ### Added
566
+
567
+ - Add usage section to the README.
568
+ - Support of [Waku v2 Relay](https://rfc.vac.dev/spec/11/).
569
+ - Support of [Waku v2 Store](https://rfc.vac.dev/spec/13/).
570
+ - [Node Chat App example]().
571
+ - [ReactJS Chat App example](./examples/web-chat).
572
+ - [Typedoc Documentation](https://js-waku.wakuconnect.dev/).
573
+
574
+ [unreleased]: https://github.com/status-im/js-waku/compare/v0.30.0...HEAD
575
+ [0.30.0]: https://github.com/status-im/js-waku/compare/v0.29.0...v0.30.0
576
+ [0.29.0]: https://github.com/status-im/js-waku/compare/v0.28.0...v0.29.0
577
+ [0.28.1]: https://github.com/status-im/js-waku/compare/v0.28.0...v0.28.1
578
+ [0.28.0]: https://github.com/status-im/js-waku/compare/v0.27.0...v0.28.0
579
+ [0.27.0]: https://github.com/status-im/js-waku/compare/v0.26.0...v0.27.0
580
+ [0.26.0]: https://github.com/status-im/js-waku/compare/v0.25.0...v0.26.0
581
+ [0.25.0]: https://github.com/status-im/js-waku/compare/v0.24.0...v0.25.0
582
+ [0.24.0]: https://github.com/status-im/js-waku/compare/v0.23.0...v0.24.0
583
+ [0.23.0]: https://github.com/status-im/js-waku/compare/v0.22.0...v0.23.0
584
+ [0.22.0]: https://github.com/status-im/js-waku/compare/v0.21.0...v0.22.0
585
+ [0.21.0]: https://github.com/status-im/js-waku/compare/v0.20.0...v0.21.0
586
+ [0.20.0]: https://github.com/status-im/js-waku/compare/v0.19.2...v0.20.0
587
+ [0.19.2]: https://github.com/status-im/js-waku/compare/v0.19.0...v0.19.2
588
+ [0.19.1]: https://github.com/status-im/js-waku/compare/v0.19.0...v0.19.1
589
+ [0.19.0]: https://github.com/status-im/js-waku/compare/v0.18.0...v0.19.0
590
+ [0.18.0]: https://github.com/status-im/js-waku/compare/v0.17.0...v0.18.0
591
+ [0.17.0]: https://github.com/status-im/js-waku/compare/v0.16.0...v0.17.0
592
+ [0.16.0]: https://github.com/status-im/js-waku/compare/v0.15.0...v0.16.0
593
+ [0.15.0]: https://github.com/status-im/js-waku/compare/v0.14.2...v0.15.0
594
+ [0.14.2]: https://github.com/status-im/js-waku/compare/v0.14.1...v0.14.2
595
+ [0.14.1]: https://github.com/status-im/js-waku/compare/v0.14.0...v0.14.1
596
+ [0.14.0]: https://github.com/status-im/js-waku/compare/v0.13.1...v0.14.0
597
+ [0.13.1]: https://github.com/status-im/js-waku/compare/v0.13.0...v0.13.1
598
+ [0.13.0]: https://github.com/status-im/js-waku/compare/v0.12.0...v0.13.0
599
+ [0.12.2]: https://github.com/status-im/js-waku/compare/v0.12.1...v0.12.2
600
+ [0.12.1]: https://github.com/status-im/js-waku/compare/v0.12.0...v0.12.1
601
+ [0.12.0]: https://github.com/status-im/js-waku/compare/v0.11.0...v0.12.0
602
+ [0.11.0]: https://github.com/status-im/js-waku/compare/v0.10.0...v0.11.0
603
+ [0.10.0]: https://github.com/status-im/js-waku/compare/v0.9.0...v0.10.0
604
+ [0.9.0]: https://github.com/status-im/js-waku/compare/v0.8.1...v0.9.0
605
+ [0.8.1]: https://github.com/status-im/js-waku/compare/v0.8.0...v0.8.1
606
+ [0.8.1]: https://github.com/status-im/js-waku/compare/v0.8.0...v0.8.1
607
+ [0.8.0]: https://github.com/status-im/js-waku/compare/v0.7.0...v0.8.0
608
+ [0.7.0]: https://github.com/status-im/js-waku/compare/v0.6.0...v0.7.0
609
+ [0.6.0]: https://github.com/status-im/js-waku/compare/v0.5.0...v0.6.0
610
+ [0.5.0]: https://github.com/status-im/js-waku/compare/v0.4.0...v0.5.0
611
+ [0.4.0]: https://github.com/status-im/js-waku/compare/v0.3.0...v0.4.0
612
+ [0.3.0]: https://github.com/status-im/js-waku/compare/v0.2.0...v0.3.0
613
+ [0.2.0]: https://github.com/status-im/js-waku/compare/v0.1.0...v0.2.0
614
+ [0.1.0]: https://github.com/status-im/js-waku/compare/f46ce77f57c08866873b5c80acd052e0ddba8bc9...v0.1.0
package/README.md ADDED
@@ -0,0 +1,56 @@
1
+ [![NPM](https://nodei.co/npm/@waku/core.png)](https://npmjs.org/package/@waku/core)
2
+
3
+ ![GitHub Action](https://img.shields.io/github/workflow/status/waku-org/js-waku/CI)
4
+ [![Discord chat](https://img.shields.io/discord/864066763682218004.svg?logo=discord&colorB=7289DA)](https://discord.gg/j5pGbn7MHZ)
5
+
6
+ # @waku/core
7
+
8
+ Core components of js-waku, a TypeScript implementation of the [Waku v2 protocol](https://rfc.vac.dev/spec/10/).
9
+
10
+ ## Documentation
11
+
12
+ - [Quick start](https://docs.wakuconnect.dev/docs/quick_start/)
13
+ - [Full documentation](https://docs.wakuconnect.dev/)
14
+ - [API documentation (`master` branch)](https://js.waku.org/)
15
+ - [Waku Connect](https://wakuconnect.dev/)
16
+ - [Waku](https://wakunetwork.com/)
17
+ - [Vac](https://vac.dev/)
18
+
19
+ API Documentation can also be generated locally:
20
+
21
+ ```shell
22
+ git clone https://github.com/waku-org/js-waku.git
23
+ cd js-waku
24
+ npm install
25
+ npm run doc
26
+ ```
27
+
28
+ ## Changelog
29
+
30
+ Release changelog can be found in [CHANGELOG.md](https://github.com/waku-org/js-waku/blob/master/packages/core/CHANGELOG.md).
31
+
32
+ ## Bugs, Questions & Features
33
+
34
+ If you encounter any bug or would like to propose new features, feel free to [open an issue](https://github.com/waku-org/js-waku/issues/new/).
35
+
36
+ For general discussion, get help or latest news, join **#js-waku** on [Vac Discord](https://discord.gg/j5pGbn7MHZ) or the [Waku Telegram Group](https://t.me/waku_org).
37
+
38
+ ## Roadmap
39
+
40
+ You can track progress on the [project board](https://github.com/orgs/waku-org/projects/2/views/1).
41
+
42
+ ## Contributing
43
+
44
+ See [CONTRIBUTING.md](https://github.com/waku-org/js-waku/blob/master/CONTRIBUTING.md).
45
+
46
+ ## License
47
+
48
+ Licensed and distributed under either of
49
+
50
+ - MIT license: [LICENSE-MIT](https://github.com/waku-org/js-waku/blob/master/LICENSE-MIT) or http://opensource.org/licenses/MIT
51
+
52
+ or
53
+
54
+ - Apache License, Version 2.0, ([LICENSE-APACHE-v2](https://github.com/waku-org/js-waku/blob/master/LICENSE-APACHE-v2) or http://www.apache.org/licenses/LICENSE-2.0)
55
+
56
+ at your option. These files may not be copied, modified, or distributed except according to those terms.