@reventlessdev/reventless-core 3.0.0-alpha.158 → 3.0.0-alpha.160
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,20 @@
|
|
|
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.160 (2026-07-13)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **api:** dual-auth arg-less IAM fields — extractLeadingName dropped the trailing colon ([ea34da2](https://github.com/ReventlessDev/reventless-core/commit/ea34da229164db63988ad035138c17ba9134ac55))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# 3.0.0-alpha.159 (2026-07-12)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **admin:** fix admin-DCB-on-AWS deploy — Output-in-option corruption + orphan resolvers ([edde07d](https://github.com/ReventlessDev/reventless-core/commit/edde07d1d7a89a47a7496d46fbf83fbadffa74a9))
|
|
18
|
+
|
|
19
|
+
|
|
6
20
|
# 3.0.0-alpha.158 (2026-07-12)
|
|
7
21
|
|
|
8
22
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-core",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.160",
|
|
4
4
|
"description": "Core package for Reventless framework",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"sury": "11.0.0-alpha.4",
|
|
30
30
|
"uuid": "^13.0.0",
|
|
31
|
+
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
31
32
|
"@reventlessdev/rescript-effect": "0.1.0-alpha.27",
|
|
32
33
|
"@reventlessdev/rescript-fast-csv": "1.2.0-alpha.12",
|
|
33
|
-
"@reventlessdev/rescript-hash-object": "1.2.0-alpha.11",
|
|
34
|
-
"@reventlessdev/rescript-jest": "1.0.0-alpha.7",
|
|
35
34
|
"@reventlessdev/rescript-node-streams": "1.1.0-alpha.11",
|
|
35
|
+
"@reventlessdev/rescript-hash-object": "1.2.0-alpha.11",
|
|
36
|
+
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
36
37
|
"@reventlessdev/rescript-ssh2": "1.1.0-alpha.12",
|
|
37
38
|
"@reventlessdev/rescript-uuid": "1.1.0-alpha.15",
|
|
38
|
-
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.15",
|
|
39
|
-
"@reventlessdev/reventless-infra": "3.0.0-alpha.98",
|
|
40
39
|
"@reventlessdev/reventless-interop": "3.0.0-alpha.26",
|
|
41
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.76"
|
|
40
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.76",
|
|
41
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.98"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"rescript": "^12.3.0",
|
|
@@ -277,9 +277,22 @@ module Make = (
|
|
|
277
277
|
// Merge DCB StateViewSlice / InboundTranslation QueryDbs into allQueryDbs so the
|
|
278
278
|
// resolver-makers wired below also cover admin DCB slice fields (mirrors the
|
|
279
279
|
// plugin-side merge at Plugin_Builder.res).
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
280
|
+
//
|
|
281
|
+
// BUT skip the StateViewSlice merge on a static-schema-push platform (AWS, where
|
|
282
|
+
// preAdminResolversSchemaHook is Some): there the pushed schema is the static
|
|
283
|
+
// AdminApi.baseFragment, which does NOT declare the auto `<prefix>_<Slice>` query
|
|
284
|
+
// fields — so creating their resolvers would fail CreateResolver with
|
|
285
|
+
// "No field named Admin_<Slice> on type Query". The admin StateView slices are
|
|
286
|
+
// internal registries whose real query surface is served by dedicated Lambda
|
|
287
|
+
// resolvers (Platform_UIFragments / Platform_ApiFragments), so no auto query
|
|
288
|
+
// resolver is wanted on AWS anyway. On the local platform (hook = None) the schema
|
|
289
|
+
// is built FROM these registrations, so they stay coupled and must be merged.
|
|
290
|
+
let staticSchemaPush = Config.hooks.preAdminResolversSchemaHook->Option.isSome
|
|
291
|
+
if !staticSchemaPush {
|
|
292
|
+
dcbResult.stateViewSlicesOutputs
|
|
293
|
+
->Dict.toArray
|
|
294
|
+
->Array.forEach(((k, v)) => allQueryDbs->Dict.set(k, v.queryDb))
|
|
295
|
+
}
|
|
283
296
|
dcbResult.inboundTranslationSlicesOutputs
|
|
284
297
|
->Dict.toArray
|
|
285
298
|
->Array.forEach(((k, v)) => allQueryDbs->Dict.set(k, v.queryDb))
|
|
@@ -131,9 +131,12 @@ function Make(RuntimeEnvironment) {
|
|
|
131
131
|
});
|
|
132
132
|
let readModelsOutputs = Builder_Helpers$ReventlessCore.createReadModels(readModels, api, apiRole, aggregateEventTopics, opts);
|
|
133
133
|
let allQueryDbs = ReadModel$ReventlessCore.allQueryDbs(readModelsOutputs);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
134
|
+
let staticSchemaPush = Stdlib_Option.isSome(Config.hooks.preAdminResolversSchemaHook);
|
|
135
|
+
if (!staticSchemaPush) {
|
|
136
|
+
Object.entries(dcbResult.stateViewSlicesOutputs).forEach(param => {
|
|
137
|
+
allQueryDbs[param[0]] = param[1].queryDb;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
137
140
|
Object.entries(dcbResult.inboundTranslationSlicesOutputs).forEach(param => {
|
|
138
141
|
allQueryDbs[param[0]] = param[1].queryDb;
|
|
139
142
|
});
|
|
@@ -134,7 +134,13 @@ let extractLeadingName = (str: string): string => {
|
|
|
134
134
|
} else {
|
|
135
135
|
trimmed
|
|
136
136
|
}
|
|
137
|
-
// Split on "(" first to remove arg list, then on " " and "
|
|
137
|
+
// Split on "(" first to remove arg list, then on " ", "{", and ":" for the name.
|
|
138
|
+
// The ":" split is load-bearing for ARG-LESS fields: `Foo: [Bar!]!` has no "(" to
|
|
139
|
+
// cleave the type off, and no space before the colon, so without it the name comes
|
|
140
|
+
// back as `Foo:` (trailing colon) and fails exact-match lookups like iamFieldNames
|
|
141
|
+
// — which is what dropped @aws_iam from the arg-less Platform_ApiFragments query and
|
|
142
|
+
// 401'd the deploy waiter. Fields WITH args already lost their type via split("("),
|
|
143
|
+
// so the ":" split is a harmless no-op for them.
|
|
138
144
|
afterType
|
|
139
145
|
->String.split("(")
|
|
140
146
|
->Array.get(0)
|
|
@@ -148,6 +154,10 @@ let extractLeadingName = (str: string): string => {
|
|
|
148
154
|
->Array.get(0)
|
|
149
155
|
->Option.getOr("")
|
|
150
156
|
->String.trim
|
|
157
|
+
->String.split(":")
|
|
158
|
+
->Array.get(0)
|
|
159
|
+
->Option.getOr("")
|
|
160
|
+
->String.trim
|
|
151
161
|
}
|
|
152
162
|
|
|
153
163
|
// Relay base types injected into every stitched schema.
|
|
@@ -121,7 +121,7 @@ function extractLeadingName(str) {
|
|
|
121
121
|
let afterType = trimmed.startsWith("type ") || trimmed.startsWith("enum ") ? trimmed.slice(5, trimmed.length).trim() : (
|
|
122
122
|
trimmed.startsWith("input ") ? trimmed.slice(6, trimmed.length).trim() : trimmed
|
|
123
123
|
);
|
|
124
|
-
return Stdlib_Option.getOr(Stdlib_Option.getOr(Stdlib_Option.getOr(afterType.split("(")[0], "").trim().split(" ")[0], "").trim().split("{")[0], "").trim();
|
|
124
|
+
return Stdlib_Option.getOr(Stdlib_Option.getOr(Stdlib_Option.getOr(Stdlib_Option.getOr(afterType.split("(")[0], "").trim().split(" ")[0], "").trim().split("{")[0], "").trim().split(":")[0], "").trim();
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
let relayBaseTypes = [
|