@reventlessdev/reventless-local 3.0.0-alpha.307 → 3.0.0-alpha.309
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.
- package/CHANGELOG.md +32 -0
- package/package.json +8 -8
- package/src/adapter/LocalBus.res +5 -0
- package/src/adapter/LocalBus.res.mjs +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 3.0.0-alpha.309 (2026-10-29)
|
|
7
|
+
|
|
8
|
+
* feat(core)!: every reader opens a sealed field, with the keys its batch prepared ([d4ac204](https://github.com/ReventlessDev/reventless-core/commit/d4ac204c307d34617d4e32c556030b44bb55b178))
|
|
9
|
+
|
|
10
|
+
### BREAKING CHANGES
|
|
11
|
+
|
|
12
|
+
* `Pii.provider` has `prefetch` and `openNow` in place of `open_`.
|
|
13
|
+
|
|
14
|
+
Not yet: `prepare` in the AWS entry points, the conformance scenario, the runs on
|
|
15
|
+
DynamoDB and Postgres.
|
|
16
|
+
|
|
17
|
+
Begins step PD10 of docs/plans/a-personal-field-is-marked-redacted-and-encrypted-at-the-seam.md.
|
|
18
|
+
Claude-Session: https://claude.ai/code/session_01HiQfdxVEsHwLHRoHSUcus1
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# 3.0.0-alpha.308 (2026-10-29)
|
|
23
|
+
|
|
24
|
+
* feat(core)!: every reader opens a sealed field, with the keys its batch prepared ([d4ac204](https://github.com/ReventlessDev/reventless-core/commit/d4ac204c307d34617d4e32c556030b44bb55b178))
|
|
25
|
+
|
|
26
|
+
### BREAKING CHANGES
|
|
27
|
+
|
|
28
|
+
* `Pii.provider` has `prefetch` and `openNow` in place of `open_`.
|
|
29
|
+
|
|
30
|
+
Not yet: `prepare` in the AWS entry points, the conformance scenario, the runs on
|
|
31
|
+
DynamoDB and Postgres.
|
|
32
|
+
|
|
33
|
+
Begins step PD10 of docs/plans/a-personal-field-is-marked-redacted-and-encrypted-at-the-seam.md.
|
|
34
|
+
Claude-Session: https://claude.ai/code/session_01HiQfdxVEsHwLHRoHSUcus1
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
6
38
|
# 3.0.0-alpha.307 (2026-10-29)
|
|
7
39
|
|
|
8
40
|
**Note:** Version bump only for package @reventlessdev/reventless-local
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-local",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.309",
|
|
4
4
|
"description": "Local platform for Reventless (in-memory or SQLite backend, for development and testing without AWS)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": {
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
"ws": "^8.18.0",
|
|
37
37
|
"@reventlessdev/rescript-effect": "1.0.0-alpha.1",
|
|
38
38
|
"@reventlessdev/rescript-graphql-yoga": "1.0.0-alpha.29",
|
|
39
|
-
"@reventlessdev/rescript-mcp-sdk": "1.0.0-alpha.24",
|
|
40
39
|
"@reventlessdev/rescript-jest": "1.0.0-alpha.13",
|
|
40
|
+
"@reventlessdev/rescript-mcp-sdk": "1.0.0-alpha.24",
|
|
41
41
|
"@reventlessdev/rescript-node": "2.0.0-alpha.24",
|
|
42
42
|
"@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0",
|
|
43
|
-
"@reventlessdev/reventless-
|
|
44
|
-
"@reventlessdev/reventless-
|
|
45
|
-
"@reventlessdev/reventless-graphql-server": "1.0.0-alpha.
|
|
46
|
-
"@reventlessdev/reventless-
|
|
47
|
-
"@reventlessdev/reventless-
|
|
43
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.318",
|
|
44
|
+
"@reventlessdev/reventless-gwt": "1.0.0-alpha.266",
|
|
45
|
+
"@reventlessdev/reventless-graphql-server": "1.0.0-alpha.166",
|
|
46
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.182",
|
|
47
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.215",
|
|
48
48
|
"@reventlessdev/reventless-seed": "1.0.0-alpha.39",
|
|
49
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.
|
|
49
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.186"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"rescript": "12.3.1",
|
package/src/adapter/LocalBus.res
CHANGED
|
@@ -333,6 +333,11 @@ module Impl = (C: BusConfig): T => {
|
|
|
333
333
|
}
|
|
334
334
|
|
|
335
335
|
let publishEvent = async (topicName, service, meta, json) => {
|
|
336
|
+
// Every subscriber decodes in this process, so the keys the event's sealed
|
|
337
|
+
// fields name are fetched once, here, before any of them reads it.
|
|
338
|
+
if Reventless.Pii.needsPrepare([json]) {
|
|
339
|
+
await Reventless.Pii.prepareOrThrow([json])
|
|
340
|
+
}
|
|
336
341
|
emitEventTap(~topic=topicName, ~service, ~payload=json)
|
|
337
342
|
switch eventHubs.contents->Dict.get(topicName) {
|
|
338
343
|
| None => ()
|
|
@@ -7,6 +7,7 @@ import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
|
7
7
|
import * as Effect$1 from "effect/Effect";
|
|
8
8
|
import * as PubSub from "effect/PubSub";
|
|
9
9
|
import * as Stream from "effect/Stream";
|
|
10
|
+
import * as Pii$Reventless from "@reventlessdev/reventless-spec/src/components/Pii.res.mjs";
|
|
10
11
|
import * as Stdlib_Promise from "@rescript/runtime/lib/es6/Stdlib_Promise.js";
|
|
11
12
|
import * as Deferred from "effect/Deferred";
|
|
12
13
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
@@ -137,6 +138,9 @@ function Impl(C) {
|
|
|
137
138
|
}), Queue.shutdown(queue))), queue => Stream.fromQueue(queue));
|
|
138
139
|
};
|
|
139
140
|
let publishEvent = async (topicName, service, meta, json) => {
|
|
141
|
+
if (Pii$Reventless.needsPrepare([json])) {
|
|
142
|
+
await Pii$Reventless.prepareOrThrow([json]);
|
|
143
|
+
}
|
|
140
144
|
emitEventTap(topicName, service, json);
|
|
141
145
|
let hub = eventHubs.contents[topicName];
|
|
142
146
|
if (hub === undefined) {
|
|
@@ -410,6 +414,9 @@ function Make($star) {
|
|
|
410
414
|
}), Queue.shutdown(queue))), queue => Stream.fromQueue(queue));
|
|
411
415
|
};
|
|
412
416
|
let publishEvent = async (topicName, service, meta, json) => {
|
|
417
|
+
if (Pii$Reventless.needsPrepare([json])) {
|
|
418
|
+
await Pii$Reventless.prepareOrThrow([json]);
|
|
419
|
+
}
|
|
413
420
|
emitEventTap(topicName, service, json);
|
|
414
421
|
let hub = eventHubs.contents[topicName];
|
|
415
422
|
if (hub === undefined) {
|
|
@@ -683,6 +690,9 @@ function MakeSilent($star) {
|
|
|
683
690
|
}), Queue.shutdown(queue))), queue => Stream.fromQueue(queue));
|
|
684
691
|
};
|
|
685
692
|
let publishEvent = async (topicName, service, meta, json) => {
|
|
693
|
+
if (Pii$Reventless.needsPrepare([json])) {
|
|
694
|
+
await Pii$Reventless.prepareOrThrow([json]);
|
|
695
|
+
}
|
|
686
696
|
emitEventTap(topicName, service, json);
|
|
687
697
|
let hub = eventHubs.contents[topicName];
|
|
688
698
|
if (hub === undefined) {
|
|
@@ -957,6 +967,9 @@ function MakeBounded(C) {
|
|
|
957
967
|
}), Queue.shutdown(queue))), queue => Stream.fromQueue(queue));
|
|
958
968
|
};
|
|
959
969
|
let publishEvent = async (topicName, service, meta, json) => {
|
|
970
|
+
if (Pii$Reventless.needsPrepare([json])) {
|
|
971
|
+
await Pii$Reventless.prepareOrThrow([json]);
|
|
972
|
+
}
|
|
960
973
|
emitEventTap(topicName, service, json);
|
|
961
974
|
let hub = eventHubs.contents[topicName];
|
|
962
975
|
if (hub === undefined) {
|