@reventlessdev/reventless-infra 3.0.0-alpha.204 → 3.0.0-alpha.206

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,29 @@
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.206 (2026-10-25)
7
+
8
+ **Note:** Version bump only for package @reventlessdev/reventless-infra
9
+
10
+
11
+
12
+
13
+
14
+ # 3.0.0-alpha.205 (2026-10-25)
15
+
16
+ * refactor(aws)!: deploy and runtime configuration a function may lack are optional fields ([de80a54](https://github.com/ReventlessDev/reventless-core/commit/de80a546501a97b39cbe71200120f062bb260da4))
17
+ ### Features
18
+
19
+ * a plugin declares per role how a person is admitted, and the local platform honors the self-service and provisioned halves ([9c37bf5](https://github.com/ReventlessDev/reventless-core/commit/9c37bf50f15cac1703bf2c351713518121a56211))
20
+ * a stash capability holds a value for minutes outside the log and hands it over once ([627f285](https://github.com/ReventlessDev/reventless-core/commit/627f28529ead2d2d31bdd091c9f42e7faca40f6f))
21
+
22
+ ### BREAKING CHANGES
23
+
24
+ * code that builds these records drops `name: None` and
25
+ writes `name: x` for `name: Some(x)`.
26
+
27
+
28
+
6
29
  # 3.0.0-alpha.204 (2026-10-23)
7
30
 
8
31
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-infra",
3
- "version": "3.0.0-alpha.204",
3
+ "version": "3.0.0-alpha.206",
4
4
  "description": "Infrastructure types for Reventless framework",
5
5
  "license": "Apache-2.0",
6
6
  "jest": {
@@ -17,9 +17,9 @@
17
17
  "sury-ppx": "11.0.0",
18
18
  "uuid": "^13.0.0",
19
19
  "@reventlessdev/rescript-effect": "1.0.0-alpha.1",
20
- "@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0",
21
20
  "@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
22
- "@reventlessdev/reventless-spec": "3.0.0-alpha.175"
21
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.177",
22
+ "@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "rescript": "12.3.1",
@@ -97,5 +97,7 @@ module type T = {
97
97
  ~componentChapters: dict<string>=?,
98
98
  ~lifecycleModel: array<Reventless.Plugin.derivedEdge>=?,
99
99
  ~identities: array<string>=?,
100
+ ~admission: Reventless.Admission.t=?,
101
+ ~admissionDoors: array<(string, Reventless.Admission.door)>=?,
100
102
  ) => Reventless.Plugin.pluginStructure
101
103
  }
@@ -110,6 +110,7 @@ type capability =
110
110
  | Geocoding
111
111
  | Messaging
112
112
  | IdentityProvider
113
+ | Stash
113
114
 
114
115
  // A provisioned geocoding place index, as returned by the framework's geocoding
115
116
  // capability helper. A record rather than a bare name so the handle can grow
@@ -11,12 +11,12 @@ not a literal cap — each platform adapter maps it to its own resource model
11
11
  See docs/plans/configurable-component-runtime-resources.md.
12
12
  */
13
13
  type t = {
14
- memorySize: option<int>,
15
- timeout: option<int>,
14
+ memorySize?: int,
15
+ timeout?: int,
16
16
  }
17
17
 
18
18
  /** No hints — every field falls through to the per-kind builder default. */
19
- let empty: t = {memorySize: None, timeout: None}
19
+ let empty: t = {}
20
20
 
21
21
  /**
22
22
  Resolve a component's memory floor: the per-component override raises the
@@ -25,7 +25,7 @@ the default unchanged.
25
25
  */
26
26
  let resolveMemory = (hints: option<t>, ~default: int): int =>
27
27
  switch hints {
28
- | Some({memorySize: Some(m)}) => Math.Int.max(default, m)
28
+ | Some({memorySize: ?Some(m)}) => Math.Int.max(default, m)
29
29
  | _ => default
30
30
  }
31
31
 
@@ -36,6 +36,6 @@ override yields the default unchanged.
36
36
  */
37
37
  let resolveTimeout = (hints: option<t>, ~default: int): int =>
38
38
  switch hints {
39
- | Some({timeout: Some(t)}) => t
39
+ | Some({timeout: ?Some(t)}) => t
40
40
  | _ => default
41
41
  }
@@ -25,10 +25,7 @@ function resolveTimeout(hints, $$default) {
25
25
  }
26
26
  }
27
27
 
28
- let empty = {
29
- memorySize: undefined,
30
- timeout: undefined
31
- };
28
+ let empty = {};
32
29
 
33
30
  export {
34
31
  empty,
@@ -12,23 +12,19 @@ describe("RuntimeHints.resolveMemory", () => {
12
12
  expect(RH.resolveMemory(None, ~default=1024))->toBe(1024)
13
13
  })
14
14
  testSync("an override above the default wins", () => {
15
- expect(RH.resolveMemory(Some({memorySize: Some(2048), timeout: None}), ~default=1024))->toBe(
16
- 2048,
17
- )
15
+ expect(RH.resolveMemory(Some({memorySize: 2048}), ~default=1024))->toBe(2048)
18
16
  })
19
17
  testSync("an override below the default is clamped up to the floor", () => {
20
- expect(RH.resolveMemory(Some({memorySize: Some(256), timeout: None}), ~default=1024))->toBe(
21
- 1024,
22
- )
18
+ expect(RH.resolveMemory(Some({memorySize: 256}), ~default=1024))->toBe(1024)
23
19
  })
24
20
  testSync("an absent memorySize field falls through to the default", () => {
25
- expect(RH.resolveMemory(Some({memorySize: None, timeout: Some(60)}), ~default=1024))->toBe(1024)
21
+ expect(RH.resolveMemory(Some({timeout: 60}), ~default=1024))->toBe(1024)
26
22
  })
27
23
  })
28
24
 
29
25
  describe("RuntimeHints.resolveTimeout", () => {
30
26
  testSync("an explicit timeout replaces the default (no max)", () => {
31
- expect(RH.resolveTimeout(Some({memorySize: None, timeout: Some(15)}), ~default=30))->toBe(15)
27
+ expect(RH.resolveTimeout(Some({timeout: 15}), ~default=30))->toBe(15)
32
28
  })
33
29
  testSync("no hint falls through to the default", () => {
34
30
  expect(RH.resolveTimeout(None, ~default=30))->toBe(30)