space-data-module-sdk 0.8.4 → 0.8.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 (354) hide show
  1. package/README.md +117 -20
  2. package/bin/space-data-module.js +263 -0
  3. package/docs/.nojekyll +1 -0
  4. package/docs/AGENTS.md +34 -0
  5. package/docs/architecture.svg +141 -0
  6. package/docs/browser-wasmedge-isomorphic.md +179 -0
  7. package/docs/flatsql-streaming-standard.md +341 -0
  8. package/docs/gpu-module-abi.md +193 -0
  9. package/docs/index.html +125 -0
  10. package/docs/isomorphic-pthreads.md +188 -0
  11. package/docs/isomorphic-sdn-runtime-plan.md +167 -0
  12. package/docs/language-runtime-matrix.md +82 -0
  13. package/docs/manifest-structure.svg +114 -0
  14. package/docs/module-bundle-runtime-plan.md +19 -0
  15. package/docs/module-lifecycle.svg +70 -0
  16. package/docs/module-publication-standard.md +540 -0
  17. package/docs/node-red-default-node-parity.md +88 -0
  18. package/docs/protocol-installation.md +196 -0
  19. package/docs/secrets-capability.md +152 -0
  20. package/docs/styles.css +288 -0
  21. package/docs/testing-harness.md +408 -0
  22. package/docs/tri-runtime-parity.md +132 -0
  23. package/docs/wallet-callback.html +2 -0
  24. package/package.json +25 -6
  25. package/schemas/HttpRequestAbi.fbs +41 -0
  26. package/schemas/HttpResponseAbi.fbs +36 -0
  27. package/schemas/PluginManifest.fbs +2 -1
  28. package/src/AGENTS.md +1 -1
  29. package/src/app/codec.js +548 -0
  30. package/src/app/index.js +6 -0
  31. package/src/browser.js +5 -0
  32. package/src/bundle/constants.js +1 -0
  33. package/src/bundle/index.js +15 -0
  34. package/src/bundle/sigdomain.js +179 -0
  35. package/src/bundle/signing.js +767 -0
  36. package/src/bundle/wasm.js +3 -2
  37. package/src/capabilities.js +3 -0
  38. package/src/compat/index.js +7 -0
  39. package/src/compat/sdnLegacy.js +449 -0
  40. package/src/compiler/compileModule.js +556 -55
  41. package/src/compiler/flatcSupport.js +41 -27
  42. package/src/compiler/index.d.ts +2 -0
  43. package/src/compiler/index.js +18 -0
  44. package/src/compiler/invokeGlue.js +1212 -183
  45. package/src/compiler/pthreadArtifactGuard.js +910 -0
  46. package/src/compiler/sdnShimGenerator.js +323 -0
  47. package/src/compiler/wasiThreadsToolchain.js +150 -0
  48. package/src/compliance/index.js +11 -1
  49. package/src/compliance/legacyWildcardPorts.js +228 -0
  50. package/src/compliance/pluginCompliance.js +1000 -96
  51. package/src/field-stream/index.d.ts +31 -0
  52. package/src/field-stream/index.js +119 -0
  53. package/src/flow/dependencyStreamBridge.js +234 -0
  54. package/src/flow/flatsqlLinkShim.js +304 -0
  55. package/src/flow/flowCodec.js +107 -0
  56. package/src/flow/flowCompiler.js +2900 -0
  57. package/src/flow/flowRuntimeHost.js +877 -0
  58. package/src/flow/index.d.ts +117 -0
  59. package/src/flow/index.js +31 -0
  60. package/src/flow/isomorphicFlowHost.js +384 -0
  61. package/src/flow/jsFlowRuntime.js +275 -0
  62. package/src/flow/normalize.js +294 -0
  63. package/src/flow/runtime-src/flow_runtime.cpp +1699 -0
  64. package/src/flow/vendor/sdn-flow/MethodRegistry.js +400 -0
  65. package/src/flow/vendor/sdn-flow/constants.js +39 -0
  66. package/src/flow/vendor/sdn-flow/index.js +29 -0
  67. package/src/flow/vendor/sdn-flow/normalize.js +506 -0
  68. package/src/flow/vendor/sdn-flow/wasmCompatibility.js +189 -0
  69. package/src/generated/http/cpp/HttpRequestAbi_generated.h +285 -0
  70. package/src/generated/http/cpp/HttpResponseAbi_generated.h +192 -0
  71. package/src/generated/http/sdn/http/http-header.js +53 -0
  72. package/src/generated/http/sdn/http/http-header.ts +67 -0
  73. package/src/generated/http/sdn/http/http-request.js +132 -0
  74. package/src/generated/http/sdn/http/http-request.ts +179 -0
  75. package/src/generated/http/sdn/http/http-response.js +144 -0
  76. package/src/generated/http/sdn/http/http-response.ts +168 -0
  77. package/src/generated/http/sdn/http.js +11 -0
  78. package/src/generated/http/sdn/http.ts +4 -0
  79. package/src/generated/orbpro/flow/backpressure-policy.d.ts +12 -0
  80. package/src/generated/orbpro/flow/backpressure-policy.d.ts.map +1 -0
  81. package/src/generated/orbpro/flow/backpressure-policy.js +17 -0
  82. package/src/generated/orbpro/flow/backpressure-policy.js.map +1 -0
  83. package/src/generated/orbpro/flow/backpressure-policy.ts +15 -0
  84. package/src/generated/orbpro/flow/flow-bundle-manifest.d.ts +142 -0
  85. package/src/generated/orbpro/flow/flow-bundle-manifest.d.ts.map +1 -0
  86. package/src/generated/orbpro/flow/flow-bundle-manifest.js +304 -0
  87. package/src/generated/orbpro/flow/flow-bundle-manifest.js.map +1 -0
  88. package/src/generated/orbpro/flow/flow-bundle-manifest.ts +399 -0
  89. package/src/generated/orbpro/flow/flow-edge.d.ts +113 -0
  90. package/src/generated/orbpro/flow/flow-edge.d.ts.map +1 -0
  91. package/src/generated/orbpro/flow/flow-edge.js +221 -0
  92. package/src/generated/orbpro/flow/flow-edge.js.map +1 -0
  93. package/src/generated/orbpro/flow/flow-edge.ts +292 -0
  94. package/src/generated/orbpro/flow/flow-node.d.ts +80 -0
  95. package/src/generated/orbpro/flow/flow-node.d.ts.map +1 -0
  96. package/src/generated/orbpro/flow/flow-node.js +158 -0
  97. package/src/generated/orbpro/flow/flow-node.js.map +1 -0
  98. package/src/generated/orbpro/flow/flow-node.ts +202 -0
  99. package/src/generated/orbpro/flow/flow-program.d.ts +164 -0
  100. package/src/generated/orbpro/flow/flow-program.d.ts.map +1 -0
  101. package/src/generated/orbpro/flow/flow-program.js +350 -0
  102. package/src/generated/orbpro/flow/flow-program.js.map +1 -0
  103. package/src/generated/orbpro/flow/flow-program.ts +477 -0
  104. package/src/generated/orbpro/flow/flow-trigger.d.ts +108 -0
  105. package/src/generated/orbpro/flow/flow-trigger.d.ts.map +1 -0
  106. package/src/generated/orbpro/flow/flow-trigger.js +207 -0
  107. package/src/generated/orbpro/flow/flow-trigger.js.map +1 -0
  108. package/src/generated/orbpro/flow/flow-trigger.ts +276 -0
  109. package/src/generated/orbpro/flow/node-kind.d.ts +13 -0
  110. package/src/generated/orbpro/flow/node-kind.d.ts.map +1 -0
  111. package/src/generated/orbpro/flow/node-kind.js +16 -0
  112. package/src/generated/orbpro/flow/node-kind.js.map +1 -0
  113. package/src/generated/orbpro/{invoke.ts → flow/node-kind.ts} +12 -2
  114. package/src/generated/orbpro/flow/plugin-version-binding.d.ts +52 -0
  115. package/src/generated/orbpro/flow/plugin-version-binding.d.ts.map +1 -0
  116. package/src/generated/orbpro/flow/plugin-version-binding.js +85 -0
  117. package/src/generated/orbpro/flow/plugin-version-binding.js.map +1 -0
  118. package/src/generated/orbpro/flow/plugin-version-binding.ts +121 -0
  119. package/src/generated/orbpro/flow/schema-hash-binding.d.ts +70 -0
  120. package/src/generated/orbpro/flow/schema-hash-binding.d.ts.map +1 -0
  121. package/src/generated/orbpro/flow/schema-hash-binding.js +143 -0
  122. package/src/generated/orbpro/flow/schema-hash-binding.js.map +1 -0
  123. package/src/generated/orbpro/flow/schema-hash-binding.ts +189 -0
  124. package/src/generated/orbpro/flow/trigger-binding.d.ts +71 -0
  125. package/src/generated/orbpro/flow/trigger-binding.d.ts.map +1 -0
  126. package/src/generated/orbpro/flow/trigger-binding.js +142 -0
  127. package/src/generated/orbpro/flow/trigger-binding.js.map +1 -0
  128. package/src/generated/orbpro/flow/trigger-binding.ts +181 -0
  129. package/src/generated/orbpro/flow/trigger-kind.d.ts +14 -0
  130. package/src/generated/orbpro/flow/trigger-kind.d.ts.map +1 -0
  131. package/src/generated/orbpro/flow/trigger-kind.js +17 -0
  132. package/src/generated/orbpro/flow/trigger-kind.js.map +1 -0
  133. package/src/generated/orbpro/flow/trigger-kind.ts +17 -0
  134. package/src/generated/orbpro/flow.d.ts +21 -0
  135. package/src/generated/orbpro/flow.d.ts.map +1 -0
  136. package/src/generated/orbpro/flow.js +23 -0
  137. package/src/generated/orbpro/flow.js.map +1 -0
  138. package/src/generated/orbpro/flow.ts +24 -0
  139. package/src/generated/orbpro/manifest/capability-kind.d.ts +2 -1
  140. package/src/generated/orbpro/manifest/capability-kind.js +1 -0
  141. package/src/generated/orbpro/manifest/capability-kind.ts +1 -0
  142. package/src/generated/orbpro/plugin/stream-invoke-request.d.ts +93 -0
  143. package/src/generated/orbpro/plugin/stream-invoke-request.js +160 -0
  144. package/src/generated/orbpro/plugin/stream-invoke-request.ts +211 -0
  145. package/src/generated/orbpro/plugin/stream-invoke-response.d.ts +99 -0
  146. package/src/generated/orbpro/plugin/stream-invoke-response.js +175 -0
  147. package/src/generated/orbpro/plugin/stream-invoke-response.ts +226 -0
  148. package/src/generated/orbpro/plugin.js +8 -0
  149. package/src/generated/orbpro/stream.d.ts +12 -0
  150. package/src/generated/orbpro/stream.js +14 -0
  151. package/src/generated/orbpro/stream.ts +15 -0
  152. package/src/generated/spacedatastandards/plg/EntryFunction.d.ts +52 -0
  153. package/src/generated/spacedatastandards/plg/EntryFunction.d.ts.map +1 -0
  154. package/src/generated/spacedatastandards/plg/EntryFunction.js +106 -0
  155. package/src/generated/spacedatastandards/plg/EntryFunction.ts +162 -0
  156. package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.d.ts +90 -0
  157. package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.d.ts.map +1 -0
  158. package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.js +189 -0
  159. package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.ts +270 -0
  160. package/src/generated/spacedatastandards/plg/PLG.d.ts +492 -0
  161. package/src/generated/spacedatastandards/plg/PLG.d.ts.map +1 -0
  162. package/src/generated/spacedatastandards/plg/PLG.js +1139 -0
  163. package/src/generated/spacedatastandards/plg/PLG.ts +1600 -0
  164. package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.d.ts +63 -0
  165. package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.d.ts.map +1 -0
  166. package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.js +138 -0
  167. package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.ts +189 -0
  168. package/src/generated/spacedatastandards/plg/PLGBuildArtifact.d.ts +41 -0
  169. package/src/generated/spacedatastandards/plg/PLGBuildArtifact.d.ts.map +1 -0
  170. package/src/generated/spacedatastandards/plg/PLGBuildArtifact.js +104 -0
  171. package/src/generated/spacedatastandards/plg/PLGBuildArtifact.ts +151 -0
  172. package/src/generated/spacedatastandards/plg/PLGFlowEdge.d.ts +68 -0
  173. package/src/generated/spacedatastandards/plg/PLGFlowEdge.d.ts.map +1 -0
  174. package/src/generated/spacedatastandards/plg/PLGFlowEdge.js +124 -0
  175. package/src/generated/spacedatastandards/plg/PLGFlowEdge.ts +184 -0
  176. package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.d.ts +58 -0
  177. package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.d.ts.map +1 -0
  178. package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.js +126 -0
  179. package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.ts +161 -0
  180. package/src/generated/spacedatastandards/plg/PLGFlowNode.d.ts +82 -0
  181. package/src/generated/spacedatastandards/plg/PLGFlowNode.d.ts.map +1 -0
  182. package/src/generated/spacedatastandards/plg/PLGFlowNode.js +164 -0
  183. package/src/generated/spacedatastandards/plg/PLGFlowNode.ts +244 -0
  184. package/src/generated/spacedatastandards/plg/PLGFlowTrigger.d.ts +55 -0
  185. package/src/generated/spacedatastandards/plg/PLGFlowTrigger.d.ts.map +1 -0
  186. package/src/generated/spacedatastandards/plg/PLGFlowTrigger.js +105 -0
  187. package/src/generated/spacedatastandards/plg/PLGFlowTrigger.ts +162 -0
  188. package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.d.ts +42 -0
  189. package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.d.ts.map +1 -0
  190. package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.js +83 -0
  191. package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.ts +127 -0
  192. package/src/generated/spacedatastandards/plg/PLGHostCapability.d.ts +36 -0
  193. package/src/generated/spacedatastandards/plg/PLGHostCapability.d.ts.map +1 -0
  194. package/src/generated/spacedatastandards/plg/PLGHostCapability.js +90 -0
  195. package/src/generated/spacedatastandards/plg/PLGHostCapability.ts +127 -0
  196. package/src/generated/spacedatastandards/plg/PLGMethodManifest.d.ts +53 -0
  197. package/src/generated/spacedatastandards/plg/PLGMethodManifest.d.ts.map +1 -0
  198. package/src/generated/spacedatastandards/plg/PLGMethodManifest.js +153 -0
  199. package/src/generated/spacedatastandards/plg/PLGMethodManifest.ts +210 -0
  200. package/src/generated/spacedatastandards/plg/PLGPortManifest.d.ts +70 -0
  201. package/src/generated/spacedatastandards/plg/PLGPortManifest.d.ts.map +1 -0
  202. package/src/generated/spacedatastandards/plg/PLGPortManifest.js +149 -0
  203. package/src/generated/spacedatastandards/plg/PLGPortManifest.ts +212 -0
  204. package/src/generated/spacedatastandards/plg/PLGProtocolSpec.d.ts +73 -0
  205. package/src/generated/spacedatastandards/plg/PLGProtocolSpec.d.ts.map +1 -0
  206. package/src/generated/spacedatastandards/plg/PLGProtocolSpec.js +199 -0
  207. package/src/generated/spacedatastandards/plg/PLGProtocolSpec.ts +292 -0
  208. package/src/generated/spacedatastandards/plg/PLGTimerSpec.d.ts +40 -0
  209. package/src/generated/spacedatastandards/plg/PLGTimerSpec.d.ts.map +1 -0
  210. package/src/generated/spacedatastandards/plg/PLGTimerSpec.js +103 -0
  211. package/src/generated/spacedatastandards/plg/PLGTimerSpec.ts +148 -0
  212. package/src/generated/spacedatastandards/plg/PluginCapability.d.ts +41 -0
  213. package/src/generated/spacedatastandards/plg/PluginCapability.d.ts.map +1 -0
  214. package/src/generated/spacedatastandards/plg/PluginCapability.js +82 -0
  215. package/src/generated/spacedatastandards/plg/{plugin-capability.ts → PluginCapability.ts} +55 -18
  216. package/src/generated/spacedatastandards/plg/PluginDependency.d.ts +42 -0
  217. package/src/generated/spacedatastandards/plg/PluginDependency.d.ts.map +1 -0
  218. package/src/generated/spacedatastandards/plg/PluginDependency.js +80 -0
  219. package/src/generated/spacedatastandards/plg/PluginDependency.ts +124 -0
  220. package/src/generated/spacedatastandards/plg/TAB.d.ts +85 -0
  221. package/src/generated/spacedatastandards/plg/TAB.d.ts.map +1 -0
  222. package/src/generated/spacedatastandards/plg/TAB.js +173 -0
  223. package/src/generated/spacedatastandards/plg/TAB.ts +228 -0
  224. package/src/generated/spacedatastandards/plg/bufferMutability.d.ts +18 -0
  225. package/src/generated/spacedatastandards/plg/bufferMutability.d.ts.map +1 -0
  226. package/src/generated/spacedatastandards/plg/bufferMutability.js +20 -0
  227. package/src/generated/spacedatastandards/plg/bufferMutability.ts +23 -0
  228. package/src/generated/spacedatastandards/plg/bufferOwnership.d.ts +18 -0
  229. package/src/generated/spacedatastandards/plg/bufferOwnership.d.ts.map +1 -0
  230. package/src/generated/spacedatastandards/plg/bufferOwnership.js +20 -0
  231. package/src/generated/spacedatastandards/plg/bufferOwnership.ts +23 -0
  232. package/src/generated/spacedatastandards/plg/drainBehavior.d.ts +20 -0
  233. package/src/generated/spacedatastandards/plg/drainBehavior.d.ts.map +1 -0
  234. package/src/generated/spacedatastandards/plg/drainBehavior.js +22 -0
  235. package/src/generated/spacedatastandards/plg/drainBehavior.ts +25 -0
  236. package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.d.ts +10 -0
  237. package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.d.ts.map +1 -0
  238. package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.js +12 -0
  239. package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.ts +13 -0
  240. package/src/generated/spacedatastandards/plg/hostCapabilityKind.d.ts +51 -0
  241. package/src/generated/spacedatastandards/plg/hostCapabilityKind.d.ts.map +1 -0
  242. package/src/generated/spacedatastandards/plg/hostCapabilityKind.js +53 -0
  243. package/src/generated/spacedatastandards/plg/hostCapabilityKind.ts +55 -0
  244. package/src/generated/spacedatastandards/plg/invokeSurfaceKind.d.ts +15 -0
  245. package/src/generated/spacedatastandards/plg/invokeSurfaceKind.d.ts.map +1 -0
  246. package/src/generated/spacedatastandards/plg/invokeSurfaceKind.js +17 -0
  247. package/src/generated/spacedatastandards/plg/invokeSurfaceKind.ts +19 -0
  248. package/src/generated/spacedatastandards/plg/main.d.ts +29 -0
  249. package/src/generated/spacedatastandards/plg/main.d.ts.map +1 -0
  250. package/src/generated/spacedatastandards/plg/main.js +30 -0
  251. package/src/generated/spacedatastandards/plg/main.ts +32 -0
  252. package/src/generated/spacedatastandards/plg/payloadWireFormat.d.ts +17 -0
  253. package/src/generated/spacedatastandards/plg/payloadWireFormat.d.ts.map +1 -0
  254. package/src/generated/spacedatastandards/plg/payloadWireFormat.js +19 -0
  255. package/src/generated/spacedatastandards/plg/payloadWireFormat.ts +21 -0
  256. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts +82 -0
  257. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts.map +1 -0
  258. package/src/generated/spacedatastandards/plg/pluginCategory.js +84 -0
  259. package/src/generated/spacedatastandards/plg/pluginCategory.ts +103 -0
  260. package/src/generated/spacedatastandards/plg/publicationState.d.ts +18 -0
  261. package/src/generated/spacedatastandards/plg/publicationState.d.ts.map +1 -0
  262. package/src/generated/spacedatastandards/plg/publicationState.js +20 -0
  263. package/src/generated/spacedatastandards/plg/purchaseTier.d.ts +18 -0
  264. package/src/generated/spacedatastandards/plg/purchaseTier.d.ts.map +1 -0
  265. package/src/generated/spacedatastandards/plg/purchaseTier.js +20 -0
  266. package/src/host/AGENTS.md +2 -2
  267. package/src/host/abi.js +53 -66
  268. package/src/host/browserHost.js +355 -8
  269. package/src/host/cpp/keyslotClient.hpp +231 -0
  270. package/src/host/cpp/secretsClient.hpp +583 -0
  271. package/src/host/hostcallWire.js +183 -0
  272. package/src/host/index.js +2 -0
  273. package/src/host/isomorphicLoader.js +44 -7
  274. package/src/host/nodeHost.js +227 -8
  275. package/src/host/sabHostcallChannel.js +206 -0
  276. package/src/host/timerDriver.js +203 -0
  277. package/src/host/wasiShim.js +41 -1
  278. package/src/host/wasiThreadBrowserWorker.mjs +48 -0
  279. package/src/host/wasiThreadHost.js +393 -0
  280. package/src/host/wasiThreadWorker.mjs +32 -0
  281. package/src/host/wasiThreadWorkerRuntime.js +93 -0
  282. package/src/http/index.js +339 -0
  283. package/src/index.d.ts +716 -10
  284. package/src/index.js +4 -0
  285. package/src/invoke/codec.js +1202 -128
  286. package/src/invoke/index.js +5 -1
  287. package/src/licensing/index.d.ts +2 -0
  288. package/src/licensing/index.js +2 -0
  289. package/src/licensing/records.js +287 -8
  290. package/src/manifest/codec.js +62 -14
  291. package/src/manifest/index.js +2 -0
  292. package/src/manifest/legacyToPlg.js +164 -25
  293. package/src/manifest/normalize.js +1 -0
  294. package/src/manifest/plgCodec.js +1303 -62
  295. package/src/manifest/typeRefs.js +162 -24
  296. package/src/runtime/compiledRuntimeAbi.js +47 -0
  297. package/src/runtime/compiledRuntimeAbi.json +33 -0
  298. package/src/runtime/index.d.ts +32 -0
  299. package/src/runtime/index.js +1 -0
  300. package/src/runtime-host/index.js +3 -0
  301. package/src/runtime-host/methodRegistry.js +55 -0
  302. package/src/standards/index.js +200 -56
  303. package/src/standards/sharedCatalog.js +16 -0
  304. package/src/testing/browserModuleHarness.js +604 -31
  305. package/src/testing/docker/wasmedge-parity.Dockerfile +39 -0
  306. package/src/testing/index.d.ts +151 -0
  307. package/src/testing/index.js +21 -0
  308. package/src/testing/native/wasmedge_emscripten_pthread_runner.c +25 -1
  309. package/src/testing/parityBrowserRunner.js +138 -0
  310. package/src/testing/parityHarness.js +616 -0
  311. package/src/testing/parityLanes.js +537 -0
  312. package/src/testing/processInvoke.js +29 -21
  313. package/src/testing/streamInvokeCodec.js +10 -175
  314. package/src/testing/wasmedgePin.json +6 -0
  315. package/src/testing/workerModuleHarness.js +242 -0
  316. package/src/testing/workerModuleHarnessWorker.js +176 -0
  317. package/src/transport/index.js +3 -0
  318. package/src/transport/pki.js +299 -11
  319. package/src/transport/records.js +16 -7
  320. package/src/utils/ecdsaDer.js +106 -0
  321. package/src/utils/wasmCrypto.js +0 -43
  322. package/templates/gpu-module/README.md +48 -0
  323. package/templates/gpu-module/include/space_data_gpu_abi.h +122 -0
  324. package/templates/gpu-module/manifest.json +84 -0
  325. package/schemas/PluginInvokeRequest.fbs +0 -18
  326. package/schemas/PluginInvokeResponse.fbs +0 -30
  327. package/schemas/spacedatastandards/PLG.fbs +0 -191
  328. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts +0 -51
  329. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts.map +0 -1
  330. package/src/generated/orbpro/invoke/plugin-invoke-request.js +0 -131
  331. package/src/generated/orbpro/invoke/plugin-invoke-request.js.map +0 -1
  332. package/src/generated/orbpro/invoke/plugin-invoke-request.ts +0 -173
  333. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts +0 -76
  334. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts.map +0 -1
  335. package/src/generated/orbpro/invoke/plugin-invoke-response.js +0 -184
  336. package/src/generated/orbpro/invoke/plugin-invoke-response.js.map +0 -1
  337. package/src/generated/orbpro/invoke/plugin-invoke-response.ts +0 -243
  338. package/src/generated/orbpro/invoke.d.ts +0 -3
  339. package/src/generated/orbpro/invoke.js +0 -5
  340. package/src/generated/spacedatastandards/plg/entry-function.js +0 -86
  341. package/src/generated/spacedatastandards/plg/entry-function.ts +0 -119
  342. package/src/generated/spacedatastandards/plg/index.js +0 -16
  343. package/src/generated/spacedatastandards/plg/index.ts +0 -11
  344. package/src/generated/spacedatastandards/plg/plg.js +0 -657
  345. package/src/generated/spacedatastandards/plg/plg.ts +0 -924
  346. package/src/generated/spacedatastandards/plg/plugin-capability.js +0 -66
  347. package/src/generated/spacedatastandards/plg/plugin-category.js +0 -15
  348. package/src/generated/spacedatastandards/plg/plugin-category.ts +0 -53
  349. package/src/generated/spacedatastandards/plg/plugin-dependency.js +0 -63
  350. package/src/generated/spacedatastandards/plg/plugin-dependency.ts +0 -86
  351. package/src/generated/spacedatastandards/plg/publication-state.js +0 -9
  352. package/src/generated/spacedatastandards/plg/purchase-tier.js +0 -9
  353. /package/src/generated/spacedatastandards/plg/{publication-state.ts → publicationState.ts} +0 -0
  354. /package/src/generated/spacedatastandards/plg/{purchase-tier.ts → purchaseTier.ts} +0 -0
