space-data-module-sdk 0.8.4 → 0.8.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.
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 +725 -11
  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 +352 -14
  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
@@ -7,21 +7,20 @@
7
7
  * continue to work while the embedded manifest bytes switch to the
8
8
  * canonical spacedatastandards.org PLG schema.
9
9
  *
10
- * Lossy mappings:
10
+ * Compatibility mappings:
11
11
  * - plugin_family → plugin_type (best-effort; families without a PLG
12
12
  * counterpart fall back to `Analysis`).
13
- * - methods[].input_ports/output_ports EntryFunction.input_schemas /
14
- * output_schema (first accepted type per port).
15
- * - drain_policy, max_batch, port cardinalities, timers, protocols,
16
- * invoke_surfaces, runtime_targets, build_artifacts are dropped;
17
- * these are runtime-host concerns that live out-of-band under PLG.
18
- * - schemas_used required_schemas (type name only).
19
- * - capabilities[] preserved; each entry becomes a
20
- * PluginCapability {name, required}. (The "scope" on legacy entries is
21
- * folded into the capability name as `kind#scope` if present.)
13
+ * - methods[].input_ports/output_ports are preserved as PLG METHODS and
14
+ * summarized into EntryFunction.input_schemas/output_schema for older
15
+ * consumers.
16
+ * - schemas_used are preserved as PLG SCHEMAS_USED and summarized into
17
+ * required_schemas by type name.
18
+ * - capabilities[] are preserved both as simple PluginCapability metadata
19
+ * and as richer PLGHostCapability records for host/runtime gating.
22
20
  */
23
21
 
24
22
  import { CapabilityKind } from "../generated/orbpro/manifest/capability-kind.js";
23
+ import { PluginFamily } from "../generated/orbpro/manifest/plugin-family.js";
25
24
 
