space-data-module-sdk 0.5.14 → 0.5.18

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.
Files changed (37) hide show
  1. package/README.md +91 -1
  2. package/package.json +8 -4
  3. package/schemas/HostStorageAbi.fbs +53 -0
  4. package/src/bundle/codec.js +1 -1
  5. package/src/compliance/pluginCompliance.js +0 -130
  6. package/src/generated/orbpro/invoke/plugin-invoke-request.js +1 -1
  7. package/src/generated/orbpro/invoke/plugin-invoke-response.js +1 -1
  8. package/src/generated/orbpro/manifest/accepted-type-set.js +1 -1
  9. package/src/generated/orbpro/manifest/build-artifact.js +1 -1
  10. package/src/generated/orbpro/manifest/host-capability.js +1 -1
  11. package/src/generated/orbpro/manifest/method-manifest.js +1 -1
  12. package/src/generated/orbpro/manifest/plugin-manifest.js +1 -1
  13. package/src/generated/orbpro/manifest/port-manifest.js +1 -1
  14. package/src/generated/orbpro/manifest/protocol-spec.js +1 -1
  15. package/src/generated/orbpro/manifest/timer-spec.js +1 -1
  16. package/src/generated/orbpro/module/canonicalization-rule.js +1 -1
  17. package/src/generated/orbpro/module/module-bundle-entry.js +1 -1
  18. package/src/generated/orbpro/module/module-bundle.js +1 -1
  19. package/src/generated/orbpro/stream/flat-buffer-type-ref.js +1 -1
  20. package/src/generated/orbpro/stream/typed-arena-buffer.js +1 -1
  21. package/src/index.d.ts +157 -1
  22. package/src/index.js +1 -0
  23. package/src/invoke/codec.js +10 -8
  24. package/src/manifest/codec.js +1 -1
  25. package/src/runtime-host/flatsqlRuntimeStore.js +217 -0
  26. package/src/runtime-host/index.js +21 -0
  27. package/src/runtime-host/moduleRegistry.js +92 -0
  28. package/src/runtime-host/runtimeRegionStore.js +245 -0
  29. package/src/testing/buildWasmEdgeRunner.js +253 -0
  30. package/src/testing/index.d.ts +311 -0
  31. package/src/testing/index.js +21 -0
  32. package/src/testing/moduleHarness.js +163 -0
  33. package/src/testing/native/wasmedge_emscripten_pthread_runner.c +3111 -0
  34. package/src/testing/processInvoke.js +467 -0
  35. package/src/testing/publicationProtectionDemo.js +271 -0
  36. package/src/testing/streamInvokeCodec.js +175 -0
  37. package/src/transport/records.js +56 -55
package/README.md CHANGED
@@ -14,11 +14,52 @@ This repository is the source of truth for module-level concerns:
14
14
  - the `sds.bundle` single-file container
15
15
  - deployment authorization plus SDS publication records (`REC`, `PNM`, `ENC`)
16
16
  - the first canonical module hostcall/import ABI surface
17
+ - the canonical runtime-host model for append-only standards rows, host-managed
18
+ runtime regions, and dynamic module installation/loading
19
+ - shared module-level testing/runtime harnesses, including the WasmEdge
20
+ process runner used by package-level validation suites
17
21
 
18
22
  <p align="center">
19
23
  <img src="docs/architecture.svg" alt="Module architecture overview" width="820" />
20
24
  </p>
21
25
 
