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.
Files changed (104) hide show
  1. package/README.md +74 -2
  2. package/package.json +10 -3
  3. package/schemas/PluginInvokeRequest.fbs +18 -0
  4. package/schemas/PluginInvokeResponse.fbs +30 -0
  5. package/schemas/PluginManifest.fbs +7 -0
  6. package/schemas/TypedArenaBuffer.fbs +23 -2
  7. package/src/bundle/codec.js +24 -0
  8. package/src/compiler/compileModule.js +274 -106
  9. package/src/compiler/emceptionNode.js +217 -0
  10. package/src/compiler/flatcSupport.js +66 -0
  11. package/src/compiler/invokeGlue.js +884 -0
  12. package/src/compliance/pluginCompliance.js +241 -1
  13. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts +51 -0
  14. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts.map +1 -0
  15. package/src/generated/orbpro/invoke/plugin-invoke-request.js +131 -0
  16. package/src/generated/orbpro/invoke/plugin-invoke-request.js.map +1 -0
  17. package/src/generated/orbpro/invoke/plugin-invoke-request.ts +173 -0
  18. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts +76 -0
  19. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts.map +1 -0
  20. package/src/generated/orbpro/invoke/plugin-invoke-response.js +184 -0
  21. package/src/generated/orbpro/invoke/plugin-invoke-response.js.map +1 -0
  22. package/src/generated/orbpro/invoke/plugin-invoke-response.ts +243 -0
  23. package/src/generated/orbpro/invoke.d.ts +3 -0
  24. package/src/generated/orbpro/invoke.d.ts.map +1 -0
  25. package/src/generated/orbpro/invoke.js +5 -0
  26. package/src/generated/orbpro/invoke.js.map +1 -0
  27. package/src/generated/orbpro/invoke.ts +6 -0
  28. package/src/generated/orbpro/manifest/accepted-type-set.d.ts +4 -4
  29. package/src/generated/orbpro/manifest/accepted-type-set.d.ts.map +1 -1
  30. package/src/generated/orbpro/manifest/accepted-type-set.js +18 -11
  31. package/src/generated/orbpro/manifest/accepted-type-set.js.map +1 -1
  32. package/src/generated/orbpro/manifest/build-artifact.d.ts +1 -1
  33. package/src/generated/orbpro/manifest/build-artifact.d.ts.map +1 -1
  34. package/src/generated/orbpro/manifest/build-artifact.js +28 -15
  35. package/src/generated/orbpro/manifest/build-artifact.js.map +1 -1
  36. package/src/generated/orbpro/manifest/capability-kind.d.ts +1 -1
  37. package/src/generated/orbpro/manifest/capability-kind.d.ts.map +1 -1
  38. package/src/generated/orbpro/manifest/capability-kind.js +1 -1
  39. package/src/generated/orbpro/manifest/capability-kind.js.map +1 -1
  40. package/src/generated/orbpro/manifest/drain-policy.d.ts.map +1 -1
  41. package/src/generated/orbpro/manifest/drain-policy.js.map +1 -1
  42. package/src/generated/orbpro/manifest/host-capability.d.ts +2 -2
  43. package/src/generated/orbpro/manifest/host-capability.d.ts.map +1 -1
  44. package/src/generated/orbpro/manifest/host-capability.js +19 -11
  45. package/src/generated/orbpro/manifest/host-capability.js.map +1 -1
  46. package/src/generated/orbpro/manifest/invoke-surface.d.ts +8 -0
  47. package/src/generated/orbpro/manifest/invoke-surface.d.ts.map +1 -0
  48. package/src/generated/orbpro/manifest/invoke-surface.js +11 -0
  49. package/src/generated/orbpro/manifest/invoke-surface.js.map +1 -0
  50. package/src/generated/orbpro/manifest/invoke-surface.ts +11 -0
  51. package/src/generated/orbpro/manifest/method-manifest.d.ts +6 -6
  52. package/src/generated/orbpro/manifest/method-manifest.d.ts.map +1 -1
  53. package/src/generated/orbpro/manifest/method-manifest.js +33 -16
  54. package/src/generated/orbpro/manifest/method-manifest.js.map +1 -1
  55. package/src/generated/orbpro/manifest/plugin-family.d.ts.map +1 -1
  56. package/src/generated/orbpro/manifest/plugin-family.js.map +1 -1
  57. package/src/generated/orbpro/manifest/plugin-manifest.d.ts +10 -2
  58. package/src/generated/orbpro/manifest/plugin-manifest.d.ts.map +1 -1
  59. package/src/generated/orbpro/manifest/plugin-manifest.js +48 -9
  60. package/src/generated/orbpro/manifest/plugin-manifest.js.map +1 -1
  61. package/src/generated/orbpro/manifest/plugin-manifest.ts +322 -491
  62. package/src/generated/orbpro/manifest/port-manifest.d.ts +4 -4
  63. package/src/generated/orbpro/manifest/port-manifest.d.ts.map +1 -1
  64. package/src/generated/orbpro/manifest/port-manifest.js +26 -13
  65. package/src/generated/orbpro/manifest/port-manifest.js.map +1 -1
  66. package/src/generated/orbpro/manifest/protocol-spec.d.ts +1 -1
  67. package/src/generated/orbpro/manifest/protocol-spec.d.ts.map +1 -1
  68. package/src/generated/orbpro/manifest/protocol-spec.js +28 -15
  69. package/src/generated/orbpro/manifest/protocol-spec.js.map +1 -1
  70. package/src/generated/orbpro/manifest/timer-spec.d.ts +1 -1
  71. package/src/generated/orbpro/manifest/timer-spec.d.ts.map +1 -1
  72. package/src/generated/orbpro/manifest/timer-spec.js +27 -16
  73. package/src/generated/orbpro/manifest/timer-spec.js.map +1 -1
  74. package/src/generated/orbpro/manifest.d.ts +13 -0
  75. package/src/generated/orbpro/manifest.d.ts.map +1 -0
  76. package/src/generated/orbpro/manifest.js +1 -0
  77. package/src/generated/orbpro/manifest.js.map +1 -0
  78. package/src/generated/orbpro/manifest.ts +16 -0
  79. package/src/generated/orbpro/stream/buffer-mutability.d.ts.map +1 -1
  80. package/src/generated/orbpro/stream/buffer-mutability.js.map +1 -1
  81. package/src/generated/orbpro/stream/buffer-ownership.d.ts.map +1 -1
  82. package/src/generated/orbpro/stream/buffer-ownership.js.map +1 -1
  83. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts +22 -5
  84. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts.map +1 -1
  85. package/src/generated/orbpro/stream/flat-buffer-type-ref.js +107 -17
  86. package/src/generated/orbpro/stream/flat-buffer-type-ref.js.map +1 -1
  87. package/src/generated/orbpro/stream/flat-buffer-type-ref.ts +126 -2
  88. package/src/generated/orbpro/stream/payload-wire-format.d.ts +8 -0
  89. package/src/generated/orbpro/stream/payload-wire-format.d.ts.map +1 -0
  90. package/src/generated/orbpro/stream/payload-wire-format.js +11 -0
  91. package/src/generated/orbpro/stream/payload-wire-format.js.map +1 -0
  92. package/src/generated/orbpro/stream/payload-wire-format.ts +11 -0
  93. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts +4 -4
  94. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts.map +1 -1
  95. package/src/generated/orbpro/stream/typed-arena-buffer.js +42 -24
  96. package/src/generated/orbpro/stream/typed-arena-buffer.js.map +1 -1
  97. package/src/index.d.ts +83 -5
  98. package/src/index.js +3 -0
  99. package/src/invoke/codec.js +278 -0
  100. package/src/invoke/index.js +9 -0
  101. package/src/manifest/codec.js +10 -2
  102. package/src/manifest/index.js +5 -2
  103. package/src/manifest/normalize.js +58 -0
  104. package/src/runtime/constants.js +12 -0