@@ -27,39 +27,160 @@ function normalizeAlignedMetadataScalar(value) {
27
27
  return value;
28
28
  }
29
29
 
30
+ function inspectPayloadSchemaHash(value) {
31
+ if (value === undefined || value === null) {
32
+ return { valid: true, present: false, bytes: [] };
33
+ }
34
+ if (typeof value === "string") {
35
+ const hex = value.startsWith("0x") ? value.slice(2) : value;
36
+ if (hex.length === 0) {
37
+ return { valid: true, present: false, bytes: [] };
38
+ }
39
+ if (hex.length % 2 !== 0 || !/^[0-9a-fA-F]+$/.test(hex)) {
40
+ return { valid: false, present: true, bytes: [] };
41
+ }
42
+ const bytes = [];
43
+ for (let index = 0; index < hex.length; index += 2) {
44
+ bytes.push(Number.parseInt(hex.slice(index, index + 2), 16));
45
+ }
46
+ return { valid: true, present: true, bytes };
47
+ }
48
+ if (!Array.isArray(value) && !(value instanceof Uint8Array)) {
49
+ return { valid: false, present: true, bytes: [] };
50
+ }
51
+ const bytes = Array.from(value);
52
+ if (bytes.length === 0) {
53
+ return { valid: true, present: false, bytes: [] };
54
+ }
55
+ if (
56
+ bytes.some(
57
+ (entry) =>
58
+ !Number.isInteger(entry) || entry < 0 || entry > 0xff,
59
+ )
60
+ ) {
61
+ return { valid: false, present: true, bytes: [] };
62
+ }
63
+ return { valid: true, present: true, bytes };
64
+ }
65
+
66
+ export function normalizePayloadSchemaHash(value) {
67
+ const inspected = inspectPayloadSchemaHash(value);
68
+ return inspected.valid && inspected.present ? inspected.bytes : undefined;
69
+ }
70
+
71
+ export function isPayloadSchemaHashValid(value) {
72
+ return inspectPayloadSchemaHash(value).valid;
73
+ }
74
+
30
75
  export function clonePayloadTypeRef(value = null) {
31
76
  if (!value || typeof value !== "object") {
32
77
  return { acceptsAnyFlatbuffer: true, fileIdentifier: null };
33
78
  }
34
79
  return {
35
80
  schemaName: normalizeNullableString(
36
- value.schemaName ?? value.schema_name,
81
+ value.schemaName ?? value.schema_name ?? value.SCHEMA_NAME,
37
82
  ),
38
83
  fileIdentifier: normalizeNullableString(
39
- value.fileIdentifier ?? value.file_identifier,
84
+ value.fileIdentifier ?? value.file_identifier ?? value.FILE_IDENTIFIER,
85
+ ),
86
+ schemaVersion: normalizeNullableString(
87
+ value.schemaVersion ?? value.schema_version ?? value.SCHEMA_VERSION,
88
+ ),
89
+ schemaHash: cloneSchemaHash(
90
+ value.schemaHash ?? value.schema_hash ?? value.SCHEMA_HASH,
40
91
  ),
41
- schemaHash: cloneSchemaHash(value.schemaHash ?? value.schema_hash),
42
92
  acceptsAnyFlatbuffer: Boolean(
43
- value.acceptsAnyFlatbuffer ?? value.accepts_any_flatbuffer ?? false,
93
+ value.acceptsAnyFlatbuffer ??
94
+ value.accepts_any_flatbuffer ??
95
+ value.ACCEPTS_ANY_FLATBUFFER ??
96
+ false,
44
97
  ),
45
98
  wireFormat: normalizePayloadWireFormatName(
46
- value.wireFormat ?? value.wire_format,
99
+ value.wireFormat ?? value.wire_format ?? value.WIRE_FORMAT,
47
100
  ),
48
101
  rootTypeName: normalizeNullableString(
49
- value.rootTypeName ?? value.root_type_name,
102
+ value.rootTypeName ??
103
+ value.root_type_name ??
104
+ value.rootType ??
105
+ value.ROOT_TYPE,
50
106
  ),
51
107
  fixedStringLength: normalizeAlignedMetadataScalar(
52
- value.fixedStringLength ?? value.fixed_string_length,
108
+ value.fixedStringLength ??
109
+ value.fixed_string_length ??
110
+ value.FIXED_STRING_LENGTH,
53
111
  ),
54
112
  byteLength: normalizeAlignedMetadataScalar(
55
- value.byteLength ?? value.byte_length,
113
+ value.byteLength ?? value.byte_length ?? value.BYTE_LENGTH,
56
114
  ),
57
115
  requiredAlignment: normalizeAlignedMetadataScalar(
58
- value.requiredAlignment ?? value.required_alignment,
116
+ value.requiredAlignment ??
117
+ value.required_alignment ??
118
+ value.REQUIRED_ALIGNMENT,
59
119
  ),
60
120
  };
61
121
  }