26
+ ## Shared Harness Ownership
27
+
28
+ This repo owns the generic module-side runtime harnesses used across the stack:
29
+
30
+ - `createModuleHarness(...)` for process and WasmEdge-backed module invocation
31
+ - `resolveModuleHarnessLaunchPlan(...)` for portable launch planning
32
+ - `buildWasmEdgeEmscriptenPthreadRunner(...)` plus the shared native runner
33
+ source and runner-level pthread smoke test
34
+
35
+ Flow-specific standalone harnessing lives in `sdn-flow`, which layers flow
36
+ enqueue/drain behavior on top of its compiled standalone runtime host. Package-
37
+ specific validation suites, including conjunction replay/V&V, are expected to
38
+ sit on top of these shared harnesses instead of defining their own runtime
39
+ process model.
40
+
41
+ ## Canonical Runtime Host
42
+
43
+ The SDK now owns the durable runtime identity model used by OrbPro, browser and
44
+ server SDN hosts, and the evolving WasmEdge harness:
45
+
46
+ - standards rows are addressed only by `($SCHEMA_FILE_ID, rowId)`
47
+ - `rowId` is append-only and never reused
48
+ - aligned-binary runtime state is addressed only by `(regionId, recordIndex)`
49
+ - raw pointers remain internal execution details and are not durable APIs
50
+
51
+ The minimal host surface lives under `src/runtime-host/` and covers three
52
+ responsibilities:
53
+
54
+ - `createFlatSqlRuntimeStore()` for append-only row handles and row resolution
55
+ - `createRuntimeRegionStore()` for host-allocated aligned-binary regions and
56
+ externally backed record-view descriptors
57
+ - `createModuleRegistry()` for dynamic install/load/unload/invoke
58
+
59
+ `createRuntimeHost()` composes those stores into the canonical SDK host model.
60
+ OrbPro layers entity/view helpers on top of that host instead of inventing a
61
+ separate durable identity model.
62
+
22
63
  ## Module Artifact Model
23
64
 
24
65
  A compliant module built with this SDK is always a valid `.wasm` artifact with:
@@ -178,6 +219,11 @@ semantics.
178
219
  This repo now exposes a manifest-driven harness generator from
179
220
  `space-data-module-sdk/testing` and two complementary integration suites:
180
221
 
222
+ - shared process-level helpers for command-surface runtimes:
223
+ - `createPluginInvokeProcessClient(...)`
224
+ - `resolveWasmEdgePluginLaunchPlan(...)`
225
+ - `buildWasmEdgeEmscriptenPthreadRunner(...)`
226
+
181
227
  - `npm run test:runtime-matrix`
182
228
  - cross-language runtime smoke across the same WASM in Node.js, Go, Python,
183
229
  Rust, Java, C#, and Swift
@@ -299,6 +345,46 @@ The reference path lives in
299
345
  Standard bundle payloads now include the optional `deployment-plan` JSON entry
300
346
  for resolved protocol installations and producer input bindings.
301
347
 
348
+ ## Publication Protection Extensions
349
+
350
+ Digital signature and encrypted-delivery metadata are publication-layer
351
+ extensions, not a second module format. The canonical module is still:
352
+
353
+ - valid `.wasm`
354
+ - optionally carrying `sds.bundle` as a wasm custom section
355
+ - optionally carrying one appended SDS `REC` trailer after the wasm bytes
356
+
357
+ That trailing `REC` FlatBuffer is the standards-backed container for
358
+ publication records:
359
+
360
+ - `PNM` is the publication notice / digital-signature record
361
+ - identifies the artifact
362
+ - carries the CID and publish timestamp
363
+ - carries signature metadata so a loader can verify who published the module
364
+ - `ENC` is the encrypted-delivery record
365
+ - carries the X25519 / AES-CTR / HKDF parameters needed to decrypt the
366
+ protected transport payload
367
+ - does not change the canonical module ABI or manifest shape
368
+
369
+ The loader contract is always:
370
+
371
+ 1. Start with the protected blob.
372
+ 2. Scan backward for the trailing `REC` footer.
373
+ 3. Parse `REC` using the standards-generated `REC`, `PNM`, and `ENC`
374
+ FlatBuffers from `spacedatastandards.org`.
375
+ 4. Resolve `PNM` for signature/publication metadata.
376
+ 5. Resolve `ENC` if the delivery was encrypted.
377
+ 6. Strip the trailer or decrypt the protected payload.
378
+ 7. Hand the remaining raw wasm bytes to the runtime.
379
+
380
+ Aligned-binary payloads are a separate invoke-ABI optimization. They do not
381
+ replace the canonical FlatBuffer schema. If a port advertises
382
+ `wireFormat: "aligned-binary"`, it must also advertise the regular
383
+ `wireFormat: "flatbuffer"` fallback for the same schema and file identifier in
384
+ the same accepted type set. The publication demo in the local lab uses a
385
+ regular `OMM.fbs` request and a `StateVector.fbs` response that advertises both
386
+ the canonical FlatBuffer fallback and the aligned-binary layout metadata.
387
+
302
388
  ## Module Publication
303
389
 
304
390
  Packages that publish Space Data modules use the canonical `sdn-module`
@@ -402,10 +488,14 @@ npm run start:lab
402
488
 
