@reventlessdev/reventless-spec 3.0.0-alpha.82 → 3.0.0-alpha.83

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,13 @@
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.83 (2026-07-28)
7
+
8
+ ### Features
9
+
10
+ * **platform:** provision object stores from the fields that declare them ([b5e2a1e](https://github.com/ReventlessDev/reventless-core/commit/b5e2a1ec88099941c113e4963f9c4b346b96b0d6))
11
+
12
+
6
13
  # 3.0.0-alpha.82 (2026-07-28)
7
14
 
8
15
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-spec",
3
- "version": "3.0.0-alpha.82",
3
+ "version": "3.0.0-alpha.83",
4
4
  "description": "Specifications for Reventless",
5
5
  "license": "Apache-2.0",
6
6
  "bin": {
@@ -374,6 +374,21 @@ type pluginStructure = {
374
374
  // read as []). js_nullable keeps it JSON-safe inside union variant payloads.
375
375
  extensionPoints: @s.matches(extensionPointDefArrayOptionSchema)
376
376
  option<array<extensionPointDef>>,
377
+ /**
378
+ The object stores this plugin's fields declare they need, deduplicated and
379
+ fully qualified as `{plugin}.{store}`.
380
+
381
+ A field typed as a storage ref states a *requirement*: the deployment needs
382
+ that store to exist. Collecting the requirement here is what lets it be read
383
+ without re-walking every component's schema — the same reason
384
+ `producedEventTypes` is carried rather than recomputed.
385
+
386
+ Qualified even for the common same-plugin case, so one entry has one shape
387
+ and the string is directly the store's identity. Optional and js_nullable for
388
+ the same reason as `extensionPoints`: definitions persisted before this field
389
+ existed still decode (absent → None, read as []).
390
+ */
391
+ requiredStores: @s.matches(stringArrayOptionSchema) option<array<string>>,
377
392
  }
378
393
 
379
394
  let pluginStructureOptionSchema = _jsNullable(pluginStructureSchema, ())
@@ -186,7 +186,8 @@ let pluginStructureSchema = S.schema(s => ({
186
186
  outboundTranslationSlices: s.m(S.array(outboundTranslationSliceDefSchema)),
187
187
  inboundTranslationSlices: s.m(S.array(inboundTranslationSliceDefSchema)),
188
188
  extensions: s.m(S.array(extensionDefSchema)),
189
- extensionPoints: s.m(extensionPointDefArrayOptionSchema)
189
+ extensionPoints: s.m(extensionPointDefArrayOptionSchema),
190
+ requiredStores: s.m(stringArrayOptionSchema)
190
191
  }));
191
192
 
192
193
  let pluginStructureOptionSchema = SuryResMjs.js_nullable(pluginStructureSchema);