@reventlessdev/reventless-core 3.0.0-alpha.238 → 3.0.0-alpha.240
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 +40 -0
- package/package.json +12 -12
- package/src/Message.res +11 -11
- package/src/Message.res.mjs +15 -14
- package/src/Projection.res +2 -2
- package/src/Projection.res.mjs +5 -4
- package/src/adapter/Monitoring/Monitoring.res +24 -2
- package/src/adapter/Monitoring/Monitoring.res.mjs +3 -3
- package/src/admin/Platform_AdminApi.res.mjs +3 -3
- package/src/admin/Platform_Admin_Structure.res +33 -112
- package/src/admin/Platform_Admin_Structure.res.mjs +8 -138
- package/src/admin/Platform_ComponentDefinitionsApi.res +2 -1
- package/src/admin/Platform_ComponentDefinitionsApi.res.mjs +5 -1
- package/src/admin/UiFragmentRegistry/StateChangeSlice/UiFragmentRegistry.res.mjs +12 -12
- package/src/admin/UiFragmentRegistry/StateViewSlice/UiFragments.res.mjs +14 -14
- package/src/components/Aggregate/Aggregate_Callback.res +2 -2
- package/src/components/Aggregate/Aggregate_Callback.res.mjs +4 -4
- package/src/components/Api/ApiAllowedStatesHelpers.res.mjs +3 -3
- package/src/components/Api/ApiNoApiHelpers.res.mjs +5 -5
- package/src/components/Api/ApiTargetStateHelpers.res.mjs +3 -3
- package/src/components/Api/GraphQL_FragmentGenerator.res +140 -24
- package/src/components/Api/GraphQL_FragmentGenerator.res.mjs +48 -21
- package/src/components/Api/GraphQL_SchemaInspector.res +1 -1
- package/src/components/Api/GraphQL_SchemaInspector.res.mjs +1 -1
- package/src/components/Api/MCP_SchemaGenerator.res +1 -1
- package/src/components/Api/MCP_SchemaGenerator.res.mjs +1 -1
- package/src/components/Api/SchemaType.res +6 -10
- package/src/components/Api/SchemaType.res.mjs +4 -4
- package/src/components/Api/StorageRefFields.res +1 -1
- package/src/components/Api/StorageRefFields.res.mjs +1 -1
- package/src/components/Api/SuryToJsonSchema.res +19 -0
- package/src/components/Api/SuryToJsonSchema.res.mjs +10 -5
- package/src/components/AutomationSlice/AutomationSlice_Callback.res +3 -4
- package/src/components/AutomationSlice/AutomationSlice_Callback.res.mjs +22 -23
- package/src/components/CommandTopic/CommandTopic_Callback.res +1 -2
- package/src/components/CommandTopic/CommandTopic_Callback.res.mjs +3 -4
- package/src/components/CommandTopic/CommandTopic_Helpers.res +1 -1
- package/src/components/CommandTopic/CommandTopic_Helpers.res.mjs +3 -3
- package/src/components/Counter/Counter.res.mjs +2 -2
- package/src/components/Counter/Counter_Callback.res.mjs +4 -4
- package/src/components/Counter/Counter_Operations.res.mjs +4 -4
- package/src/components/Dcb/Dcb_Builder.res +1 -1
- package/src/components/Dcb/Dcb_Builder.res.mjs +8 -6
- package/src/components/DcbEventLog/DcbEventLog_Builder.res.mjs +4 -3
- package/src/components/EventCollector/EventCollector_Builder.res +1 -1
- package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res +1 -2
- package/src/components/InboundTranslationSlice/InboundTranslationSlice_Callback.res.mjs +11 -12
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Callback.res +3 -4
- package/src/components/OutboundTranslationSlice/OutboundTranslationSlice_Callback.res.mjs +24 -25
- package/src/components/SideEffectHandler/SideEffectHandler_Callback.res +1 -1
- package/src/components/SideEffectHandler/SideEffectHandler_Callback.res.mjs +3 -3
- package/src/components/StateChangeSlice/StateChangeSlice_Callback.res +2 -2
- package/src/components/StateChangeSlice/StateChangeSlice_Callback.res.mjs +4 -4
- package/src/components/StateViewSlice/StateViewSlice_Builder.res +1 -1
- package/src/components/StateViewSlice/StateViewSlice_Builder.res.mjs +3 -3
- package/src/plugin/api/PluginBaseFragment.res +12 -29
- package/src/plugin/api/PluginBaseFragment.res.mjs +3 -22
- package/src/plugin/component/Capability_Inference.res +118 -1
- package/src/plugin/component/Capability_Inference.res.mjs +128 -1
- package/src/plugin/component/Plugin_Builder.res +9 -2
- package/src/plugin/component/Plugin_Builder.res.mjs +5 -2
- package/src/plugin/component/Plugin_Helpers.res +11 -11
- package/src/plugin/component/Plugin_Helpers.res.mjs +11 -10
- package/src/plugin/component/Plugin_Structure.res +458 -296
- package/src/plugin/component/Plugin_Structure.res.mjs +259 -182
- package/src/plugin/component/Plugin_SubscriptionSchema.res +1 -1
- package/src/plugin/component/Plugin_SubscriptionSchema.res.mjs +1 -1
- package/src/plugin/component/SchemaWalker.res +11 -11
- package/src/plugin/component/SchemaWalker.res.mjs +8 -9
- package/src/plugin/connect/PluginExtensionPoint_Plugin.res.mjs +15 -15
- package/src/plugin/lifecycle/PluginBehavior.res.mjs +55 -55
- package/src/plugin/lifecycle/PluginSpec.res +22 -7
- package/src/plugin/lifecycle/PluginSpec.res.mjs +91 -36
- package/src/plugin/lifecycle/PluginsReadModelSpec.res +36 -9
- package/src/plugin/lifecycle/PluginsReadModelSpec.res.mjs +33 -22
- package/src/util/Interstack.res +3 -3
- package/src/util/LogFormat.res +1 -2
- package/src/util/LogFormat.res.mjs +2 -2
- package/tests/IdentityTest.res +6 -7
- package/tests/IdentityTest.res.mjs +7 -9
- package/tests/adapter/MonitoringTest.res +30 -3
- package/tests/adapter/MonitoringTest.res.mjs +31 -12
- package/tests/adapter/RuntimeExtensionHookReachTest.res +0 -1
- package/tests/adapter/RuntimeExtensionHookReachTest.res.mjs +5 -7
- package/tests/admin/Platform_Admin_StructureTest.res +254 -0
- package/tests/admin/Platform_Admin_StructureTest.res.mjs +219 -0
- package/tests/admin/Platform_BakedManifestTest.res +1 -0
- package/tests/admin/Platform_BakedManifestTest.res.mjs +1 -0
- package/tests/admin/Platform_ComponentDefinitionsApiTest.res +3 -0
- package/tests/admin/Platform_ComponentDefinitionsApiTest.res.mjs +6 -0
- package/tests/admin/Platform_PluginStructuresApiTest.res +1 -0
- package/tests/admin/Platform_PluginStructuresApiTest.res.mjs +2 -0
- package/tests/aggregate/AggregateCacheTest.res +0 -1
- package/tests/aggregate/AggregateCacheTest.res.mjs +13 -15
- package/tests/aggregate/AggregateConflictTest.res +0 -1
- package/tests/aggregate/AggregateConflictTest.res.mjs +7 -9
- package/tests/aggregate/AggregateFixtures.res +0 -1
- package/tests/aggregate/AggregateFixtures.res.mjs +19 -21
- package/tests/aggregate/AggregateSnapshotTest.res +1 -2
- package/tests/aggregate/AggregateSnapshotTest.res.mjs +15 -16
- package/tests/api/ApiNoApiTest.res.mjs +17 -9
- package/tests/api/GraphQL_FragmentGeneratorTest.res +232 -0
- package/tests/api/GraphQL_FragmentGeneratorTest.res.mjs +207 -55
- package/tests/api/PsInternalFieldsReadModel.res +21 -0
- package/tests/api/PsInternalFieldsReadModel.res.mjs +74 -0
- package/tests/api/StorageRefFieldsTest.res.mjs +13 -13
- package/tests/api/SuryToJsonSchemaTest.res +73 -3
- package/tests/api/SuryToJsonSchemaTest.res.mjs +364 -816
- package/tests/commandgenerator/CommandGeneratorFixtures.res +0 -1
- package/tests/commandgenerator/CommandGeneratorFixtures.res.mjs +19 -21
- package/tests/commandgenerator/OwnerStampingTest.res +0 -1
- package/tests/commandgenerator/OwnerStampingTest.res.mjs +9 -11
- package/tests/commandtopic/CommandTopicCallbackFixtures.res +0 -1
- package/tests/commandtopic/CommandTopicCallbackFixtures.res.mjs +7 -9
- package/tests/counter/CounterFixtures.res +0 -1
- package/tests/counter/CounterFixtures.res.mjs +1 -4
- package/tests/dcb/DcbDecodeTest.res.mjs +24 -24
- package/tests/dcb/DcbEventLogOperationsTest.res +2 -2
- package/tests/dcb/DcbEventLogOperationsTest.res.mjs +3 -3
- package/tests/dcb/DcbEventLogSchemaTest.res.mjs +7 -7
- package/tests/dcb/DcbFixtures.res +0 -1
- package/tests/dcb/DcbFixtures.res.mjs +87 -89
- package/tests/dcb/DcbTagTest.res.mjs +6 -6
- package/tests/dcb/DcbValidationTest.res.mjs +52 -52
- package/tests/eventlog/EventLogFixtures.res +0 -1
- package/tests/eventlog/EventLogFixtures.res.mjs +7 -9
- package/tests/eventmapper/EventMapperFixtures.res +0 -1
- package/tests/eventmapper/EventMapperFixtures.res.mjs +24 -26
- package/tests/eventtopic/EventTopicFixtures.res +0 -1
- package/tests/eventtopic/EventTopicFixtures.res.mjs +7 -9
- package/tests/extensionpoint/ExtensionPointFixtures.res +0 -1
- package/tests/extensionpoint/ExtensionPointFixtures.res.mjs +10 -12
- package/tests/extensionpoint/ExtensionPointOperationsTest.res +1 -2
- package/tests/extensionpoint/ExtensionPointOperationsTest.res.mjs +9 -10
- package/tests/logger/LogFormatTest.res +3 -2
- package/tests/logger/LogFormatTest.res.mjs +7 -9
- package/tests/message/MessageTest.res +2 -2
- package/tests/message/MessageTest.res.mjs +8 -7
- package/tests/message/MetaEnvelopeTest.res +5 -5
- package/tests/message/MetaEnvelopeTest.res.mjs +12 -11
- package/tests/plugin/ManifestVisibilityTest.res.mjs +7 -7
- package/tests/plugin/PluginDefinitionScalars.res +5 -3
- package/tests/plugin/PluginDefinitionScalars.res.mjs +2 -2
- package/tests/plugin/PluginLifecycleCorpusTest.res +4 -3
- package/tests/plugin/PluginLifecycleCorpusTest.res.mjs +3 -6
- package/tests/plugin/PluginSpecExperiment.res +0 -1
- package/tests/plugin/PluginSpecExperiment.res.mjs +12 -14
- package/tests/plugin/PluginStructureTest.res +292 -2
- package/tests/plugin/PluginStructureTest.res.mjs +391 -88
- package/tests/plugin/Plugin_EventQuerySchemaTest.res.mjs +3 -3
- package/tests/plugin/SchemaWalkerTest.res +0 -1
- package/tests/plugin/SchemaWalkerTest.res.mjs +17 -19
- package/tests/plugin/StateChangeSlice/PsAttachInvoice.res.mjs +5 -5
- package/tests/plugin/StateChangeSlice/PsChangePhoto.res.mjs +8 -8
- package/tests/plugin/StateChangeSlice/PsDispatchShipment.res.mjs +5 -5
- package/tests/plugin/StateChangeSlice/PsGatedCommands.res.mjs +9 -9
- package/tests/plugin/StateChangeSlice/PsPlaceOrder.res.mjs +5 -5
- package/tests/plugin/StateChangeSlice/PsReserveStock.res.mjs +8 -8
- package/tests/plugin/StateChangeSlice/PsShipOrder.res.mjs +15 -15
- package/tests/plugin/StateChangeSlice/PsTypoStore.res +31 -0
- package/tests/plugin/StateChangeSlice/PsTypoStore.res.mjs +62 -0
- package/tests/plugin/StateChangeSlice/PsUploadAvatar.res.mjs +8 -8
- package/tests/plugin/StateChangeSlice/PsUploadImages.res +40 -0
- package/tests/plugin/StateChangeSlice/PsUploadImages.res.mjs +66 -0
- package/tests/plugin/StateViewSlice/PsAnnotatedView.res.mjs +13 -12
- package/tests/plugin/StateViewSlice/PsAvailableProductsView.res.mjs +8 -8
- package/tests/plugin/StateViewSlice/PsCategoriesView.res.mjs +6 -6
- package/tests/plugin/StateViewSlice/PsCustomersView.res.mjs +10 -10
- package/tests/plugin/StateViewSlice/PsGatedView.res.mjs +6 -6
- package/tests/plugin/StateViewSlice/PsOrdersView.res.mjs +9 -9
- package/tests/plugin/StateViewSlice/PsShipmentsView.res.mjs +11 -10
- package/tests/plugin/pluginDefinitionRequiredScalars.txt +15 -0
- package/tests/querydb/QueryDbFixtures.res +0 -1
- package/tests/querydb/QueryDbFixtures.res.mjs +5 -7
- package/tests/sideeffecthandler/SideEffectHandlerFixtures.res +0 -1
- package/tests/sideeffecthandler/SideEffectHandlerFixtures.res.mjs +4 -6
- package/tests/util/CommandPublisherTest.res +0 -1
- package/tests/util/CommandPublisherTest.res.mjs +4 -6
|
@@ -256,6 +256,49 @@ describe("SuryToJsonSchema:", () => {
|
|
|
256
256
|
))->toEqual((Some(true), None))
|
|
257
257
|
})
|
|
258
258
|
|
|
259
|
+
// `@internal` drops the property rather than marking it. A marker is the
|
|
260
|
+
// right answer for a field that is on the surface and merely unwanted — that
|
|
261
|
+
// is `@hidden`, above. This one is not on the surface at all, so an entry
|
|
262
|
+
// here would describe a field the SDL does not declare, which is the
|
|
263
|
+
// mismatch that makes a generated list query name fields the server rejects.
|
|
264
|
+
testSync("drops a field listed in internal rather than annotating it", () => {
|
|
265
|
+
let schema = S.schema(s =>
|
|
266
|
+
{
|
|
267
|
+
"id": s.matches(S.string),
|
|
268
|
+
"eventCollector": s.matches(S.string),
|
|
269
|
+
}
|
|
270
|
+
)->S.castToUnknown
|
|
271
|
+
let schema' = schema->withSpec({...emptySpec, internal: ["eventCollector"]})
|
|
272
|
+
let json = SuryToJsonSchema.deriveObjectSchema(schema')
|
|
273
|
+
expect((
|
|
274
|
+
getPropertyOf(json, "eventCollector")->Option.isNone,
|
|
275
|
+
getPropertyOf(json, "id")->Option.isSome,
|
|
276
|
+
))->toEqual((true, true))
|
|
277
|
+
})
|
|
278
|
+
|
|
279
|
+
// A dropped property must not be left behind in `required`, or a consumer
|
|
280
|
+
// building a form from the schema asks for a field it was never given.
|
|
281
|
+
testSync("keeps a dropped field out of required", () => {
|
|
282
|
+
let schema = S.schema(s =>
|
|
283
|
+
{
|
|
284
|
+
"id": s.matches(S.string),
|
|
285
|
+
"eventCollector": s.matches(S.string),
|
|
286
|
+
}
|
|
287
|
+
)->S.castToUnknown
|
|
288
|
+
let json =
|
|
289
|
+
schema
|
|
290
|
+
->withSpec({...emptySpec, internal: ["eventCollector"]})
|
|
291
|
+
->SuryToJsonSchema.deriveObjectSchema
|
|
292
|
+
expect(
|
|
293
|
+
json
|
|
294
|
+
->JSON.Decode.object
|
|
295
|
+
->Option.flatMap(o => o->Dict.get("required"))
|
|
296
|
+
->Option.flatMap(JSON.Decode.array)
|
|
297
|
+
->Option.getOr([])
|
|
298
|
+
->Array.filterMap(JSON.Decode.string),
|
|
299
|
+
)->toEqual(["id"])
|
|
300
|
+
})
|
|
301
|
+
|
|
259
302
|
testSync("emits x-reventless-summary on field listed in summary", () => {
|
|
260
303
|
let schema = S.schema(s =>
|
|
261
304
|
{
|
|
@@ -431,7 +474,7 @@ describe("SuryToJsonSchema:", () => {
|
|
|
431
474
|
let schema' =
|
|
432
475
|
schema->withSpec({
|
|
433
476
|
...emptySpec,
|
|
434
|
-
retired: Some({field: "archived", label: "Archived", showWhenFalse: true, values: None}),
|
|
477
|
+
retired: Some({field: "archived", label: "Archived", showWhenFalse: true, values: None, namedWhenRetired: false}),
|
|
435
478
|
})
|
|
436
479
|
let json = SuryToJsonSchema.deriveObjectSchema(schema')
|
|
437
480
|
let retiredObj =
|
|
@@ -464,6 +507,7 @@ describe("SuryToJsonSchema:", () => {
|
|
|
464
507
|
label: "",
|
|
465
508
|
showWhenFalse: false,
|
|
466
509
|
values: Some(values),
|
|
510
|
+
namedWhenRetired: false,
|
|
467
511
|
}),
|
|
468
512
|
})
|
|
469
513
|
->SuryToJsonSchema.deriveObjectSchema
|
|
@@ -522,7 +566,7 @@ describe("SuryToJsonSchema:", () => {
|
|
|
522
566
|
let schema' =
|
|
523
567
|
schema->withSpec({
|
|
524
568
|
...emptySpec,
|
|
525
|
-
retired: Some({field: "archived", label: "", showWhenFalse: false, values: None}),
|
|
569
|
+
retired: Some({field: "archived", label: "", showWhenFalse: false, values: None, namedWhenRetired: false}),
|
|
526
570
|
})
|
|
527
571
|
let json = SuryToJsonSchema.deriveObjectSchema(schema')
|
|
528
572
|
let retiredObj = json->retiredOn("archived")
|
|
@@ -532,12 +576,38 @@ describe("SuryToJsonSchema:", () => {
|
|
|
532
576
|
))->toEqual((None, None))
|
|
533
577
|
})
|
|
534
578
|
|
|
579
|
+
// The opt-in that lets a reference name a withheld row. Travels only when
|
|
580
|
+
// true, on the omit-the-default rule the keys around it follow: false is what
|
|
581
|
+
// every record said before it existed, and writing it would put a key on
|
|
582
|
+
// every retirement to report that nothing changed.
|
|
583
|
+
testSync("carries namedWhenRetired only when the record opted in", () => {
|
|
584
|
+
let build = (~named: bool) => {
|
|
585
|
+
let schema = S.schema(s => {"archived": s.matches(S.bool)})->S.castToUnknown
|
|
586
|
+
schema
|
|
587
|
+
->withSpec({
|
|
588
|
+
...emptySpec,
|
|
589
|
+
retired: Some({
|
|
590
|
+
field: "archived",
|
|
591
|
+
label: "",
|
|
592
|
+
showWhenFalse: false,
|
|
593
|
+
values: None,
|
|
594
|
+
namedWhenRetired: named,
|
|
595
|
+
}),
|
|
596
|
+
})
|
|
597
|
+
->SuryToJsonSchema.deriveObjectSchema
|
|
598
|
+
->retiredOn("archived")
|
|
599
|
+
->Option.flatMap(r => getProperty(r, "namedWhenRetired"))
|
|
600
|
+
->Option.flatMap(JSON.Decode.bool)
|
|
601
|
+
}
|
|
602
|
+
expect((build(~named=true), build(~named=false)))->toEqual((Some(true), None))
|
|
603
|
+
})
|
|
604
|
+
|
|
535
605
|
testSync("omits the retired label when empty but always states showWhenFalse", () => {
|
|
536
606
|
let schema = S.schema(s => {"deactivated": s.matches(S.bool)})->S.castToUnknown
|
|
537
607
|
let schema' =
|
|
538
608
|
schema->withSpec({
|
|
539
609
|
...emptySpec,
|
|
540
|
-
retired: Some({field: "deactivated", label: "", showWhenFalse: false, values: None}),
|
|
610
|
+
retired: Some({field: "deactivated", label: "", showWhenFalse: false, values: None, namedWhenRetired: false}),
|
|
541
611
|
})
|
|
542
612
|
let json = SuryToJsonSchema.deriveObjectSchema(schema')
|
|
543
613
|
let retiredObj =
|