@@ -0,0 +1,66 @@
1
+ import path from "node:path";
2
+ import { readFile } from "node:fs/promises";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ import { FlatcRunner } from "flatc-wasm";
6
+
7
+ const SDK_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
8
+ const SCHEMA_DIR = path.join(SDK_ROOT, "schemas");
9
+
10
+ let flatcRunnerPromise = null;
11
+ let flatbuffersCppRuntimeHeadersPromise = null;
12
+ let invokeCppSchemaHeadersPromise = null;
13
+
14
+ function loadFlatcRunner() {
15
+ if (!flatcRunnerPromise) {
16
+ flatcRunnerPromise = FlatcRunner.init();
17
+ }
18
+ return flatcRunnerPromise;
19
+ }
20
+
21
+ async function loadInvokeSchemaFiles() {
22
+ const filenames = [
23
+ "TypedArenaBuffer.fbs",
24
+ "PluginInvokeRequest.fbs",
25
+ "PluginInvokeResponse.fbs",
26
+ ];
27
+ const entries = await Promise.all(
28
+ filenames.map(async (filename) => [
29
+ `/schemas/${filename}`,
30
+ await readFile(path.join(SCHEMA_DIR, filename), "utf8"),
31
+ ]),
32
+ );
33
+ return Object.fromEntries(entries);
34
+ }
35
+
36
+ export async function getFlatbuffersCppRuntimeHeaders() {
37
+ if (!flatbuffersCppRuntimeHeadersPromise) {
38
+ flatbuffersCppRuntimeHeadersPromise = (async () => {
39
+ const flatc = await loadFlatcRunner();
40
+ return flatc.getEmbeddedRuntime("cpp");
41
+ })();
42
+ }
43
+ return flatbuffersCppRuntimeHeadersPromise;
44
+ }
45
+
46
+ export async function getInvokeCppSchemaHeaders() {
47
+ if (!invokeCppSchemaHeadersPromise) {
48
+ invokeCppSchemaHeadersPromise = (async () => {
49
+ const flatc = await loadFlatcRunner();
50
+ const schemaFiles = await loadInvokeSchemaFiles();
51
+ const generatedHeaders = {};
52
+ for (const entry of Object.keys(schemaFiles)) {
53
+ Object.assign(
54
+ generatedHeaders,
55
+ flatc.generateCode(
56
+ { entry, files: schemaFiles },
57
+ "cpp",
58
+ { genObjectApi: true },
59
+ ),
60
+ );
61
+ }
62
+ return generatedHeaders;
63
+ })();
64
+ }
65
+ return invokeCppSchemaHeadersPromise;
66
+ }