@reventlessdev/reventless-aws 3.0.0-alpha.205 → 3.0.0-alpha.207
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
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
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.207 (2026-07-13)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **admin:** materialise ApiSchemaPush SideEffect Source at runtime ([57a61d9](https://github.com/ReventlessDev/reventless-core/commit/57a61d98fa11dfe3de188cc299c89abdeea41457))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# 3.0.0-alpha.206 (2026-07-13)
|
|
14
|
+
|
|
15
|
+
**Note:** Version bump only for package @reventlessdev/reventless-aws
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
# 3.0.0-alpha.205 (2026-07-13)
|
|
7
22
|
|
|
8
23
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-aws",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.207",
|
|
4
4
|
"description": "AWS adapters for Reventless",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"dependencies": {
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
"@aws-sdk/client-cloudfront": "3.970.0",
|
|
9
9
|
"sury": "11.0.0-alpha.4",
|
|
10
10
|
"uuid": "^13.0.0",
|
|
11
|
-
"@reventlessdev/rescript-aws-sdk": "2.2.0-alpha.21",
|
|
12
11
|
"@reventlessdev/rescript-effect": "0.1.0-alpha.27",
|
|
13
|
-
"@reventlessdev/rescript-
|
|
12
|
+
"@reventlessdev/rescript-aws-sdk": "2.2.0-alpha.21",
|
|
14
13
|
"@reventlessdev/rescript-pulumi-aws": "2.4.0-alpha.50",
|
|
14
|
+
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
15
15
|
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
16
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.164",
|
|
16
17
|
"@reventlessdev/rescript-uuid": "1.1.0-alpha.15",
|
|
17
18
|
"@reventlessdev/reventless-infra": "3.0.0-alpha.98",
|
|
18
|
-
"@reventlessdev/reventless-core": "3.0.0-alpha.163",
|
|
19
|
-
"@reventlessdev/reventless-postgres": "3.0.0-alpha.27",
|
|
20
19
|
"@reventlessdev/reventless-interop": "3.0.0-alpha.26",
|
|
20
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.28",
|
|
21
21
|
"@reventlessdev/reventless-spec": "3.0.0-alpha.76"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
package/src/Platform.res.mjs
CHANGED
|
@@ -1287,9 +1287,9 @@ function MakeWithConfig(Config) {
|
|
|
1287
1287
|
]).apply(param => {
|
|
1288
1288
|
AdminApiSchemaPushHandler.make("AdminApiSchemaPush", [{
|
|
1289
1289
|
Source: {
|
|
1290
|
-
name:
|
|
1290
|
+
name: ApiSchemaPush$ReventlessAws.Source.name,
|
|
1291
1291
|
Id: Id$Reventless.$$String,
|
|
1292
|
-
eventSchema:
|
|
1292
|
+
eventSchema: ApiSchemaPush$ReventlessAws.Source.eventSchema
|
|
1293
1293
|
},
|
|
1294
1294
|
moduleUrl: ApiSchemaPush$ReventlessAws.moduleUrl,
|
|
1295
1295
|
execute: ApiSchemaPush$ReventlessAws.execute
|
|
@@ -2707,9 +2707,9 @@ function Make($star) {
|
|
|
2707
2707
|
]).apply(param => {
|
|
2708
2708
|
AdminApiSchemaPushHandler.make("AdminApiSchemaPush", [{
|
|
2709
2709
|
Source: {
|
|
2710
|
-
name:
|
|
2710
|
+
name: ApiSchemaPush$ReventlessAws.Source.name,
|
|
2711
2711
|
Id: Id$Reventless.$$String,
|
|
2712
|
-
eventSchema:
|
|
2712
|
+
eventSchema: ApiSchemaPush$ReventlessAws.Source.eventSchema
|
|
2713
2713
|
},
|
|
2714
2714
|
moduleUrl: ApiSchemaPush$ReventlessAws.moduleUrl,
|
|
2715
2715
|
execute: ApiSchemaPush$ReventlessAws.execute
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
// is loaded via dynamic import so no @aws-sdk / provider code is statically captured
|
|
15
15
|
// beyond what the SideEffectHandler Lambda already bundles (runtime-purity — see
|
|
16
16
|
// reference_pulumi_leaks_into_lambda_runtime_graph).
|
|
17
|
-
module Source =
|
|
17
|
+
// `include` (not a bare `module Source = …` alias) is deliberate. SideEffectHandler_Callback
|
|
18
|
+
// reads Source.{name,eventSchema,Id} reflectively off this module's compiled export at cold
|
|
19
|
+
// start, but ApiSchemaPush only uses Source at the TYPE level (Source.event, Source.Id.t,
|
|
20
|
+
// Source.fragmentSnapshotEntry) — a bare module alias is dead-shaken by ReScript to
|
|
21
|
+
// `let Source;` (undefined), crashing the handler with "Cannot read properties of undefined
|
|
22
|
+
// (reading 'eventSchema')". `include` materialises the module's runtime values into the export
|
|
23
|
+
// while keeping full type transparency for the pattern match below.
|
|
24
|
+
module Source = {
|
|
25
|
+
include ReventlessCore.ApiFragmentRegistrySpec
|
|
26
|
+
}
|
|
18
27
|
|
|
19
28
|
let moduleUrl: string = %raw(`import.meta.url`)
|
|
20
29
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
+
import * as ApiFragmentRegistrySpec$ReventlessCore from "@reventlessdev/reventless-core/src/admin/ApiFragmentRegistry/ApiFragmentRegistrySpec.res.mjs";
|
|
4
|
+
|
|
5
|
+
let Source = ApiFragmentRegistrySpec$ReventlessCore;
|
|
3
6
|
|
|
4
7
|
let moduleUrl = import.meta.url;
|
|
5
8
|
|
|
@@ -26,8 +29,6 @@ async function execute(_id, _meta, event, _queryEngine) {
|
|
|
26
29
|
return await pushApiSchema(jsSnapshot);
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
let Source;
|
|
30
|
-
|
|
31
32
|
export {
|
|
32
33
|
Source,
|
|
33
34
|
moduleUrl,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Regression guard for the ApiSchemaPush SideEffect "Source erasure" deploy-only bug.
|
|
2
|
+
//
|
|
3
|
+
// SideEffectHandler_Callback.Make reads Source.{name,eventSchema,Id} reflectively off
|
|
4
|
+
// the imported ApiSchemaPush module at Lambda cold start. ApiSchemaPush only uses Source
|
|
5
|
+
// at the TYPE level, so a bare `module Source = …` alias gets dead-shaken by ReScript to
|
|
6
|
+
// `let Source;` (undefined) — crashing the handler with "Cannot read properties of
|
|
7
|
+
// undefined (reading 'eventSchema')" and hanging the deploy waiter. The `include` in
|
|
8
|
+
// ApiSchemaPush.res materialises Source's runtime values. These assertions dereference
|
|
9
|
+
// exactly the fields the runtime reads, so a regression (alias reintroduced) fails here
|
|
10
|
+
// instead of only on a live deploy.
|
|
11
|
+
|
|
12
|
+
open JestGlobals
|
|
13
|
+
|
|
14
|
+
describe("ApiSchemaPush SideEffect Source (runtime materialisation)", () => {
|
|
15
|
+
testSync("Source.name is the registry aggregate name", () => {
|
|
16
|
+
expect(ApiSchemaPush.Source.name)->toBe("ApiFragmentRegistry")
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
testSync("Source.eventSchema is a live schema — extractAllVariantNames succeeds", () => {
|
|
20
|
+
// Mirrors SideEffectHandler_Callback.Make: throws if Source is erased to undefined.
|
|
21
|
+
let tags = Reventless.DcbTag.extractAllVariantNames(ApiSchemaPush.Source.eventSchema)
|
|
22
|
+
expect(tags)->toContain("ApiSchemaComputed")
|
|
23
|
+
})
|
|
24
|
+
})
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as DcbTag$Reventless from "@reventlessdev/reventless-spec/src/components/DcbTag.res.mjs";
|
|
4
|
+
import * as ApiSchemaPush$ReventlessAws from "../src/adapter/Api/ApiSchemaPush.res.mjs";
|
|
5
|
+
|
|
6
|
+
globalThis.describe("ApiSchemaPush SideEffect Source (runtime materialisation)", () => {
|
|
7
|
+
globalThis.test("Source.name is the registry aggregate name", () => {
|
|
8
|
+
globalThis.expect(ApiSchemaPush$ReventlessAws.Source.name).toBe("ApiFragmentRegistry");
|
|
9
|
+
});
|
|
10
|
+
globalThis.test("Source.eventSchema is a live schema — extractAllVariantNames succeeds", () => {
|
|
11
|
+
let tags = DcbTag$Reventless.extractAllVariantNames(ApiSchemaPush$ReventlessAws.Source.eventSchema);
|
|
12
|
+
globalThis.expect(tags).toContain("ApiSchemaComputed");
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
/* Not a pure module */
|