space-data-module-sdk 0.2.0 → 0.2.5
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/README.md +74 -2
- package/package.json +10 -3
- package/schemas/PluginInvokeRequest.fbs +18 -0
- package/schemas/PluginInvokeResponse.fbs +30 -0
- package/schemas/PluginManifest.fbs +7 -0
- package/schemas/TypedArenaBuffer.fbs +23 -2
- package/src/bundle/codec.js +24 -0
- package/src/compiler/compileModule.js +274 -106
- package/src/compiler/emceptionNode.js +217 -0
- package/src/compiler/flatcSupport.js +66 -0
- package/src/compiler/invokeGlue.js +884 -0
- package/src/compliance/pluginCompliance.js +241 -1
- package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts +51 -0
- package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts.map +1 -0
- package/src/generated/orbpro/invoke/plugin-invoke-request.js +131 -0
- package/src/generated/orbpro/invoke/plugin-invoke-request.js.map +1 -0
- package/src/generated/orbpro/invoke/plugin-invoke-request.ts +173 -0
- package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts +76 -0
- package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts.map +1 -0
- package/src/generated/orbpro/invoke/plugin-invoke-response.js +184 -0
- package/src/generated/orbpro/invoke/plugin-invoke-response.js.map +1 -0
- package/src/generated/orbpro/invoke/plugin-invoke-response.ts +243 -0
- package/src/generated/orbpro/invoke.d.ts +3 -0
- package/src/generated/orbpro/invoke.d.ts.map +1 -0
- package/src/generated/orbpro/invoke.js +5 -0
- package/src/generated/orbpro/invoke.js.map +1 -0
- package/src/generated/orbpro/invoke.ts +6 -0
- package/src/generated/orbpro/manifest/accepted-type-set.d.ts +4 -4
- package/src/generated/orbpro/manifest/accepted-type-set.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/accepted-type-set.js +18 -11
- package/src/generated/orbpro/manifest/accepted-type-set.js.map +1 -1
- package/src/generated/orbpro/manifest/build-artifact.d.ts +1 -1
- package/src/generated/orbpro/manifest/build-artifact.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/build-artifact.js +28 -15
- package/src/generated/orbpro/manifest/build-artifact.js.map +1 -1
- package/src/generated/orbpro/manifest/capability-kind.d.ts +1 -1
- package/src/generated/orbpro/manifest/capability-kind.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/capability-kind.js +1 -1
- package/src/generated/orbpro/manifest/capability-kind.js.map +1 -1
- package/src/generated/orbpro/manifest/drain-policy.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/drain-policy.js.map +1 -1
- package/src/generated/orbpro/manifest/host-capability.d.ts +2 -2
- package/src/generated/orbpro/manifest/host-capability.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/host-capability.js +19 -11
- package/src/generated/orbpro/manifest/host-capability.js.map +1 -1
- package/src/generated/orbpro/manifest/invoke-surface.d.ts +8 -0
- package/src/generated/orbpro/manifest/invoke-surface.d.ts.map +1 -0
- package/src/generated/orbpro/manifest/invoke-surface.js +11 -0
- package/src/generated/orbpro/manifest/invoke-surface.js.map +1 -0
- package/src/generated/orbpro/manifest/invoke-surface.ts +11 -0
- package/src/generated/orbpro/manifest/method-manifest.d.ts +6 -6
- package/src/generated/orbpro/manifest/method-manifest.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/method-manifest.js +33 -16
- package/src/generated/orbpro/manifest/method-manifest.js.map +1 -1
- package/src/generated/orbpro/manifest/plugin-family.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/plugin-family.js.map +1 -1
- package/src/generated/orbpro/manifest/plugin-manifest.d.ts +10 -2
- package/src/generated/orbpro/manifest/plugin-manifest.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/plugin-manifest.js +48 -9
- package/src/generated/orbpro/manifest/plugin-manifest.js.map +1 -1
- package/src/generated/orbpro/manifest/plugin-manifest.ts +322 -491
- package/src/generated/orbpro/manifest/port-manifest.d.ts +4 -4
- package/src/generated/orbpro/manifest/port-manifest.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/port-manifest.js +26 -13
- package/src/generated/orbpro/manifest/port-manifest.js.map +1 -1
- package/src/generated/orbpro/manifest/protocol-spec.d.ts +1 -1
- package/src/generated/orbpro/manifest/protocol-spec.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/protocol-spec.js +28 -15
- package/src/generated/orbpro/manifest/protocol-spec.js.map +1 -1
- package/src/generated/orbpro/manifest/timer-spec.d.ts +1 -1
- package/src/generated/orbpro/manifest/timer-spec.d.ts.map +1 -1
- package/src/generated/orbpro/manifest/timer-spec.js +27 -16
- package/src/generated/orbpro/manifest/timer-spec.js.map +1 -1
- package/src/generated/orbpro/manifest.d.ts +13 -0
- package/src/generated/orbpro/manifest.d.ts.map +1 -0
- package/src/generated/orbpro/manifest.js +1 -0
- package/src/generated/orbpro/manifest.js.map +1 -0
- package/src/generated/orbpro/manifest.ts +16 -0
- package/src/generated/orbpro/stream/buffer-mutability.d.ts.map +1 -1
- package/src/generated/orbpro/stream/buffer-mutability.js.map +1 -1
- package/src/generated/orbpro/stream/buffer-ownership.d.ts.map +1 -1
- package/src/generated/orbpro/stream/buffer-ownership.js.map +1 -1
- package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts +22 -5
- package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts.map +1 -1
- package/src/generated/orbpro/stream/flat-buffer-type-ref.js +107 -17
- package/src/generated/orbpro/stream/flat-buffer-type-ref.js.map +1 -1
- package/src/generated/orbpro/stream/flat-buffer-type-ref.ts +126 -2
- package/src/generated/orbpro/stream/payload-wire-format.d.ts +8 -0
- package/src/generated/orbpro/stream/payload-wire-format.d.ts.map +1 -0
- package/src/generated/orbpro/stream/payload-wire-format.js +11 -0
- package/src/generated/orbpro/stream/payload-wire-format.js.map +1 -0
- package/src/generated/orbpro/stream/payload-wire-format.ts +11 -0
- package/src/generated/orbpro/stream/typed-arena-buffer.d.ts +4 -4
- package/src/generated/orbpro/stream/typed-arena-buffer.d.ts.map +1 -1
- package/src/generated/orbpro/stream/typed-arena-buffer.js +42 -24
- package/src/generated/orbpro/stream/typed-arena-buffer.js.map +1 -1
- package/src/index.d.ts +83 -5
- package/src/index.js +3 -0
- package/src/invoke/codec.js +278 -0
- package/src/invoke/index.js +9 -0
- package/src/manifest/codec.js +10 -2
- package/src/manifest/index.js +5 -2
- package/src/manifest/normalize.js +58 -0
- package/src/runtime/constants.js +12 -0
|
@@ -2,10 +2,12 @@ import { access, readFile, readdir } from "node:fs/promises";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
|
+
DefaultInvokeExports,
|
|
5
6
|
DefaultManifestExports,
|
|
6
7
|
DrainPolicy,
|
|
7
8
|
ExternalInterfaceDirection,
|
|
8
9
|
ExternalInterfaceKind,
|
|
10
|
+
InvokeSurface,
|
|
9
11
|
RuntimeTarget,
|
|
10
12
|
} from "../runtime/constants.js";
|
|
11
13
|
|
|
@@ -52,6 +54,7 @@ const RecommendedCapabilitySet = new Set(RecommendedCapabilityIds);
|
|
|
52
54
|
const RecommendedRuntimeTargets = Object.freeze(Object.values(RuntimeTarget));
|
|
53
55
|
const RecommendedRuntimeTargetSet = new Set(RecommendedRuntimeTargets);
|
|
54
56
|
const DrainPolicySet = new Set(Object.values(DrainPolicy));
|
|
57
|
+
const InvokeSurfaceSet = new Set(Object.values(InvokeSurface));
|
|
55
58
|
const ExternalInterfaceDirectionSet = new Set(
|
|
56
59
|
Object.values(ExternalInterfaceDirection),
|
|
57
60
|
);
|
|
@@ -104,6 +107,42 @@ function isNonEmptyString(value) {
|
|
|
104
107
|
return typeof value === "string" && value.trim().length > 0;
|
|
105
108
|
}
|
|
106
109
|
|
|
110
|
+
function hasNonEmptyByteSequence(value) {
|
|
111
|
+
if (typeof value === "string") {
|
|
112
|
+
return value.trim().length > 0;
|
|
113
|
+
}
|
|
114
|
+
if (Array.isArray(value)) {
|
|
115
|
+
return value.length > 0;
|
|
116
|
+
}
|
|
117
|
+
if (ArrayBuffer.isView(value)) {
|
|
118
|
+
return value.byteLength > 0;
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function normalizePayloadWireFormatName(value) {
|
|
124
|
+
if (value === undefined || value === null || value === "") {
|
|
125
|
+
return "flatbuffer";
|
|
126
|
+
}
|
|
127
|
+
if (value === 0) {
|
|
128
|
+
return "flatbuffer";
|
|
129
|
+
}
|
|
130
|
+
if (value === 1) {
|
|
131
|
+
return "aligned-binary";
|
|
132
|
+
}
|
|
133
|
+
const normalized = String(value)
|
|
134
|
+
.trim()
|
|
135
|
+
.toLowerCase()
|
|
136
|
+
.replace(/_/g, "-");
|
|
137
|
+
if (normalized === "flatbuffer") {
|
|
138
|
+
return "flatbuffer";
|
|
139
|
+
}
|
|
140
|
+
if (normalized === "aligned-binary") {
|
|
141
|
+
return "aligned-binary";
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
|
|
107
146
|
function validateStringField(issues, value, location, label) {
|
|
108
147
|
if (!isNonEmptyString(value)) {
|
|
109
148
|
pushIssue(issues, "error", "missing-string", `${label} must be a non-empty string.`, location);
|
|
@@ -130,18 +169,93 @@ function validateIntegerField(issues, value, location, label, { min = null } = {
|
|
|
130
169
|
return true;
|
|
131
170
|
}
|
|
132
171
|
|
|
172
|
+
function validateOptionalIntegerField(
|
|
173
|
+
issues,
|
|
174
|
+
value,
|
|
175
|
+
location,
|
|
176
|
+
label,
|
|
177
|
+
options = {},
|
|
178
|
+
) {
|
|
179
|
+
if (value === undefined || value === null) {
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
return validateIntegerField(issues, value, location, label, options);
|
|
183
|
+
}
|
|
184
|
+
|
|
133
185
|
function validateAllowedType(type, issues, location) {
|
|
134
186
|
if (!type || typeof type !== "object" || Array.isArray(type)) {
|
|
135
187
|
pushIssue(issues, "error", "invalid-type-record", "Allowed type entries must be objects.", location);
|
|
136
188
|
return;
|
|
137
189
|
}
|
|
190
|
+
const wireFormat = normalizePayloadWireFormatName(type.wireFormat);
|
|
191
|
+
if (wireFormat === null) {
|
|
192
|
+
pushIssue(
|
|
193
|
+
issues,
|
|
194
|
+
"error",
|
|
195
|
+
"invalid-wire-format",
|
|
196
|
+
'Allowed type wireFormat must be "flatbuffer" or "aligned-binary".',
|
|
197
|
+
`${location}.wireFormat`,
|
|
198
|
+
);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (wireFormat === "aligned-binary") {
|
|
202
|
+
if (type.acceptsAnyFlatbuffer === true) {
|
|
203
|
+
pushIssue(
|
|
204
|
+
issues,
|
|
205
|
+
"error",
|
|
206
|
+
"accepts-any-flatbuffer-format-conflict",
|
|
207
|
+
"acceptsAnyFlatbuffer can only be used with flatbuffer wireFormat.",
|
|
208
|
+
`${location}.acceptsAnyFlatbuffer`,
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
if (!isNonEmptyString(type.schemaName)) {
|
|
212
|
+
pushIssue(
|
|
213
|
+
issues,
|
|
214
|
+
"error",
|
|
215
|
+
"missing-aligned-schema-name",
|
|
216
|
+
"Aligned-binary allowed types must declare schemaName.",
|
|
217
|
+
`${location}.schemaName`,
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
if (!isNonEmptyString(type.rootTypeName)) {
|
|
221
|
+
pushIssue(
|
|
222
|
+
issues,
|
|
223
|
+
"error",
|
|
224
|
+
"missing-aligned-root-type-name",
|
|
225
|
+
"Aligned-binary allowed types must declare rootTypeName.",
|
|
226
|
+
`${location}.rootTypeName`,
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
validateOptionalIntegerField(
|
|
230
|
+
issues,
|
|
231
|
+
type.fixedStringLength,
|
|
232
|
+
`${location}.fixedStringLength`,
|
|
233
|
+
"Allowed type fixedStringLength",
|
|
234
|
+
{ min: 0 },
|
|
235
|
+
);
|
|
236
|
+
validateIntegerField(
|
|
237
|
+
issues,
|
|
238
|
+
type.byteLength,
|
|
239
|
+
`${location}.byteLength`,
|
|
240
|
+
"Aligned-binary allowed type byteLength",
|
|
241
|
+
{ min: 1 },
|
|
242
|
+
);
|
|
243
|
+
validateIntegerField(
|
|
244
|
+
issues,
|
|
245
|
+
type.requiredAlignment,
|
|
246
|
+
`${location}.requiredAlignment`,
|
|
247
|
+
"Aligned-binary allowed type requiredAlignment",
|
|
248
|
+
{ min: 1 },
|
|
249
|
+
);
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
138
252
|
if (type.acceptsAnyFlatbuffer === true) {
|
|
139
253
|
return;
|
|
140
254
|
}
|
|
141
255
|
if (
|
|
142
256
|
!isNonEmptyString(type.schemaName) &&
|
|
143
257
|
!isNonEmptyString(type.fileIdentifier) &&
|
|
144
|
-
!
|
|
258
|
+
!hasNonEmptyByteSequence(type.schemaHash)
|
|
145
259
|
) {
|
|
146
260
|
pushIssue(
|
|
147
261
|
issues,
|
|
@@ -151,6 +265,27 @@ function validateAllowedType(type, issues, location) {
|
|
|
151
265
|
location,
|
|
152
266
|
);
|
|
153
267
|
}
|
|
268
|
+
validateOptionalIntegerField(
|
|
269
|
+
issues,
|
|
270
|
+
type.fixedStringLength,
|
|
271
|
+
`${location}.fixedStringLength`,
|
|
272
|
+
"Allowed type fixedStringLength",
|
|
273
|
+
{ min: 0 },
|
|
274
|
+
);
|
|
275
|
+
validateOptionalIntegerField(
|
|
276
|
+
issues,
|
|
277
|
+
type.byteLength,
|
|
278
|
+
`${location}.byteLength`,
|
|
279
|
+
"Allowed type byteLength",
|
|
280
|
+
{ min: 0 },
|
|
281
|
+
);
|
|
282
|
+
validateOptionalIntegerField(
|
|
283
|
+
issues,
|
|
284
|
+
type.requiredAlignment,
|
|
285
|
+
`${location}.requiredAlignment`,
|
|
286
|
+
"Allowed type requiredAlignment",
|
|
287
|
+
{ min: 0 },
|
|
288
|
+
);
|
|
154
289
|
}
|
|
155
290
|
|
|
156
291
|
function validateAcceptedTypeSet(typeSet, issues, location) {
|
|
@@ -523,6 +658,60 @@ function validateRuntimeTargets(runtimeTargets, declaredCapabilities, issues, so
|
|
|
523
658
|
}
|
|
524
659
|
}
|
|
525
660
|
|
|
661
|
+
function validateInvokeSurfaces(invokeSurfaces, issues, sourceName) {
|
|
662
|
+
if (invokeSurfaces === undefined) {
|
|
663
|
+
return [];
|
|
664
|
+
}
|
|
665
|
+
if (!Array.isArray(invokeSurfaces)) {
|
|
666
|
+
pushIssue(
|
|
667
|
+
issues,
|
|
668
|
+
"error",
|
|
669
|
+
"invalid-invoke-surfaces",
|
|
670
|
+
"manifest.invokeSurfaces must be an array of non-empty strings when present.",
|
|
671
|
+
`${sourceName}.invokeSurfaces`,
|
|
672
|
+
);
|
|
673
|
+
return [];
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
const seen = new Set();
|
|
677
|
+
const normalized = [];
|
|
678
|
+
for (const surface of invokeSurfaces) {
|
|
679
|
+
if (!isNonEmptyString(surface)) {
|
|
680
|
+
pushIssue(
|
|
681
|
+
issues,
|
|
682
|
+
"error",
|
|
683
|
+
"invalid-invoke-surface",
|
|
684
|
+
"Invoke surface entries must be non-empty strings.",
|
|
685
|
+
`${sourceName}.invokeSurfaces`,
|
|
686
|
+
);
|
|
687
|
+
continue;
|
|
688
|
+
}
|
|
689
|
+
if (!InvokeSurfaceSet.has(surface)) {
|
|
690
|
+
pushIssue(
|
|
691
|
+
issues,
|
|
692
|
+
"error",
|
|
693
|
+
"unknown-invoke-surface",
|
|
694
|
+
`Invoke surface "${surface}" is invalid.`,
|
|
695
|
+
`${sourceName}.invokeSurfaces`,
|
|
696
|
+
);
|
|
697
|
+
continue;
|
|
698
|
+
}
|
|
699
|
+
if (seen.has(surface)) {
|
|
700
|
+
pushIssue(
|
|
701
|
+
issues,
|
|
702
|
+
"warning",
|
|
703
|
+
"duplicate-invoke-surface",
|
|
704
|
+
`Invoke surface "${surface}" is declared more than once.`,
|
|
705
|
+
`${sourceName}.invokeSurfaces`,
|
|
706
|
+
);
|
|
707
|
+
continue;
|
|
708
|
+
}
|
|
709
|
+
seen.add(surface);
|
|
710
|
+
normalized.push(surface);
|
|
711
|
+
}
|
|
712
|
+
return normalized;
|
|
713
|
+
}
|
|
714
|
+
|
|
526
715
|
export function validatePluginManifest(manifest, options = {}) {
|
|
527
716
|
const { sourceName = "manifest" } = options;
|
|
528
717
|
const issues = [];
|
|
@@ -592,6 +781,7 @@ export function validatePluginManifest(manifest, options = {}) {
|
|
|
592
781
|
issues,
|
|
593
782
|
sourceName,
|
|
594
783
|
);
|
|
784
|
+
validateInvokeSurfaces(manifest.invokeSurfaces, issues, sourceName);
|
|
595
785
|
|
|
596
786
|
if (!Array.isArray(manifest.externalInterfaces)) {
|
|
597
787
|
pushIssue(
|
|
@@ -732,6 +922,24 @@ export function validatePluginManifest(manifest, options = {}) {
|
|
|
732
922
|
}
|
|
733
923
|
}
|
|
734
924
|
|
|
925
|
+
if (manifest.schemasUsed !== undefined && !Array.isArray(manifest.schemasUsed)) {
|
|
926
|
+
pushIssue(
|
|
927
|
+
issues,
|
|
928
|
+
"error",
|
|
929
|
+
"invalid-schemas-used-array",
|
|
930
|
+
"manifest.schemasUsed must be an array when present.",
|
|
931
|
+
`${sourceName}.schemasUsed`,
|
|
932
|
+
);
|
|
933
|
+
} else if (Array.isArray(manifest.schemasUsed)) {
|
|
934
|
+
manifest.schemasUsed.forEach((typeRef, index) => {
|
|
935
|
+
validateAllowedType(
|
|
936
|
+
typeRef,
|
|
937
|
+
issues,
|
|
938
|
+
`${sourceName}.schemasUsed[${index}]`,
|
|
939
|
+
);
|
|
940
|
+
});
|
|
941
|
+
}
|
|
942
|
+
|
|
735
943
|
return buildComplianceReport({
|
|
736
944
|
sourceName,
|
|
737
945
|
manifest,
|
|
@@ -775,6 +983,9 @@ export async function validatePluginArtifact(options) {
|
|
|
775
983
|
const issues = [...report.issues];
|
|
776
984
|
let resolvedExportNames = [];
|
|
777
985
|
let checkedArtifact = false;
|
|
986
|
+
const declaredInvokeSurfaces = Array.isArray(manifest?.invokeSurfaces)
|
|
987
|
+
? manifest.invokeSurfaces.filter((surface) => InvokeSurfaceSet.has(surface))
|
|
988
|
+
: [];
|
|
778
989
|
|
|
779
990
|
if (Array.isArray(exportNames)) {
|
|
780
991
|
resolvedExportNames = [...exportNames];
|
|
@@ -799,6 +1010,35 @@ export async function validatePluginArtifact(options) {
|
|
|
799
1010
|
);
|
|
800
1011
|
}
|
|
801
1012
|
}
|
|
1013
|
+
if (declaredInvokeSurfaces.includes(InvokeSurface.DIRECT)) {
|
|
1014
|
+
for (const symbol of [
|
|
1015
|
+
DefaultInvokeExports.invokeSymbol,
|
|
1016
|
+
DefaultInvokeExports.allocSymbol,
|
|
1017
|
+
DefaultInvokeExports.freeSymbol,
|
|
1018
|
+
]) {
|
|
1019
|
+
if (!resolvedExportNames.includes(symbol)) {
|
|
1020
|
+
pushIssue(
|
|
1021
|
+
issues,
|
|
1022
|
+
"error",
|
|
1023
|
+
"missing-plugin-invoke-export",
|
|
1024
|
+
`Plugin artifact is missing required direct invoke export "${symbol}".`,
|
|
1025
|
+
wasmPath ?? sourceName,
|
|
1026
|
+
);
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
if (
|
|
1031
|
+
declaredInvokeSurfaces.includes(InvokeSurface.COMMAND) &&
|
|
1032
|
+
!resolvedExportNames.includes(DefaultInvokeExports.commandSymbol)
|
|
1033
|
+
) {
|
|
1034
|
+
pushIssue(
|
|
1035
|
+
issues,
|
|
1036
|
+
"error",
|
|
1037
|
+
"missing-plugin-command-export",
|
|
1038
|
+
`Plugin artifact is missing required command export "${DefaultInvokeExports.commandSymbol}".`,
|
|
1039
|
+
wasmPath ?? sourceName,
|
|
1040
|
+
);
|
|
1041
|
+
}
|
|
802
1042
|
} else {
|
|
803
1043
|
pushIssue(
|
|
804
1044
|
issues,
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as flatbuffers from 'flatbuffers';
|
|
2
|
+
import { TypedArenaBuffer, TypedArenaBufferT } from '../../orbpro/stream/typed-arena-buffer.js';
|
|
3
|
+
/**
|
|
4
|
+
* Canonical invoke envelope consumed by direct ABI and command-mode execution.
|
|
5
|
+
*/
|
|
6
|
+
export declare class PluginInvokeRequest implements flatbuffers.IUnpackableObject<PluginInvokeRequestT> {
|
|
7
|
+
bb: flatbuffers.ByteBuffer | null;
|
|
8
|
+
bb_pos: number;
|
|
9
|
+
__init(i: number, bb: flatbuffers.ByteBuffer): PluginInvokeRequest;
|
|
10
|
+
static getRootAsPluginInvokeRequest(bb: flatbuffers.ByteBuffer, obj?: PluginInvokeRequest): PluginInvokeRequest;
|
|
11
|
+
static getSizePrefixedRootAsPluginInvokeRequest(bb: flatbuffers.ByteBuffer, obj?: PluginInvokeRequest): PluginInvokeRequest;
|
|
12
|
+
static bufferHasIdentifier(bb: flatbuffers.ByteBuffer): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Stable method identifier from PluginManifest.methods.
|
|
15
|
+
*/
|
|
16
|
+
methodId(): string | null;
|
|
17
|
+
methodId(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
|
|
18
|
+
/**
|
|
19
|
+
* Input frames for the invocation, routed by TypedArenaBuffer.port_id.
|
|
20
|
+
*/
|
|
21
|
+
inputFrames(index: number, obj?: TypedArenaBuffer): TypedArenaBuffer | null;
|
|
22
|
+
inputFramesLength(): number;
|
|
23
|
+
/**
|
|
24
|
+
* Arena backing all input frame payload bytes.
|
|
25
|
+
*/
|
|
26
|
+
payloadArena(index: number): number | null;
|
|
27
|
+
payloadArenaLength(): number;
|
|
28
|
+
payloadArenaArray(): Uint8Array | null;
|
|
29
|
+
static startPluginInvokeRequest(builder: flatbuffers.Builder): void;
|
|
30
|
+
static addMethodId(builder: flatbuffers.Builder, methodIdOffset: flatbuffers.Offset): void;
|
|
31
|
+
static addInputFrames(builder: flatbuffers.Builder, inputFramesOffset: flatbuffers.Offset): void;
|
|
32
|
+
static createInputFramesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
|
33
|
+
static startInputFramesVector(builder: flatbuffers.Builder, numElems: number): void;
|
|
34
|
+
static addPayloadArena(builder: flatbuffers.Builder, payloadArenaOffset: flatbuffers.Offset): void;
|
|
35
|
+
static createPayloadArenaVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
|
|
36
|
+
static startPayloadArenaVector(builder: flatbuffers.Builder, numElems: number): void;
|
|
37
|
+
static endPluginInvokeRequest(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
38
|
+
static finishPluginInvokeRequestBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
|
|
39
|
+
static finishSizePrefixedPluginInvokeRequestBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
|
|
40
|
+
static createPluginInvokeRequest(builder: flatbuffers.Builder, methodIdOffset: flatbuffers.Offset, inputFramesOffset: flatbuffers.Offset, payloadArenaOffset: flatbuffers.Offset): flatbuffers.Offset;
|
|
41
|
+
unpack(): PluginInvokeRequestT;
|
|
42
|
+
unpackTo(_o: PluginInvokeRequestT): void;
|
|
43
|
+
}
|
|
44
|
+
export declare class PluginInvokeRequestT implements flatbuffers.IGeneratedObject {
|
|
45
|
+
methodId: string | Uint8Array | null;
|
|
46
|
+
inputFrames: (TypedArenaBufferT)[];
|
|
47
|
+
payloadArena: (number)[];
|
|
48
|
+
constructor(methodId?: string | Uint8Array | null, inputFrames?: (TypedArenaBufferT)[], payloadArena?: (number)[]);
|
|
49
|
+
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=plugin-invoke-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-invoke-request.d.ts","sourceRoot":"","sources":["plugin-invoke-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// automatically generated by the FlatBuffers compiler, do not modify
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
|
3
|
+
import * as flatbuffers from 'flatbuffers';
|
|
4
|
+
import { TypedArenaBuffer } from '../../orbpro/stream/typed-arena-buffer.js';
|
|
5
|
+
/**
|
|
6
|
+
* Canonical invoke envelope consumed by direct ABI and command-mode execution.
|
|
7
|
+
*/
|
|
8
|
+
export class PluginInvokeRequest {
|
|
9
|
+
bb = null;
|
|
10
|
+
bb_pos = 0;
|
|
11
|
+
__init(i, bb) {
|
|
12
|
+
this.bb_pos = i;
|
|
13
|
+
this.bb = bb;
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
static getRootAsPluginInvokeRequest(bb, obj) {
|
|
17
|
+
return (obj || new PluginInvokeRequest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
|
18
|
+
}
|
|
19
|
+
static getSizePrefixedRootAsPluginInvokeRequest(bb, obj) {
|
|
20
|
+
bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
|
|
21
|
+
return (obj || new PluginInvokeRequest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
|
22
|
+
}
|
|
23
|
+
static bufferHasIdentifier(bb) {
|
|
24
|
+
return bb.__has_identifier('PINQ');
|
|
25
|
+
}
|
|
26
|
+
methodId(optionalEncoding) {
|
|
27
|
+
const offset = this.bb.__offset(this.bb_pos, 4);
|
|
28
|
+
return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Input frames for the invocation, routed by TypedArenaBuffer.port_id.
|
|
32
|
+
*/
|
|
33
|
+
inputFrames(index, obj) {
|
|
34
|
+
const offset = this.bb.__offset(this.bb_pos, 6);
|
|
35
|
+
return offset ? (obj || new TypedArenaBuffer()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
|
|
36
|
+
}
|
|
37
|
+
inputFramesLength() {
|
|
38
|
+
const offset = this.bb.__offset(this.bb_pos, 6);
|
|
39
|
+
return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Arena backing all input frame payload bytes.
|
|
43
|
+
*/
|
|
44
|
+
payloadArena(index) {
|
|
45
|
+
const offset = this.bb.__offset(this.bb_pos, 8);
|
|
46
|
+
return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
|
|
47
|
+
}
|
|
48
|
+
payloadArenaLength() {
|
|
49
|
+
const offset = this.bb.__offset(this.bb_pos, 8);
|
|
50
|
+
return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
|
|
51
|
+
}
|
|
52
|
+
payloadArenaArray() {
|
|
53
|
+
const offset = this.bb.__offset(this.bb_pos, 8);
|
|
54
|
+
return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
|
|
55
|
+
}
|
|
56
|
+
static startPluginInvokeRequest(builder) {
|
|
57
|
+
builder.startObject(3);
|
|
58
|
+
}
|
|
59
|
+
static addMethodId(builder, methodIdOffset) {
|
|
60
|
+
builder.addFieldOffset(0, methodIdOffset, 0);
|
|
61
|
+
}
|
|
62
|
+
static addInputFrames(builder, inputFramesOffset) {
|
|
63
|
+
builder.addFieldOffset(1, inputFramesOffset, 0);
|
|
64
|
+
}
|
|
65
|
+
static createInputFramesVector(builder, data) {
|
|
66
|
+
builder.startVector(4, data.length, 4);
|
|
67
|
+
for (let i = data.length - 1; i >= 0; i--) {
|
|
68
|
+
builder.addOffset(data[i]);
|
|
69
|
+
}
|
|
70
|
+
return builder.endVector();
|
|
71
|
+
}
|
|
72
|
+
static startInputFramesVector(builder, numElems) {
|
|
73
|
+
builder.startVector(4, numElems, 4);
|
|
74
|
+
}
|
|
75
|
+
static addPayloadArena(builder, payloadArenaOffset) {
|
|
76
|
+
builder.addFieldOffset(2, payloadArenaOffset, 0);
|
|
77
|
+
}
|
|
78
|
+
static createPayloadArenaVector(builder, data) {
|
|
79
|
+
builder.startVector(1, data.length, 1);
|
|
80
|
+
for (let i = data.length - 1; i >= 0; i--) {
|
|
81
|
+
builder.addInt8(data[i]);
|
|
82
|
+
}
|
|
83
|
+
return builder.endVector();
|
|
84
|
+
}
|
|
85
|
+
static startPayloadArenaVector(builder, numElems) {
|
|
86
|
+
builder.startVector(1, numElems, 1);
|
|
87
|
+
}
|
|
88
|
+
static endPluginInvokeRequest(builder) {
|
|
89
|
+
const offset = builder.endObject();
|
|
90
|
+
builder.requiredField(offset, 4); // method_id
|
|
91
|
+
return offset;
|
|
92
|
+
}
|
|
93
|
+
static finishPluginInvokeRequestBuffer(builder, offset) {
|
|
94
|
+
builder.finish(offset, 'PINQ');
|
|
95
|
+
}
|
|
96
|
+
static finishSizePrefixedPluginInvokeRequestBuffer(builder, offset) {
|
|
97
|
+
builder.finish(offset, 'PINQ', true);
|
|
98
|
+
}
|
|
99
|
+
static createPluginInvokeRequest(builder, methodIdOffset, inputFramesOffset, payloadArenaOffset) {
|
|
100
|
+
PluginInvokeRequest.startPluginInvokeRequest(builder);
|
|
101
|
+
PluginInvokeRequest.addMethodId(builder, methodIdOffset);
|
|
102
|
+
PluginInvokeRequest.addInputFrames(builder, inputFramesOffset);
|
|
103
|
+
PluginInvokeRequest.addPayloadArena(builder, payloadArenaOffset);
|
|
104
|
+
return PluginInvokeRequest.endPluginInvokeRequest(builder);
|
|
105
|
+
}
|
|
106
|
+
unpack() {
|
|
107
|
+
return new PluginInvokeRequestT(this.methodId(), this.bb.createObjList(this.inputFrames.bind(this), this.inputFramesLength()), this.bb.createScalarList(this.payloadArena.bind(this), this.payloadArenaLength()));
|
|
108
|
+
}
|
|
109
|
+
unpackTo(_o) {
|
|
110
|
+
_o.methodId = this.methodId();
|
|
111
|
+
_o.inputFrames = this.bb.createObjList(this.inputFrames.bind(this), this.inputFramesLength());
|
|
112
|
+
_o.payloadArena = this.bb.createScalarList(this.payloadArena.bind(this), this.payloadArenaLength());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export class PluginInvokeRequestT {
|
|
116
|
+
methodId;
|
|
117
|
+
inputFrames;
|
|
118
|
+
payloadArena;
|
|
119
|
+
constructor(methodId = null, inputFrames = [], payloadArena = []) {
|
|
120
|
+
this.methodId = methodId;
|
|
121
|
+
this.inputFrames = inputFrames;
|
|
122
|
+
this.payloadArena = payloadArena;
|
|
123
|
+
}
|
|
124
|
+
pack(builder) {
|
|
125
|
+
const methodId = (this.methodId !== null ? builder.createString(this.methodId) : 0);
|
|
126
|
+
const inputFrames = PluginInvokeRequest.createInputFramesVector(builder, builder.createObjectOffsetList(this.inputFrames));
|
|
127
|
+
const payloadArena = PluginInvokeRequest.createPayloadArenaVector(builder, this.payloadArena);
|
|
128
|
+
return PluginInvokeRequest.createPluginInvokeRequest(builder, methodId, inputFrames, payloadArena);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=plugin-invoke-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-invoke-request.js","sourceRoot":"","sources":["plugin-invoke-request.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,oIAAoI;AAEpI,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAqB,MAAM,2CAA2C,CAAC;AAGhG;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B,EAAE,GAAgC,IAAI,CAAC;IACvC,MAAM,GAAG,CAAC,CAAC;IACX,MAAM,CAAC,CAAQ,EAAE,EAAyB;QAC1C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,EAAyB,EAAE,GAAwB;QACrF,OAAO,CAAC,GAAG,IAAI,IAAI,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,CAAC,wCAAwC,CAAC,EAAyB,EAAE,GAAwB;QACjG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,IAAI,IAAI,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,EAAyB;QAClD,OAAO,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAOD,QAAQ,CAAC,gBAAqB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa,EAAE,GAAqB;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpJ,CAAC;IAED,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,kBAAkB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAG,CAAC,KAAK,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,EAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrL,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAA2B;QACzD,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAA2B,EAAE,cAAiC;QAC/E,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAA2B,EAAE,iBAAoC;QACrF,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,OAA2B,EAAE,IAAyB;QACnF,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,OAAO,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,OAA2B,EAAE,QAAe;QACxE,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAA2B,EAAE,kBAAqC;QACvF,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAA2B,EAAE,IAAwB;QACnF,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,OAA2B,EAAE,QAAe;QACzE,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,OAA2B;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA,CAAC,YAAY;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,+BAA+B,CAAC,OAA2B,EAAE,MAAyB;QAC3F,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,2CAA2C,CAAC,OAA2B,EAAE,MAAyB;QACvG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,OAA2B,EAAE,cAAiC,EAAE,iBAAoC,EAAE,kBAAqC;QAC1K,mBAAmB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACtD,mBAAmB,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzD,mBAAmB,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC/D,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACjE,OAAO,mBAAmB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,oBAAoB,CAC7B,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,EAAG,CAAC,aAAa,CAAsC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAClH,IAAI,CAAC,EAAG,CAAC,gBAAgB,CAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC;IAGD,QAAQ,CAAC,EAAwB;QAC/B,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAG,CAAC,aAAa,CAAsC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpI,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,EAAG,CAAC,gBAAgB,CAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/G,CAAC;CACA;AAED,MAAM,OAAO,oBAAoB;IAExB;IACA;IACA;IAHT,YACS,WAAmC,IAAI,EACvC,cAAqC,EAAE,EACvC,eAA2B,EAAE;QAF7B,aAAQ,GAAR,QAAQ,CAA+B;QACvC,gBAAW,GAAX,WAAW,CAA4B;QACvC,iBAAY,GAAZ,YAAY,CAAiB;IACpC,CAAC;IAGH,IAAI,CAAC,OAA2B;QAC9B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3H,MAAM,YAAY,GAAG,mBAAmB,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE9F,OAAO,mBAAmB,CAAC,yBAAyB,CAAC,OAAO,EAC1D,QAAQ,EACR,WAAW,EACX,YAAY,CACb,CAAC;IACJ,CAAC;CACA"}
|