space-data-module-sdk 0.8.3 → 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 +26 -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
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import { PluginManifestT } from "../generated/orbpro/manifest.js";
|
|
2
|
+
import { decodePluginManifestPman } from "../flow/flowCodec.js";
|
|
3
|
+
import { buildLegacySdnMetadata } from "../compat/sdnLegacy.js";
|
|
4
|
+
|
|
5
|
+
const textDecoder = new TextDecoder();
|
|
6
|
+
const textEncoder = new TextEncoder();
|
|
7
|
+
|
|
8
|
+
function asManifest(manifest) {
|
|
9
|
+
if (manifest instanceof PluginManifestT) {
|
|
10
|
+
return manifest;
|
|
11
|
+
}
|
|
12
|
+
if (
|
|
13
|
+
manifest instanceof Uint8Array ||
|
|
14
|
+
manifest instanceof ArrayBuffer ||
|
|
15
|
+
ArrayBuffer.isView(manifest)
|
|
16
|
+
) {
|
|
17
|
+
return decodePluginManifestPman(manifest);
|
|
18
|
+
}
|
|
19
|
+
return Object.assign(new PluginManifestT(), manifest);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function asArray(value) {
|
|
23
|
+
return Array.isArray(value) ? value : [];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function asString(value) {
|
|
27
|
+
if (value === null || value === undefined) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
if (typeof value === "string") {
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
if (value instanceof Uint8Array) {
|
|
34
|
+
return textDecoder.decode(value);
|
|
35
|
+
}
|
|
36
|
+
return String(value);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function unique(values) {
|
|
40
|
+
return Array.from(new Set(values.filter(Boolean)));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function escapeCStringBytes(value) {
|
|
44
|
+
return Array.from(
|
|
45
|
+
textEncoder.encode(value),
|
|
46
|
+
(byte) => `\\x${byte.toString(16).padStart(2, "0")}`,
|
|
47
|
+
).join("");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function resolveRequestMethodId(manifest, explicitMethodId) {
|
|
51
|
+
const declaredMethodIds = unique(
|
|
52
|
+
asArray(manifest.protocols).map((protocol) => asString(protocol?.methodId)),
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
if (explicitMethodId) {
|
|
56
|
+
const normalizedMethodId = asString(explicitMethodId);
|
|
57
|
+
if (
|
|
58
|
+
declaredMethodIds.length > 0 &&
|
|
59
|
+
!declaredMethodIds.includes(normalizedMethodId)
|
|
60
|
+
) {
|
|
61
|
+
throw new Error(
|
|
62
|
+
`Requested legacy handle_request binding "${normalizedMethodId}" is not declared by the manifest protocols.`,
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
return normalizedMethodId;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (declaredMethodIds.length <= 1) {
|
|
69
|
+
return declaredMethodIds[0] ?? null;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
throw new Error(
|
|
73
|
+
"Manifest declares multiple protocol methods; requestMethodId is required because legacy plugin_handle_request can only bind one canonical method.",
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function getMethodTableEntry(methodTable, methodId) {
|
|
78
|
+
if (!methodId) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
if (methodTable instanceof Map) {
|
|
82
|
+
return methodTable.get(methodId) ?? null;
|
|
83
|
+
}
|
|
84
|
+
if (typeof methodTable === "object" && methodTable !== null) {
|
|
85
|
+
return methodTable[methodId] ?? null;
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function collectCronBindings(manifest, methodTable) {
|
|
91
|
+
const methodIds = unique(
|
|
92
|
+
asArray(manifest.timers).map((timer) => asString(timer?.methodId)),
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
return methodIds.map((methodId) => {
|
|
96
|
+
const entry = getMethodTableEntry(methodTable, methodId);
|
|
97
|
+
if (!entry?.cronSymbol) {
|
|
98
|
+
throw new Error(
|
|
99
|
+
`Manifest timer method "${methodId}" is missing a cronSymbol in the SDN shim method table.`,
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
methodId,
|
|
104
|
+
cronSymbol: asString(entry.cronSymbol),
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function renderExternDeclarations(requestBinding, cronBindings) {
|
|
110
|
+
const lines = [];
|
|
111
|
+
if (requestBinding?.requestSymbol) {
|
|
112
|
+
lines.push(
|
|
113
|
+
`extern int32_t ${requestBinding.requestSymbol}(const uint8_t* request_ptr, size_t request_len, const char* host_ptr, uint8_t* output_ptr, size_t output_cap, size_t* output_len_ptr);`,
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
for (const binding of cronBindings) {
|
|
117
|
+
lines.push(
|
|
118
|
+
`extern int32_t ${binding.cronSymbol}(const uint8_t* input_ptr, size_t input_len, uint8_t* output_ptr, size_t output_cap, size_t* output_len_ptr);`,
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
return unique(lines).join("\n");
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function renderCronDispatch(cronBindings) {
|
|
125
|
+
if (cronBindings.length === 0) {
|
|
126
|
+
return ` (void)input_ptr;
|
|
127
|
+
(void)input_len;
|
|
128
|
+
(void)output_ptr;
|
|
129
|
+
(void)output_cap;
|
|
130
|
+
return ORBPRO_SDN_ERR_UNKNOWN_METHOD;`;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return cronBindings
|
|
134
|
+
.map(
|
|
135
|
+
(
|
|
136
|
+
binding,
|
|
137
|
+
index,
|
|
138
|
+
) => `${index === 0 ? " if" : " else if"} (orbpro_sdn_method_equals(method_ptr, method_len, "${binding.methodId}")) {
|
|
139
|
+
size_t output_len = 0;
|
|
140
|
+
const int32_t status = ${binding.cronSymbol}(
|
|
141
|
+
input_ptr,
|
|
142
|
+
input_len,
|
|
143
|
+
output_ptr,
|
|
144
|
+
output_cap,
|
|
145
|
+
&output_len);
|
|
146
|
+
if (status != 0) {
|
|
147
|
+
return status;
|
|
148
|
+
}
|
|
149
|
+
if (output_len > output_cap) {
|
|
150
|
+
return ORBPRO_SDN_ERR_OUTPUT_TOO_LARGE;
|
|
151
|
+
}
|
|
152
|
+
return (int32_t)output_len;
|
|
153
|
+
}`,
|
|
154
|
+
)
|
|
155
|
+
.concat(" return ORBPRO_SDN_ERR_UNKNOWN_METHOD;")
|
|
156
|
+
.join("\n");
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export function generateLegacySdnShimSource(options = {}) {
|
|
160
|
+
const {
|
|
161
|
+
manifest,
|
|
162
|
+
methodTable = {},
|
|
163
|
+
requestMethodId = undefined,
|
|
164
|
+
metadataOptions = {},
|
|
165
|
+
} = options;
|
|
166
|
+
|
|
167
|
+
const normalizedManifest = asManifest(manifest);
|
|
168
|
+
const pluginId = asString(normalizedManifest.pluginId);
|
|
169
|
+
if (!pluginId) {
|
|
170
|
+
throw new Error(
|
|
171
|
+
"Cannot generate SDN shims for a manifest without pluginId.",
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const resolvedRequestMethodId = resolveRequestMethodId(
|
|
176
|
+
normalizedManifest,
|
|
177
|
+
requestMethodId,
|
|
178
|
+
);
|
|
179
|
+
const requestBinding = resolvedRequestMethodId
|
|
180
|
+
? {
|
|
181
|
+
methodId: resolvedRequestMethodId,
|
|
182
|
+
requestSymbol: asString(
|
|
183
|
+
getMethodTableEntry(methodTable, resolvedRequestMethodId)
|
|
184
|
+
?.requestSymbol,
|
|
185
|
+
),
|
|
186
|
+
}
|
|
187
|
+
: null;
|
|
188
|
+
|
|
189
|
+
if (
|
|
190
|
+
resolvedRequestMethodId &&
|
|
191
|
+
(!requestBinding?.requestSymbol ||
|
|
192
|
+
requestBinding.requestSymbol.length === 0)
|
|
193
|
+
) {
|
|
194
|
+
throw new Error(
|
|
195
|
+
`Manifest request method "${resolvedRequestMethodId}" is missing a requestSymbol in the SDN shim method table.`,
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const cronBindings = collectCronBindings(normalizedManifest, methodTable);
|
|
200
|
+
const externDeclarations = renderExternDeclarations(
|
|
201
|
+
requestBinding,
|
|
202
|
+
cronBindings,
|
|
203
|
+
);
|
|
204
|
+
const metadataJson = JSON.stringify(
|
|
205
|
+
buildLegacySdnMetadata(normalizedManifest, metadataOptions),
|
|
206
|
+
);
|
|
207
|
+
const metadataLiteral = escapeCStringBytes(metadataJson);
|
|
208
|
+
const protocolComments = asArray(normalizedManifest.protocols)
|
|
209
|
+
.map((protocol) => {
|
|
210
|
+
const protocolId = asString(protocol?.protocolId) ?? "<unnamed>";
|
|
211
|
+
const methodId = asString(protocol?.methodId) ?? "<unset>";
|
|
212
|
+
return ` * ${protocolId} -> ${methodId}`;
|
|
213
|
+
})
|
|
214
|
+
.join("\n");
|
|
215
|
+
const timerComments = asArray(normalizedManifest.timers)
|
|
216
|
+
.map((timer) => {
|
|
217
|
+
const timerId = asString(timer?.timerId) ?? "<unnamed>";
|
|
218
|
+
const methodId = asString(timer?.methodId) ?? "<unset>";
|
|
219
|
+
return ` * ${timerId} -> ${methodId}`;
|
|
220
|
+
})
|
|
221
|
+
.join("\n");
|
|
222
|
+
|
|
223
|
+
return `/**
|
|
224
|
+
* SDN compatibility shims for ${pluginId}
|
|
225
|
+
*
|
|
226
|
+
* Generated by @orbpro/integration-sdk from the canonical OrbPro manifest.
|
|
227
|
+
* These exports are legacy host adapters, not the canonical plugin ABI.
|
|
228
|
+
*
|
|
229
|
+
* Legacy plugin_handle_request binding:
|
|
230
|
+
* ${resolvedRequestMethodId ?? "<stubbed>"}
|
|
231
|
+
*
|
|
232
|
+
* Declared protocol routes:
|
|
233
|
+
${protocolComments || " * <none>"}
|
|
234
|
+
*
|
|
235
|
+
* Declared cron routes:
|
|
236
|
+
${timerComments || " * <none>"}
|
|
237
|
+
*/
|
|
238
|
+
|
|
239
|
+
#include <stddef.h>
|
|
240
|
+
#include <stdint.h>
|
|
241
|
+
#include <string.h>
|
|
242
|
+
|
|
243
|
+
#ifdef __EMSCRIPTEN__
|
|
244
|
+
#include <emscripten/emscripten.h>
|
|
245
|
+
#else
|
|
246
|
+
#define EMSCRIPTEN_KEEPALIVE
|
|
247
|
+
#endif
|
|
248
|
+
|
|
249
|
+
#define ORBPRO_SDN_ERR_BAD_ARG (-1)
|
|
250
|
+
#define ORBPRO_SDN_ERR_METADATA_BUFFER_TOO_SMALL (-2)
|
|
251
|
+
#define ORBPRO_SDN_ERR_UNKNOWN_METHOD (-3)
|
|
252
|
+
#define ORBPRO_SDN_ERR_REQUEST_UNAVAILABLE (-4)
|
|
253
|
+
#define ORBPRO_SDN_ERR_OUTPUT_TOO_LARGE (-5)
|
|
254
|
+
|
|
255
|
+
${externDeclarations || "/* No external handler declarations were required. */"}
|
|
256
|
+
|
|
257
|
+
static const char ORBPRO_SDN_METADATA_JSON[] = "${metadataLiteral}";
|
|
258
|
+
static const size_t ORBPRO_SDN_METADATA_JSON_LEN = sizeof(ORBPRO_SDN_METADATA_JSON) - 1;
|
|
259
|
+
|
|
260
|
+
static int orbpro_sdn_method_equals(const char* method_ptr, size_t method_len, const char* expected) {
|
|
261
|
+
const size_t expected_len = strlen(expected);
|
|
262
|
+
return method_ptr != NULL &&
|
|
263
|
+
expected_len == method_len &&
|
|
264
|
+
memcmp(method_ptr, expected, method_len) == 0;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
EMSCRIPTEN_KEEPALIVE
|
|
268
|
+
int32_t plugin_get_metadata(uint8_t* output, size_t output_size) {
|
|
269
|
+
if (output == NULL) {
|
|
270
|
+
return ORBPRO_SDN_ERR_BAD_ARG;
|
|
271
|
+
}
|
|
272
|
+
if (output_size < ORBPRO_SDN_METADATA_JSON_LEN) {
|
|
273
|
+
return ORBPRO_SDN_ERR_METADATA_BUFFER_TOO_SMALL;
|
|
274
|
+
}
|
|
275
|
+
memcpy(output, ORBPRO_SDN_METADATA_JSON, ORBPRO_SDN_METADATA_JSON_LEN);
|
|
276
|
+
return (int32_t)ORBPRO_SDN_METADATA_JSON_LEN;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
EMSCRIPTEN_KEEPALIVE
|
|
280
|
+
int32_t plugin_handle_request(
|
|
281
|
+
const uint8_t* request_ptr,
|
|
282
|
+
size_t request_len,
|
|
283
|
+
const char* host_ptr,
|
|
284
|
+
uint8_t* output_ptr,
|
|
285
|
+
size_t output_cap,
|
|
286
|
+
size_t* output_len_ptr) {
|
|
287
|
+
if (output_len_ptr == NULL) {
|
|
288
|
+
return ORBPRO_SDN_ERR_BAD_ARG;
|
|
289
|
+
}
|
|
290
|
+
*output_len_ptr = 0;
|
|
291
|
+
${
|
|
292
|
+
requestBinding?.requestSymbol
|
|
293
|
+
? ` return ${requestBinding.requestSymbol}(
|
|
294
|
+
request_ptr,
|
|
295
|
+
request_len,
|
|
296
|
+
host_ptr,
|
|
297
|
+
output_ptr,
|
|
298
|
+
output_cap,
|
|
299
|
+
output_len_ptr);`
|
|
300
|
+
: ` (void)request_ptr;
|
|
301
|
+
(void)request_len;
|
|
302
|
+
(void)host_ptr;
|
|
303
|
+
(void)output_ptr;
|
|
304
|
+
(void)output_cap;
|
|
305
|
+
return ORBPRO_SDN_ERR_REQUEST_UNAVAILABLE;`
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
EMSCRIPTEN_KEEPALIVE
|
|
310
|
+
int32_t plugin_cron(
|
|
311
|
+
const char* method_ptr,
|
|
312
|
+
size_t method_len,
|
|
313
|
+
const uint8_t* input_ptr,
|
|
314
|
+
size_t input_len,
|
|
315
|
+
uint8_t* output_ptr,
|
|
316
|
+
size_t output_cap) {
|
|
317
|
+
if (method_ptr == NULL) {
|
|
318
|
+
return ORBPRO_SDN_ERR_BAD_ARG;
|
|
319
|
+
}
|
|
320
|
+
${renderCronDispatch(cronBindings)}
|
|
321
|
+
}
|
|
322
|
+
`;
|
|
323
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// Resolves the WASI-threads (wasm32-wasip1-threads) toolchain used to build
|
|
2
|
+
// isomorphic pthreads module artifacts.
|
|
3
|
+
//
|
|
4
|
+
// WHY WASI-THREADS AND NOT EMSCRIPTEN -pthread:
|
|
5
|
+
// Emscripten's `-pthread` (even with -s STANDALONE_WASM=1) emits the browser-
|
|
6
|
+
// only Web Worker + postMessage thread model: the wasm imports
|
|
7
|
+
// `env.__pthread_create_js` and `env._emscripten_*` mailbox/postMessage hooks
|
|
8
|
+
// and has NO wasi thread-spawn contract. That artifact CANNOT spawn threads
|
|
9
|
+
// under WasmEdge (there is no JS runtime to satisfy those imports). WasmEdge's
|
|
10
|
+
// actual thread mechanism is wasi-threads: the guest imports `wasi.thread-spawn`
|
|
11
|
+
// and exports `wasi_thread_start`, over an imported shared memory. Compiling
|
|
12
|
+
// with clang `--target=wasm32-wasip1-threads -pthread` produces exactly that
|
|
13
|
+
// contract, which threads under WasmEdge AND loads in the browser via a
|
|
14
|
+
// wasi-threads (SharedArrayBuffer + Worker) shim. See docs/isomorphic-pthreads.md.
|
|
15
|
+
|
|
16
|
+
import { execFileSync } from "node:child_process";
|
|
17
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
18
|
+
import path from "node:path";
|
|
19
|
+
|
|
20
|
+
const DEFAULT_TARGET = "wasm32-wasip1-threads";
|
|
21
|
+
// The compiler-rt builtins for the threads target live under this normalized
|
|
22
|
+
// triple inside the resource dir.
|
|
23
|
+
const RESOURCE_TRIPLE = "wasm32-unknown-wasip1-threads";
|
|
24
|
+
// The threads libc/libc++ live under this triple inside the sysroot.
|
|
25
|
+
const SYSROOT_TRIPLE = "wasm32-wasip1-threads";
|
|
26
|
+
|
|
27
|
+
function firstExisting(candidates, probe) {
|
|
28
|
+
for (const candidate of candidates) {
|
|
29
|
+
if (!candidate) continue;
|
|
30
|
+
try {
|
|
31
|
+
if (existsSync(probe(candidate))) {
|
|
32
|
+
return candidate;
|
|
33
|
+
}
|
|
34
|
+
} catch {
|
|
35
|
+
// ignore and keep searching
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function globVersionedRoots(cellarDir, tail) {
|
|
42
|
+
try {
|
|
43
|
+
return readdirSync(cellarDir)
|
|
44
|
+
.map((entry) => path.join(cellarDir, entry, tail))
|
|
45
|
+
.sort()
|
|
46
|
+
.reverse();
|
|
47
|
+
} catch {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function resolveSysroot() {
|
|
53
|
+
if (process.env.SDN_WASI_SYSROOT) {
|
|
54
|
+
return process.env.SDN_WASI_SYSROOT;
|
|
55
|
+
}
|
|
56
|
+
const candidates = [
|
|
57
|
+
"/opt/homebrew/share/wasi-sysroot",
|
|
58
|
+
"/usr/local/share/wasi-sysroot",
|
|
59
|
+
"/opt/wasi-sdk/share/wasi-sysroot",
|
|
60
|
+
...globVersionedRoots("/opt/homebrew/Cellar/wasi-libc", "share/wasi-sysroot"),
|
|
61
|
+
];
|
|
62
|
+
return firstExisting(candidates, (root) =>
|
|
63
|
+
path.join(root, "lib", SYSROOT_TRIPLE, "libc.a"),
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function resolveResourceDir() {
|
|
68
|
+
if (process.env.SDN_WASI_RESOURCE_DIR) {
|
|
69
|
+
return process.env.SDN_WASI_RESOURCE_DIR;
|
|
70
|
+
}
|
|
71
|
+
const candidates = [
|
|
72
|
+
"/opt/homebrew/share/wasi-runtimes",
|
|
73
|
+
"/usr/local/share/wasi-runtimes",
|
|
74
|
+
...globVersionedRoots(
|
|
75
|
+
"/opt/homebrew/Cellar/wasi-runtimes",
|
|
76
|
+
"share/wasi-runtimes",
|
|
77
|
+
),
|
|
78
|
+
];
|
|
79
|
+
return firstExisting(candidates, (root) =>
|
|
80
|
+
path.join(root, "lib", RESOURCE_TRIPLE, "libclang_rt.builtins.a"),
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
let cachedToolchain;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Resolve the wasi-threads toolchain. Returns a descriptor with the C/C++ driver
|
|
88
|
+
* commands and the target/sysroot/resource-dir args that must be applied to
|
|
89
|
+
* every compile and the final link. Throws a clear, actionable error (listing
|
|
90
|
+
* the env overrides) when the toolchain or its threads sysroot is unavailable.
|
|
91
|
+
*
|
|
92
|
+
* Env overrides: SDN_WASI_CLANG, SDN_WASI_CLANGXX, SDN_WASI_TARGET,
|
|
93
|
+
* SDN_WASI_SYSROOT, SDN_WASI_RESOURCE_DIR.
|
|
94
|
+
*/
|
|
95
|
+
export function resolveWasiThreadsToolchain(options = {}) {
|
|
96
|
+
if (cachedToolchain && !options.force) {
|
|
97
|
+
return cachedToolchain;
|
|
98
|
+
}
|
|
99
|
+
const clang = process.env.SDN_WASI_CLANG || "wasm32-wasi-clang";
|
|
100
|
+
const clangxx = process.env.SDN_WASI_CLANGXX || "wasm32-wasi-clang++";
|
|
101
|
+
const target = process.env.SDN_WASI_TARGET || DEFAULT_TARGET;
|
|
102
|
+
const sysroot = resolveSysroot();
|
|
103
|
+
const resourceDir = resolveResourceDir();
|
|
104
|
+
|
|
105
|
+
const failures = [];
|
|
106
|
+
try {
|
|
107
|
+
execFileSync(clangxx, ["--version"], { stdio: "ignore" });
|
|
108
|
+
} catch (error) {
|
|
109
|
+
if (error?.code === "ENOENT") {
|
|
110
|
+
failures.push(
|
|
111
|
+
`WASI clang driver "${clangxx}" was not found on PATH (override with SDN_WASI_CLANGXX).`,
|
|
112
|
+
);
|
|
113
|
+
} else {
|
|
114
|
+
failures.push(
|
|
115
|
+
`WASI clang driver "${clangxx}" could not be executed: ${error?.message ?? error}.`,
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (!sysroot) {
|
|
120
|
+
failures.push(
|
|
121
|
+
`A wasi-threads sysroot (containing lib/${SYSROOT_TRIPLE}/libc.a) was not found (override with SDN_WASI_SYSROOT).`,
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
if (failures.length > 0) {
|
|
125
|
+
throw new Error(
|
|
126
|
+
"Cannot build the isomorphic-pthreads (wasi-threads) artifact: " +
|
|
127
|
+
`${failures.join(" ")} Install a wasi-sdk / wasi-libc+wasi-runtimes toolchain ` +
|
|
128
|
+
"with the wasm32-wasip1-threads target (e.g. `brew install wasi-libc wasi-runtimes` " +
|
|
129
|
+
"or a wasi-sdk release), or set the SDN_WASI_* env overrides.",
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const toolchainArgs = [`--target=${target}`, `--sysroot=${sysroot}`];
|
|
134
|
+
if (resourceDir) {
|
|
135
|
+
toolchainArgs.push(`-resource-dir=${resourceDir}`);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
cachedToolchain = {
|
|
139
|
+
clang,
|
|
140
|
+
clangxx,
|
|
141
|
+
target,
|
|
142
|
+
sysroot,
|
|
143
|
+
resourceDir,
|
|
144
|
+
toolchainArgs,
|
|
145
|
+
describe() {
|
|
146
|
+
return `${clangxx} ${toolchainArgs.join(" ")}`;
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
return cachedToolchain;
|
|
150
|
+
}
|
package/src/compliance/index.js
CHANGED
|
@@ -42,7 +42,7 @@ export async function validateArtifactWithStandards(options = {}) {
|
|
|
42
42
|
const baseReport = await validatePluginArtifact(options);
|
|
43
43
|
const standards = await validateManifestAgainstStandardsCatalog(
|
|
44
44
|
options.manifest,
|
|
45
|
-
{ sourceName: baseReport.sourceName },
|
|
45
|
+
{ ...options, sourceName: baseReport.sourceName },
|
|
46
46
|
);
|
|
47
47
|
return mergeReport(baseReport, standards.issues);
|
|
48
48
|
}
|
|
@@ -61,3 +61,13 @@ export {
|
|
|
61
61
|
validatePluginArtifact,
|
|
62
62
|
validatePluginManifest,
|
|
63
63
|
};
|
|
64
|
+
|
|
65
|
+
export {
|
|
66
|
+
manifestDeclaresHostBoundaryBlindness,
|
|
67
|
+
WildcardJustificationKind,
|
|
68
|
+
} from "./pluginCompliance.js";
|
|
69
|
+
export {
|
|
70
|
+
isLegacyWildcardPort,
|
|
71
|
+
LegacyWildcardPortLedger,
|
|
72
|
+
LEGACY_WILDCARD_LEDGER_FROZEN_ON,
|
|
73
|
+
} from "./legacyWildcardPorts.js";
|