62
122
 
123
+ function schemaHashesEqual(left, right) {
124
+ const inspectedLeft = inspectPayloadSchemaHash(left);
125
+ const inspectedRight = inspectPayloadSchemaHash(right);
126
+ if (!inspectedLeft.valid || !inspectedRight.valid) {
127
+ return false;
128
+ }
129
+ if (!inspectedLeft.present || !inspectedRight.present) {
130
+ return inspectedLeft.present === inspectedRight.present;
131
+ }
132
+ if (inspectedLeft.bytes.length !== inspectedRight.bytes.length) {
133
+ return false;
134
+ }
135
+ return inspectedLeft.bytes.every(
136
+ (entry, index) => entry === inspectedRight.bytes[index],
137
+ );
138
+ }
139
+
140
+ /**
141
+ * Return true only when two concrete payload type refs carry one complete,
142
+ * identical SDS logical identity. Schema version and hash are optional, but
143
+ * when either peer declares one, both peers must declare the same value.
144
+ */
145
+ export function payloadSchemaIdentitiesEqual(leftTypeRef = {}, rightTypeRef = {}) {
146
+ const left = clonePayloadTypeRef(leftTypeRef);
147
+ const right = clonePayloadTypeRef(rightTypeRef);
148
+ const requiredIdentityFields = [
149
+ "schemaName",
150
+ "fileIdentifier",
151
+ "rootTypeName",
152
+ ];
153
+ for (const field of requiredIdentityFields) {
154
+ if (!left[field] || !right[field] || left[field] !== right[field]) {
155
+ return false;
156
+ }
157
+ }
158
+ if (
159
+ (left.schemaVersion || right.schemaVersion) &&
160
+ left.schemaVersion !== right.schemaVersion
161
+ ) {
162
+ return false;
163
+ }
164
+ return schemaHashesEqual(left.schemaHash, right.schemaHash);
165
+ }
166
+
167
+ export function alignedPayloadLayoutsCompatible(leftTypeRef = {}, rightTypeRef = {}) {
168
+ const left = clonePayloadTypeRef(leftTypeRef);
169
+ const right = clonePayloadTypeRef(rightTypeRef);
170
+ if (
171
+ getPayloadTypeWireFormat(left) !== "aligned-binary" ||
172
+ getPayloadTypeWireFormat(right) !== "aligned-binary" ||
173
+ !payloadSchemaIdentitiesEqual(left, right)
174
+ ) {
175
+ return false;
176
+ }
177
+ return (
178
+ left.fixedStringLength === right.fixedStringLength &&
179
+ left.byteLength === right.byteLength &&
180
+ left.requiredAlignment === right.requiredAlignment
181
+ );
182
+ }
183
+
63
184
  export function normalizePayloadWireFormatName(value) {
64
185
  if (value === undefined || value === null || value === "") {
65
186
  return null;
@@ -85,22 +206,23 @@ export function getPayloadTypeWireFormat(typeRef = {}) {
85
206
  }
86
207
 
87
208
  function schemaHashMatches(expected, actual) {
88
- if (!Array.isArray(expected) && !(expected instanceof Uint8Array)) {
89
- return true;
209
+ const inspectedExpected = inspectPayloadSchemaHash(expected);
210
+ if (!inspectedExpected.valid) {
211
+ return false;
90
212
  }
91
- const expectedArray = Array.from(expected);
92
- if (expectedArray.length === 0) {
213
+ if (!inspectedExpected.present) {
93
214
  return true;
94
215
  }
95
- const actualArray =
96
- Array.isArray(actual) || actual instanceof Uint8Array
97
- ? Array.from(actual)
98
- : null;
99
- if (!actualArray || actualArray.length !== expectedArray.length) {
216
+ const inspectedActual = inspectPayloadSchemaHash(actual);
217
+ if (
218
+ !inspectedActual.valid ||
219
+ !inspectedActual.present ||
220
+ inspectedActual.bytes.length !== inspectedExpected.bytes.length
221
+ ) {
100
222
  return false;
101
223
  }
102
- for (let index = 0; index < expectedArray.length; index += 1) {
103
- if (expectedArray[index] !== actualArray[index]) {
224
+ for (let index = 0; index < inspectedExpected.bytes.length; index += 1) {
225
+ if (inspectedExpected.bytes[index] !== inspectedActual.bytes[index]) {
104
226
  return false;
105
227
  }
106
228
  }
@@ -117,8 +239,18 @@ export function payloadTypeRefsMatch(expectedTypeRef = {}, actualTypeRef = {}) {
117
239
  const expectedWireFormat = getPayloadTypeWireFormat(expected);
118
240
  const actualWireFormat = getPayloadTypeWireFormat(actual);
119
241
 
242
+ // A wildcard is blind to FRAMING as well as identity — the JS host and the
243
+ // in-wasm glue must answer this question identically or the same frame is
244
+ // admitted in one runtime and refused in the other. Mirror of
245
+ // WildcardAcceptsWireFormat in src/compiler/invokeGlue.js.
120
246
  if (expected.acceptsAnyFlatbuffer === true) {
121
- return actualWireFormat === "flatbuffer";
247
+ if (actualWireFormat === "flatbuffer") {
248
+ return true;
249
+ }
250
+ return (
251
+ actualWireFormat === "aligned-binary" &&
252
+ Number(actual.requiredAlignment ?? 0) > 0
253
+ );
122
254
  }
123
255
  if (expectedWireFormat !== actualWireFormat) {
124
256
  return false;
@@ -132,13 +264,19 @@ export function payloadTypeRefsMatch(expectedTypeRef = {}, actualTypeRef = {}) {
132
264
  ) {
133
265
  return false;
134
266
  }
267
+ if (
268
+ expected.schemaVersion &&
269
+ expected.schemaVersion !== actual.schemaVersion
270
+ ) {
271
+ return false;
272
+ }
135
273
  if (!schemaHashMatches(expected.schemaHash, actual.schemaHash)) {
136
274
  return false;
137
275
  }
276
+ if (!optionalScalarMatches(expected.rootTypeName, actual.rootTypeName)) {
277
+ return false;
278
+ }
138
279
  if (expectedWireFormat === "aligned-binary") {
139
- if (!optionalScalarMatches(expected.rootTypeName, actual.rootTypeName)) {
140
- return false;
141
- }
142
280
  if (!optionalScalarMatches(expected.fixedStringLength, actual.fixedStringLength)) {
143
281
  return false;
144
282
  }
@@ -0,0 +1,47 @@
1
+ export const COMPILED_RUNTIME_HOST_IMPORT_MODULE = "space_data_module_host";
2
+ export const COMPILED_RUNTIME_HOST_DISPATCH = "dispatch_current_invocation";
3
+
4
+ export const COMPILED_RUNTIME_EXPORTS = Object.freeze({
5
+ mallocSymbol: "malloc",
6
+ freeSymbol: "free",
7
+ descriptorSymbol: "space_data_module_runtime_get_descriptor",
8
+ nodeDescriptorCountSymbol:
9
+ "space_data_module_runtime_get_node_descriptor_count",
10
+ edgeDescriptorCountSymbol:
11
+ "space_data_module_runtime_get_edge_descriptor_count",
12
+ triggerDescriptorCountSymbol:
13
+ "space_data_module_runtime_get_trigger_descriptor_count",
14
+ dependencyDescriptorCountSymbol:
15
+ "space_data_module_runtime_get_dependency_descriptor_count",
16
+ resetStateSymbol: "space_data_module_runtime_reset_state",
17
+ enqueueTriggerSymbol: "space_data_module_runtime_enqueue_trigger_frames",
18
+ enqueueTriggerFrameSymbol: "space_data_module_runtime_enqueue_trigger_frame",
19
+ enqueueEdgeSymbol: "space_data_module_runtime_enqueue_edge_frames",
20
+ enqueueEdgeFrameSymbol: "space_data_module_runtime_enqueue_edge_frame",
21
+ readyNodeSymbol: "space_data_module_runtime_get_ready_node_index",
22
+ beginInvocationSymbol:
23
+ "space_data_module_runtime_begin_node_invocation",
24
+ completeInvocationSymbol:
25
+ "space_data_module_runtime_complete_node_invocation",
26
+ ingressFrameDescriptorsSymbol:
27
+ "space_data_module_runtime_get_ingress_frame_descriptors",
28
+ ingressFrameDescriptorCountSymbol:
29
+ "space_data_module_runtime_get_ingress_frame_descriptor_count",
30
+ currentInvocationDescriptorSymbol:
31
+ "space_data_module_runtime_get_current_invocation_descriptor",
32
+ prepareInvocationDescriptorSymbol:
33
+ "space_data_module_runtime_prepare_node_invocation_descriptor",
34
+ applyInvocationResultSymbol:
35
+ "space_data_module_runtime_apply_node_invocation_result",
36
+ nodeDispatchDescriptorsSymbol:
37
+ "space_data_module_runtime_get_node_dispatch_descriptors",
38
+ nodeDispatchDescriptorCountSymbol:
39
+ "space_data_module_runtime_get_node_dispatch_descriptor_count",
40
+ dependencyDescriptorsSymbol:
41
+ "space_data_module_runtime_get_dependency_descriptors",
42
+ dependencyCountSymbol: "space_data_module_runtime_get_dependency_count",
43
+ nodeRuntimeStateSymbol: "space_data_module_runtime_get_node_states",
44
+ ingressRuntimeStateSymbol: "space_data_module_runtime_get_ingress_states",
45
+ dispatchCurrentInvocationSymbol:
46
+ "space_data_module_runtime_dispatch_current_invocation_direct",
47
+ });
@@ -0,0 +1,33 @@
1
+ {
2
+ "hostImportModule": "space_data_module_host",
3
+ "hostDispatchImport": "dispatch_current_invocation",
4
+ "exports": {
5
+ "mallocSymbol": "malloc",
6
+ "freeSymbol": "free",
7
+ "descriptorSymbol": "space_data_module_runtime_get_descriptor",
8
+ "nodeDescriptorCountSymbol": "space_data_module_runtime_get_node_descriptor_count",
9
+ "edgeDescriptorCountSymbol": "space_data_module_runtime_get_edge_descriptor_count",
10
+ "triggerDescriptorCountSymbol": "space_data_module_runtime_get_trigger_descriptor_count",
11
+ "dependencyDescriptorCountSymbol": "space_data_module_runtime_get_dependency_descriptor_count",
12
+ "resetStateSymbol": "space_data_module_runtime_reset_state",
13
+ "enqueueTriggerSymbol": "space_data_module_runtime_enqueue_trigger_frames",
14
+ "enqueueTriggerFrameSymbol": "space_data_module_runtime_enqueue_trigger_frame",
15
+ "enqueueEdgeSymbol": "space_data_module_runtime_enqueue_edge_frames",
16
+ "enqueueEdgeFrameSymbol": "space_data_module_runtime_enqueue_edge_frame",
17
+ "readyNodeSymbol": "space_data_module_runtime_get_ready_node_index",
18
+ "beginInvocationSymbol": "space_data_module_runtime_begin_node_invocation",
19
+ "completeInvocationSymbol": "space_data_module_runtime_complete_node_invocation",
20
+ "ingressFrameDescriptorsSymbol": "space_data_module_runtime_get_ingress_frame_descriptors",
21
+ "ingressFrameDescriptorCountSymbol": "space_data_module_runtime_get_ingress_frame_descriptor_count",
22
+ "currentInvocationDescriptorSymbol": "space_data_module_runtime_get_current_invocation_descriptor",
23
+ "prepareInvocationDescriptorSymbol": "space_data_module_runtime_prepare_node_invocation_descriptor",
24
+ "applyInvocationResultSymbol": "space_data_module_runtime_apply_node_invocation_result",
25
+ "nodeDispatchDescriptorsSymbol": "space_data_module_runtime_get_node_dispatch_descriptors",
26
+ "nodeDispatchDescriptorCountSymbol": "space_data_module_runtime_get_node_dispatch_descriptor_count",
27
+ "dependencyDescriptorsSymbol": "space_data_module_runtime_get_dependency_descriptors",
28
+ "dependencyCountSymbol": "space_data_module_runtime_get_dependency_count",
29
+ "nodeRuntimeStateSymbol": "space_data_module_runtime_get_node_states",
30
+ "ingressRuntimeStateSymbol": "space_data_module_runtime_get_ingress_states",
31
+ "dispatchCurrentInvocationSymbol": "space_data_module_runtime_dispatch_current_invocation_direct"
32
+ }
33
+ }
@@ -13,3 +13,35 @@ export {
13
13
  export function isArrayBufferLike(value: unknown): boolean;
14
14
  export function hasByteAddressableBuffer(value: unknown): boolean;
15
15
  export function toUint8Array(value: unknown): Uint8Array | null;
16
+
17
+ export const COMPILED_RUNTIME_HOST_IMPORT_MODULE: "space_data_module_host";
18
+ export const COMPILED_RUNTIME_HOST_DISPATCH: "dispatch_current_invocation";
19
+ export const COMPILED_RUNTIME_EXPORTS: Readonly<{
20
+ mallocSymbol: "malloc";
21
+ freeSymbol: "free";
22
+ descriptorSymbol: "space_data_module_runtime_get_descriptor";
23
+ nodeDescriptorCountSymbol: "space_data_module_runtime_get_node_descriptor_count";
24
+ edgeDescriptorCountSymbol: "space_data_module_runtime_get_edge_descriptor_count";
25
+ triggerDescriptorCountSymbol: "space_data_module_runtime_get_trigger_descriptor_count";
26
+ dependencyDescriptorCountSymbol: "space_data_module_runtime_get_dependency_descriptor_count";
27
+ resetStateSymbol: "space_data_module_runtime_reset_state";
28
+ enqueueTriggerSymbol: "space_data_module_runtime_enqueue_trigger_frames";
29
+ enqueueTriggerFrameSymbol: "space_data_module_runtime_enqueue_trigger_frame";
30
+ enqueueEdgeSymbol: "space_data_module_runtime_enqueue_edge_frames";
31
+ enqueueEdgeFrameSymbol: "space_data_module_runtime_enqueue_edge_frame";
32
+ readyNodeSymbol: "space_data_module_runtime_get_ready_node_index";
33
+ beginInvocationSymbol: "space_data_module_runtime_begin_node_invocation";
34
+ completeInvocationSymbol: "space_data_module_runtime_complete_node_invocation";
35
+ ingressFrameDescriptorsSymbol: "space_data_module_runtime_get_ingress_frame_descriptors";
36
+ ingressFrameDescriptorCountSymbol: "space_data_module_runtime_get_ingress_frame_descriptor_count";
37
+ currentInvocationDescriptorSymbol: "space_data_module_runtime_get_current_invocation_descriptor";
38
+ prepareInvocationDescriptorSymbol: "space_data_module_runtime_prepare_node_invocation_descriptor";
39
+ applyInvocationResultSymbol: "space_data_module_runtime_apply_node_invocation_result";
40
+ nodeDispatchDescriptorsSymbol: "space_data_module_runtime_get_node_dispatch_descriptors";
41
+ nodeDispatchDescriptorCountSymbol: "space_data_module_runtime_get_node_dispatch_descriptor_count";
42
+ dependencyDescriptorsSymbol: "space_data_module_runtime_get_dependency_descriptors";
43
+ dependencyCountSymbol: "space_data_module_runtime_get_dependency_count";
44
+ nodeRuntimeStateSymbol: "space_data_module_runtime_get_node_states";
45
+ ingressRuntimeStateSymbol: "space_data_module_runtime_get_ingress_states";
46
+ dispatchCurrentInvocationSymbol: "space_data_module_runtime_dispatch_current_invocation_direct";
47
+ }>;
@@ -1,2 +1,3 @@
1
1
  export * from "./bufferLike.js";
2
2
  export * from "./constants.js";
3
+ export * from "./compiledRuntimeAbi.js";
@@ -111,3 +111,6 @@ export {
111
111
  createModuleRegistry,
112
112
  createRuntimeRegionStore,
113
113
  };
114
+ // Flow-tier validating method registry (vendored sdn-flow semantics; distinct
115
+ // from createModuleRegistry's module-lifecycle registry).
116
+ export { MethodRegistry } from "./methodRegistry.js";
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Manifest-aware flow-tier method registry (ported from
3
+ * orbpro-integration/sdk/src/runtime/MethodRegistry.js).
4
+ *
5
+ * This wraps the VENDORED sdn-flow MethodRegistry (src/flow/vendor/sdn-flow —
6
+ * behavior-identical to the sdn-flow pin at 4dd28e2; validation semantics like
7
+ * duplicate-plugin rejection, missing-handler errors, required-port presence,
8
+ * min/max stream bounds, acceptedTypeSets matching, and outputStreamCap
9
+ * enforcement are preserved verbatim) and adds manifest coercion: callers may
10
+ * register with a PluginManifestT, PMAN flatbuffer bytes, or a plain object.
11
+ *
12
+ * Distinct from createModuleRegistry (module lifecycle install/load/unload):
13
+ * this is the flow-graph invoke registry the JS FlowRuntime interpreter and
14
+ * the SdnCompatAdapter dispatch through.
15
+ */
16
+ import { MethodRegistry as VendoredSdnFlowMethodRegistry } from "../flow/vendor/sdn-flow/index.js";
17
+ import { normalizeManifestForSdnFlow } from "../flow/normalize.js";
18
+
19
+ export class MethodRegistry {
20
+ #registry = new VendoredSdnFlowMethodRegistry();
21
+
22
+ registerPlugin({ manifest, handlers = {}, plugin = null }) {
23
+ return this.#registry.registerPlugin({
24
+ manifest: normalizeManifestForSdnFlow(manifest),
25
+ handlers,
26
+ plugin,
27
+ });
28
+ }
29
+
30
+ getPlugin(pluginId) {
31
+ return this.#registry.getPlugin(pluginId);
32
+ }
33
+
34
+ unregisterPlugin(pluginId) {
35
+ return this.#registry.unregisterPlugin(pluginId);
36
+ }
37
+
38
+ getMethod(pluginId, methodId) {
39
+ return this.#registry.getMethod(pluginId, methodId);
40
+ }
41
+
42
+ listPlugins() {
43
+ return this.#registry.listPlugins();
44
+ }
45
+
46
+ async invoke(options) {
47
+ return this.#registry.invoke(options);
48
+ }
49
+
50
+ clear() {
51
+ this.#registry.clear();
52
+ }
53
+ }
54
+
55
+ export default MethodRegistry;