403
489
  Then open `http://localhost:4318`.
404
490
 
491
+ Use the `Run Publication Demo` button to generate a protected demo artifact and
492
+ inspect the parsed `REC`, `PNM`, and `ENC` records produced by the real
493
+ `spacedatastandards.org` generated message classes.
494
+
405
495
  ## Related Projects
406
496
 
407
497
  - [`spacedatastandards.org`](https://spacedatastandards.org)
408
- - [`@digitalarsenal/sdn-flow`](https://github.com/DigitalArsenal/sdn-flow)
498
+ - [`sdn-flow`](https://github.com/DigitalArsenal/sdn-flow)
409
499
  - [`hd-wallet-wasm`](https://github.com/nicktj-dev/hd-wallet-wasm)
410
500
 
411
501
  ## Development
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "space-data-module-sdk",
3
- "version": "0.5.14",
3
+ "version": "0.5.18",
4
4
  "description": "Module SDK for building, validating, signing, and deploying WebAssembly modules on the Space Data Network.",
5
5
  "type": "module",
6
6
  "types": "./src/index.d.ts",
@@ -31,6 +31,10 @@
31
31
  "./deployment": "./src/deployment/index.js",
32
32
  "./invoke": "./src/invoke/index.js",
33
33
  "./runtime": "./src/runtime/index.js",
34
+ "./runtime-host": {
35
+ "types": "./src/index.d.ts",
36
+ "default": "./src/runtime-host/index.js"
37
+ },
34
38
  "./testing": "./src/testing/index.js",
35
39
  "./standards": "./src/standards/index.js",
36
40
  "./schemas/*": "./schemas/*"
@@ -50,15 +54,15 @@
50
54
  "prepublishOnly": "npm test && npm run check:compliance"
51
55
  },
52
56
  "dependencies": {
53
- "flatc-wasm": "25.12.19-wasm.43",
54
57
  "flatbuffers": "^25.9.23",
58
+ "flatc-wasm": "25.12.19-wasm.43",
59
+ "flatsql": "^0.4.0",
55
60
  "hd-wallet-wasm": "1.6.0",
56
61
  "sdn-emception": "1.0.0",
57
62
  "spacedatastandards.org": "git+https://github.com/DigitalArsenal/spacedatastandards.org.git#09af351a1"
58
63
  },
59
64
  "devDependencies": {
60
- "express": "^4.21.2",
61
- "flatsql": "^0.4.0"
65
+ "express": "^4.21.2"
62
66
  },
63
67
  "engines": {
64
68
  "node": ">=20.0.0"
@@ -0,0 +1,53 @@
1
+ namespace orbpro.hoststorage;
2
+
3
+ table RowHandle {
4
+ schema_file_id: string (required);
5
+ row_id: uint64;
6
+ }
7
+
8
+ table RuntimeRegionRecord {
9
+ region_id: uint64;
10
+ record_index: uint32;
11
+ layout_id: string (required);
12
+ record_byte_length: uint32;
13
+ byte_length: uint32;
14
+ alignment: uint16 = 1;
15
+ bytes: [ubyte];
16
+ }
17
+
18
+ table ResolveRowViewRequest {
19
+ handle: RowHandle;
20
+ }
21
+
22
+ table ResolveRowViewResult {
23
+ handle: RowHandle;
24
+ found: bool = false;
25
+ }
26
+
27
+ table ResolveRegionRecordRequest {
28
+ region_id: uint64;
29
+ record_index: uint32;
30
+ }
31
+
32
+ table ResolveRegionRecordResult {
33
+ record: RuntimeRegionRecord;
34
+ found: bool = false;
35
+ }
36
+
37
+ table AllocateRuntimeRegionRequest {
38
+ layout_id: string (required);
39
+ record_byte_length: uint32;
40
+ alignment: uint16 = 1;
41
+ initial_record_count: uint32;
42
+ }
43
+
44
+ table AllocateRuntimeRegionResult {
45
+ region_id: uint64;
46
+ layout_id: string (required);
47
+ record_byte_length: uint32;
48
+ alignment: uint16 = 1;
49
+ record_count: uint32;
50
+ }
51
+
52
+ root_type ResolveRowViewRequest;
53
+ file_identifier "HSTR";
@@ -1,4 +1,4 @@
1
- import * as flatbuffers from "flatbuffers";
1
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
2
2
 
3
3
  import {
4
4
  CanonicalizationRuleT,
@@ -167,134 +167,6 @@ function normalizePayloadWireFormatName(value) {
167
167
  return null;
168
168
  }
169
169
 
170
- function normalizedPluginFamilyName(value) {
171
- if (!isNonEmptyString(value)) {
172
- return null;
173
- }
174
- return value
175
- .trim()
176
- .toLowerCase()
177
- .replace(/-/g, "_");
178
- }
179
-
180
- function typeSetHasDualWireFormats(typeSet) {
181
- if (!Array.isArray(typeSet?.allowedTypes) || typeSet.allowedTypes.length === 0) {
182
- return false;
183
- }
184
- let hasFlatbuffer = false;
185
- let hasAlignedBinary = false;
186
- for (const allowedType of typeSet.allowedTypes) {
187
- const wireFormat = normalizePayloadWireFormatName(allowedType?.wireFormat);
188
- if (wireFormat === "flatbuffer") {
189
- hasFlatbuffer = true;
190
- } else if (wireFormat === "aligned-binary") {
191
- hasAlignedBinary = true;
192
- }
193
- }
194
- return hasFlatbuffer && hasAlignedBinary;
195
- }
196
-
197
- function validateCanonicalDualFormatPort(port, issues, location, methodId, portId) {
198
- if (!port) {
199
- pushIssue(
200
- issues,
201
- "error",
202
- "propagator-missing-canonical-port",
203
- `Canonical propagator method "${methodId}" must declare port "${portId}".`,
204
- location,
205
- );
206
- return;
207
- }
208
- if (!Array.isArray(port.acceptedTypeSets) || port.acceptedTypeSets.length === 0) {
209
- pushIssue(
210
- issues,
211
- "error",
212
- "propagator-missing-canonical-port",
213
- `Canonical propagator method "${methodId}" port "${portId}" must declare acceptedTypeSets.`,
214
- `${location}.acceptedTypeSets`,
215
- );
216
- return;
217
- }
218
- port.acceptedTypeSets.forEach((typeSet, index) => {
219
- if (!typeSetHasDualWireFormats(typeSet)) {
220
- pushIssue(
221
- issues,
222
- "error",
223
- "canonical-port-missing-dual-wire-format",
224
- `Canonical propagator method "${methodId}" port "${portId}" acceptedTypeSet "${typeSet?.setId ?? index}" must accept both regular flatbuffer and aligned-binary payloads.`,
225
- `${location}.acceptedTypeSets[${index}]`,
226
- );
227
- }
228
- });
229
- }
230
-
231
- function validateCanonicalPropagatorContract(manifest, issues, sourceName) {
232
- if (normalizedPluginFamilyName(manifest?.pluginFamily) !== "propagator") {
233
- return;
234
- }
235
-
236
- const methods = Array.isArray(manifest?.methods) ? manifest.methods : [];
237
- const methodRequirements = [
238
- {
239
- methodId: "ingest_omm",
240
- inputPorts: ["omm"],
241
- outputPorts: [],
242
- },
243
- {
244
- methodId: "describe_sources_batch",
245
- inputPorts: ["request"],
246
- outputPorts: ["result"],
247
- },
248
- {
249
- methodId: "propagate_state",
250
- inputPorts: ["request"],
251
- outputPorts: ["state"],
252
- },
253
- ];
254
-
255
- for (const requirement of methodRequirements) {
256
- const methodIndex = methods.findIndex(
257
- (method) => method?.methodId === requirement.methodId,
258
- );
259
- if (methodIndex === -1) {
260
- pushIssue(
261
- issues,
262
- "error",
263
- "propagator-missing-canonical-method",
264
- `Propagator plugins must declare canonical method "${requirement.methodId}".`,
265
- `${sourceName}.methods`,
266
- );
267
- continue;
268
- }
269
- const method = methods[methodIndex];
270
- const location = `${sourceName}.methods[${methodIndex}]`;
271
- for (const portId of requirement.inputPorts) {
272
- const port = Array.isArray(method.inputPorts)
273
- ? method.inputPorts.find((entry) => entry?.portId === portId)
274
- : null;
275
- validateCanonicalDualFormatPort(
276
- port,
277
- issues,
278
- `${location}.inputPorts`,
279
- requirement.methodId,
280
- portId,
281
- );
282
- }
283
- for (const portId of requirement.outputPorts) {
284
- const port = Array.isArray(method.outputPorts)
285
- ? method.outputPorts.find((entry) => entry?.portId === portId)
286
- : null;
287
- validateCanonicalDualFormatPort(
288
- port,
289
- issues,
290
- `${location}.outputPorts`,
291
- requirement.methodId,
292
- portId,
293
- );
294
- }
295
- }
296
- }
297
-
298
170
  function validateStringField(issues, value, location, label) {
299
171
  if (!isNonEmptyString(value)) {
300
172
  pushIssue(issues, "error", "missing-string", `${label} must be a non-empty string.`, location);
@@ -1387,8 +1259,6 @@ export function validatePluginManifest(manifest, options = {}) {
1387
1259
  }
1388
1260
  });
1389
1261
 
1390
- validateCanonicalPropagatorContract(manifest, issues, sourceName);
1391
-
1392
1262
  if (manifest.timers !== undefined && !Array.isArray(manifest.timers)) {
1393
1263
  pushIssue(
1394
1264
  issues,
@@ -1,6 +1,6 @@
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 'flatbuffers';
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { TypedArenaBuffer } from '../../orbpro/stream/typed-arena-buffer.js';
5
5
  /**
6
6
  * Canonical invoke envelope consumed by direct ABI and command-mode execution.
@@ -1,6 +1,6 @@
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 'flatbuffers';
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { TypedArenaBuffer } from '../../orbpro/stream/typed-arena-buffer.js';
5
5
  /**
6
6
  * Canonical invoke result emitted by direct ABI and command-mode execution.
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { FlatBufferTypeRef, } from "../../orbpro/stream/flat-buffer-type-ref.js";
5
5
  /**
6
6
  * Accepted schema family for a port.
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  /**
5
5
  * Build artifact emitted by the plugin toolchain.
6
6
  */
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { CapabilityKind } from "../../orbpro/manifest/capability-kind.js";
5
5
  /**
6
6
  * One host capability dependency.
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { DrainPolicy } from "../../orbpro/manifest/drain-policy.js";
5
5
  import { PortManifest, } from "../../orbpro/manifest/port-manifest.js";
6
6
  /**
@@ -1,6 +1,6 @@
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 'flatbuffers';
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { BuildArtifact } from '../../orbpro/manifest/build-artifact.js';
5
5
  import { HostCapability } from '../../orbpro/manifest/host-capability.js';
6
6
  import { MethodManifest } from '../../orbpro/manifest/method-manifest.js';
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { AcceptedTypeSet, } from "../../orbpro/manifest/accepted-type-set.js";
5
5
  /**
6
6
  * One input or output port on a method.
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  /**
5
5
  * Protocol handler declared by a plugin.
6
6
  */
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  /**
5
5
  * Timer entry declared by a plugin.
6
6
  */
@@ -1,6 +1,6 @@
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 'flatbuffers';
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  /**
5
5
  * Canonicalization rule applied before hashing or signature verification.
6
6
  */
@@ -1,6 +1,6 @@
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 'flatbuffers';
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { ModuleBundleEntryRole } from '../../orbpro/module/module-bundle-entry-role.js';
5
5
  import { ModulePayloadEncoding } from '../../orbpro/module/module-payload-encoding.js';
6
6
  import { FlatBufferTypeRef } from '../../orbpro/stream/flat-buffer-type-ref.js';
@@ -1,6 +1,6 @@
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 'flatbuffers';
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { CanonicalizationRule } from '../../orbpro/module/canonicalization-rule.js';
5
5
  import { ModuleBundleEntry } from '../../orbpro/module/module-bundle-entry.js';
6
6
  /**
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { PayloadWireFormat } from "../../orbpro/stream/payload-wire-format.js";
5
5
  function normalizePayloadWireFormat(value) {
6
6
  if (value === PayloadWireFormat.ALIGNED_BINARY) {
@@ -1,6 +1,6 @@
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 "flatbuffers";
3
+ import * as flatbuffers from "flatbuffers/mjs/flatbuffers.js";
4
4
  import { BufferMutability } from "../../orbpro/stream/buffer-mutability.js";
5
5
  import { BufferOwnership } from "../../orbpro/stream/buffer-ownership.js";
6
6
  import { FlatBufferTypeRef, } from "../../orbpro/stream/flat-buffer-type-ref.js";