@reventlessdev/reventless-aws 3.0.0-alpha.386 → 3.0.0-alpha.388
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 +21 -0
- package/README.md +1 -1
- package/package.json +12 -12
- package/scripts/ProvisionIdentity.res +1 -1
- package/src/Platform.res +20 -13
- package/src/Platform.res.mjs +34 -30
- package/src/Platform_Stack.res +3 -3
- package/src/adapter/AWS_Tags.res +1 -1
- package/src/adapter/Auth/Auth_ActiveRolePoolAttachment.res +1 -1
- package/src/adapter/Auth/Auth_ActiveRoleStore_Ops.res +2 -2
- package/src/adapter/Auth/Auth_ActiveRoleStore_Schema.res +1 -1
- package/src/adapter/Auth/Auth_Cognito.res +1 -1
- package/src/adapter/Auth/Auth_LoginIdentifier.res +1 -1
- package/src/adapter/Auth/Auth_SignUpMode.res +1 -1
- package/src/adapter/DcbEventLog/DcbEventLogStorage_DynamoDb_Runtime.res +2 -2
- package/src/adapter/EventLog/EventLogBackend.res +1 -1
- package/src/adapter/QueryDb/PgQueryResolver_Lambda.res +2 -2
- package/src/adapter/Runtime/AggregateEntryPoint.mjs +6 -6
- package/src/adapter/Runtime/AggregateEntryPoint_Ops.res +1 -1
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res +8 -8
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro.res.mjs +7 -7
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res +8 -8
- package/src/adapter/Runtime/AggregateRuntime_Builder_Micro_Async.res.mjs +7 -7
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res +7 -7
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate.res.mjs +6 -6
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res +7 -7
- package/src/adapter/Runtime/AggregateRuntime_Builder_PerAggregate_Async.res.mjs +6 -6
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res +7 -7
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single.res.mjs +6 -6
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res +7 -7
- package/src/adapter/Runtime/AggregateRuntime_Builder_Single_Async.res.mjs +6 -6
- package/src/adapter/Runtime/AutomationSliceEntryPoint_Ops.res +1 -1
- package/src/adapter/Runtime/AutomationSliceRuntime_Builder_Single.res +2 -2
- package/src/adapter/Runtime/DcbCommandTopicEntryPoint.mjs +7 -7
- package/src/adapter/Runtime/DcbCommandTopicEntryPoint_Ops.res +7 -7
- package/src/adapter/Runtime/DcbCommandTopicEntryPoint_Ops.res.mjs +2 -2
- package/src/adapter/Runtime/EventCollectorEntryPoint.mjs +1 -1
- package/src/adapter/Runtime/RuntimeEnvironment_Lambda.res +2 -2
- package/src/adapter/Runtime/RuntimeExtensionEntryPoint_Ops.res +2 -2
- package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res +10 -10
- package/src/adapter/Runtime/StateChangeSliceRuntime_Builder_Single.res.mjs +3 -3
- package/src/adapter/StateTopic/StateTopic_AppSync.res +1 -1
- package/src/capability/Capability_Messaging.res +2 -2
- package/src/components/Aggregate_Builder_Micro.res +3 -3
- package/src/components/Aggregate_Builder_Micro.res.mjs +3 -3
- package/src/components/Aggregate_Builder_NoResolver.res +3 -3
- package/src/components/Aggregate_Builder_NoResolver.res.mjs +3 -3
- package/src/components/Aggregate_Builder_PerAggregate.res +3 -3
- package/src/components/Aggregate_Builder_PerAggregate.res.mjs +3 -3
- package/src/components/Aggregate_Builder_Single.res +3 -3
- package/src/components/Aggregate_Builder_Single.res.mjs +3 -3
- package/src/components/Aggregate_Builder_Single_Async.res +3 -3
- package/src/components/Aggregate_Builder_Single_Async.res.mjs +3 -3
- package/src/components/Api/AppSync_Adapter.res +3 -3
- package/src/components/Api/AppSync_SdlDecorate.res +3 -3
- package/src/components/SideEffectHandler_PerSideEffectHandler.res +1 -1
- package/src/components/StateChangeSlice_Builder.res +4 -4
- package/src/components/StateChangeSlice_Builder.res.mjs +4 -4
- package/src/plugin/runtime/PluginRuntime_Builder.res +4 -4
- package/src/plugin/runtime/PluginRuntime_Builder.res.mjs +3 -3
- package/src/plugin/stack/Plugin_Stack.res +1 -1
- package/src/util/Util_Bundle.res +1 -1
- package/src/util/Util_ShellConfig.res +7 -1
- package/src/util/Util_ShellConfig.res.mjs +8 -2
- package/tests/AppSync_AdapterTest.res +1 -1
- package/tests/AppSync_RetirementNarrowingTest.res +1 -1
- package/tests/AppSync_SdlDecorateTest.res +1 -1
- package/tests/Auth_LoginIdentifierTest.res +1 -1
- package/tests/Auth_SignUpModeTest.res +1 -1
- package/tests/BakeConvergenceTest.res +11 -11
- package/tests/BakeConvergenceTest.res.mjs +13 -13
- package/tests/QueryDbResolvers_AppSyncTest.res +1 -1
- package/tests/Upload_ClaimTest.res +1 -1
- package/tests/Util_AwsErrorTest.res +1 -1
- package/tests/Util_ShellConfigTest.res +40 -0
- package/tests/Util_ShellConfigTest.res.mjs +76 -21
- package/tests/Util_StoreLayoutTest.res +1 -1
- package/tests/dcbColdStartPartition.mjs +3 -3
- package/tests/integration/{AggTestAggregateBehavior.res → AggTestAggregateDecision.res} +2 -2
- package/tests/integration/{AggTestAggregateBehavior.res.mjs → AggTestAggregateDecision.res.mjs} +1 -1
- package/tests/integration/AggregateEntryPoint_IntegrationTest.res +3 -3
- package/tests/integration/AggregateEntryPoint_IntegrationTest.res.mjs +2 -2
- package/tests/integration/DcbCommandTopicEntryPoint_IntegrationTest.res +5 -5
- package/tests/integration/DcbCommandTopicEntryPoint_IntegrationTest.res.mjs +4 -4
- package/tests/integration/DcbEventLogStorage_DynamoDb_IntegrationTest.res +1 -1
- package/tests/integration/{EpCompositeSliceBehavior.res → EpCompositeSliceDecision.res} +2 -2
- package/tests/integration/{EpCompositeSliceBehavior.res.mjs → EpCompositeSliceDecision.res.mjs} +1 -1
- package/tests/integration/{EpTestSliceBehavior.res → EpTestSliceDecision.res} +2 -2
- package/tests/integration/{EpTestSliceBehavior.res.mjs → EpTestSliceDecision.res.mjs} +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Integration regression guard for the Aggregate Lambda entry point.
|
|
2
2
|
//
|
|
3
3
|
// Drives the real `AggregateEntryPoint.mjs` against a DynamoDB Local EventLog
|
|
4
|
-
// table, with a test loader supplying a tiny `AggTestAggregate` spec/
|
|
4
|
+
// table, with a test loader supplying a tiny `AggTestAggregate` spec/decision
|
|
5
5
|
// pair in place of the production Lambda's `/var/task/node_modules` dynamic
|
|
6
6
|
// import. Covers the same regression class as the DCB entry-point test: the
|
|
7
7
|
// shell wires the compiled EventLog/Aggregate/CommandTopic functors and the
|
|
@@ -38,14 +38,14 @@ let runOneAppSyncEvent: (string, JSON.t) => promise<JSON.t> = %raw(`
|
|
|
38
38
|
|
|
39
39
|
const loadModule = async (specifier) => {
|
|
40
40
|
if (specifier === "agg-test://spec") return await import("./AggTestAggregate.res.mjs");
|
|
41
|
-
if (specifier === "agg-test://
|
|
41
|
+
if (specifier === "agg-test://decision") return await import("./AggTestAggregateDecision.res.mjs");
|
|
42
42
|
throw new Error("unknown test specifier: " + specifier);
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
const config = {
|
|
46
46
|
handlers: [{
|
|
47
47
|
specModule: "agg-test://spec",
|
|
48
|
-
|
|
48
|
+
decisionModule: "agg-test://decision",
|
|
49
49
|
eventLogTable: tableName,
|
|
50
50
|
queueUrl: "https://sqs.eu-west-1.amazonaws.com/000000000000/agg-test-queue",
|
|
51
51
|
queueArn: "arn:aws:sqs:eu-west-1:000000000000:agg-test-queue",
|
|
@@ -17,14 +17,14 @@ let runOneAppSyncEvent = (async (tableName, event) => {
|
|
|
17
17
|
|
|
18
18
|
const loadModule = async (specifier) => {
|
|
19
19
|
if (specifier === "agg-test://spec") return await import("./AggTestAggregate.res.mjs");
|
|
20
|
-
if (specifier === "agg-test://
|
|
20
|
+
if (specifier === "agg-test://decision") return await import("./AggTestAggregateDecision.res.mjs");
|
|
21
21
|
throw new Error("unknown test specifier: " + specifier);
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
const config = {
|
|
25
25
|
handlers: [{
|
|
26
26
|
specModule: "agg-test://spec",
|
|
27
|
-
|
|
27
|
+
decisionModule: "agg-test://decision",
|
|
28
28
|
eventLogTable: tableName,
|
|
29
29
|
queueUrl: "https://sqs.eu-west-1.amazonaws.com/000000000000/agg-test-queue",
|
|
30
30
|
queueArn: "arn:aws:sqs:eu-west-1:000000000000:agg-test-queue",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Integration regression guard for the DCB CommandTopic Lambda entry point.
|
|
2
2
|
//
|
|
3
3
|
// Drives the real `DcbCommandTopicEntryPoint.mjs` against a DynamoDB Local
|
|
4
|
-
// table, with a test loader supplying a tiny `EpTestSlice` spec/
|
|
4
|
+
// table, with a test loader supplying a tiny `EpTestSlice` spec/decision pair
|
|
5
5
|
// in place of the production Lambda's `/var/task/node_modules` dynamic import.
|
|
6
6
|
// Covers the regression class behind the 2026-06-21 incident: the entry point
|
|
7
7
|
// was passing the wrong number of positional args to ReScript-compiled
|
|
@@ -39,14 +39,14 @@ let runOneAppSyncEvent: (string, JSON.t) => promise<JSON.t> = %raw(`
|
|
|
39
39
|
|
|
40
40
|
const loadModule = async (specifier) => {
|
|
41
41
|
if (specifier === "ep-test://spec") return await import("./EpTestSlice.res.mjs");
|
|
42
|
-
if (specifier === "ep-test://
|
|
42
|
+
if (specifier === "ep-test://decision") return await import("./EpTestSliceDecision.res.mjs");
|
|
43
43
|
throw new Error("unknown test specifier: " + specifier);
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
const config = {
|
|
47
47
|
pluginName: "EpTestPlugin",
|
|
48
48
|
dcbEventLogTableName: tableName,
|
|
49
|
-
stateChangeSliceModules: [{ spec: "ep-test://spec",
|
|
49
|
+
stateChangeSliceModules: [{ spec: "ep-test://spec", decision: "ep-test://decision" }],
|
|
50
50
|
queueUrl: "https://sqs.eu-west-1.amazonaws.com/000000000000/ep-test-queue",
|
|
51
51
|
};
|
|
52
52
|
|
|
@@ -78,14 +78,14 @@ let runOneCompositeEvent: (string, JSON.t) => promise<JSON.t> = %raw(`
|
|
|
78
78
|
|
|
79
79
|
const loadModule = async (specifier) => {
|
|
80
80
|
if (specifier === "ep-composite://spec") return await import("./EpCompositeSlice.res.mjs");
|
|
81
|
-
if (specifier === "ep-composite://
|
|
81
|
+
if (specifier === "ep-composite://decision") return await import("./EpCompositeSliceDecision.res.mjs");
|
|
82
82
|
throw new Error("unknown test specifier: " + specifier);
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
const config = {
|
|
86
86
|
pluginName: "EpCompositePlugin",
|
|
87
87
|
dcbEventLogTableName: tableName,
|
|
88
|
-
stateChangeSliceModules: [{ spec: "ep-composite://spec",
|
|
88
|
+
stateChangeSliceModules: [{ spec: "ep-composite://spec", decision: "ep-composite://decision" }],
|
|
89
89
|
queueUrl: "https://sqs.eu-west-1.amazonaws.com/000000000000/ep-composite-queue",
|
|
90
90
|
};
|
|
91
91
|
|
|
@@ -19,14 +19,14 @@ let runOneAppSyncEvent = (async (tableName, event) => {
|
|
|
19
19
|
|
|
20
20
|
const loadModule = async (specifier) => {
|
|
21
21
|
if (specifier === "ep-test://spec") return await import("./EpTestSlice.res.mjs");
|
|
22
|
-
if (specifier === "ep-test://
|
|
22
|
+
if (specifier === "ep-test://decision") return await import("./EpTestSliceDecision.res.mjs");
|
|
23
23
|
throw new Error("unknown test specifier: " + specifier);
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
const config = {
|
|
27
27
|
pluginName: "EpTestPlugin",
|
|
28
28
|
dcbEventLogTableName: tableName,
|
|
29
|
-
stateChangeSliceModules: [{ spec: "ep-test://spec",
|
|
29
|
+
stateChangeSliceModules: [{ spec: "ep-test://spec", decision: "ep-test://decision" }],
|
|
30
30
|
queueUrl: "https://sqs.eu-west-1.amazonaws.com/000000000000/ep-test-queue",
|
|
31
31
|
};
|
|
32
32
|
|
|
@@ -52,14 +52,14 @@ let runOneCompositeEvent = (async (tableName, event) => {
|
|
|
52
52
|
|
|
53
53
|
const loadModule = async (specifier) => {
|
|
54
54
|
if (specifier === "ep-composite://spec") return await import("./EpCompositeSlice.res.mjs");
|
|
55
|
-
if (specifier === "ep-composite://
|
|
55
|
+
if (specifier === "ep-composite://decision") return await import("./EpCompositeSliceDecision.res.mjs");
|
|
56
56
|
throw new Error("unknown test specifier: " + specifier);
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
const config = {
|
|
60
60
|
pluginName: "EpCompositePlugin",
|
|
61
61
|
dcbEventLogTableName: tableName,
|
|
62
|
-
stateChangeSliceModules: [{ spec: "ep-composite://spec",
|
|
62
|
+
stateChangeSliceModules: [{ spec: "ep-composite://spec", decision: "ep-composite://decision" }],
|
|
63
63
|
queueUrl: "https://sqs.eu-west-1.amazonaws.com/000000000000/ep-composite-queue",
|
|
64
64
|
};
|
|
65
65
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
//
|
|
13
13
|
// The unit suite (`DcbEventLogStorage_DynamoDb_RuntimeTest.res`) asserts the
|
|
14
14
|
// *shape* of the built `TransactWriteItems`. This suite asserts DynamoDB's
|
|
15
|
-
// *
|
|
15
|
+
// *behavior* — that the `ConditionExpression`s interpret as we expect — which
|
|
16
16
|
// is the only thing that proves the fence-scope model (Issue 1 fix) and the
|
|
17
17
|
// optimistic-concurrency guarantees end-to-end. See
|
|
18
18
|
// `docs/analysis/dcb-consistency-check-issues.md` and
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Decision pair for `EpCompositeSlice`. Append-on-empty / reject-on-seen, per
|
|
2
2
|
// composite entity: the decision read is scoped to one `{environment,
|
|
3
3
|
// resourceName}` composite, so a fresh resource sees `Absent` and appends, while
|
|
4
4
|
// a duplicate of the same composite key sees `Added` and is rejected.
|
|
@@ -32,4 +32,4 @@ let decide = (state, command: EpCompositeSlice.command): result<
|
|
|
32
32
|
| (Absent, TouchResource(_)) => Error(NotFound)
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
let moduleUrl = "ep-test://
|
|
35
|
+
let moduleUrl = "ep-test://EpCompositeSliceDecision"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Decision pair for `EpTestSlice`. Append-on-empty / reject-on-seen.
|
|
2
2
|
|
|
3
3
|
type state = bool
|
|
4
4
|
|
|
@@ -15,4 +15,4 @@ let decide = (state, command: EpTestSlice.command): result<
|
|
|
15
15
|
| (false, AddWidget({widgetId})) => Ok([WidgetAdded({widgetId: widgetId})])
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
let moduleUrl = "ep-test://
|
|
18
|
+
let moduleUrl = "ep-test://EpTestSliceDecision"
|