26
25
  const FAMILY_TO_PLUGIN_TYPE = Object.freeze({
27
26
  sensor: "sensor",
@@ -39,10 +38,14 @@ const FAMILY_TO_PLUGIN_TYPE = Object.freeze({
39
38
  });
40
39
 
41
40
  function normalizePluginTypeFromFamily(family) {
42
- if (typeof family !== "string") {
41
+ let key;
42
+ if (typeof family === "number" && typeof PluginFamily[family] === "string") {
43
+ key = PluginFamily[family].toLowerCase();
44
+ } else if (typeof family === "string") {
45
+ key = family.trim().toLowerCase().replace(/-/g, "_");
46
+ } else {
43
47
  return "analysis";
44
48
  }
45
- const key = family.trim().toLowerCase().replace(/-/g, "_");
46
49
  return FAMILY_TO_PLUGIN_TYPE[key] ?? "analysis";
47
50
  }
48
51
 
@@ -72,7 +75,12 @@ function firstTypeName(port) {
72
75
  return entry;
73
76
  }
74
77
  if (entry && typeof entry === "object") {
75
- const name = entry.name ?? entry.typeName ?? entry.type_name;
78
+ const name =
79
+ entry.schemaName ??
80
+ entry.schema_name ??
81
+ entry.name ??
82
+ entry.typeName ??
83
+ entry.type_name;
76
84
  if (typeof name === "string" && name.length > 0) {
77
85
  return name;
78
86
  }
@@ -135,6 +143,37 @@ function toPluginCapability(capability) {
135
143
  return { name, version, required };
136
144
  }
137
145
 
146
+ function toHostCapability(capability) {
147
+ if (typeof capability === "string") {
148
+ return { capability, required: true };
149
+ }
150
+ if (!capability || typeof capability !== "object") {
151
+ return null;
152
+ }
153
+ const kind =
154
+ normalizeCapabilityName(capability.capability) ??
155
+ normalizeCapabilityName(capability.kind) ??
156
+ normalizeCapabilityName(capability.name);
157
+ if (!kind) {
158
+ return null;
159
+ }
160
+ const scope =
161
+ typeof capability.scope === "string" && capability.scope.trim().length > 0
162
+ ? capability.scope.trim()
163
+ : undefined;
164
+ const description =
165
+ typeof capability.description === "string" &&
166
+ capability.description.trim().length > 0
167
+ ? capability.description.trim()
168
+ : undefined;
169
+ return {
170
+ capability: kind,
171
+ ...(scope ? { scope } : {}),
172
+ required: capability.required !== false,
173
+ ...(description ? { description } : {}),
174
+ };
175
+ }
176
+
138
177
  function toRequiredSchemas(schemasUsed) {
139
178
  if (!Array.isArray(schemasUsed)) {
140
179
  return [];
@@ -144,7 +183,12 @@ function toRequiredSchemas(schemasUsed) {
144
183
  if (typeof entry === "string" && entry.length > 0) {
145
184
  names.push(entry);
146
185
  } else if (entry && typeof entry === "object") {
147
- const name = entry.name ?? entry.typeName ?? entry.type_name;
186
+ const name =
187
+ entry.schemaName ??
188
+ entry.schema_name ??
189
+ entry.name ??
190
+ entry.typeName ??
191
+ entry.type_name;
148
192
  if (typeof name === "string" && name.length > 0) {
149
193
  names.push(name);
150
194
  }
@@ -154,6 +198,23 @@ function toRequiredSchemas(schemasUsed) {
154
198
  return Array.from(new Set(names));
155
199
  }
156
200
 
201
+ function collectEntrySchemas(entryFunctions) {
202
+ const names = [];
203
+ for (const entry of Array.isArray(entryFunctions) ? entryFunctions : []) {
204
+ for (const name of Array.isArray(entry?.inputSchemas)
205
+ ? entry.inputSchemas
206
+ : []) {
207
+ if (typeof name === "string" && name.length > 0) {
208
+ names.push(name);
209
+ }
210
+ }
211
+ if (typeof entry?.outputSchema === "string" && entry.outputSchema.length > 0) {
212
+ names.push(entry.outputSchema);
213
+ }
214
+ }
215
+ return names;
216
+ }
217
+
157
218
  /**
158
219
  * Convert a legacy PluginManifest-shaped input to a PLG-shaped object.
159
220
  * If the input already looks like a PLG object (has entryFunctions OR
@@ -167,12 +228,17 @@ export function legacyManifestToPlg(input = {}) {
167
228
 
168
229
  const hasLegacyMethods = Array.isArray(input.methods);
169
230
  const hasPlgEntries = Array.isArray(input.entryFunctions);
231
+ const schemasUsed = Array.isArray(input.schemasUsed)
232
+ ? input.schemasUsed
233
+ : Array.isArray(input.schemas_used)
234
+ ? input.schemas_used
235
+ : [];
170
236
 
171
237
  const pluginType = hasLegacyMethods
172
238
  ? normalizePluginTypeFromFamily(input.pluginFamily ?? input.plugin_family)
173
- : typeof input.pluginType === "string"
239
+ : typeof input.pluginType === "string" || typeof input.pluginType === "number"
174
240
  ? input.pluginType
175
- : typeof input.plugin_type === "string"
241
+ : typeof input.plugin_type === "string" || typeof input.plugin_type === "number"
176
242
  ? input.plugin_type
177
243
  : normalizePluginTypeFromFamily(input.pluginFamily);
178
244
 
@@ -184,11 +250,66 @@ export function legacyManifestToPlg(input = {}) {
184
250
 
185
251
  const requiredSchemas = Array.isArray(input.requiredSchemas)
186
252
  ? input.requiredSchemas
187
- : toRequiredSchemas(input.schemasUsed ?? input.schemas_used);
253
+ : Array.isArray(input.required_schemas)
254
+ ? input.required_schemas
255
+ : Array.from(
256
+ new Set([
257
+ ...toRequiredSchemas(schemasUsed),
258
+ ...collectEntrySchemas(entryFunctions),
259
+ ]),
260
+ );
188
261
 
189
262
  const capabilities = Array.isArray(input.capabilities)
190
263
  ? input.capabilities.map((cap) => toPluginCapability(cap)).filter(Boolean)
191
264
  : [];
265
+ const hostCapabilitySource = Array.isArray(input.hostCapabilities)
266
+ ? input.hostCapabilities
267
+ : Array.isArray(input.host_capabilities)
268
+ ? input.host_capabilities
269
+ : Array.isArray(input.capabilities)
270
+ ? input.capabilities
271
+ : [];
272
+ const hostCapabilities = hostCapabilitySource
273
+ .map((cap) => toHostCapability(cap))
274
+ .filter(Boolean);
275
+ const runtimeTargets = Array.isArray(input.runtimeTargets)
276
+ ? input.runtimeTargets
277
+ : Array.isArray(input.runtime_targets)
278
+ ? input.runtime_targets
279
+ : [];
280
+ const minPermissions = Array.isArray(input.minPermissions)
281
+ ? input.minPermissions
282
+ : Array.isArray(input.min_permissions)
283
+ ? input.min_permissions
284
+ : runtimeTargets;
285
+ const flowNodes = Array.isArray(input.flowNodes)
286
+ ? input.flowNodes
287
+ : Array.isArray(input.flow_nodes)
288
+ ? input.flow_nodes
289
+ : Array.isArray(input.FLOW_NODES)
290
+ ? input.FLOW_NODES
291
+ : [];
292
+ const flowEdges = Array.isArray(input.flowEdges)
293
+ ? input.flowEdges
294
+ : Array.isArray(input.flow_edges)
295
+ ? input.flow_edges
296
+ : Array.isArray(input.FLOW_EDGES)
297
+ ? input.FLOW_EDGES
298
+ : [];
299
+ const flowTriggers = Array.isArray(input.flowTriggers)
300
+ ? input.flowTriggers
301
+ : Array.isArray(input.flow_triggers)
302
+ ? input.flow_triggers
303
+ : Array.isArray(input.FLOW_TRIGGERS)
304
+ ? input.FLOW_TRIGGERS
305
+ : [];
306
+ const flowTriggerBindings = Array.isArray(input.flowTriggerBindings)
307
+ ? input.flowTriggerBindings
308
+ : Array.isArray(input.flow_trigger_bindings)
309
+ ? input.flow_trigger_bindings
310
+ : Array.isArray(input.FLOW_TRIGGER_BINDINGS)
311
+ ? input.FLOW_TRIGGER_BINDINGS
312
+ : [];
192
313
 
193
314
  return {
194
315
  pluginId: input.pluginId ?? input.plugin_id ?? input.PLUGIN_ID,
@@ -212,23 +333,41 @@ export function legacyManifestToPlg(input = {}) {
212
333
  wasmSize: input.wasmSize ?? input.wasm_size,
213
334
  wasmCid: input.wasmCid ?? input.wasm_cid,
214
335
  entryFunctions,
336
+ methods: Array.isArray(input.methods) ? input.methods : [],
337
+ invokeSurfaces: Array.isArray(input.invokeSurfaces)
338
+ ? input.invokeSurfaces
339
+ : Array.isArray(input.invoke_surfaces)
340
+ ? input.invoke_surfaces
341
+ : [],
342
+ runtimeTargets,
215
343
  requiredSchemas,
344
+ schemasUsed,
216
345
  dependencies: Array.isArray(input.dependencies) ? input.dependencies : [],
217
346
  capabilities,
347
+ hostCapabilities,
348
+ timers: Array.isArray(input.timers) ? input.timers : [],
349
+ protocols: Array.isArray(input.protocols) ? input.protocols : [],
350
+ buildArtifacts: Array.isArray(input.buildArtifacts)
351
+ ? input.buildArtifacts
352
+ : Array.isArray(input.build_artifacts)
353
+ ? input.build_artifacts
354
+ : [],
355
+ flowNodes,
356
+ flowEdges,
357
+ flowTriggers,
358
+ flowTriggerBindings,
218
359
  providerPeerId: input.providerPeerId ?? input.provider_peer_id,
219
360
  providerEpmCid: input.providerEpmCid ?? input.provider_epm_cid,
220
361
  encrypted: input.encrypted === true,
221
362
  requiredScope: input.requiredScope ?? input.required_scope,
222
363
  keyId: input.keyId ?? input.key_id,
223
- allowedDomains: Array.isArray(input.allowedDomains)
224
- ? input.allowedDomains
225
- : [],
226
- maxGrantTimeoutMs: input.maxGrantTimeoutMs ?? input.max_grant_timeout_ms,
227
- minPermissions: Array.isArray(input.minPermissions)
228
- ? input.minPermissions
229
- : Array.isArray(input.runtimeTargets)
230
- ? input.runtimeTargets
364
+ allowedXpubs: Array.isArray(input.allowedXpubs)
365
+ ? input.allowedXpubs
366
+ : Array.isArray(input.allowed_xpubs)
367
+ ? input.allowed_xpubs
231
368
  : [],
369
+ maxGrantTimeoutMs: input.maxGrantTimeoutMs ?? input.max_grant_timeout_ms,
370
+ minPermissions,
232
371
  createdAt: input.createdAt ?? input.created_at,
233
372
  updatedAt: input.updatedAt ?? input.updated_at,
234
373
  documentationUrl: input.documentationUrl ?? input.documentation_url,
@@ -63,6 +63,7 @@ const capabilityKindByName = Object.freeze({
63
63
  storage_adapter: CapabilityKind.STORAGE_ADAPTER,
64
64
  storage_query: CapabilityKind.STORAGE_QUERY,
65
65
  storage_write: CapabilityKind.STORAGE_WRITE,
66
+ storage_ingest: CapabilityKind.STORAGE_INGEST,
66
67
  wallet_sign: CapabilityKind.WALLET_SIGN,
67
68
  ipfs: CapabilityKind.IPFS,
68
69
  crypto_hash: CapabilityKind.CRYPTO_HASH,