diff --git a/.changeset/anti-spam.md b/.changeset/anti-spam.md deleted file mode 100644 index 3290321..0000000 --- a/.changeset/anti-spam.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@meshcorejs/protocol": minor -"@meshcorejs/client": minor -"@meshcorejs/testing": patch ---- - -Anti-spam guards, on by default and not configurable: - -- Commands ignore the Public channel unless they opt in with `setScope('public')` (`CommandScope` gains `'public'`); `channel.send()` and `message.reply()` on Public reject with `PublicChannelError`. `Channel.isPublic`, `PUBLIC_CHANNEL_SECRET`. -- On a channel every refusal is silent (`commandDenied` only) and `@Bot` answers one line (`Replies.helperChannel`). **Breaking:** `Replies.unknownCommandChannel` and `Replies.channelUntrusted` are removed. -- 10 parts per 5 minutes per channel (`CHANNEL_SEND_LIMIT`, `CHANNEL_SEND_WINDOW_MS`), one flood advert per 30 minutes (`ADVERT_FLOOD_INTERVAL_MS`); both reject with `RateLimitError`. -- `new Client({ maxHops })`: commands from further away are ignored (`commandDenied` `tooFar`), `message.reply()` rejects with `TooFarError`. -- `client.radio.request(code, payload, collect?)` sends an unwrapped Companion command through the request queue; the three mesh-transmitting commands are refused (`GuardedCommandError`). `expectType` and `Collector` are exported. diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md new file mode 100644 index 0000000..e219dcb --- /dev/null +++ b/packages/client/CHANGELOG.md @@ -0,0 +1,19 @@ +# @meshcorejs/client + +## 0.2.0 + +### Minor Changes + +- [#10](https://github.com/meshcorejs/meshcore.js/pull/10) [`d41742f`](https://github.com/meshcorejs/meshcore.js/commit/d41742f68bea30fd9b243d62c3e4827587e2491a) Thanks [@Asuniia](https://github.com/Asuniia)! - Anti-spam guards, on by default and not configurable: + + - Commands ignore the Public channel unless they opt in with `setScope('public')` (`CommandScope` gains `'public'`); `channel.send()` and `message.reply()` on Public reject with `PublicChannelError`. `Channel.isPublic`, `PUBLIC_CHANNEL_SECRET`. + - On a channel every refusal is silent (`commandDenied` only) and `@Bot` answers one line (`Replies.helperChannel`). **Breaking:** `Replies.unknownCommandChannel` and `Replies.channelUntrusted` are removed. + - 10 parts per 5 minutes per channel (`CHANNEL_SEND_LIMIT`, `CHANNEL_SEND_WINDOW_MS`), one flood advert per 30 minutes (`ADVERT_FLOOD_INTERVAL_MS`); both reject with `RateLimitError`. + - `new Client({ maxHops })`: commands from further away are ignored (`commandDenied` `tooFar`), `message.reply()` rejects with `TooFarError`. + - `client.radio.request(code, payload, collect?)` sends an unwrapped Companion command through the request queue; the three mesh-transmitting commands are refused (`GuardedCommandError`). `expectType` and `Collector` are exported. + +### Patch Changes + +- Updated dependencies [[`d41742f`](https://github.com/meshcorejs/meshcore.js/commit/d41742f68bea30fd9b243d62c3e4827587e2491a)]: + - @meshcorejs/protocol@0.2.0 + - @meshcorejs/transports@0.2.0 diff --git a/packages/client/package.json b/packages/client/package.json index 342d544..c9c6805 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@meshcorejs/client", - "version": "0.1.0", + "version": "0.2.0", "description": "Build MeshCore bots: a Client with events, managers, builders, plugins and permissions.", "keywords": [ "meshcore", diff --git a/packages/protocol/CHANGELOG.md b/packages/protocol/CHANGELOG.md new file mode 100644 index 0000000..fa94d2b --- /dev/null +++ b/packages/protocol/CHANGELOG.md @@ -0,0 +1,13 @@ +# @meshcorejs/protocol + +## 0.2.0 + +### Minor Changes + +- [#10](https://github.com/meshcorejs/meshcore.js/pull/10) [`d41742f`](https://github.com/meshcorejs/meshcore.js/commit/d41742f68bea30fd9b243d62c3e4827587e2491a) Thanks [@Asuniia](https://github.com/Asuniia)! - Anti-spam guards, on by default and not configurable: + + - Commands ignore the Public channel unless they opt in with `setScope('public')` (`CommandScope` gains `'public'`); `channel.send()` and `message.reply()` on Public reject with `PublicChannelError`. `Channel.isPublic`, `PUBLIC_CHANNEL_SECRET`. + - On a channel every refusal is silent (`commandDenied` only) and `@Bot` answers one line (`Replies.helperChannel`). **Breaking:** `Replies.unknownCommandChannel` and `Replies.channelUntrusted` are removed. + - 10 parts per 5 minutes per channel (`CHANNEL_SEND_LIMIT`, `CHANNEL_SEND_WINDOW_MS`), one flood advert per 30 minutes (`ADVERT_FLOOD_INTERVAL_MS`); both reject with `RateLimitError`. + - `new Client({ maxHops })`: commands from further away are ignored (`commandDenied` `tooFar`), `message.reply()` rejects with `TooFarError`. + - `client.radio.request(code, payload, collect?)` sends an unwrapped Companion command through the request queue; the three mesh-transmitting commands are refused (`GuardedCommandError`). `expectType` and `Collector` are exported. diff --git a/packages/protocol/package.json b/packages/protocol/package.json index f04715a..2c2a1ca 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -1,6 +1,6 @@ { "name": "@meshcorejs/protocol", - "version": "0.1.0", + "version": "0.2.0", "description": "MeshCore Companion Radio protocol codec (framing, commands, responses). No I/O.", "keywords": [ "meshcore", diff --git a/packages/testing/CHANGELOG.md b/packages/testing/CHANGELOG.md new file mode 100644 index 0000000..6ef656a --- /dev/null +++ b/packages/testing/CHANGELOG.md @@ -0,0 +1,17 @@ +# @meshcorejs/testing + +## 0.2.0 + +### Patch Changes + +- [#10](https://github.com/meshcorejs/meshcore.js/pull/10) [`d41742f`](https://github.com/meshcorejs/meshcore.js/commit/d41742f68bea30fd9b243d62c3e4827587e2491a) Thanks [@Asuniia](https://github.com/Asuniia)! - Anti-spam guards, on by default and not configurable: + + - Commands ignore the Public channel unless they opt in with `setScope('public')` (`CommandScope` gains `'public'`); `channel.send()` and `message.reply()` on Public reject with `PublicChannelError`. `Channel.isPublic`, `PUBLIC_CHANNEL_SECRET`. + - On a channel every refusal is silent (`commandDenied` only) and `@Bot` answers one line (`Replies.helperChannel`). **Breaking:** `Replies.unknownCommandChannel` and `Replies.channelUntrusted` are removed. + - 10 parts per 5 minutes per channel (`CHANNEL_SEND_LIMIT`, `CHANNEL_SEND_WINDOW_MS`), one flood advert per 30 minutes (`ADVERT_FLOOD_INTERVAL_MS`); both reject with `RateLimitError`. + - `new Client({ maxHops })`: commands from further away are ignored (`commandDenied` `tooFar`), `message.reply()` rejects with `TooFarError`. + - `client.radio.request(code, payload, collect?)` sends an unwrapped Companion command through the request queue; the three mesh-transmitting commands are refused (`GuardedCommandError`). `expectType` and `Collector` are exported. +- Updated dependencies [[`d41742f`](https://github.com/meshcorejs/meshcore.js/commit/d41742f68bea30fd9b243d62c3e4827587e2491a)]: + - @meshcorejs/protocol@0.2.0 + - @meshcorejs/client@0.2.0 + - @meshcorejs/transports@0.2.0 diff --git a/packages/testing/package.json b/packages/testing/package.json index 4f94d97..7aa636e 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,6 +1,6 @@ { "name": "@meshcorejs/testing", - "version": "0.1.0", + "version": "0.2.0", "description": "Test @meshcorejs/client bots without a radio: fake radio, simulated time, DM and channel helpers.", "keywords": [ "meshcore", diff --git a/packages/transports/CHANGELOG.md b/packages/transports/CHANGELOG.md new file mode 100644 index 0000000..2ad00d0 --- /dev/null +++ b/packages/transports/CHANGELOG.md @@ -0,0 +1,8 @@ +# @meshcorejs/transports + +## 0.2.0 + +### Patch Changes + +- Updated dependencies [[`d41742f`](https://github.com/meshcorejs/meshcore.js/commit/d41742f68bea30fd9b243d62c3e4827587e2491a)]: + - @meshcorejs/protocol@0.2.0 diff --git a/packages/transports/package.json b/packages/transports/package.json index 6d16229..b9d35e3 100644 --- a/packages/transports/package.json +++ b/packages/transports/package.json @@ -1,6 +1,6 @@ { "name": "@meshcorejs/transports", - "version": "0.1.0", + "version": "0.2.0", "description": "Serial, TCP and BLE transports for MeshCore Companion radios, plus an in-memory fake radio for tests.", "keywords": [ "meshcore", diff --git a/plugins/ai/package.json b/plugins/ai/package.json index f38e872..e452b46 100644 --- a/plugins/ai/package.json +++ b/plugins/ai/package.json @@ -49,7 +49,7 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "peerDependencies": { - "@meshcorejs/client": ">=0.1.0" + "@meshcorejs/client": ">=0.2.0" }, "devDependencies": { "@meshcorejs/client": "workspace:*",