space-data-module-sdk 0.1.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 (136) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +236 -73
  3. package/bin/space-data-module.js +24 -0
  4. package/package.json +16 -4
  5. package/schemas/ModuleBundle.fbs +108 -0
  6. package/schemas/PluginInvokeRequest.fbs +18 -0
  7. package/schemas/PluginInvokeResponse.fbs +30 -0
  8. package/schemas/PluginManifest.fbs +33 -1
  9. package/schemas/TypedArenaBuffer.fbs +23 -2
  10. package/src/bundle/codec.js +268 -0
  11. package/src/bundle/constants.js +8 -0
  12. package/src/bundle/index.js +3 -0
  13. package/src/bundle/wasm.js +447 -0
  14. package/src/compiler/compileModule.js +353 -37
  15. package/src/compiler/emceptionNode.js +217 -0
  16. package/src/compiler/flatcSupport.js +66 -0
  17. package/src/compiler/invokeGlue.js +884 -0
  18. package/src/compliance/pluginCompliance.js +575 -1
  19. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts +51 -0
  20. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts.map +1 -0
  21. package/src/generated/orbpro/invoke/plugin-invoke-request.js +131 -0
  22. package/src/generated/orbpro/invoke/plugin-invoke-request.js.map +1 -0
  23. package/src/generated/orbpro/invoke/plugin-invoke-request.ts +173 -0
  24. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts +76 -0
  25. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts.map +1 -0
  26. package/src/generated/orbpro/invoke/plugin-invoke-response.js +184 -0
  27. package/src/generated/orbpro/invoke/plugin-invoke-response.js.map +1 -0
  28. package/src/generated/orbpro/invoke/plugin-invoke-response.ts +243 -0
  29. package/src/generated/orbpro/invoke.d.ts +3 -0
  30. package/src/generated/orbpro/invoke.d.ts.map +1 -0
  31. package/src/generated/orbpro/invoke.js +5 -0
  32. package/src/generated/orbpro/invoke.js.map +1 -0
  33. package/src/generated/orbpro/invoke.ts +6 -0
  34. package/src/generated/orbpro/manifest/accepted-type-set.d.ts +4 -4
  35. package/src/generated/orbpro/manifest/accepted-type-set.d.ts.map +1 -1
  36. package/src/generated/orbpro/manifest/accepted-type-set.js +18 -11
  37. package/src/generated/orbpro/manifest/accepted-type-set.js.map +1 -1
  38. package/src/generated/orbpro/manifest/build-artifact.d.ts +1 -1
  39. package/src/generated/orbpro/manifest/build-artifact.d.ts.map +1 -1
  40. package/src/generated/orbpro/manifest/build-artifact.js +28 -15
  41. package/src/generated/orbpro/manifest/build-artifact.js.map +1 -1
  42. package/src/generated/orbpro/manifest/capability-kind.d.ts +26 -1
  43. package/src/generated/orbpro/manifest/capability-kind.d.ts.map +1 -1
  44. package/src/generated/orbpro/manifest/capability-kind.js +25 -0
  45. package/src/generated/orbpro/manifest/capability-kind.js.map +1 -1
  46. package/src/generated/orbpro/manifest/capability-kind.ts +25 -0
  47. package/src/generated/orbpro/manifest/drain-policy.d.ts.map +1 -1
  48. package/src/generated/orbpro/manifest/drain-policy.js.map +1 -1
  49. package/src/generated/orbpro/manifest/host-capability.d.ts +2 -2
  50. package/src/generated/orbpro/manifest/host-capability.d.ts.map +1 -1
  51. package/src/generated/orbpro/manifest/host-capability.js +19 -11
  52. package/src/generated/orbpro/manifest/host-capability.js.map +1 -1
  53. package/src/generated/orbpro/manifest/invoke-surface.d.ts +8 -0
  54. package/src/generated/orbpro/manifest/invoke-surface.d.ts.map +1 -0
  55. package/src/generated/orbpro/manifest/invoke-surface.js +11 -0
  56. package/src/generated/orbpro/manifest/invoke-surface.js.map +1 -0
  57. package/src/generated/orbpro/manifest/invoke-surface.ts +11 -0
  58. package/src/generated/orbpro/manifest/method-manifest.d.ts +6 -6
  59. package/src/generated/orbpro/manifest/method-manifest.d.ts.map +1 -1
  60. package/src/generated/orbpro/manifest/method-manifest.js +33 -16
  61. package/src/generated/orbpro/manifest/method-manifest.js.map +1 -1
  62. package/src/generated/orbpro/manifest/plugin-family.d.ts.map +1 -1
  63. package/src/generated/orbpro/manifest/plugin-family.js.map +1 -1
  64. package/src/generated/orbpro/manifest/plugin-manifest.d.ts +10 -2
  65. package/src/generated/orbpro/manifest/plugin-manifest.d.ts.map +1 -1
  66. package/src/generated/orbpro/manifest/plugin-manifest.js +48 -9
  67. package/src/generated/orbpro/manifest/plugin-manifest.js.map +1 -1
  68. package/src/generated/orbpro/manifest/plugin-manifest.ts +322 -491
  69. package/src/generated/orbpro/manifest/port-manifest.d.ts +4 -4
  70. package/src/generated/orbpro/manifest/port-manifest.d.ts.map +1 -1
  71. package/src/generated/orbpro/manifest/port-manifest.js +26 -13
  72. package/src/generated/orbpro/manifest/port-manifest.js.map +1 -1
  73. package/src/generated/orbpro/manifest/protocol-spec.d.ts +1 -1
  74. package/src/generated/orbpro/manifest/protocol-spec.d.ts.map +1 -1
  75. package/src/generated/orbpro/manifest/protocol-spec.js +28 -15
  76. package/src/generated/orbpro/manifest/protocol-spec.js.map +1 -1
  77. package/src/generated/orbpro/manifest/timer-spec.d.ts +1 -1
  78. package/src/generated/orbpro/manifest/timer-spec.d.ts.map +1 -1
  79. package/src/generated/orbpro/manifest/timer-spec.js +27 -16
  80. package/src/generated/orbpro/manifest/timer-spec.js.map +1 -1
  81. package/src/generated/orbpro/manifest.d.ts +13 -0
  82. package/src/generated/orbpro/manifest.d.ts.map +1 -0
  83. package/src/generated/orbpro/manifest.js +1 -0
  84. package/src/generated/orbpro/manifest.js.map +1 -0
  85. package/src/generated/orbpro/manifest.ts +16 -0
  86. package/src/generated/orbpro/module/canonicalization-rule.d.ts +48 -0
  87. package/src/generated/orbpro/module/canonicalization-rule.js +95 -0
  88. package/src/generated/orbpro/module/canonicalization-rule.ts +142 -0
  89. package/src/generated/orbpro/module/module-bundle-entry-role.d.ts +11 -0
  90. package/src/generated/orbpro/module/module-bundle-entry-role.js +14 -0
  91. package/src/generated/orbpro/module/module-bundle-entry-role.ts +15 -0
  92. package/src/generated/orbpro/module/module-bundle-entry.d.ts +97 -0
  93. package/src/generated/orbpro/module/module-bundle-entry.js +219 -0
  94. package/src/generated/orbpro/module/module-bundle-entry.ts +287 -0
  95. package/src/generated/orbpro/module/module-bundle.d.ts +86 -0
  96. package/src/generated/orbpro/module/module-bundle.js +213 -0
  97. package/src/generated/orbpro/module/module-bundle.ts +277 -0
  98. package/src/generated/orbpro/module/module-payload-encoding.d.ts +9 -0
  99. package/src/generated/orbpro/module/module-payload-encoding.js +12 -0
  100. package/src/generated/orbpro/module/module-payload-encoding.ts +13 -0
  101. package/src/generated/orbpro/module.d.ts +5 -0
  102. package/src/generated/orbpro/module.js +7 -0
  103. package/src/generated/orbpro/module.ts +9 -0
  104. package/src/generated/orbpro/stream/buffer-mutability.d.ts.map +1 -1
  105. package/src/generated/orbpro/stream/buffer-mutability.js.map +1 -1
  106. package/src/generated/orbpro/stream/buffer-ownership.d.ts.map +1 -1
  107. package/src/generated/orbpro/stream/buffer-ownership.js.map +1 -1
  108. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts +22 -5
  109. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts.map +1 -1
  110. package/src/generated/orbpro/stream/flat-buffer-type-ref.js +107 -17
  111. package/src/generated/orbpro/stream/flat-buffer-type-ref.js.map +1 -1
  112. package/src/generated/orbpro/stream/flat-buffer-type-ref.ts +126 -2
  113. package/src/generated/orbpro/stream/payload-wire-format.d.ts +8 -0
  114. package/src/generated/orbpro/stream/payload-wire-format.d.ts.map +1 -0
  115. package/src/generated/orbpro/stream/payload-wire-format.js +11 -0
  116. package/src/generated/orbpro/stream/payload-wire-format.js.map +1 -0
  117. package/src/generated/orbpro/stream/payload-wire-format.ts +11 -0
  118. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts +4 -4
  119. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts.map +1 -1
  120. package/src/generated/orbpro/stream/typed-arena-buffer.js +42 -24
  121. package/src/generated/orbpro/stream/typed-arena-buffer.js.map +1 -1
  122. package/src/host/abi.js +282 -0
  123. package/src/host/cron.js +247 -0
  124. package/src/host/index.js +3 -0
  125. package/src/host/nodeHost.js +2165 -0
  126. package/src/index.d.ts +958 -0
  127. package/src/index.js +12 -2
  128. package/src/invoke/codec.js +278 -0
  129. package/src/invoke/index.js +9 -0
  130. package/src/manifest/codec.js +10 -2
  131. package/src/manifest/index.js +5 -2
  132. package/src/manifest/normalize.js +90 -1
  133. package/src/runtime/constants.js +29 -0
  134. package/src/transport/pki.js +0 -5
  135. package/src/utils/encoding.js +9 -1
  136. package/src/utils/wasmCrypto.js +49 -1
@@ -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
+ }