space-data-module-sdk 0.2.0 → 0.2.6
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 +77 -2
- package/package.json +13 -4
- 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 +182 -143
- package/src/compiler/emception.d.ts +60 -0
- package/src/compiler/emception.js +191 -0
- package/src/compiler/emceptionNode.js +234 -0
- package/src/compiler/flatcSupport.js +66 -0
- package/src/compiler/index.d.ts +24 -0
- package/src/compiler/index.js +5 -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 +96 -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
- package/src/runtime/index.d.ts +13 -0
- package/src/runtime/index.js +2 -0
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
// automatically generated by the FlatBuffers compiler, do not modify
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
|
3
|
-
import * as flatbuffers from
|
|
4
|
-
import { BufferMutability } from
|
|
5
|
-
import { BufferOwnership } from
|
|
6
|
-
import { FlatBufferTypeRef } from
|
|
3
|
+
import * as flatbuffers from "flatbuffers";
|
|
4
|
+
import { BufferMutability } from "../../orbpro/stream/buffer-mutability.js";
|
|
5
|
+
import { BufferOwnership } from "../../orbpro/stream/buffer-ownership.js";
|
|
6
|
+
import { FlatBufferTypeRef, } from "../../orbpro/stream/flat-buffer-type-ref.js";
|
|
7
7
|
/**
|
|
8
8
|
* Runtime descriptor for one FlatBuffer frame stored in an arena.
|
|
9
9
|
*/
|
|
10
10
|
export class TypedArenaBuffer {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.bb_pos = 0;
|
|
14
|
-
}
|
|
11
|
+
bb = null;
|
|
12
|
+
bb_pos = 0;
|
|
15
13
|
__init(i, bb) {
|
|
16
14
|
this.bb_pos = i;
|
|
17
15
|
this.bb = bb;
|
|
@@ -25,18 +23,22 @@ export class TypedArenaBuffer {
|
|
|
25
23
|
return (obj || new TypedArenaBuffer()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
|
|
26
24
|
}
|
|
27
25
|
static bufferHasIdentifier(bb) {
|
|
28
|
-
return bb.__has_identifier(
|
|
26
|
+
return bb.__has_identifier("TABF");
|
|
29
27
|
}
|
|
30
28
|
/**
|
|
31
29
|
* Runtime schema identity for this frame.
|
|
32
30
|
*/
|
|
33
31
|
typeRef(obj) {
|
|
34
32
|
const offset = this.bb.__offset(this.bb_pos, 4);
|
|
35
|
-
return offset
|
|
33
|
+
return offset
|
|
34
|
+
? (obj || new FlatBufferTypeRef()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb)
|
|
35
|
+
: null;
|
|
36
36
|
}
|
|
37
37
|
portId(optionalEncoding) {
|
|
38
38
|
const offset = this.bb.__offset(this.bb_pos, 6);
|
|
39
|
-
return offset
|
|
39
|
+
return offset
|
|
40
|
+
? this.bb.__string(this.bb_pos + offset, optionalEncoding)
|
|
41
|
+
: null;
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
44
|
* Required alignment of the underlying frame bytes.
|
|
@@ -64,7 +66,9 @@ export class TypedArenaBuffer {
|
|
|
64
66
|
*/
|
|
65
67
|
ownership() {
|
|
66
68
|
const offset = this.bb.__offset(this.bb_pos, 14);
|
|
67
|
-
return offset
|
|
69
|
+
return offset
|
|
70
|
+
? this.bb.readUint8(this.bb_pos + offset)
|
|
71
|
+
: BufferOwnership.BORROWED;
|
|
68
72
|
}
|
|
69
73
|
/**
|
|
70
74
|
* Generation counter for stale-reference detection.
|
|
@@ -78,14 +82,16 @@ export class TypedArenaBuffer {
|
|
|
78
82
|
*/
|
|
79
83
|
mutability() {
|
|
80
84
|
const offset = this.bb.__offset(this.bb_pos, 18);
|
|
81
|
-
return offset
|
|
85
|
+
return offset
|
|
86
|
+
? this.bb.readUint8(this.bb_pos + offset)
|
|
87
|
+
: BufferMutability.IMMUTABLE;
|
|
82
88
|
}
|
|
83
89
|
/**
|
|
84
90
|
* Flow/runtime trace identifier.
|
|
85
91
|
*/
|
|
86
92
|
traceId() {
|
|
87
93
|
const offset = this.bb.__offset(this.bb_pos, 20);
|
|
88
|
-
return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt(
|
|
94
|
+
return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0");
|
|
89
95
|
}
|
|
90
96
|
/**
|
|
91
97
|
* Logical stream identifier.
|
|
@@ -99,7 +105,7 @@ export class TypedArenaBuffer {
|
|
|
99
105
|
*/
|
|
100
106
|
sequence() {
|
|
101
107
|
const offset = this.bb.__offset(this.bb_pos, 24);
|
|
102
|
-
return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt(
|
|
108
|
+
return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0");
|
|
103
109
|
}
|
|
104
110
|
/**
|
|
105
111
|
* True if this frame closes the stream.
|
|
@@ -136,13 +142,13 @@ export class TypedArenaBuffer {
|
|
|
136
142
|
builder.addFieldInt8(7, mutability, BufferMutability.IMMUTABLE);
|
|
137
143
|
}
|
|
138
144
|
static addTraceId(builder, traceId) {
|
|
139
|
-
builder.addFieldInt64(8, traceId, BigInt(
|
|
145
|
+
builder.addFieldInt64(8, traceId, BigInt("0"));
|
|
140
146
|
}
|
|
141
147
|
static addStreamId(builder, streamId) {
|
|
142
148
|
builder.addFieldInt32(9, streamId, 0);
|
|
143
149
|
}
|
|
144
150
|
static addSequence(builder, sequence) {
|
|
145
|
-
builder.addFieldInt64(10, sequence, BigInt(
|
|
151
|
+
builder.addFieldInt64(10, sequence, BigInt("0"));
|
|
146
152
|
}
|
|
147
153
|
static addEndOfStream(builder, endOfStream) {
|
|
148
154
|
builder.addFieldInt8(11, +endOfStream, +false);
|
|
@@ -152,10 +158,10 @@ export class TypedArenaBuffer {
|
|
|
152
158
|
return offset;
|
|
153
159
|
}
|
|
154
160
|
static finishTypedArenaBufferBuffer(builder, offset) {
|
|
155
|
-
builder.finish(offset,
|
|
161
|
+
builder.finish(offset, "TABF");
|
|
156
162
|
}
|
|
157
163
|
static finishSizePrefixedTypedArenaBufferBuffer(builder, offset) {
|
|
158
|
-
builder.finish(offset,
|
|
164
|
+
builder.finish(offset, "TABF", true);
|
|
159
165
|
}
|
|
160
166
|
static createTypedArenaBuffer(builder, typeRefOffset, portIdOffset, alignment, offset, size, ownership, generation, mutability, traceId, streamId, sequence, endOfStream) {
|
|
161
167
|
TypedArenaBuffer.startTypedArenaBuffer(builder);
|
|
@@ -174,10 +180,10 @@ export class TypedArenaBuffer {
|
|
|
174
180
|
return TypedArenaBuffer.endTypedArenaBuffer(builder);
|
|
175
181
|
}
|
|
176
182
|
unpack() {
|
|
177
|
-
return new TypedArenaBufferT(
|
|
183
|
+
return new TypedArenaBufferT(this.typeRef() !== null ? this.typeRef().unpack() : null, this.portId(), this.alignment(), this.offset(), this.size(), this.ownership(), this.generation(), this.mutability(), this.traceId(), this.streamId(), this.sequence(), this.endOfStream());
|
|
178
184
|
}
|
|
179
185
|
unpackTo(_o) {
|
|
180
|
-
_o.typeRef =
|
|
186
|
+
_o.typeRef = this.typeRef() !== null ? this.typeRef().unpack() : null;
|
|
181
187
|
_o.portId = this.portId();
|
|
182
188
|
_o.alignment = this.alignment();
|
|
183
189
|
_o.offset = this.offset();
|
|
@@ -192,7 +198,19 @@ export class TypedArenaBuffer {
|
|
|
192
198
|
}
|
|
193
199
|
}
|
|
194
200
|
export class TypedArenaBufferT {
|
|
195
|
-
|
|
201
|
+
typeRef;
|
|
202
|
+
portId;
|
|
203
|
+
alignment;
|
|
204
|
+
offset;
|
|
205
|
+
size;
|
|
206
|
+
ownership;
|
|
207
|
+
generation;
|
|
208
|
+
mutability;
|
|
209
|
+
traceId;
|
|
210
|
+
streamId;
|
|
211
|
+
sequence;
|
|
212
|
+
endOfStream;
|
|
213
|
+
constructor(typeRef = null, portId = null, alignment = 8, offset = 0, size = 0, ownership = BufferOwnership.BORROWED, generation = 0, mutability = BufferMutability.IMMUTABLE, traceId = BigInt("0"), streamId = 0, sequence = BigInt("0"), endOfStream = false) {
|
|
196
214
|
this.typeRef = typeRef;
|
|
197
215
|
this.portId = portId;
|
|
198
216
|
this.alignment = alignment;
|
|
@@ -207,8 +225,8 @@ export class TypedArenaBufferT {
|
|
|
207
225
|
this.endOfStream = endOfStream;
|
|
208
226
|
}
|
|
209
227
|
pack(builder) {
|
|
210
|
-
const typeRef =
|
|
211
|
-
const portId =
|
|
228
|
+
const typeRef = this.typeRef !== null ? this.typeRef.pack(builder) : 0;
|
|
229
|
+
const portId = this.portId !== null ? builder.createString(this.portId) : 0;
|
|
212
230
|
return TypedArenaBuffer.createTypedArenaBuffer(builder, typeRef, portId, this.alignment, this.offset, this.size, this.ownership, this.generation, this.mutability, this.traceId, this.streamId, this.sequence, this.endOfStream);
|
|
213
231
|
}
|
|
214
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-arena-buffer.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"typed-arena-buffer.js","sourceRoot":"","sources":["typed-arena-buffer.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
// --- Manifest ---
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export type PayloadWireFormat = "flatbuffer" | "aligned-binary";
|
|
4
|
+
export type InvokeSurface = "direct" | "command";
|
|
5
|
+
|
|
6
|
+
export interface PayloadTypeRef {
|
|
4
7
|
schemaName?: string;
|
|
5
8
|
fileIdentifier?: string;
|
|
6
|
-
schemaHash?: string;
|
|
9
|
+
schemaHash?: string | number[] | Uint8Array;
|
|
7
10
|
acceptsAnyFlatbuffer?: boolean;
|
|
11
|
+
wireFormat?: PayloadWireFormat;
|
|
12
|
+
rootTypeName?: string;
|
|
13
|
+
fixedStringLength?: number;
|
|
14
|
+
byteLength?: number;
|
|
15
|
+
requiredAlignment?: number;
|
|
8
16
|
}
|
|
9
17
|
|
|
18
|
+
export type AllowedType = PayloadTypeRef;
|
|
19
|
+
|
|
10
20
|
export interface AcceptedTypeSet {
|
|
11
21
|
setId: string;
|
|
12
|
-
allowedTypes:
|
|
22
|
+
allowedTypes: PayloadTypeRef[];
|
|
13
23
|
}
|
|
14
24
|
|
|
15
25
|
export interface PortManifest {
|
|
@@ -42,10 +52,11 @@ export interface PluginManifest {
|
|
|
42
52
|
version: string;
|
|
43
53
|
pluginFamily: string;
|
|
44
54
|
capabilities?: string[];
|
|
55
|
+
invokeSurfaces?: InvokeSurface[];
|
|
45
56
|
runtimeTargets?: string[];
|
|
46
57
|
externalInterfaces?: ExternalInterface[];
|
|
47
58
|
methods: MethodManifest[];
|
|
48
|
-
schemasUsed?:
|
|
59
|
+
schemasUsed?: PayloadTypeRef[];
|
|
49
60
|
}
|
|
50
61
|
|
|
51
62
|
export function encodePluginManifest(manifest: PluginManifest): Uint8Array;
|
|
@@ -64,6 +75,61 @@ export function writeEmbeddedManifestArtifacts(options: {
|
|
|
64
75
|
outputDir: string;
|
|
65
76
|
}): Promise<{ sourcePath: string; headerPath: string }>;
|
|
66
77
|
|
|
78
|
+
// --- Invoke ---
|
|
79
|
+
|
|
80
|
+
export interface InvokeFrame {
|
|
81
|
+
portId?: string | null;
|
|
82
|
+
typeRef?: PayloadTypeRef | null;
|
|
83
|
+
alignment?: number;
|
|
84
|
+
offset?: number;
|
|
85
|
+
size?: number;
|
|
86
|
+
ownership?: number | string;
|
|
87
|
+
generation?: number;
|
|
88
|
+
mutability?: number | string;
|
|
89
|
+
traceId?: bigint | number | string;
|
|
90
|
+
streamId?: number;
|
|
91
|
+
sequence?: bigint | number | string;
|
|
92
|
+
endOfStream?: boolean;
|
|
93
|
+
payload?: Uint8Array | ArrayBuffer | ArrayBufferView | null;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface PluginInvokeRequestEnvelope {
|
|
97
|
+
methodId: string;
|
|
98
|
+
inputs?: InvokeFrame[];
|
|
99
|
+
inputFrames?: InvokeFrame[];
|
|
100
|
+
payloadArena?: Uint8Array;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface PluginInvokeResponseEnvelope {
|
|
104
|
+
statusCode?: number;
|
|
105
|
+
yielded?: boolean;
|
|
106
|
+
backlogRemaining?: number;
|
|
107
|
+
outputs?: InvokeFrame[];
|
|
108
|
+
outputFrames?: InvokeFrame[];
|
|
109
|
+
payloadArena?: Uint8Array;
|
|
110
|
+
errorCode?: string | null;
|
|
111
|
+
errorMessage?: string | null;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function encodePluginInvokeRequest(
|
|
115
|
+
request: PluginInvokeRequestEnvelope,
|
|
116
|
+
): Uint8Array;
|
|
117
|
+
export function decodePluginInvokeRequest(
|
|
118
|
+
data: Uint8Array | ArrayBuffer | ArrayBufferView,
|
|
119
|
+
): PluginInvokeRequestEnvelope;
|
|
120
|
+
export function encodePluginInvokeResponse(
|
|
121
|
+
response: PluginInvokeResponseEnvelope,
|
|
122
|
+
): Uint8Array;
|
|
123
|
+
export function decodePluginInvokeResponse(
|
|
124
|
+
data: Uint8Array | ArrayBuffer | ArrayBufferView,
|
|
125
|
+
): PluginInvokeResponseEnvelope;
|
|
126
|
+
export function normalizeInvokeSurfaceName(
|
|
127
|
+
value: InvokeSurface | number | string | null | undefined,
|
|
128
|
+
): InvokeSurface | null;
|
|
129
|
+
export function normalizeInvokeSurfaces(
|
|
130
|
+
value: Array<InvokeSurface | number | string> | null | undefined,
|
|
131
|
+
): InvokeSurface[];
|
|
132
|
+
|
|
67
133
|
// --- Compliance ---
|
|
68
134
|
|
|
69
135
|
export interface ComplianceIssue {
|
|
@@ -342,6 +408,19 @@ export function createRecipientKeypairHex(): Promise<{
|
|
|
342
408
|
privateKeyHex: string;
|
|
343
409
|
}>;
|
|
344
410
|
|
|
411
|
+
export type {
|
|
412
|
+
EmceptionCommandResult,
|
|
413
|
+
SharedEmceptionFileContent,
|
|
414
|
+
SharedEmceptionHandle,
|
|
415
|
+
SharedEmceptionSession,
|
|
416
|
+
} from "./compiler/emception.js";
|
|
417
|
+
|
|
418
|
+
export {
|
|
419
|
+
createSharedEmceptionSession,
|
|
420
|
+
loadSharedEmception,
|
|
421
|
+
withSharedEmception,
|
|
422
|
+
} from "./compiler/emception.js";
|
|
423
|
+
|
|
345
424
|
// --- Standards ---
|
|
346
425
|
|
|
347
426
|
export interface StandardsEntry {
|
|
@@ -356,7 +435,7 @@ export interface StandardsEntry {
|
|
|
356
435
|
export function loadStandardsCatalog(): Promise<StandardsEntry[]>;
|
|
357
436
|
export function loadKnownTypeCatalog(): Promise<StandardsEntry[]>;
|
|
358
437
|
export function resolveStandardsTypeRef(
|
|
359
|
-
typeRef:
|
|
438
|
+
typeRef: PayloadTypeRef,
|
|
360
439
|
catalog?: StandardsEntry[],
|
|
361
440
|
): StandardsEntry | null;
|
|
362
441
|
export function validateManifestAgainstStandardsCatalog(
|
|
@@ -834,6 +913,13 @@ export const DefaultManifestExports: {
|
|
|
834
913
|
flowSizeSymbol: string;
|
|
835
914
|
};
|
|
836
915
|
|
|
916
|
+
export const DefaultInvokeExports: {
|
|
917
|
+
invokeSymbol: string;
|
|
918
|
+
allocSymbol: string;
|
|
919
|
+
freeSymbol: string;
|
|
920
|
+
commandSymbol: string;
|
|
921
|
+
};
|
|
922
|
+
|
|
837
923
|
export const DrainPolicy: {
|
|
838
924
|
SINGLE_SHOT: string;
|
|
839
925
|
DRAIN_UNTIL_YIELD: string;
|
|
@@ -870,6 +956,11 @@ export const ExternalInterfaceKind: {
|
|
|
870
956
|
HOST_SERVICE: string;
|
|
871
957
|
};
|
|
872
958
|
|
|
959
|
+
export const InvokeSurface: {
|
|
960
|
+
DIRECT: string;
|
|
961
|
+
COMMAND: string;
|
|
962
|
+
};
|
|
963
|
+
|
|
873
964
|
export const RuntimeTarget: {
|
|
874
965
|
NODE: string;
|
|
875
966
|
BROWSER: string;
|
package/src/index.js
CHANGED
|
@@ -6,10 +6,13 @@ export * from "./compiler/index.js";
|
|
|
6
6
|
export * from "./bundle/index.js";
|
|
7
7
|
export * from "./standards/index.js";
|
|
8
8
|
export * from "./host/index.js";
|
|
9
|
+
export * from "./invoke/index.js";
|
|
9
10
|
export {
|
|
11
|
+
DefaultInvokeExports,
|
|
10
12
|
DefaultManifestExports,
|
|
11
13
|
DrainPolicy,
|
|
12
14
|
ExternalInterfaceDirection,
|
|
13
15
|
ExternalInterfaceKind,
|
|
16
|
+
InvokeSurface,
|
|
14
17
|
RuntimeTarget,
|
|
15
18
|
} from "./runtime/constants.js";
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import * as flatbuffers from "flatbuffers";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
PluginInvokeRequest,
|
|
5
|
+
PluginInvokeRequestT,
|
|
6
|
+
} from "../generated/orbpro/invoke/plugin-invoke-request.js";
|
|
7
|
+
import {
|
|
8
|
+
PluginInvokeResponse,
|
|
9
|
+
PluginInvokeResponseT,
|
|
10
|
+
} from "../generated/orbpro/invoke/plugin-invoke-response.js";
|
|
11
|
+
import { InvokeSurface } from "../generated/orbpro/manifest/invoke-surface.js";
|
|
12
|
+
import { BufferMutability } from "../generated/orbpro/stream/buffer-mutability.js";
|
|
13
|
+
import { BufferOwnership } from "../generated/orbpro/stream/buffer-ownership.js";
|
|
14
|
+
import { FlatBufferTypeRefT } from "../generated/orbpro/stream/flat-buffer-type-ref.js";
|
|
15
|
+
import { TypedArenaBuffer, TypedArenaBufferT } from "../generated/orbpro/stream/typed-arena-buffer.js";
|
|
16
|
+
import { toUint8Array } from "../runtime/bufferLike.js";
|
|
17
|
+
|
|
18
|
+
function toByteBuffer(data) {
|
|
19
|
+
if (data instanceof flatbuffers.ByteBuffer) {
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
const bytes = toUint8Array(data);
|
|
23
|
+
if (bytes) {
|
|
24
|
+
return new flatbuffers.ByteBuffer(bytes);
|
|
25
|
+
}
|
|
26
|
+
throw new TypeError(
|
|
27
|
+
"Expected ByteBuffer, Uint8Array, ArrayBufferView, or ArrayBuffer.",
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function normalizeSchemaHash(value) {
|
|
32
|
+
if (!value) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
if (value instanceof Uint8Array) {
|
|
36
|
+
return Array.from(value);
|
|
37
|
+
}
|
|
38
|
+
if (ArrayBuffer.isView(value)) {
|
|
39
|
+
return Array.from(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));
|
|
40
|
+
}
|
|
41
|
+
if (Array.isArray(value)) {
|
|
42
|
+
return value.map((byte) => Number(byte) & 0xff);
|
|
43
|
+
}
|
|
44
|
+
const normalized = String(value).trim().replace(/^0x/i, "");
|
|
45
|
+
if (!normalized || normalized.length % 2 !== 0) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const bytes = [];
|
|
49
|
+
for (let index = 0; index < normalized.length; index += 2) {
|
|
50
|
+
bytes.push(parseInt(normalized.slice(index, index + 2), 16));
|
|
51
|
+
}
|
|
52
|
+
return bytes;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function normalizeUnsignedInteger(value, fallback = 0) {
|
|
56
|
+
const normalized = Number(value ?? fallback);
|
|
57
|
+
if (!Number.isFinite(normalized)) {
|
|
58
|
+
return fallback;
|
|
59
|
+
}
|
|
60
|
+
return Math.max(0, Math.trunc(normalized));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function normalizeBigInt(value, fallback = BigInt(0)) {
|
|
64
|
+
if (typeof value === "bigint") {
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
68
|
+
return BigInt(Math.trunc(value));
|
|
69
|
+
}
|
|
70
|
+
if (typeof value === "string" && value.trim()) {
|
|
71
|
+
try {
|
|
72
|
+
return BigInt(value.trim());
|
|
73
|
+
} catch {
|
|
74
|
+
return fallback;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return fallback;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function normalizePayloadWireFormat(value) {
|
|
81
|
+
if (value === 1 || value === "aligned-binary") {
|
|
82
|
+
return "aligned-binary";
|
|
83
|
+
}
|
|
84
|
+
return "flatbuffer";
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function toFlatBufferTypeRefT(value = {}, payloadLength = 0) {
|
|
88
|
+
if (value instanceof FlatBufferTypeRefT) {
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
const wireFormat = normalizePayloadWireFormat(value.wireFormat);
|
|
92
|
+
const requiredAlignment = normalizeUnsignedInteger(value.requiredAlignment);
|
|
93
|
+
const fixedStringLength = normalizeUnsignedInteger(value.fixedStringLength);
|
|
94
|
+
const byteLength =
|
|
95
|
+
wireFormat === "aligned-binary"
|
|
96
|
+
? normalizeUnsignedInteger(value.byteLength, payloadLength)
|
|
97
|
+
: normalizeUnsignedInteger(value.byteLength);
|
|
98
|
+
return new FlatBufferTypeRefT(
|
|
99
|
+
value.schemaName ?? null,
|
|
100
|
+
value.fileIdentifier ?? null,
|
|
101
|
+
normalizeSchemaHash(value.schemaHash),
|
|
102
|
+
value.acceptsAnyFlatbuffer === true,
|
|
103
|
+
wireFormat,
|
|
104
|
+
value.rootTypeName ?? null,
|
|
105
|
+
fixedStringLength,
|
|
106
|
+
byteLength,
|
|
107
|
+
requiredAlignment,
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function alignOffset(offset, alignment) {
|
|
112
|
+
if (alignment <= 1) {
|
|
113
|
+
return offset;
|
|
114
|
+
}
|
|
115
|
+
const remainder = offset % alignment;
|
|
116
|
+
return remainder === 0 ? offset : offset + alignment - remainder;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function normalizeArenaFrame(frame = {}, offset) {
|
|
120
|
+
const payload = toUint8Array(frame.payload ?? new Uint8Array()) ?? new Uint8Array();
|
|
121
|
+
const typeRef = toFlatBufferTypeRefT(frame.typeRef ?? frame.allowedType ?? {}, payload.length);
|
|
122
|
+
const alignment = Math.max(
|
|
123
|
+
1,
|
|
124
|
+
normalizeUnsignedInteger(
|
|
125
|
+
frame.alignment,
|
|
126
|
+
typeRef.requiredAlignment > 0 ? typeRef.requiredAlignment : 8,
|
|
127
|
+
),
|
|
128
|
+
);
|
|
129
|
+
const alignedOffset = alignOffset(offset, alignment);
|
|
130
|
+
return {
|
|
131
|
+
payload,
|
|
132
|
+
padding: alignedOffset - offset,
|
|
133
|
+
buffer: new TypedArenaBufferT(
|
|
134
|
+
typeRef,
|
|
135
|
+
frame.portId ?? null,
|
|
136
|
+
alignment,
|
|
137
|
+
alignedOffset,
|
|
138
|
+
payload.length,
|
|
139
|
+
frame.ownership ?? BufferOwnership.BORROWED,
|
|
140
|
+
normalizeUnsignedInteger(frame.generation),
|
|
141
|
+
frame.mutability ?? BufferMutability.IMMUTABLE,
|
|
142
|
+
normalizeBigInt(frame.traceId),
|
|
143
|
+
normalizeUnsignedInteger(frame.streamId),
|
|
144
|
+
normalizeBigInt(frame.sequence),
|
|
145
|
+
frame.endOfStream === true,
|
|
146
|
+
),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function packArenaFrames(frames = []) {
|
|
151
|
+
const packedFrames = [];
|
|
152
|
+
const arena = [];
|
|
153
|
+
let offset = 0;
|
|
154
|
+
for (const frame of frames) {
|
|
155
|
+
const normalized = normalizeArenaFrame(frame, offset);
|
|
156
|
+
for (let index = 0; index < normalized.padding; index += 1) {
|
|
157
|
+
arena.push(0);
|
|
158
|
+
}
|
|
159
|
+
arena.push(...normalized.payload);
|
|
160
|
+
offset = normalized.buffer.offset + normalized.buffer.size;
|
|
161
|
+
packedFrames.push(normalized.buffer);
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
frames: packedFrames,
|
|
165
|
+
arena: Uint8Array.from(arena),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function materializeArenaFrames(frames = [], arenaBytes) {
|
|
170
|
+
return frames.map((frame) => {
|
|
171
|
+
const offset = normalizeUnsignedInteger(frame.offset);
|
|
172
|
+
const size = normalizeUnsignedInteger(frame.size);
|
|
173
|
+
const payload = new Uint8Array(arenaBytes.slice(offset, offset + size));
|
|
174
|
+
return {
|
|
175
|
+
...frame,
|
|
176
|
+
payload,
|
|
177
|
+
typeRef: frame.typeRef ?? null,
|
|
178
|
+
};
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function encodeRoot(builderFactory, finish, value) {
|
|
183
|
+
const builder = new flatbuffers.Builder(1024);
|
|
184
|
+
finish(builder, builderFactory(value).pack(builder));
|
|
185
|
+
return builder.asUint8Array();
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export function encodePluginInvokeRequest(request = {}) {
|
|
189
|
+
const { frames, arena } = packArenaFrames(
|
|
190
|
+
Array.isArray(request.inputs) ? request.inputs : request.inputFrames ?? [],
|
|
191
|
+
);
|
|
192
|
+
return encodeRoot(
|
|
193
|
+
(value) =>
|
|
194
|
+
new PluginInvokeRequestT(value.methodId ?? null, frames, Array.from(arena)),
|
|
195
|
+
PluginInvokeRequest.finishPluginInvokeRequestBuffer,
|
|
196
|
+
request,
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export function decodePluginInvokeRequest(data) {
|
|
201
|
+
const bb = toByteBuffer(data);
|
|
202
|
+
if (!PluginInvokeRequest.bufferHasIdentifier(bb)) {
|
|
203
|
+
throw new Error("Plugin invoke request buffer identifier mismatch.");
|
|
204
|
+
}
|
|
205
|
+
const unpacked = PluginInvokeRequest.getRootAsPluginInvokeRequest(bb).unpack();
|
|
206
|
+
const arena = Uint8Array.from(unpacked.payloadArena ?? []);
|
|
207
|
+
const inputs = materializeArenaFrames(unpacked.inputFrames ?? [], arena);
|
|
208
|
+
return {
|
|
209
|
+
methodId: unpacked.methodId ?? null,
|
|
210
|
+
inputFrames: inputs,
|
|
211
|
+
inputs,
|
|
212
|
+
payloadArena: arena,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export function encodePluginInvokeResponse(response = {}) {
|
|
217
|
+
const { frames, arena } = packArenaFrames(
|
|
218
|
+
Array.isArray(response.outputs) ? response.outputs : response.outputFrames ?? [],
|
|
219
|
+
);
|
|
220
|
+
return encodeRoot(
|
|
221
|
+
(value) =>
|
|
222
|
+
new PluginInvokeResponseT(
|
|
223
|
+
Number(value.statusCode ?? 0),
|
|
224
|
+
value.yielded === true,
|
|
225
|
+
normalizeUnsignedInteger(value.backlogRemaining),
|
|
226
|
+
frames,
|
|
227
|
+
Array.from(arena),
|
|
228
|
+
value.errorCode ?? null,
|
|
229
|
+
value.errorMessage ?? null,
|
|
230
|
+
),
|
|
231
|
+
PluginInvokeResponse.finishPluginInvokeResponseBuffer,
|
|
232
|
+
response,
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export function decodePluginInvokeResponse(data) {
|
|
237
|
+
const bb = toByteBuffer(data);
|
|
238
|
+
if (!PluginInvokeResponse.bufferHasIdentifier(bb)) {
|
|
239
|
+
throw new Error("Plugin invoke response buffer identifier mismatch.");
|
|
240
|
+
}
|
|
241
|
+
const unpacked = PluginInvokeResponse.getRootAsPluginInvokeResponse(bb).unpack();
|
|
242
|
+
const arena = Uint8Array.from(unpacked.payloadArena ?? []);
|
|
243
|
+
const outputs = materializeArenaFrames(unpacked.outputFrames ?? [], arena);
|
|
244
|
+
return {
|
|
245
|
+
statusCode: unpacked.statusCode ?? 0,
|
|
246
|
+
yielded: unpacked.yielded === true,
|
|
247
|
+
backlogRemaining: unpacked.backlogRemaining ?? 0,
|
|
248
|
+
outputFrames: outputs,
|
|
249
|
+
outputs,
|
|
250
|
+
payloadArena: arena,
|
|
251
|
+
errorCode: unpacked.errorCode ?? null,
|
|
252
|
+
errorMessage: unpacked.errorMessage ?? null,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export function normalizeInvokeSurfaceName(value) {
|
|
257
|
+
if (value === InvokeSurface.COMMAND || value === "command") {
|
|
258
|
+
return "command";
|
|
259
|
+
}
|
|
260
|
+
if (value === InvokeSurface.DIRECT || value === "direct") {
|
|
261
|
+
return "direct";
|
|
262
|
+
}
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export function normalizeInvokeSurfaces(value) {
|
|
267
|
+
if (!Array.isArray(value)) {
|
|
268
|
+
return [];
|
|
269
|
+
}
|
|
270
|
+
const surfaces = [];
|
|
271
|
+
for (const entry of value) {
|
|
272
|
+
const normalized = normalizeInvokeSurfaceName(entry);
|
|
273
|
+
if (normalized && !surfaces.includes(normalized)) {
|
|
274
|
+
surfaces.push(normalized);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return surfaces;
|
|
278
|
+
}
|