@reventlessdev/reventless-spec 3.0.0-alpha.117 → 3.0.0-alpha.119
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 +26 -0
- package/package.json +3 -3
- package/src/components/CapabilityManifest.res +1 -1
- package/src/components/CapabilityManifest.res.mjs +13 -12
- package/src/components/DcbDecode.res +8 -8
- package/src/components/DcbDecode.res.mjs +9 -8
- package/src/components/DcbTag.res +43 -42
- package/src/components/DcbTag.res.mjs +90 -87
- package/src/components/DcbValidation.res +6 -6
- package/src/components/DcbValidation.res.mjs +6 -6
- package/src/components/DisplayName.res.mjs +3 -3
- package/src/components/Owner.res +1 -1
- package/src/components/Owner.res.mjs +7 -7
- package/src/components/Plugin.res +8 -11
- package/src/components/Plugin.res.mjs +133 -134
- package/src/components/Reference.res.mjs +5 -5
- package/src/components/StateAnnotations.res +23 -0
- package/src/components/StateAnnotations.res.mjs +3 -3
- package/src/components/TaggedUnion.res +238 -0
- package/src/components/TaggedUnion.res.mjs +193 -0
- package/src/generator/PlatformCodegen.res +17 -14
- package/src/generator/PlatformCodegen.res.mjs +1 -1
- package/src/generator/PlatformGenerator.res +1 -1
- package/src/semantic/Bytes.res.mjs +2 -2
- package/src/semantic/Color.res.mjs +2 -2
- package/src/semantic/Currency.res.mjs +167 -167
- package/src/semantic/DateRange.res.mjs +2 -2
- package/src/semantic/Duration.res.mjs +2 -2
- package/src/semantic/Email.res +2 -2
- package/src/semantic/Email.res.mjs +3 -2
- package/src/semantic/FileRef.res +28 -0
- package/src/semantic/FileRef.res.mjs +17 -0
- package/src/semantic/GeoPoint.res +14 -10
- package/src/semantic/GeoPoint.res.mjs +10 -17
- package/src/semantic/ImageRef.res +51 -0
- package/src/semantic/ImageRef.res.mjs +17 -0
- package/src/semantic/Media_Ref.res +33 -0
- package/src/semantic/Media_Ref.res.mjs +37 -0
- package/src/semantic/Money.res +7 -5
- package/src/semantic/Money.res.mjs +6 -9
- package/src/semantic/Offload.res +29 -43
- package/src/semantic/Offload.res.mjs +18 -49
- package/src/semantic/Percent.res.mjs +2 -2
- package/src/semantic/Phone.res.mjs +2 -2
- package/src/semantic/Semantic.res +24 -6
- package/src/semantic/Semantic.res.mjs +13 -12
- package/src/semantic/StorageRef.res +33 -19
- package/src/semantic/StorageRef.res.mjs +14 -14
- package/src/semantic/UploadableFile.res +30 -0
- package/src/semantic/UploadableFile.res.mjs +23 -0
- package/src/semantic/UploadableImage.res +56 -0
- package/src/semantic/UploadableImage.res.mjs +23 -0
- package/src/semantic/Url.res +8 -2
- package/src/semantic/Url.res.mjs +3 -2
- package/src/types/Authorization.res.mjs +7 -7
- package/src/types/DateTime.res.mjs +2 -2
- package/src/types/Id.res.mjs +6 -4
- package/src/types/Identity.res +0 -1
- package/src/types/Identity.res.mjs +12 -14
- package/src/types/Message.res +29 -10
- package/src/types/Message.res.mjs +56 -37
- package/src/types/ReadConsistency.res.mjs +5 -5
- package/src/types/Schedule.res.mjs +37 -37
- package/src/types/StoredEvent.res +2 -2
- package/src/types/StoredEvent.res.mjs +11 -10
- package/src/types/Visibility.res.mjs +4 -4
- package/src/util/Util_Sury.res +32 -0
- package/src/util/Util_Sury.res.mjs +39 -0
|
@@ -105,13 +105,12 @@ type apiTarget = Domain | Platform
|
|
|
105
105
|
// Sury's nullableAsOption creates T | undefined | null which fails jsonableValidation
|
|
106
106
|
// inside union variant payloads. js_nullable creates T | null (no undefined) which is
|
|
107
107
|
// JSON-safe and passes jsonableValidation in all contexts.
|
|
108
|
-
@module("sury/src/Sury.res.mjs") external _jsNullable: (S.t<'a>, unit) => S.t<option<'a>> = "js_nullable"
|
|
109
108
|
let apiSchemaFragmentOffloadSchema = Offload.optionSchema(~store="pluginApiFragments", apiSchemaFragmentSchema)
|
|
110
|
-
let dcbEventLogOptionSchema =
|
|
109
|
+
let dcbEventLogOptionSchema = dcbEventLogDefinitionSchema->S.nullAsOption
|
|
111
110
|
// js_nullable creates T | null which passes sury's jsonableValidation inside union variant payloads.
|
|
112
|
-
let stringOptionSchema =
|
|
113
|
-
let stringArrayOptionSchema =
|
|
114
|
-
let boolOptionSchema =
|
|
111
|
+
let stringOptionSchema = S.string->S.nullAsOption
|
|
112
|
+
let stringArrayOptionSchema = S.array(S.string)->S.nullAsOption
|
|
113
|
+
let boolOptionSchema = S.bool->S.nullAsOption
|
|
115
114
|
|
|
116
115
|
// ── UI fragment manifest types ────────────────────────────────────────────────
|
|
117
116
|
|
|
@@ -147,7 +146,7 @@ type uiFragmentManifest = {
|
|
|
147
146
|
pages: array<pageManifestEntry>,
|
|
148
147
|
}
|
|
149
148
|
|
|
150
|
-
let uiFragmentManifestOptionSchema =
|
|
149
|
+
let uiFragmentManifestOptionSchema = uiFragmentManifestSchema->S.nullAsOption
|
|
151
150
|
|
|
152
151
|
// ── Plugin structure types (component metadata for Auto UI and event graph) ──
|
|
153
152
|
|
|
@@ -566,7 +565,7 @@ type extensionPointDef = {
|
|
|
566
565
|
|
|
567
566
|
// js_nullable creates `array | null` (not `| undefined`), which passes sury's
|
|
568
567
|
// jsonableValidation inside the pluginStructure union variant payload.
|
|
569
|
-
let extensionPointDefArrayOptionSchema =
|
|
568
|
+
let extensionPointDefArrayOptionSchema = S.array(extensionPointDefSchema)->S.nullAsOption
|
|
570
569
|
|
|
571
570
|
/**
|
|
572
571
|
One field's store requirement, with its provenance.
|
|
@@ -604,10 +603,8 @@ type requiredStoreDeclaration = {
|
|
|
604
603
|
annotation: @s.matches(stringOptionSchema) option<string>,
|
|
605
604
|
}
|
|
606
605
|
|
|
607
|
-
let requiredStoreDeclarationArrayOptionSchema =
|
|
608
|
-
S.array(requiredStoreDeclarationSchema)
|
|
609
|
-
(),
|
|
610
|
-
)
|
|
606
|
+
let requiredStoreDeclarationArrayOptionSchema =
|
|
607
|
+
S.array(requiredStoreDeclarationSchema)->S.nullAsOption
|
|
611
608
|
|
|
612
609
|
/**
|
|
613
610
|
Adding a field here? It has to be a shape a stale event can be healed into.
|
|
@@ -1,107 +1,110 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Offload$Reventless from "../semantic/Offload.res.mjs";
|
|
5
|
-
import * as SuryResMjs from "sury/src/Sury.res.mjs";
|
|
6
5
|
|
|
7
|
-
let
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
let nameSchema = Sury.string;
|
|
7
|
+
|
|
8
|
+
let versionSchema = Sury.string;
|
|
9
|
+
|
|
10
|
+
let pluginKindSchema = Sury.union([
|
|
11
|
+
Sury.literal("Domain"),
|
|
12
|
+
Sury.literal("PlatformInfrastructure"),
|
|
13
|
+
Sury.literal("Commercial"),
|
|
14
|
+
Sury.literal("Marketplace")
|
|
12
15
|
]);
|
|
13
16
|
|
|
14
|
-
let extensionPointDefinitionSchema =
|
|
15
|
-
name: s.m(
|
|
16
|
-
commandTopic: s.m(
|
|
17
|
-
eventTopic: s.m(
|
|
17
|
+
let extensionPointDefinitionSchema = Sury.$schema(s => ({
|
|
18
|
+
name: s.m(Sury.string),
|
|
19
|
+
commandTopic: s.m(Sury.string),
|
|
20
|
+
eventTopic: s.m(Sury.string)
|
|
18
21
|
}));
|
|
19
22
|
|
|
20
|
-
let extensionDefinitionSchema =
|
|
21
|
-
name: s.m(
|
|
22
|
-
extensionPointName: s.m(
|
|
23
|
-
dcbSources: s.m(
|
|
23
|
+
let extensionDefinitionSchema = Sury.$schema(s => ({
|
|
24
|
+
name: s.m(Sury.string),
|
|
25
|
+
extensionPointName: s.m(Sury.string),
|
|
26
|
+
dcbSources: s.m(Sury.array(Sury.string))
|
|
24
27
|
}));
|
|
25
28
|
|
|
26
|
-
let dcbEventLogDefinitionSchema =
|
|
27
|
-
name: s.m(
|
|
28
|
-
eventTopicArn: s.m(
|
|
29
|
+
let dcbEventLogDefinitionSchema = Sury.$schema(s => ({
|
|
30
|
+
name: s.m(Sury.string),
|
|
31
|
+
eventTopicArn: s.m(Sury.string)
|
|
29
32
|
}));
|
|
30
33
|
|
|
31
|
-
let extensionProtocolSchema =
|
|
32
|
-
extensionPointName: s.m(
|
|
33
|
-
commandVersion: s.m(
|
|
34
|
-
eventVersion: s.m(
|
|
34
|
+
let extensionProtocolSchema = Sury.$schema(s => ({
|
|
35
|
+
extensionPointName: s.m(Sury.string),
|
|
36
|
+
commandVersion: s.m(Sury.string),
|
|
37
|
+
eventVersion: s.m(Sury.string)
|
|
35
38
|
}));
|
|
36
39
|
|
|
37
|
-
let apiSchemaFragmentSchema =
|
|
38
|
-
encoded: s.m(
|
|
39
|
-
protocol: s.m(
|
|
40
|
+
let apiSchemaFragmentSchema = Sury.$schema(s => ({
|
|
41
|
+
encoded: s.m(Sury.string),
|
|
42
|
+
protocol: s.m(Sury.string)
|
|
40
43
|
}));
|
|
41
44
|
|
|
42
|
-
let apiTargetSchema =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
let apiTargetSchema = Sury.union([
|
|
46
|
+
Sury.literal("Domain"),
|
|
47
|
+
Sury.literal("Platform")
|
|
45
48
|
]);
|
|
46
49
|
|
|
47
50
|
let apiSchemaFragmentOffloadSchema = Offload$Reventless.optionSchema(undefined, "pluginApiFragments", undefined, apiSchemaFragmentSchema);
|
|
48
51
|
|
|
49
|
-
let dcbEventLogOptionSchema =
|
|
52
|
+
let dcbEventLogOptionSchema = Sury.$nullAsOption(dcbEventLogDefinitionSchema);
|
|
50
53
|
|
|
51
|
-
let stringOptionSchema =
|
|
54
|
+
let stringOptionSchema = Sury.$nullAsOption(Sury.string);
|
|
52
55
|
|
|
53
|
-
let stringArrayOptionSchema =
|
|
56
|
+
let stringArrayOptionSchema = Sury.$nullAsOption(Sury.array(Sury.string));
|
|
54
57
|
|
|
55
|
-
let boolOptionSchema =
|
|
58
|
+
let boolOptionSchema = Sury.$nullAsOption(Sury.bool);
|
|
56
59
|
|
|
57
|
-
let panelManifestEntrySchema =
|
|
58
|
-
fragmentId: s.m(
|
|
59
|
-
title: s.m(
|
|
60
|
-
description: s.m(
|
|
61
|
-
positions: s.m(
|
|
60
|
+
let panelManifestEntrySchema = Sury.$schema(s => ({
|
|
61
|
+
fragmentId: s.m(Sury.string),
|
|
62
|
+
title: s.m(Sury.string),
|
|
63
|
+
description: s.m(Sury.string),
|
|
64
|
+
positions: s.m(Sury.array(Sury.string)),
|
|
62
65
|
requiredAccess: s.m(stringOptionSchema)
|
|
63
66
|
}));
|
|
64
67
|
|
|
65
|
-
let menuEntrySchema =
|
|
66
|
-
label: s.m(
|
|
68
|
+
let menuEntrySchema = Sury.$schema(s => ({
|
|
69
|
+
label: s.m(Sury.string),
|
|
67
70
|
icon: s.m(stringOptionSchema),
|
|
68
71
|
group: s.m(stringOptionSchema),
|
|
69
|
-
sortOrder: s.m(
|
|
72
|
+
sortOrder: s.m(Sury.int)
|
|
70
73
|
}));
|
|
71
74
|
|
|
72
|
-
let pageManifestEntrySchema =
|
|
73
|
-
fragmentId: s.m(
|
|
74
|
-
title: s.m(
|
|
75
|
+
let pageManifestEntrySchema = Sury.$schema(s => ({
|
|
76
|
+
fragmentId: s.m(Sury.string),
|
|
77
|
+
title: s.m(Sury.string),
|
|
75
78
|
menuEntry: s.m(menuEntrySchema),
|
|
76
79
|
requiredAccess: s.m(stringOptionSchema)
|
|
77
80
|
}));
|
|
78
81
|
|
|
79
|
-
let uiFragmentManifestSchema =
|
|
80
|
-
remoteEntryUrl: s.m(
|
|
81
|
-
panels: s.m(
|
|
82
|
-
pages: s.m(
|
|
82
|
+
let uiFragmentManifestSchema = Sury.$schema(s => ({
|
|
83
|
+
remoteEntryUrl: s.m(Sury.string),
|
|
84
|
+
panels: s.m(Sury.array(panelManifestEntrySchema)),
|
|
85
|
+
pages: s.m(Sury.array(pageManifestEntrySchema))
|
|
83
86
|
}));
|
|
84
87
|
|
|
85
|
-
let uiFragmentManifestOptionSchema =
|
|
88
|
+
let uiFragmentManifestOptionSchema = Sury.$nullAsOption(uiFragmentManifestSchema);
|
|
86
89
|
|
|
87
|
-
let commandLevelSchema =
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
let commandLevelSchema = Sury.union([
|
|
91
|
+
Sury.literal("Collection"),
|
|
92
|
+
Sury.literal("Instance")
|
|
90
93
|
]);
|
|
91
94
|
|
|
92
|
-
let fieldReferenceSchema =
|
|
93
|
-
fieldName: s.m(
|
|
94
|
-
entity: s.m(
|
|
95
|
+
let fieldReferenceSchema = Sury.$schema(s => ({
|
|
96
|
+
fieldName: s.m(Sury.string),
|
|
97
|
+
entity: s.m(Sury.string),
|
|
95
98
|
plugin: s.m(stringOptionSchema)
|
|
96
99
|
}));
|
|
97
100
|
|
|
98
|
-
let commandDefSchema =
|
|
99
|
-
name: s.m(
|
|
100
|
-
schema: s.m(
|
|
101
|
+
let commandDefSchema = Sury.$schema(s => ({
|
|
102
|
+
name: s.m(Sury.string),
|
|
103
|
+
schema: s.m(Sury.string),
|
|
101
104
|
level: s.m(commandLevelSchema),
|
|
102
105
|
aggregateIdField: s.m(stringOptionSchema),
|
|
103
|
-
mutationField: s.m(
|
|
104
|
-
references: s.m(
|
|
106
|
+
mutationField: s.m(Sury.string),
|
|
107
|
+
references: s.m(Sury.array(fieldReferenceSchema)),
|
|
105
108
|
allowedStates: s.m(stringArrayOptionSchema),
|
|
106
109
|
targetState: s.m(stringOptionSchema),
|
|
107
110
|
apiExposed: s.m(boolOptionSchema),
|
|
@@ -109,14 +112,14 @@ let commandDefSchema = S.schema(s => ({
|
|
|
109
112
|
ownerField: s.m(stringOptionSchema)
|
|
110
113
|
}));
|
|
111
114
|
|
|
112
|
-
let queryableDefSchema =
|
|
113
|
-
name: s.m(
|
|
114
|
-
queryField: s.m(
|
|
115
|
-
schema: s.m(
|
|
116
|
-
consumedEventTypes: s.m(
|
|
117
|
-
linkedWriteSide: s.m(
|
|
118
|
-
labelField: s.m(
|
|
119
|
-
searchableFields: s.m(
|
|
115
|
+
let queryableDefSchema = Sury.$schema(s => ({
|
|
116
|
+
name: s.m(Sury.string),
|
|
117
|
+
queryField: s.m(Sury.string),
|
|
118
|
+
schema: s.m(Sury.string),
|
|
119
|
+
consumedEventTypes: s.m(Sury.array(Sury.string)),
|
|
120
|
+
linkedWriteSide: s.m(Sury.array(Sury.string)),
|
|
121
|
+
labelField: s.m(Sury.string),
|
|
122
|
+
searchableFields: s.m(Sury.array(Sury.string)),
|
|
120
123
|
labelFieldSource: s.m(stringOptionSchema),
|
|
121
124
|
lifecycleField: s.m(stringOptionSchema),
|
|
122
125
|
ownerField: s.m(stringOptionSchema),
|
|
@@ -131,89 +134,89 @@ let queryableDefSchema = S.schema(s => ({
|
|
|
131
134
|
requiredAccess: s.m(stringArrayOptionSchema)
|
|
132
135
|
}));
|
|
133
136
|
|
|
134
|
-
let eventDefSchema =
|
|
135
|
-
name: s.m(
|
|
136
|
-
schema: s.m(
|
|
137
|
-
references: s.m(
|
|
137
|
+
let eventDefSchema = Sury.$schema(s => ({
|
|
138
|
+
name: s.m(Sury.string),
|
|
139
|
+
schema: s.m(Sury.string),
|
|
140
|
+
references: s.m(Sury.array(fieldReferenceSchema))
|
|
138
141
|
}));
|
|
139
142
|
|
|
140
|
-
let errorDefSchema =
|
|
141
|
-
name: s.m(
|
|
142
|
-
schema: s.m(
|
|
143
|
-
references: s.m(
|
|
143
|
+
let errorDefSchema = Sury.$schema(s => ({
|
|
144
|
+
name: s.m(Sury.string),
|
|
145
|
+
schema: s.m(Sury.string),
|
|
146
|
+
references: s.m(Sury.array(fieldReferenceSchema))
|
|
144
147
|
}));
|
|
145
148
|
|
|
146
|
-
let writableDefSchema =
|
|
147
|
-
name: s.m(
|
|
148
|
-
commands: s.m(
|
|
149
|
-
producedEventTypes: s.m(
|
|
150
|
-
consumedEventTypes: s.m(
|
|
151
|
-
linkedViews: s.m(
|
|
149
|
+
let writableDefSchema = Sury.$schema(s => ({
|
|
150
|
+
name: s.m(Sury.string),
|
|
151
|
+
commands: s.m(Sury.array(commandDefSchema)),
|
|
152
|
+
producedEventTypes: s.m(Sury.array(Sury.string)),
|
|
153
|
+
consumedEventTypes: s.m(Sury.array(Sury.string)),
|
|
154
|
+
linkedViews: s.m(Sury.array(Sury.string)),
|
|
152
155
|
consistencyRead: s.m(stringOptionSchema),
|
|
153
|
-
events: s.m(
|
|
154
|
-
errors: s.m(
|
|
156
|
+
events: s.m(Sury.array(eventDefSchema)),
|
|
157
|
+
errors: s.m(Sury.array(errorDefSchema)),
|
|
155
158
|
chapter: s.m(stringOptionSchema)
|
|
156
159
|
}));
|
|
157
160
|
|
|
158
|
-
let automationSliceDefSchema =
|
|
159
|
-
name: s.m(
|
|
160
|
-
consumedEventTypes: s.m(
|
|
161
|
-
producedCommandTypes: s.m(
|
|
162
|
-
targetName: s.m(
|
|
161
|
+
let automationSliceDefSchema = Sury.$schema(s => ({
|
|
162
|
+
name: s.m(Sury.string),
|
|
163
|
+
consumedEventTypes: s.m(Sury.array(Sury.string)),
|
|
164
|
+
producedCommandTypes: s.m(Sury.array(Sury.string)),
|
|
165
|
+
targetName: s.m(Sury.string),
|
|
163
166
|
chapter: s.m(stringOptionSchema)
|
|
164
167
|
}));
|
|
165
168
|
|
|
166
|
-
let outboundTranslationSliceDefSchema =
|
|
167
|
-
name: s.m(
|
|
168
|
-
consumedEventTypes: s.m(
|
|
169
|
-
inboundCommandTypes: s.m(
|
|
169
|
+
let outboundTranslationSliceDefSchema = Sury.$schema(s => ({
|
|
170
|
+
name: s.m(Sury.string),
|
|
171
|
+
consumedEventTypes: s.m(Sury.array(Sury.string)),
|
|
172
|
+
inboundCommandTypes: s.m(Sury.array(Sury.string)),
|
|
170
173
|
targetName: s.m(stringOptionSchema),
|
|
171
174
|
externalSystem: s.m(stringOptionSchema),
|
|
172
175
|
chapter: s.m(stringOptionSchema)
|
|
173
176
|
}));
|
|
174
177
|
|
|
175
|
-
let inboundTranslationSliceDefSchema =
|
|
176
|
-
name: s.m(
|
|
177
|
-
commandTypes: s.m(
|
|
178
|
-
targetName: s.m(
|
|
178
|
+
let inboundTranslationSliceDefSchema = Sury.$schema(s => ({
|
|
179
|
+
name: s.m(Sury.string),
|
|
180
|
+
commandTypes: s.m(Sury.array(Sury.string)),
|
|
181
|
+
targetName: s.m(Sury.string),
|
|
179
182
|
externalSystem: s.m(stringOptionSchema),
|
|
180
183
|
chapter: s.m(stringOptionSchema)
|
|
181
184
|
}));
|
|
182
185
|
|
|
183
|
-
let extensionDefSchema =
|
|
184
|
-
name: s.m(
|
|
185
|
-
delegateNames: s.m(
|
|
186
|
-
eventTypes: s.m(
|
|
187
|
-
commandTypes: s.m(
|
|
186
|
+
let extensionDefSchema = Sury.$schema(s => ({
|
|
187
|
+
name: s.m(Sury.string),
|
|
188
|
+
delegateNames: s.m(Sury.array(Sury.string)),
|
|
189
|
+
eventTypes: s.m(Sury.array(Sury.string)),
|
|
190
|
+
commandTypes: s.m(Sury.array(Sury.string))
|
|
188
191
|
}));
|
|
189
192
|
|
|
190
|
-
let extensionPointDefSchema =
|
|
191
|
-
name: s.m(
|
|
192
|
-
delegateNames: s.m(
|
|
193
|
-
sourceEventTypes: s.m(
|
|
193
|
+
let extensionPointDefSchema = Sury.$schema(s => ({
|
|
194
|
+
name: s.m(Sury.string),
|
|
195
|
+
delegateNames: s.m(Sury.array(Sury.string)),
|
|
196
|
+
sourceEventTypes: s.m(Sury.array(Sury.string)),
|
|
194
197
|
commandTypes: s.m(stringArrayOptionSchema)
|
|
195
198
|
}));
|
|
196
199
|
|
|
197
|
-
let extensionPointDefArrayOptionSchema =
|
|
200
|
+
let extensionPointDefArrayOptionSchema = Sury.$nullAsOption(Sury.array(extensionPointDefSchema));
|
|
198
201
|
|
|
199
|
-
let requiredStoreDeclarationSchema =
|
|
200
|
-
store: s.m(
|
|
201
|
-
component: s.m(
|
|
202
|
-
field: s.m(
|
|
202
|
+
let requiredStoreDeclarationSchema = Sury.$schema(s => ({
|
|
203
|
+
store: s.m(Sury.string),
|
|
204
|
+
component: s.m(Sury.string),
|
|
205
|
+
field: s.m(Sury.string),
|
|
203
206
|
annotation: s.m(stringOptionSchema)
|
|
204
207
|
}));
|
|
205
208
|
|
|
206
|
-
let requiredStoreDeclarationArrayOptionSchema =
|
|
207
|
-
|
|
208
|
-
let pluginStructureSchema =
|
|
209
|
-
readModels: s.m(
|
|
210
|
-
stateViewSlices: s.m(
|
|
211
|
-
stateChangeSlices: s.m(
|
|
212
|
-
aggregates: s.m(
|
|
213
|
-
automationSlices: s.m(
|
|
214
|
-
outboundTranslationSlices: s.m(
|
|
215
|
-
inboundTranslationSlices: s.m(
|
|
216
|
-
extensions: s.m(
|
|
209
|
+
let requiredStoreDeclarationArrayOptionSchema = Sury.$nullAsOption(Sury.array(requiredStoreDeclarationSchema));
|
|
210
|
+
|
|
211
|
+
let pluginStructureSchema = Sury.$schema(s => ({
|
|
212
|
+
readModels: s.m(Sury.array(queryableDefSchema)),
|
|
213
|
+
stateViewSlices: s.m(Sury.array(queryableDefSchema)),
|
|
214
|
+
stateChangeSlices: s.m(Sury.array(writableDefSchema)),
|
|
215
|
+
aggregates: s.m(Sury.array(writableDefSchema)),
|
|
216
|
+
automationSlices: s.m(Sury.array(automationSliceDefSchema)),
|
|
217
|
+
outboundTranslationSlices: s.m(Sury.array(outboundTranslationSliceDefSchema)),
|
|
218
|
+
inboundTranslationSlices: s.m(Sury.array(inboundTranslationSliceDefSchema)),
|
|
219
|
+
extensions: s.m(Sury.array(extensionDefSchema)),
|
|
217
220
|
extensionPoints: s.m(extensionPointDefArrayOptionSchema),
|
|
218
221
|
requiredStores: s.m(stringArrayOptionSchema),
|
|
219
222
|
requiredStoreDeclarations: s.m(requiredStoreDeclarationArrayOptionSchema)
|
|
@@ -221,14 +224,14 @@ let pluginStructureSchema = S.schema(s => ({
|
|
|
221
224
|
|
|
222
225
|
let pluginStructureOffloadSchema = Offload$Reventless.optionSchema(undefined, "pluginStructures", undefined, pluginStructureSchema);
|
|
223
226
|
|
|
224
|
-
let pluginDefinitionSchema =
|
|
225
|
-
id: s.m(
|
|
226
|
-
name: s.m(
|
|
227
|
-
version: s.m(
|
|
228
|
-
extensionPoints: s.m(
|
|
229
|
-
extensions: s.m(
|
|
230
|
-
eventCollector: s.m(
|
|
231
|
-
extensionProtocols: s.m(
|
|
227
|
+
let pluginDefinitionSchema = Sury.$schema(s => ({
|
|
228
|
+
id: s.m(Sury.string),
|
|
229
|
+
name: s.m(nameSchema),
|
|
230
|
+
version: s.m(versionSchema),
|
|
231
|
+
extensionPoints: s.m(Sury.array(extensionPointDefinitionSchema)),
|
|
232
|
+
extensions: s.m(Sury.array(extensionDefinitionSchema)),
|
|
233
|
+
eventCollector: s.m(Sury.string),
|
|
234
|
+
extensionProtocols: s.m(Sury.array(extensionProtocolSchema)),
|
|
232
235
|
apiSchemaFragment: s.m(apiSchemaFragmentOffloadSchema),
|
|
233
236
|
apiTarget: s.m(stringOptionSchema),
|
|
234
237
|
structure: s.m(pluginStructureOffloadSchema),
|
|
@@ -236,10 +239,6 @@ let pluginDefinitionSchema = S.schema(s => ({
|
|
|
236
239
|
kind: s.m(pluginKindSchema)
|
|
237
240
|
}));
|
|
238
241
|
|
|
239
|
-
let nameSchema = S.string;
|
|
240
|
-
|
|
241
|
-
let versionSchema = S.string;
|
|
242
|
-
|
|
243
242
|
export {
|
|
244
243
|
nameSchema,
|
|
245
244
|
versionSchema,
|
|
@@ -279,4 +278,4 @@ export {
|
|
|
279
278
|
pluginStructureOffloadSchema,
|
|
280
279
|
pluginDefinitionSchema,
|
|
281
280
|
}
|
|
282
|
-
/*
|
|
281
|
+
/* nameSchema Not a pure module */
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
5
5
|
import * as DcbTag$Reventless from "./DcbTag.res.mjs";
|
|
6
6
|
import * as Semantic$Reventless from "../semantic/Semantic.res.mjs";
|
|
7
7
|
|
|
8
8
|
function to_(plugin, key, entity) {
|
|
9
|
-
let base = Semantic$Reventless.mark(
|
|
9
|
+
let base = Semantic$Reventless.mark(Sury.$Metadata_set(Sury.string, DcbTag$Reventless.dcbTagId, true), Semantic$Reventless.Id.reference, {
|
|
10
10
|
TAG: "ReferenceTo",
|
|
11
11
|
_0: {
|
|
12
12
|
entity: entity,
|
|
@@ -14,7 +14,7 @@ function to_(plugin, key, entity) {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
if (key !== undefined) {
|
|
17
|
-
return
|
|
17
|
+
return Sury.$Metadata_set(base, DcbTag$Reventless.dcbTagKeyOverrideId, key);
|
|
18
18
|
} else {
|
|
19
19
|
return base;
|
|
20
20
|
}
|
|
@@ -54,7 +54,7 @@ function getFieldTarget(_schema) {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
function toWithoutDcbTag(plugin, entity) {
|
|
57
|
-
return Semantic$Reventless.mark(
|
|
57
|
+
return Semantic$Reventless.mark(Sury.string, Semantic$Reventless.Id.reference, {
|
|
58
58
|
TAG: "ReferenceTo",
|
|
59
59
|
_0: {
|
|
60
60
|
entity: entity,
|
|
@@ -69,4 +69,4 @@ export {
|
|
|
69
69
|
getFieldTarget,
|
|
70
70
|
toWithoutDcbTag,
|
|
71
71
|
}
|
|
72
|
-
/*
|
|
72
|
+
/* sury Not a pure module */
|
|
@@ -15,6 +15,8 @@ Each list contains the source field names; `indexes` carries `(fieldName,
|
|
|
15
15
|
indexName)` pairs where `indexName` is `""` for unnamed `@index` annotations.
|
|
16
16
|
`hidden` lists fields the UI should suppress from summary/list views;
|
|
17
17
|
`summary` lists fields the UI should always include in summary/list views.
|
|
18
|
+
`internal` lists fields that are not on the GraphQL surface at all — see the
|
|
19
|
+
field's own note below; it is a different kind of claim from `hidden`.
|
|
18
20
|
`drillTargets` carries `(fieldName, sliceName)` pairs naming the slice/view
|
|
19
21
|
the UI should navigate to instead of expanding the field inline;
|
|
20
22
|
`drillTargetKeys` carries `(fieldName, keyPath)` pairs for fields whose
|
|
@@ -112,6 +114,27 @@ type stateAnnotationSpec = {
|
|
|
112
114
|
indexes: array<(string, string)>,
|
|
113
115
|
hidden: array<string>,
|
|
114
116
|
summary: array<string>,
|
|
117
|
+
/**
|
|
118
|
+
Fields annotated `@internal` — present in the record and in storage, absent
|
|
119
|
+
from the generated SDL type and from the published state schema.
|
|
120
|
+
|
|
121
|
+
A different claim from `hidden`, and the distinction is the point. `hidden`
|
|
122
|
+
says "do not show this": the field is on the API and any client may ask for
|
|
123
|
+
it. `internal` says "this is not on the API", so nothing can ask and nothing
|
|
124
|
+
needs to be told not to show it. That is why the two are separate lists rather
|
|
125
|
+
than one flag with a mode — a consumer reading `hidden` is deciding what to
|
|
126
|
+
render, and a consumer reading this is deciding what exists.
|
|
127
|
+
|
|
128
|
+
**Not a security boundary** — the same caveat `visibility` carries. It shapes
|
|
129
|
+
the generated surface; `@owner` and `@retired` remain the enforcement markers.
|
|
130
|
+
The PPX rejects `@internal` beside either of them, and beside every other
|
|
131
|
+
marker that keys a door, because a door cannot be keyed on a field the SDL
|
|
132
|
+
does not have.
|
|
133
|
+
|
|
134
|
+
Optional so a state schema annotated by a PPX that predates the marker still
|
|
135
|
+
reads: absent and empty mean the same thing to every consumer.
|
|
136
|
+
*/
|
|
137
|
+
internal?: array<string>,
|
|
115
138
|
drillTargets: array<(string, string)>,
|
|
116
139
|
drillTargetKeys: array<(string, string)>,
|
|
117
140
|
collapsed: array<string>,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as Sury from "sury";
|
|
4
4
|
|
|
5
|
-
let stateAnnotationsId =
|
|
5
|
+
let stateAnnotationsId = Sury.$Metadata_Id_make("reventless", "stateAnnotations");
|
|
6
6
|
|
|
7
7
|
function getSpec(schema) {
|
|
8
|
-
return
|
|
8
|
+
return Sury.$Metadata_get(schema, stateAnnotationsId);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export {
|