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.
- package/README.md +117 -20
- package/bin/space-data-module.js +263 -0
- package/docs/.nojekyll +1 -0
- package/docs/AGENTS.md +34 -0
- package/docs/architecture.svg +141 -0
- package/docs/browser-wasmedge-isomorphic.md +179 -0
- package/docs/flatsql-streaming-standard.md +341 -0
- package/docs/gpu-module-abi.md +193 -0
- package/docs/index.html +125 -0
- package/docs/isomorphic-pthreads.md +188 -0
- package/docs/isomorphic-sdn-runtime-plan.md +167 -0
- package/docs/language-runtime-matrix.md +82 -0
- package/docs/manifest-structure.svg +114 -0
- package/docs/module-bundle-runtime-plan.md +19 -0
- package/docs/module-lifecycle.svg +70 -0
- package/docs/module-publication-standard.md +540 -0
- package/docs/node-red-default-node-parity.md +88 -0
- package/docs/protocol-installation.md +196 -0
- package/docs/secrets-capability.md +152 -0
- package/docs/styles.css +288 -0
- package/docs/testing-harness.md +408 -0
- package/docs/tri-runtime-parity.md +132 -0
- package/docs/wallet-callback.html +2 -0
- package/package.json +25 -6
- package/schemas/HttpRequestAbi.fbs +41 -0
- package/schemas/HttpResponseAbi.fbs +36 -0
- package/schemas/PluginManifest.fbs +2 -1
- package/src/AGENTS.md +1 -1
- package/src/app/codec.js +548 -0
- package/src/app/index.js +6 -0
- package/src/browser.js +5 -0
- package/src/bundle/constants.js +1 -0
- package/src/bundle/index.js +15 -0
- package/src/bundle/sigdomain.js +179 -0
- package/src/bundle/signing.js +767 -0
- package/src/bundle/wasm.js +3 -2
- package/src/capabilities.js +3 -0
- package/src/compat/index.js +7 -0
- package/src/compat/sdnLegacy.js +449 -0
- package/src/compiler/compileModule.js +556 -55
- package/src/compiler/flatcSupport.js +41 -27
- package/src/compiler/index.d.ts +2 -0
- package/src/compiler/index.js +18 -0
- package/src/compiler/invokeGlue.js +1212 -183
- package/src/compiler/pthreadArtifactGuard.js +910 -0
- package/src/compiler/sdnShimGenerator.js +323 -0
- package/src/compiler/wasiThreadsToolchain.js +150 -0
- package/src/compliance/index.js +11 -1
- package/src/compliance/legacyWildcardPorts.js +228 -0
- package/src/compliance/pluginCompliance.js +1000 -96
- package/src/field-stream/index.d.ts +31 -0
- package/src/field-stream/index.js +119 -0
- package/src/flow/dependencyStreamBridge.js +234 -0
- package/src/flow/flatsqlLinkShim.js +304 -0
- package/src/flow/flowCodec.js +107 -0
- package/src/flow/flowCompiler.js +2900 -0
- package/src/flow/flowRuntimeHost.js +877 -0
- package/src/flow/index.d.ts +117 -0
- package/src/flow/index.js +31 -0
- package/src/flow/isomorphicFlowHost.js +384 -0
- package/src/flow/jsFlowRuntime.js +275 -0
- package/src/flow/normalize.js +294 -0
- package/src/flow/runtime-src/flow_runtime.cpp +1699 -0
- package/src/flow/vendor/sdn-flow/MethodRegistry.js +400 -0
- package/src/flow/vendor/sdn-flow/constants.js +39 -0
- package/src/flow/vendor/sdn-flow/index.js +29 -0
- package/src/flow/vendor/sdn-flow/normalize.js +506 -0
- package/src/flow/vendor/sdn-flow/wasmCompatibility.js +189 -0
- package/src/generated/http/cpp/HttpRequestAbi_generated.h +285 -0
- package/src/generated/http/cpp/HttpResponseAbi_generated.h +192 -0
- package/src/generated/http/sdn/http/http-header.js +53 -0
- package/src/generated/http/sdn/http/http-header.ts +67 -0
- package/src/generated/http/sdn/http/http-request.js +132 -0
- package/src/generated/http/sdn/http/http-request.ts +179 -0
- package/src/generated/http/sdn/http/http-response.js +144 -0
- package/src/generated/http/sdn/http/http-response.ts +168 -0
- package/src/generated/http/sdn/http.js +11 -0
- package/src/generated/http/sdn/http.ts +4 -0
- package/src/generated/orbpro/flow/backpressure-policy.d.ts +12 -0
- package/src/generated/orbpro/flow/backpressure-policy.d.ts.map +1 -0
- package/src/generated/orbpro/flow/backpressure-policy.js +17 -0
- package/src/generated/orbpro/flow/backpressure-policy.js.map +1 -0
- package/src/generated/orbpro/flow/backpressure-policy.ts +15 -0
- package/src/generated/orbpro/flow/flow-bundle-manifest.d.ts +142 -0
- package/src/generated/orbpro/flow/flow-bundle-manifest.d.ts.map +1 -0
- package/src/generated/orbpro/flow/flow-bundle-manifest.js +304 -0
- package/src/generated/orbpro/flow/flow-bundle-manifest.js.map +1 -0
- package/src/generated/orbpro/flow/flow-bundle-manifest.ts +399 -0
- package/src/generated/orbpro/flow/flow-edge.d.ts +113 -0
- package/src/generated/orbpro/flow/flow-edge.d.ts.map +1 -0
- package/src/generated/orbpro/flow/flow-edge.js +221 -0
- package/src/generated/orbpro/flow/flow-edge.js.map +1 -0
- package/src/generated/orbpro/flow/flow-edge.ts +292 -0
- package/src/generated/orbpro/flow/flow-node.d.ts +80 -0
- package/src/generated/orbpro/flow/flow-node.d.ts.map +1 -0
- package/src/generated/orbpro/flow/flow-node.js +158 -0
- package/src/generated/orbpro/flow/flow-node.js.map +1 -0
- package/src/generated/orbpro/flow/flow-node.ts +202 -0
- package/src/generated/orbpro/flow/flow-program.d.ts +164 -0
- package/src/generated/orbpro/flow/flow-program.d.ts.map +1 -0
- package/src/generated/orbpro/flow/flow-program.js +350 -0
- package/src/generated/orbpro/flow/flow-program.js.map +1 -0
- package/src/generated/orbpro/flow/flow-program.ts +477 -0
- package/src/generated/orbpro/flow/flow-trigger.d.ts +108 -0
- package/src/generated/orbpro/flow/flow-trigger.d.ts.map +1 -0
- package/src/generated/orbpro/flow/flow-trigger.js +207 -0
- package/src/generated/orbpro/flow/flow-trigger.js.map +1 -0
- package/src/generated/orbpro/flow/flow-trigger.ts +276 -0
- package/src/generated/orbpro/flow/node-kind.d.ts +13 -0
- package/src/generated/orbpro/flow/node-kind.d.ts.map +1 -0
- package/src/generated/orbpro/flow/node-kind.js +16 -0
- package/src/generated/orbpro/flow/node-kind.js.map +1 -0
- package/src/generated/orbpro/{invoke.ts → flow/node-kind.ts} +12 -2
- package/src/generated/orbpro/flow/plugin-version-binding.d.ts +52 -0
- package/src/generated/orbpro/flow/plugin-version-binding.d.ts.map +1 -0
- package/src/generated/orbpro/flow/plugin-version-binding.js +85 -0
- package/src/generated/orbpro/flow/plugin-version-binding.js.map +1 -0
- package/src/generated/orbpro/flow/plugin-version-binding.ts +121 -0
- package/src/generated/orbpro/flow/schema-hash-binding.d.ts +70 -0
- package/src/generated/orbpro/flow/schema-hash-binding.d.ts.map +1 -0
- package/src/generated/orbpro/flow/schema-hash-binding.js +143 -0
- package/src/generated/orbpro/flow/schema-hash-binding.js.map +1 -0
- package/src/generated/orbpro/flow/schema-hash-binding.ts +189 -0
- package/src/generated/orbpro/flow/trigger-binding.d.ts +71 -0
- package/src/generated/orbpro/flow/trigger-binding.d.ts.map +1 -0
- package/src/generated/orbpro/flow/trigger-binding.js +142 -0
- package/src/generated/orbpro/flow/trigger-binding.js.map +1 -0
- package/src/generated/orbpro/flow/trigger-binding.ts +181 -0
- package/src/generated/orbpro/flow/trigger-kind.d.ts +14 -0
- package/src/generated/orbpro/flow/trigger-kind.d.ts.map +1 -0
- package/src/generated/orbpro/flow/trigger-kind.js +17 -0
- package/src/generated/orbpro/flow/trigger-kind.js.map +1 -0
- package/src/generated/orbpro/flow/trigger-kind.ts +17 -0
- package/src/generated/orbpro/flow.d.ts +21 -0
- package/src/generated/orbpro/flow.d.ts.map +1 -0
- package/src/generated/orbpro/flow.js +23 -0
- package/src/generated/orbpro/flow.js.map +1 -0
- package/src/generated/orbpro/flow.ts +24 -0
- package/src/generated/orbpro/manifest/capability-kind.d.ts +2 -1
- package/src/generated/orbpro/manifest/capability-kind.js +1 -0
- package/src/generated/orbpro/manifest/capability-kind.ts +1 -0
- package/src/generated/orbpro/plugin/stream-invoke-request.d.ts +93 -0
- package/src/generated/orbpro/plugin/stream-invoke-request.js +160 -0
- package/src/generated/orbpro/plugin/stream-invoke-request.ts +211 -0
- package/src/generated/orbpro/plugin/stream-invoke-response.d.ts +99 -0
- package/src/generated/orbpro/plugin/stream-invoke-response.js +175 -0
- package/src/generated/orbpro/plugin/stream-invoke-response.ts +226 -0
- package/src/generated/orbpro/plugin.js +8 -0
- package/src/generated/orbpro/stream.d.ts +12 -0
- package/src/generated/orbpro/stream.js +14 -0
- package/src/generated/orbpro/stream.ts +15 -0
- package/src/generated/spacedatastandards/plg/EntryFunction.d.ts +52 -0
- package/src/generated/spacedatastandards/plg/EntryFunction.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/EntryFunction.js +106 -0
- package/src/generated/spacedatastandards/plg/EntryFunction.ts +162 -0
- package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.d.ts +90 -0
- package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.js +189 -0
- package/src/generated/spacedatastandards/plg/FlatBufferTypeRef.ts +270 -0
- package/src/generated/spacedatastandards/plg/PLG.d.ts +492 -0
- package/src/generated/spacedatastandards/plg/PLG.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLG.js +1139 -0
- package/src/generated/spacedatastandards/plg/PLG.ts +1600 -0
- package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.d.ts +63 -0
- package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.js +138 -0
- package/src/generated/spacedatastandards/plg/PLGAcceptedTypeSet.ts +189 -0
- package/src/generated/spacedatastandards/plg/PLGBuildArtifact.d.ts +41 -0
- package/src/generated/spacedatastandards/plg/PLGBuildArtifact.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGBuildArtifact.js +104 -0
- package/src/generated/spacedatastandards/plg/PLGBuildArtifact.ts +151 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdge.d.ts +68 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdge.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdge.js +124 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdge.ts +184 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.d.ts +58 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.js +126 -0
- package/src/generated/spacedatastandards/plg/PLGFlowEdgeContract.ts +161 -0
- package/src/generated/spacedatastandards/plg/PLGFlowNode.d.ts +82 -0
- package/src/generated/spacedatastandards/plg/PLGFlowNode.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGFlowNode.js +164 -0
- package/src/generated/spacedatastandards/plg/PLGFlowNode.ts +244 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTrigger.d.ts +55 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTrigger.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTrigger.js +105 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTrigger.ts +162 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.d.ts +42 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.js +83 -0
- package/src/generated/spacedatastandards/plg/PLGFlowTriggerBinding.ts +127 -0
- package/src/generated/spacedatastandards/plg/PLGHostCapability.d.ts +36 -0
- package/src/generated/spacedatastandards/plg/PLGHostCapability.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGHostCapability.js +90 -0
- package/src/generated/spacedatastandards/plg/PLGHostCapability.ts +127 -0
- package/src/generated/spacedatastandards/plg/PLGMethodManifest.d.ts +53 -0
- package/src/generated/spacedatastandards/plg/PLGMethodManifest.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGMethodManifest.js +153 -0
- package/src/generated/spacedatastandards/plg/PLGMethodManifest.ts +210 -0
- package/src/generated/spacedatastandards/plg/PLGPortManifest.d.ts +70 -0
- package/src/generated/spacedatastandards/plg/PLGPortManifest.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGPortManifest.js +149 -0
- package/src/generated/spacedatastandards/plg/PLGPortManifest.ts +212 -0
- package/src/generated/spacedatastandards/plg/PLGProtocolSpec.d.ts +73 -0
- package/src/generated/spacedatastandards/plg/PLGProtocolSpec.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGProtocolSpec.js +199 -0
- package/src/generated/spacedatastandards/plg/PLGProtocolSpec.ts +292 -0
- package/src/generated/spacedatastandards/plg/PLGTimerSpec.d.ts +40 -0
- package/src/generated/spacedatastandards/plg/PLGTimerSpec.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PLGTimerSpec.js +103 -0
- package/src/generated/spacedatastandards/plg/PLGTimerSpec.ts +148 -0
- package/src/generated/spacedatastandards/plg/PluginCapability.d.ts +41 -0
- package/src/generated/spacedatastandards/plg/PluginCapability.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PluginCapability.js +82 -0
- package/src/generated/spacedatastandards/plg/{plugin-capability.ts → PluginCapability.ts} +55 -18
- package/src/generated/spacedatastandards/plg/PluginDependency.d.ts +42 -0
- package/src/generated/spacedatastandards/plg/PluginDependency.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/PluginDependency.js +80 -0
- package/src/generated/spacedatastandards/plg/PluginDependency.ts +124 -0
- package/src/generated/spacedatastandards/plg/TAB.d.ts +85 -0
- package/src/generated/spacedatastandards/plg/TAB.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/TAB.js +173 -0
- package/src/generated/spacedatastandards/plg/TAB.ts +228 -0
- package/src/generated/spacedatastandards/plg/bufferMutability.d.ts +18 -0
- package/src/generated/spacedatastandards/plg/bufferMutability.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/bufferMutability.js +20 -0
- package/src/generated/spacedatastandards/plg/bufferMutability.ts +23 -0
- package/src/generated/spacedatastandards/plg/bufferOwnership.d.ts +18 -0
- package/src/generated/spacedatastandards/plg/bufferOwnership.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/bufferOwnership.js +20 -0
- package/src/generated/spacedatastandards/plg/bufferOwnership.ts +23 -0
- package/src/generated/spacedatastandards/plg/drainBehavior.d.ts +20 -0
- package/src/generated/spacedatastandards/plg/drainBehavior.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/drainBehavior.js +22 -0
- package/src/generated/spacedatastandards/plg/drainBehavior.ts +25 -0
- package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.d.ts +10 -0
- package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.js +12 -0
- package/src/generated/spacedatastandards/plg/flowEdgeRoutePolicy.ts +13 -0
- package/src/generated/spacedatastandards/plg/hostCapabilityKind.d.ts +51 -0
- package/src/generated/spacedatastandards/plg/hostCapabilityKind.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/hostCapabilityKind.js +53 -0
- package/src/generated/spacedatastandards/plg/hostCapabilityKind.ts +55 -0
- package/src/generated/spacedatastandards/plg/invokeSurfaceKind.d.ts +15 -0
- package/src/generated/spacedatastandards/plg/invokeSurfaceKind.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/invokeSurfaceKind.js +17 -0
- package/src/generated/spacedatastandards/plg/invokeSurfaceKind.ts +19 -0
- package/src/generated/spacedatastandards/plg/main.d.ts +29 -0
- package/src/generated/spacedatastandards/plg/main.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/main.js +30 -0
- package/src/generated/spacedatastandards/plg/main.ts +32 -0
- package/src/generated/spacedatastandards/plg/payloadWireFormat.d.ts +17 -0
- package/src/generated/spacedatastandards/plg/payloadWireFormat.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/payloadWireFormat.js +19 -0
- package/src/generated/spacedatastandards/plg/payloadWireFormat.ts +21 -0
- package/src/generated/spacedatastandards/plg/pluginCategory.d.ts +82 -0
- package/src/generated/spacedatastandards/plg/pluginCategory.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/pluginCategory.js +84 -0
- package/src/generated/spacedatastandards/plg/pluginCategory.ts +103 -0
- package/src/generated/spacedatastandards/plg/publicationState.d.ts +18 -0
- package/src/generated/spacedatastandards/plg/publicationState.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/publicationState.js +20 -0
- package/src/generated/spacedatastandards/plg/purchaseTier.d.ts +18 -0
- package/src/generated/spacedatastandards/plg/purchaseTier.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/purchaseTier.js +20 -0
- package/src/host/AGENTS.md +2 -2
- package/src/host/abi.js +53 -66
- package/src/host/browserHost.js +355 -8
- package/src/host/cpp/keyslotClient.hpp +231 -0
- package/src/host/cpp/secretsClient.hpp +583 -0
- package/src/host/hostcallWire.js +183 -0
- package/src/host/index.js +2 -0
- package/src/host/isomorphicLoader.js +44 -7
- package/src/host/nodeHost.js +227 -8
- package/src/host/sabHostcallChannel.js +206 -0
- package/src/host/timerDriver.js +203 -0
- package/src/host/wasiShim.js +41 -1
- package/src/host/wasiThreadBrowserWorker.mjs +48 -0
- package/src/host/wasiThreadHost.js +393 -0
- package/src/host/wasiThreadWorker.mjs +32 -0
- package/src/host/wasiThreadWorkerRuntime.js +93 -0
- package/src/http/index.js +339 -0
- package/src/index.d.ts +716 -10
- package/src/index.js +4 -0
- package/src/invoke/codec.js +1202 -128
- package/src/invoke/index.js +5 -1
- package/src/licensing/index.d.ts +2 -0
- package/src/licensing/index.js +2 -0
- package/src/licensing/records.js +287 -8
- package/src/manifest/codec.js +62 -14
- package/src/manifest/index.js +2 -0
- package/src/manifest/legacyToPlg.js +164 -25
- package/src/manifest/normalize.js +1 -0
- package/src/manifest/plgCodec.js +1303 -62
- package/src/manifest/typeRefs.js +162 -24
- package/src/runtime/compiledRuntimeAbi.js +47 -0
- package/src/runtime/compiledRuntimeAbi.json +33 -0
- package/src/runtime/index.d.ts +32 -0
- package/src/runtime/index.js +1 -0
- package/src/runtime-host/index.js +3 -0
- package/src/runtime-host/methodRegistry.js +55 -0
- package/src/standards/index.js +200 -56
- package/src/standards/sharedCatalog.js +16 -0
- package/src/testing/browserModuleHarness.js +604 -31
- package/src/testing/docker/wasmedge-parity.Dockerfile +39 -0
- package/src/testing/index.d.ts +151 -0
- package/src/testing/index.js +21 -0
- package/src/testing/native/wasmedge_emscripten_pthread_runner.c +25 -1
- package/src/testing/parityBrowserRunner.js +138 -0
- package/src/testing/parityHarness.js +616 -0
- package/src/testing/parityLanes.js +537 -0
- package/src/testing/processInvoke.js +29 -21
- package/src/testing/streamInvokeCodec.js +10 -175
- package/src/testing/wasmedgePin.json +6 -0
- package/src/testing/workerModuleHarness.js +242 -0
- package/src/testing/workerModuleHarnessWorker.js +176 -0
- package/src/transport/index.js +3 -0
- package/src/transport/pki.js +299 -11
- package/src/transport/records.js +16 -7
- package/src/utils/ecdsaDer.js +106 -0
- package/src/utils/wasmCrypto.js +0 -43
- package/templates/gpu-module/README.md +48 -0
- package/templates/gpu-module/include/space_data_gpu_abi.h +122 -0
- package/templates/gpu-module/manifest.json +84 -0
- package/schemas/PluginInvokeRequest.fbs +0 -18
- package/schemas/PluginInvokeResponse.fbs +0 -30
- package/schemas/spacedatastandards/PLG.fbs +0 -191
- package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts +0 -51
- package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts.map +0 -1
- package/src/generated/orbpro/invoke/plugin-invoke-request.js +0 -131
- package/src/generated/orbpro/invoke/plugin-invoke-request.js.map +0 -1
- package/src/generated/orbpro/invoke/plugin-invoke-request.ts +0 -173
- package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts +0 -76
- package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts.map +0 -1
- package/src/generated/orbpro/invoke/plugin-invoke-response.js +0 -184
- package/src/generated/orbpro/invoke/plugin-invoke-response.js.map +0 -1
- package/src/generated/orbpro/invoke/plugin-invoke-response.ts +0 -243
- package/src/generated/orbpro/invoke.d.ts +0 -3
- package/src/generated/orbpro/invoke.js +0 -5
- package/src/generated/spacedatastandards/plg/entry-function.js +0 -86
- package/src/generated/spacedatastandards/plg/entry-function.ts +0 -119
- package/src/generated/spacedatastandards/plg/index.js +0 -16
- package/src/generated/spacedatastandards/plg/index.ts +0 -11
- package/src/generated/spacedatastandards/plg/plg.js +0 -657
- package/src/generated/spacedatastandards/plg/plg.ts +0 -924
- package/src/generated/spacedatastandards/plg/plugin-capability.js +0 -66
- package/src/generated/spacedatastandards/plg/plugin-category.js +0 -15
- package/src/generated/spacedatastandards/plg/plugin-category.ts +0 -53
- package/src/generated/spacedatastandards/plg/plugin-dependency.js +0 -63
- package/src/generated/spacedatastandards/plg/plugin-dependency.ts +0 -86
- package/src/generated/spacedatastandards/plg/publication-state.js +0 -9
- package/src/generated/spacedatastandards/plg/purchase-tier.js +0 -9
- /package/src/generated/spacedatastandards/plg/{publication-state.ts → publicationState.ts} +0 -0
- /package/src/generated/spacedatastandards/plg/{purchase-tier.ts → purchaseTier.ts} +0 -0
package/src/invoke/index.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
export * from "../generated/orbpro/invoke.js";
|
|
2
1
|
export {
|
|
2
|
+
INVOKE_ARENA_ALIGNMENT,
|
|
3
|
+
assertAlignedInvokeBuffer,
|
|
4
|
+
createInvokeArenaLease,
|
|
3
5
|
decodePluginInvokeRequest,
|
|
4
6
|
decodePluginInvokeResponse,
|
|
5
7
|
encodePluginInvokeRequest,
|
|
6
8
|
encodePluginInvokeResponse,
|
|
9
|
+
forwardOutputFrameAsInput,
|
|
7
10
|
normalizeInvokeSurfaceName,
|
|
8
11
|
normalizeInvokeSurfaces,
|
|
12
|
+
writePluginInvokeRequestToArena,
|
|
9
13
|
} from "./codec.js";
|
package/src/licensing/index.d.ts
CHANGED
|
@@ -3,11 +3,13 @@ export {
|
|
|
3
3
|
decodeLicensingChallengeMessage,
|
|
4
4
|
decodeLicensingGrant,
|
|
5
5
|
decodeLicensingProofMessage,
|
|
6
|
+
encodeUnsignedLicensingGrantForProviderSignature,
|
|
6
7
|
encodeLicensingChallengeRequest,
|
|
7
8
|
encodeLicensingProof,
|
|
8
9
|
extractGrantModuleDescriptor,
|
|
9
10
|
extractWrappedContentKey,
|
|
10
11
|
validateLicensingGrant,
|
|
12
|
+
verifyLicensingGrantProviderSignature,
|
|
11
13
|
} from "../index.js";
|
|
12
14
|
|
|
13
15
|
export type {
|
package/src/licensing/index.js
CHANGED
|
@@ -3,9 +3,11 @@ export {
|
|
|
3
3
|
decodeLicensingChallengeMessage,
|
|
4
4
|
decodeLicensingGrant,
|
|
5
5
|
decodeLicensingProofMessage,
|
|
6
|
+
encodeUnsignedLicensingGrantForProviderSignature,
|
|
6
7
|
encodeLicensingChallengeRequest,
|
|
7
8
|
encodeLicensingProof,
|
|
8
9
|
extractGrantModuleDescriptor,
|
|
9
10
|
extractWrappedContentKey,
|
|
10
11
|
validateLicensingGrant,
|
|
12
|
+
verifyLicensingGrantProviderSignature,
|
|
11
13
|
} from "./records.js";
|
package/src/licensing/records.js
CHANGED
|
@@ -17,6 +17,8 @@ import {
|
|
|
17
17
|
} from "spacedatastandards.org/lib/js/LGR/main.js";
|
|
18
18
|
import { LPF, licensingProofMessageType } from "spacedatastandards.org/lib/js/LPF/main.js";
|
|
19
19
|
|
|
20
|
+
const PROVIDER_SIGNATURE_LENGTH = 64;
|
|
21
|
+
|
|
20
22
|
export class LicensingProtocolError extends Error {
|
|
21
23
|
constructor(code, message) {
|
|
22
24
|
super(message);
|
|
@@ -77,6 +79,7 @@ export function encodeLicensingChallengeRequest(options) {
|
|
|
77
79
|
providerPeerIdOffset,
|
|
78
80
|
0,
|
|
79
81
|
0,
|
|
82
|
+
0,
|
|
80
83
|
);
|
|
81
84
|
LCH.finishLCHBuffer(builder, root);
|
|
82
85
|
return builder.asUint8Array();
|
|
@@ -437,6 +440,82 @@ export function validateLicensingGrant(grant, options = {}) {
|
|
|
437
440
|
return grant;
|
|
438
441
|
}
|
|
439
442
|
|
|
443
|
+
export function encodeUnsignedLicensingGrantForProviderSignature(grant) {
|
|
444
|
+
if (!grant || typeof grant !== "object") {
|
|
445
|
+
throw new TypeError("grant is required");
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
const rawBytes = cloneOptionalBytes(grant.rawBytes);
|
|
449
|
+
if (rawBytes.length > 0) {
|
|
450
|
+
const root = LGR.getRootAsLGR(new flatbuffers.ByteBuffer(rawBytes));
|
|
451
|
+
if (root.MESSAGE_TYPE() !== licensingGrantMessageType.Granted) {
|
|
452
|
+
throw new LicensingProtocolError(
|
|
453
|
+
"invalid_grant",
|
|
454
|
+
"expected granted licensing record",
|
|
455
|
+
);
|
|
456
|
+
}
|
|
457
|
+
return encodeUnsignedGrantFromRawRoot(root, rawBytes);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
return encodeUnsignedGrantFromDecodedMessage(grant);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
export async function verifyLicensingGrantProviderSignature(grant, options = {}) {
|
|
464
|
+
const providerSignature = cloneOptionalBytes(grant?.providerSignature);
|
|
465
|
+
if (providerSignature.length !== PROVIDER_SIGNATURE_LENGTH) {
|
|
466
|
+
throw new LicensingProtocolError(
|
|
467
|
+
"invalid_grant",
|
|
468
|
+
`licensing grant provider signature must be ${PROVIDER_SIGNATURE_LENGTH} bytes`,
|
|
469
|
+
);
|
|
470
|
+
}
|
|
471
|
+
if (providerSignature.every((byte) => byte === 0)) {
|
|
472
|
+
throw new LicensingProtocolError(
|
|
473
|
+
"invalid_grant",
|
|
474
|
+
"licensing grant provider signature must not be all zeroes",
|
|
475
|
+
);
|
|
476
|
+
}
|
|
477
|
+
if (
|
|
478
|
+
Number.isFinite(options.requestedAtMs) &&
|
|
479
|
+
grant.expiresAtMs > 0 &&
|
|
480
|
+
grant.expiresAtMs <= options.requestedAtMs
|
|
481
|
+
) {
|
|
482
|
+
throw new LicensingProtocolError(
|
|
483
|
+
"grant_expired",
|
|
484
|
+
"licensing grant has expired",
|
|
485
|
+
);
|
|
486
|
+
}
|
|
487
|
+
const status = trimOptional(grant.grantStatus)?.toLowerCase();
|
|
488
|
+
if (status === "revoked") {
|
|
489
|
+
throw new LicensingProtocolError(
|
|
490
|
+
"grant_revoked",
|
|
491
|
+
"licensing grant has been revoked",
|
|
492
|
+
);
|
|
493
|
+
}
|
|
494
|
+
if (status && status !== "active" && status !== "granted") {
|
|
495
|
+
throw new LicensingProtocolError(
|
|
496
|
+
"grant_status_invalid",
|
|
497
|
+
`licensing grant status is not active: ${status}`,
|
|
498
|
+
);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
if (typeof options.verify !== "function") {
|
|
502
|
+
throw new TypeError("verifyLicensingGrantProviderSignature requires verify.");
|
|
503
|
+
}
|
|
504
|
+
const unsignedGrant = encodeUnsignedLicensingGrantForProviderSignature(grant);
|
|
505
|
+
const signatureValid = await options.verify(
|
|
506
|
+
cloneOptionalBytes(grant.grantVerifierPublicKey),
|
|
507
|
+
unsignedGrant,
|
|
508
|
+
providerSignature,
|
|
509
|
+
);
|
|
510
|
+
if (!signatureValid) {
|
|
511
|
+
throw new LicensingProtocolError(
|
|
512
|
+
"invalid_grant_signature",
|
|
513
|
+
"licensing grant provider signature verification failed",
|
|
514
|
+
);
|
|
515
|
+
}
|
|
516
|
+
return grant;
|
|
517
|
+
}
|
|
518
|
+
|
|
440
519
|
export function extractGrantModuleDescriptor(grant) {
|
|
441
520
|
if (!grant?.moduleDescriptor) {
|
|
442
521
|
throw new LicensingProtocolError(
|
|
@@ -447,6 +526,153 @@ export function extractGrantModuleDescriptor(grant) {
|
|
|
447
526
|
return grant.moduleDescriptor;
|
|
448
527
|
}
|
|
449
528
|
|
|
529
|
+
function encodeUnsignedGrantFromRawRoot(root, rawBytes) {
|
|
530
|
+
const providerSignature = root.providerSignatureArray();
|
|
531
|
+
if (!providerSignature || providerSignature.length !== PROVIDER_SIGNATURE_LENGTH) {
|
|
532
|
+
throw new LicensingProtocolError(
|
|
533
|
+
"invalid_grant",
|
|
534
|
+
`licensing grant provider signature must be ${PROVIDER_SIGNATURE_LENGTH} bytes`,
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
const signingBytes = cloneBytes(rawBytes);
|
|
539
|
+
const signingRoot = LGR.getRootAsLGR(new flatbuffers.ByteBuffer(signingBytes));
|
|
540
|
+
signingRoot.providerSignatureArray().fill(0);
|
|
541
|
+
return signingBytes;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
function encodeUnsignedGrantFromDecodedMessage(grant) {
|
|
545
|
+
const builder = new flatbuffers.Builder(2048);
|
|
546
|
+
const requestIdOffset = builder.createString(grant.reqId || "");
|
|
547
|
+
const moduleIdOffset = builder.createString(grant.moduleId || "");
|
|
548
|
+
const moduleVersionOffset = createOptionalString(builder, grant.moduleVersion);
|
|
549
|
+
const requesterPeerIdOffset = createOptionalString(builder, grant.requesterPeerId);
|
|
550
|
+
const requesterXpubOffset = createOptionalString(builder, grant.requesterXpub);
|
|
551
|
+
const requestedDomainOffset = createOptionalString(builder, grant.requestedDomain);
|
|
552
|
+
const grantedDomainOffset = createOptionalString(builder, grant.grantedDomain);
|
|
553
|
+
const requiredScopeOffset = createOptionalString(builder, grant.requiredScope);
|
|
554
|
+
const grantStatusOffset = createOptionalString(builder, grant.grantStatus);
|
|
555
|
+
const denialReasonOffset = createOptionalString(builder, grant.denialReason);
|
|
556
|
+
const capabilityTokenOffset = createOptionalVector(
|
|
557
|
+
builder,
|
|
558
|
+
LGR.createCapabilityTokenVector,
|
|
559
|
+
grant.capabilityToken,
|
|
560
|
+
);
|
|
561
|
+
const moduleDescriptorOffset = grant.moduleDescriptor
|
|
562
|
+
? encodeDecodedModuleDescriptor(builder, grant.moduleDescriptor)
|
|
563
|
+
: 0;
|
|
564
|
+
const wrappedHeaderOffset = grant.wrappedContentKey?.header
|
|
565
|
+
? encodeDecodedWrappedHeader(builder, grant.wrappedContentKey.header)
|
|
566
|
+
: 0;
|
|
567
|
+
const wrappedPayloadOffset = createOptionalVector(
|
|
568
|
+
builder,
|
|
569
|
+
LGR.createWrappedContentKeyPayloadVector,
|
|
570
|
+
grant.wrappedContentKey?.encryptedPayload,
|
|
571
|
+
);
|
|
572
|
+
const verifierPubkeyOffset = createOptionalVector(
|
|
573
|
+
builder,
|
|
574
|
+
LGR.createGrantVerifierPubkeyVector,
|
|
575
|
+
grant.grantVerifierPublicKey,
|
|
576
|
+
);
|
|
577
|
+
const providerSignatureOffset = LGR.createProviderSignatureVector(
|
|
578
|
+
builder,
|
|
579
|
+
new Uint8Array(PROVIDER_SIGNATURE_LENGTH),
|
|
580
|
+
);
|
|
581
|
+
|
|
582
|
+
LGR.startLGR(builder);
|
|
583
|
+
LGR.addMessageType(builder, licensingGrantMessageType.Granted);
|
|
584
|
+
LGR.addRequestId(builder, requestIdOffset);
|
|
585
|
+
LGR.addModuleId(builder, moduleIdOffset);
|
|
586
|
+
if (moduleVersionOffset !== 0) LGR.addModuleVersion(builder, moduleVersionOffset);
|
|
587
|
+
if (requesterPeerIdOffset !== 0) LGR.addRequesterPeerId(builder, requesterPeerIdOffset);
|
|
588
|
+
if (requesterXpubOffset !== 0) LGR.addRequesterXpub(builder, requesterXpubOffset);
|
|
589
|
+
if (requestedDomainOffset !== 0) LGR.addRequestedDomain(builder, requestedDomainOffset);
|
|
590
|
+
LGR.addRequestedTimeoutMs(builder, BigInt(grant.requestedTimeoutMs ?? 0));
|
|
591
|
+
if (grantedDomainOffset !== 0) LGR.addGrantedDomain(builder, grantedDomainOffset);
|
|
592
|
+
LGR.addGrantedTimeoutMs(builder, BigInt(grant.grantedTimeoutMs ?? 0));
|
|
593
|
+
LGR.addExpiresAt(builder, BigInt(grant.expiresAtMs ?? 0));
|
|
594
|
+
if (requiredScopeOffset !== 0) LGR.addRequiredScope(builder, requiredScopeOffset);
|
|
595
|
+
if (grantStatusOffset !== 0) LGR.addGrantStatus(builder, grantStatusOffset);
|
|
596
|
+
if (denialReasonOffset !== 0) LGR.addDenialReason(builder, denialReasonOffset);
|
|
597
|
+
if (capabilityTokenOffset !== 0) LGR.addCapabilityToken(builder, capabilityTokenOffset);
|
|
598
|
+
if (moduleDescriptorOffset !== 0) LGR.addModuleDescriptor(builder, moduleDescriptorOffset);
|
|
599
|
+
if (wrappedHeaderOffset !== 0) LGR.addWrappedContentKeyHeader(builder, wrappedHeaderOffset);
|
|
600
|
+
if (wrappedPayloadOffset !== 0) LGR.addWrappedContentKeyPayload(builder, wrappedPayloadOffset);
|
|
601
|
+
if (verifierPubkeyOffset !== 0) LGR.addGrantVerifierPubkey(builder, verifierPubkeyOffset);
|
|
602
|
+
LGR.addProviderSignature(builder, providerSignatureOffset);
|
|
603
|
+
const rootOffset = LGR.endLGR(builder);
|
|
604
|
+
LGR.finishLGRBuffer(builder, rootOffset);
|
|
605
|
+
return builder.asUint8Array();
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
function encodeDecodedModuleDescriptor(builder, descriptor) {
|
|
609
|
+
const pluginIdOffset = builder.createString(descriptor.moduleId || "");
|
|
610
|
+
const nameOffset = createOptionalString(builder, descriptor.moduleId);
|
|
611
|
+
const versionOffset = createOptionalString(builder, descriptor.moduleVersion);
|
|
612
|
+
const wasmHashOffset = createOptionalVector(builder, PLG.createWasmHashVector, descriptor.contentHash);
|
|
613
|
+
const wasmCidOffset = createOptionalString(builder, descriptor.cid);
|
|
614
|
+
const requiredScopeOffset = createOptionalString(builder, descriptor.requiredScope);
|
|
615
|
+
const keyIdOffset = createOptionalString(builder, descriptor.keyId);
|
|
616
|
+
const allowedXpubsOffset = createOptionalStringVector(
|
|
617
|
+
builder,
|
|
618
|
+
PLG.createAllowedXpubsVector,
|
|
619
|
+
descriptor.allowedXpubs ?? [],
|
|
620
|
+
);
|
|
621
|
+
|
|
622
|
+
PLG.startPLG(builder);
|
|
623
|
+
PLG.addPluginId(builder, pluginIdOffset);
|
|
624
|
+
if (nameOffset !== 0) PLG.addName(builder, nameOffset);
|
|
625
|
+
if (versionOffset !== 0) PLG.addVersion(builder, versionOffset);
|
|
626
|
+
if (wasmHashOffset !== 0) PLG.addWasmHash(builder, wasmHashOffset);
|
|
627
|
+
PLG.addWasmSize(builder, BigInt(descriptor.sizeBytes ?? 0));
|
|
628
|
+
if (wasmCidOffset !== 0) PLG.addWasmCid(builder, wasmCidOffset);
|
|
629
|
+
PLG.addEncrypted(builder, Boolean(descriptor.encrypted));
|
|
630
|
+
if (requiredScopeOffset !== 0) PLG.addRequiredScope(builder, requiredScopeOffset);
|
|
631
|
+
if (keyIdOffset !== 0) PLG.addKeyId(builder, keyIdOffset);
|
|
632
|
+
if (allowedXpubsOffset !== 0) PLG.addAllowedXpubs(builder, allowedXpubsOffset);
|
|
633
|
+
PLG.addMaxGrantTimeoutMs(builder, BigInt(descriptor.maxGrantTimeoutMs ?? 0));
|
|
634
|
+
return PLG.endPLG(builder);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
function encodeDecodedWrappedHeader(builder, header) {
|
|
638
|
+
const ephemeralPublicKeyOffset = createOptionalVector(
|
|
639
|
+
builder,
|
|
640
|
+
ENC.createEphemeralPublicKeyVector,
|
|
641
|
+
header.ephemeralPublicKey,
|
|
642
|
+
);
|
|
643
|
+
const nonceStartOffset = createOptionalVector(
|
|
644
|
+
builder,
|
|
645
|
+
ENC.createNonceStartVector,
|
|
646
|
+
header.nonceStart,
|
|
647
|
+
);
|
|
648
|
+
const recipientKeyIdOffset = createOptionalVector(
|
|
649
|
+
builder,
|
|
650
|
+
ENC.createRecipientKeyIdVector,
|
|
651
|
+
header.recipientKeyId,
|
|
652
|
+
);
|
|
653
|
+
const contextOffset = createOptionalString(builder, header.context);
|
|
654
|
+
const schemaHashOffset = createOptionalVector(
|
|
655
|
+
builder,
|
|
656
|
+
ENC.createSchemaHashVector,
|
|
657
|
+
header.schemaHash,
|
|
658
|
+
);
|
|
659
|
+
const rootTypeOffset = createOptionalString(builder, header.rootType);
|
|
660
|
+
return ENC.createENC(
|
|
661
|
+
builder,
|
|
662
|
+
Number(header.version ?? 1),
|
|
663
|
+
normalizeKeyExchange(header.keyExchange),
|
|
664
|
+
normalizeSymmetricAlgorithm(header.symmetric),
|
|
665
|
+
normalizeKeyDerivation(header.keyDerivation),
|
|
666
|
+
ephemeralPublicKeyOffset,
|
|
667
|
+
nonceStartOffset,
|
|
668
|
+
recipientKeyIdOffset,
|
|
669
|
+
contextOffset,
|
|
670
|
+
schemaHashOffset,
|
|
671
|
+
rootTypeOffset,
|
|
672
|
+
BigInt(header.timestamp ?? 0),
|
|
673
|
+
);
|
|
674
|
+
}
|
|
675
|
+
|
|
450
676
|
export function extractWrappedContentKey(grant) {
|
|
451
677
|
if (!grant?.wrappedContentKey) {
|
|
452
678
|
throw new LicensingProtocolError(
|
|
@@ -502,7 +728,7 @@ function decodeGrantModuleDescriptor(moduleDescriptor) {
|
|
|
502
728
|
moduleVersion: trimOptional(moduleDescriptor.VERSION()),
|
|
503
729
|
requiredScope: trimOptional(moduleDescriptor.REQUIRED_SCOPE()),
|
|
504
730
|
keyId: trimOptional(moduleDescriptor.KEY_ID()),
|
|
505
|
-
|
|
731
|
+
allowedXpubs: readAllowedXpubs(moduleDescriptor),
|
|
506
732
|
maxGrantTimeoutMs: numberFromUint64(
|
|
507
733
|
moduleDescriptor.MAX_GRANT_TIMEOUT_MS(),
|
|
508
734
|
"moduleDescriptor.MAX_GRANT_TIMEOUT_MS",
|
|
@@ -606,6 +832,19 @@ function createOptionalString(builder, value) {
|
|
|
606
832
|
return normalized ? builder.createString(normalized) : 0;
|
|
607
833
|
}
|
|
608
834
|
|
|
835
|
+
function createOptionalVector(builder, createVector, value) {
|
|
836
|
+
const bytes = cloneOptionalBytes(value);
|
|
837
|
+
return bytes.length > 0 ? createVector.call(LGR, builder, bytes) : 0;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
function createOptionalStringVector(builder, createVector, values) {
|
|
841
|
+
const offsets = (values ?? [])
|
|
842
|
+
.map((value) => trimOptional(value))
|
|
843
|
+
.filter(Boolean)
|
|
844
|
+
.map((value) => builder.createString(value));
|
|
845
|
+
return offsets.length > 0 ? createVector.call(PLG, builder, offsets) : 0;
|
|
846
|
+
}
|
|
847
|
+
|
|
609
848
|
function toUint8Array(value, label) {
|
|
610
849
|
if (value instanceof Uint8Array) {
|
|
611
850
|
return value;
|
|
@@ -681,6 +920,46 @@ function normalizeProtocolCode(value, fallback) {
|
|
|
681
920
|
return normalized || fallback;
|
|
682
921
|
}
|
|
683
922
|
|
|
923
|
+
function normalizeKeyExchange(value) {
|
|
924
|
+
if (typeof value === "number") {
|
|
925
|
+
return value;
|
|
926
|
+
}
|
|
927
|
+
switch (String(value ?? "X25519").trim().toUpperCase()) {
|
|
928
|
+
case "X25519":
|
|
929
|
+
return KeyExchange.X25519;
|
|
930
|
+
case "SECP256K1":
|
|
931
|
+
return KeyExchange.Secp256k1;
|
|
932
|
+
case "P256":
|
|
933
|
+
return KeyExchange.P256;
|
|
934
|
+
default:
|
|
935
|
+
return KeyExchange.X25519;
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
function normalizeSymmetricAlgorithm(value) {
|
|
940
|
+
if (typeof value === "number") {
|
|
941
|
+
return value;
|
|
942
|
+
}
|
|
943
|
+
switch (String(value ?? "AES_256_CTR").trim().toUpperCase()) {
|
|
944
|
+
case "AES_256_CTR":
|
|
945
|
+
return SymmetricAlgo.AES_256_CTR;
|
|
946
|
+
default:
|
|
947
|
+
return SymmetricAlgo.AES_256_CTR;
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
function normalizeKeyDerivation(value) {
|
|
952
|
+
if (typeof value === "number") {
|
|
953
|
+
return value;
|
|
954
|
+
}
|
|
955
|
+
switch (String(value ?? "HKDF_SHA256").trim().toUpperCase()) {
|
|
956
|
+
case "HKDF_SHA256":
|
|
957
|
+
return KDF.HKDF_SHA256;
|
|
958
|
+
default:
|
|
959
|
+
return KDF.HKDF_SHA256;
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
|
|
684
963
|
function challengeMessageTypeName(value) {
|
|
685
964
|
switch (value) {
|
|
686
965
|
case licensingChallengeMessageType.Request:
|
|
@@ -839,15 +1118,15 @@ function bytesToHex(bytes) {
|
|
|
839
1118
|
);
|
|
840
1119
|
}
|
|
841
1120
|
|
|
842
|
-
function
|
|
843
|
-
const
|
|
844
|
-
for (let index = 0; index < descriptor.
|
|
845
|
-
const
|
|
846
|
-
if (
|
|
847
|
-
|
|
1121
|
+
function readAllowedXpubs(descriptor) {
|
|
1122
|
+
const allowedXpubs = [];
|
|
1123
|
+
for (let index = 0; index < descriptor.allowedXpubsLength(); index += 1) {
|
|
1124
|
+
const xpub = descriptor.ALLOWED_XPUBS(index);
|
|
1125
|
+
if (xpub) {
|
|
1126
|
+
allowedXpubs.push(xpub);
|
|
848
1127
|
}
|
|
849
1128
|
}
|
|
850
|
-
return
|
|
1129
|
+
return allowedXpubs;
|
|
851
1130
|
}
|
|
852
1131
|
|
|
853
1132
|
export {
|
package/src/manifest/codec.js
CHANGED
|
@@ -6,12 +6,11 @@ import {
|
|
|
6
6
|
HostCapabilityT,
|
|
7
7
|
PluginFamily,
|
|
8
8
|
PluginManifest,
|
|
9
|
-
PluginManifestT,
|
|
10
9
|
} from "../generated/orbpro/manifest.js";
|
|
11
10
|
import { normalizeInvokeSurfaceName } from "../invoke/codec.js";
|
|
12
11
|
import { toUint8Array } from "../runtime/bufferLike.js";
|
|
13
|
-
import {
|
|
14
|
-
import { decodePlgManifest, isPlgManifestBuffer } from "./plgCodec.js";
|
|
12
|
+
import { legacyManifestToPlg } from "./legacyToPlg.js";
|
|
13
|
+
import { decodePlgManifest, encodePlgManifest, isPlgManifestBuffer } from "./plgCodec.js";
|
|
15
14
|
|
|
16
15
|
function toByteBuffer(data) {
|
|
17
16
|
if (data instanceof flatbuffers.ByteBuffer) {
|
|
@@ -45,6 +44,34 @@ function normalizePluginFamilyName(value) {
|
|
|
45
44
|
return normalizeEnumName(value, { separator: "_" });
|
|
46
45
|
}
|
|
47
46
|
|
|
47
|
+
function normalizePlgPluginFamilyName(value) {
|
|
48
|
+
if (typeof value === "number") {
|
|
49
|
+
switch (value) {
|
|
50
|
+
case 0:
|
|
51
|
+
return "sensor";
|
|
52
|
+
case 1:
|
|
53
|
+
return "propagator";
|
|
54
|
+
case 2:
|
|
55
|
+
return "renderer";
|
|
56
|
+
case 4:
|
|
57
|
+
return "data_source";
|
|
58
|
+
case 5:
|
|
59
|
+
return "ew";
|
|
60
|
+
case 6:
|
|
61
|
+
return "comms";
|
|
62
|
+
case 7:
|
|
63
|
+
return "physics";
|
|
64
|
+
case 8:
|
|
65
|
+
return "shader";
|
|
66
|
+
case 3:
|
|
67
|
+
default:
|
|
68
|
+
return "analysis";
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const normalized = normalizeEnumName(value, { separator: "_" });
|
|
72
|
+
return normalized === "datasource" ? "data_source" : normalized;
|
|
73
|
+
}
|
|
74
|
+
|
|
48
75
|
function normalizeDrainPolicyName(value) {
|
|
49
76
|
if (typeof value === "number" && typeof DrainPolicy[value] === "string") {
|
|
50
77
|
return normalizeEnumName(DrainPolicy[value], { separator: "-" });
|
|
@@ -156,15 +183,42 @@ function methodFromPlgEntry(entry = {}) {
|
|
|
156
183
|
}
|
|
157
184
|
|
|
158
185
|
function normalizeDecodedPlgManifest(manifest = {}) {
|
|
159
|
-
const methods = Array.isArray(manifest.
|
|
186
|
+
const methods = Array.isArray(manifest.methods) && manifest.methods.length > 0
|
|
187
|
+
? manifest.methods.map((method) => normalizeDecodedMethod(method))
|
|
188
|
+
: Array.isArray(manifest.entryFunctions)
|
|
160
189
|
? manifest.entryFunctions.map((entry) => methodFromPlgEntry(entry)).filter(Boolean)
|
|
161
190
|
: [];
|
|
191
|
+
const hostCapabilities = Array.isArray(manifest.hostCapabilities)
|
|
192
|
+
? manifest.hostCapabilities
|
|
193
|
+
: [];
|
|
194
|
+
const capabilities = hostCapabilities.length > 0
|
|
195
|
+
? hostCapabilities.map((entry) => {
|
|
196
|
+
if (!entry || typeof entry !== "object") {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
if (entry.scope || entry.description || entry.required === false) {
|
|
200
|
+
return entry;
|
|
201
|
+
}
|
|
202
|
+
return entry.capability;
|
|
203
|
+
}).filter(Boolean)
|
|
204
|
+
: Array.isArray(manifest.capabilities)
|
|
205
|
+
? manifest.capabilities.map((entry) => {
|
|
206
|
+
if (typeof entry === "string") {
|
|
207
|
+
return entry;
|
|
208
|
+
}
|
|
209
|
+
if (entry?.name && entry.required !== false && !entry.version) {
|
|
210
|
+
return entry.name;
|
|
211
|
+
}
|
|
212
|
+
return entry;
|
|
213
|
+
})
|
|
214
|
+
: [];
|
|
162
215
|
return {
|
|
163
216
|
...manifest,
|
|
217
|
+
pluginFamily:
|
|
218
|
+
manifest.pluginFamily ?? normalizePlgPluginFamilyName(manifest.pluginType),
|
|
164
219
|
methods,
|
|
165
|
-
capabilities
|
|
166
|
-
|
|
167
|
-
: [],
|
|
220
|
+
capabilities,
|
|
221
|
+
hostCapabilities,
|
|
168
222
|
invokeSurfaces: Array.isArray(manifest.invokeSurfaces)
|
|
169
223
|
? manifest.invokeSurfaces
|
|
170
224
|
.map((value) => normalizeInvokeSurfaceName(value))
|
|
@@ -202,11 +256,5 @@ export function decodePluginManifest(data) {
|
|
|
202
256
|
}
|
|
203
257
|
|
|
204
258
|
export function encodePluginManifest(manifest) {
|
|
205
|
-
|
|
206
|
-
manifest instanceof PluginManifestT
|
|
207
|
-
? manifest
|
|
208
|
-
: toEmbeddedPluginManifest(manifest).manifest;
|
|
209
|
-
const builder = new flatbuffers.Builder(1024);
|
|
210
|
-
PluginManifest.finishPluginManifestBuffer(builder, value.pack(builder));
|
|
211
|
-
return builder.asUint8Array();
|
|
259
|
+
return encodePlgManifest(legacyManifestToPlg(manifest));
|
|
212
260
|
}
|
package/src/manifest/index.js
CHANGED
|
@@ -14,9 +14,11 @@ export {
|
|
|
14
14
|
export { legacyManifestToPlg } from "./legacyToPlg.js";
|
|
15
15
|
export { toEmbeddedPluginManifest } from "./normalize.js";
|
|
16
16
|
export {
|
|
17
|
+
alignedPayloadLayoutsCompatible,
|
|
17
18
|
clonePayloadTypeRef,
|
|
18
19
|
getPayloadTypeWireFormat,
|
|
19
20
|
normalizePayloadWireFormatName,
|
|
21
|
+
payloadSchemaIdentitiesEqual,
|
|
20
22
|
payloadTypeRefsMatch,
|
|
21
23
|
selectPreferredPayloadTypeRef,
|
|
22
24
|
} from "./typeRefs.js";
|