@labacacia/nps-sdk 1.0.0-alpha.1 → 1.0.0-alpha.13
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/CHANGELOG.cn.md +181 -0
- package/CHANGELOG.md +234 -0
- package/LICENSE +0 -0
- package/NOTICE +0 -0
- package/README.cn.md +163 -0
- package/README.md +16 -6
- package/dist/core/anchor-cache.d.ts +0 -0
- package/dist/core/anchor-cache.d.ts.map +0 -0
- package/dist/core/anchor-cache.js +0 -0
- package/dist/core/anchor-cache.js.map +0 -0
- package/dist/core/cache.d.ts +0 -0
- package/dist/core/cache.d.ts.map +0 -0
- package/dist/core/cache.js +0 -0
- package/dist/core/cache.js.map +0 -0
- package/dist/core/canonical-json.d.ts +0 -0
- package/dist/core/canonical-json.d.ts.map +0 -0
- package/dist/core/canonical-json.js +0 -0
- package/dist/core/canonical-json.js.map +0 -0
- package/dist/core/codec.d.ts +0 -0
- package/dist/core/codec.d.ts.map +0 -0
- package/dist/core/codec.js +0 -0
- package/dist/core/codec.js.map +0 -0
- package/dist/core/codecs/index.d.ts +0 -0
- package/dist/core/codecs/index.d.ts.map +0 -0
- package/dist/core/codecs/index.js +0 -0
- package/dist/core/codecs/index.js.map +0 -0
- package/dist/core/codecs/ncp-codec.d.ts +0 -0
- package/dist/core/codecs/ncp-codec.d.ts.map +0 -0
- package/dist/core/codecs/ncp-codec.js +0 -0
- package/dist/core/codecs/ncp-codec.js.map +0 -0
- package/dist/core/codecs/tier1-json-codec.d.ts +0 -0
- package/dist/core/codecs/tier1-json-codec.d.ts.map +0 -0
- package/dist/core/codecs/tier1-json-codec.js +0 -0
- package/dist/core/codecs/tier1-json-codec.js.map +0 -0
- package/dist/core/codecs/tier2-msgpack-codec.d.ts +0 -0
- package/dist/core/codecs/tier2-msgpack-codec.d.ts.map +0 -0
- package/dist/core/codecs/tier2-msgpack-codec.js +0 -0
- package/dist/core/codecs/tier2-msgpack-codec.js.map +0 -0
- package/dist/core/crypto-provider.d.ts +0 -0
- package/dist/core/crypto-provider.d.ts.map +0 -0
- package/dist/core/crypto-provider.js +0 -0
- package/dist/core/crypto-provider.js.map +0 -0
- package/dist/core/exceptions.d.ts +0 -0
- package/dist/core/exceptions.d.ts.map +0 -0
- package/dist/core/exceptions.js +0 -0
- package/dist/core/exceptions.js.map +0 -0
- package/dist/core/frame-header.d.ts +1 -0
- package/dist/core/frame-header.d.ts.map +1 -1
- package/dist/core/frame-header.js +1 -0
- package/dist/core/frame-header.js.map +1 -1
- package/dist/core/frame-registry.d.ts +0 -0
- package/dist/core/frame-registry.d.ts.map +1 -1
- package/dist/core/frame-registry.js +1 -0
- package/dist/core/frame-registry.js.map +1 -1
- package/dist/core/frames.d.ts +3 -0
- package/dist/core/frames.d.ts.map +1 -1
- package/dist/core/frames.js +3 -0
- package/dist/core/frames.js.map +1 -1
- package/dist/core/index.d.ts +6 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +17 -5
- package/dist/core/index.js.map +1 -1
- package/dist/core/registry.d.ts +0 -0
- package/dist/core/registry.d.ts.map +0 -0
- package/dist/core/registry.js +0 -0
- package/dist/core/registry.js.map +0 -0
- package/dist/core/status-codes.d.ts +20 -0
- package/dist/core/status-codes.d.ts.map +1 -1
- package/dist/core/status-codes.js +51 -0
- package/dist/core/status-codes.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ncp/frames/anchor-frame.d.ts +0 -0
- package/dist/ncp/frames/anchor-frame.d.ts.map +0 -0
- package/dist/ncp/frames/anchor-frame.js +0 -0
- package/dist/ncp/frames/anchor-frame.js.map +0 -0
- package/dist/ncp/frames/caps-frame.d.ts +0 -0
- package/dist/ncp/frames/caps-frame.d.ts.map +0 -0
- package/dist/ncp/frames/caps-frame.js +0 -0
- package/dist/ncp/frames/caps-frame.js.map +0 -0
- package/dist/ncp/frames/diff-frame.d.ts +0 -0
- package/dist/ncp/frames/diff-frame.d.ts.map +0 -0
- package/dist/ncp/frames/diff-frame.js +0 -0
- package/dist/ncp/frames/diff-frame.js.map +0 -0
- package/dist/ncp/frames/error-frame.d.ts +0 -0
- package/dist/ncp/frames/error-frame.d.ts.map +0 -0
- package/dist/ncp/frames/error-frame.js +0 -0
- package/dist/ncp/frames/error-frame.js.map +0 -0
- package/dist/ncp/frames/hello-frame.d.ts +0 -0
- package/dist/ncp/frames/hello-frame.d.ts.map +0 -0
- package/dist/ncp/frames/hello-frame.js +0 -0
- package/dist/ncp/frames/hello-frame.js.map +0 -0
- package/dist/ncp/frames/stream-frame.d.ts +0 -0
- package/dist/ncp/frames/stream-frame.d.ts.map +0 -0
- package/dist/ncp/frames/stream-frame.js +0 -0
- package/dist/ncp/frames/stream-frame.js.map +0 -0
- package/dist/ncp/frames.d.ts +25 -0
- package/dist/ncp/frames.d.ts.map +1 -1
- package/dist/ncp/frames.js +61 -0
- package/dist/ncp/frames.js.map +1 -1
- package/dist/ncp/handshake.d.ts +0 -0
- package/dist/ncp/handshake.d.ts.map +0 -0
- package/dist/ncp/handshake.js +0 -0
- package/dist/ncp/handshake.js.map +0 -0
- package/dist/ncp/index.d.ts +1 -0
- package/dist/ncp/index.d.ts.map +1 -1
- package/dist/ncp/index.js +1 -0
- package/dist/ncp/index.js.map +1 -1
- package/dist/ncp/ncp-error-codes.d.ts +5 -0
- package/dist/ncp/ncp-error-codes.d.ts.map +1 -1
- package/dist/ncp/ncp-error-codes.js +27 -0
- package/dist/ncp/ncp-error-codes.js.map +1 -1
- package/dist/ncp/ncp-patch-format.d.ts +0 -0
- package/dist/ncp/ncp-patch-format.d.ts.map +0 -0
- package/dist/ncp/ncp-patch-format.js +0 -0
- package/dist/ncp/ncp-patch-format.js.map +0 -0
- package/dist/ncp/preamble.d.ts +47 -0
- package/dist/ncp/preamble.d.ts.map +1 -0
- package/dist/ncp/preamble.js +74 -0
- package/dist/ncp/preamble.js.map +1 -0
- package/dist/ncp/registry.d.ts +0 -0
- package/dist/ncp/registry.d.ts.map +1 -1
- package/dist/ncp/registry.js +2 -1
- package/dist/ncp/registry.js.map +1 -1
- package/dist/ncp/stream-manager.d.ts +0 -0
- package/dist/ncp/stream-manager.d.ts.map +0 -0
- package/dist/ncp/stream-manager.js +0 -0
- package/dist/ncp/stream-manager.js.map +0 -0
- package/dist/ndp/dns-txt.d.ts +35 -0
- package/dist/ndp/dns-txt.d.ts.map +1 -0
- package/dist/ndp/dns-txt.js +67 -0
- package/dist/ndp/dns-txt.js.map +1 -0
- package/dist/ndp/frames.d.ts +34 -9
- package/dist/ndp/frames.d.ts.map +1 -1
- package/dist/ndp/frames.js +54 -15
- package/dist/ndp/frames.js.map +1 -1
- package/dist/ndp/index.d.ts +3 -0
- package/dist/ndp/index.d.ts.map +1 -1
- package/dist/ndp/index.js +3 -0
- package/dist/ndp/index.js.map +1 -1
- package/dist/ndp/ndp-error-codes.d.ts +25 -0
- package/dist/ndp/ndp-error-codes.d.ts.map +1 -0
- package/dist/ndp/ndp-error-codes.js +48 -0
- package/dist/ndp/ndp-error-codes.js.map +1 -0
- package/dist/ndp/ndp-registry.d.ts +2 -0
- package/dist/ndp/ndp-registry.d.ts.map +1 -1
- package/dist/ndp/ndp-registry.js +25 -0
- package/dist/ndp/ndp-registry.js.map +1 -1
- package/dist/ndp/registry.d.ts +0 -0
- package/dist/ndp/registry.d.ts.map +0 -0
- package/dist/ndp/registry.js +0 -0
- package/dist/ndp/registry.js.map +0 -0
- package/dist/ndp/security.d.ts +8 -0
- package/dist/ndp/security.d.ts.map +1 -0
- package/dist/ndp/security.js +9 -0
- package/dist/ndp/security.js.map +1 -0
- package/dist/ndp/validator.d.ts +0 -0
- package/dist/ndp/validator.d.ts.map +0 -0
- package/dist/ndp/validator.js +0 -0
- package/dist/ndp/validator.js.map +0 -0
- package/dist/nip/acme/client.d.ts +31 -0
- package/dist/nip/acme/client.d.ts.map +1 -0
- package/dist/nip/acme/client.js +136 -0
- package/dist/nip/acme/client.js.map +1 -0
- package/dist/nip/acme/index.d.ts +6 -0
- package/dist/nip/acme/index.d.ts.map +1 -0
- package/dist/nip/acme/index.js +8 -0
- package/dist/nip/acme/index.js.map +1 -0
- package/dist/nip/acme/jws.d.ts +31 -0
- package/dist/nip/acme/jws.d.ts.map +1 -0
- package/dist/nip/acme/jws.js +76 -0
- package/dist/nip/acme/jws.js.map +1 -0
- package/dist/nip/acme/messages.d.ts +71 -0
- package/dist/nip/acme/messages.d.ts.map +1 -0
- package/dist/nip/acme/messages.js +4 -0
- package/dist/nip/acme/messages.js.map +1 -0
- package/dist/nip/acme/server.d.ts +41 -0
- package/dist/nip/acme/server.d.ts.map +1 -0
- package/dist/nip/acme/server.js +458 -0
- package/dist/nip/acme/server.js.map +1 -0
- package/dist/nip/acme/wire.d.ts +19 -0
- package/dist/nip/acme/wire.d.ts.map +1 -0
- package/dist/nip/acme/wire.js +21 -0
- package/dist/nip/acme/wire.js.map +1 -0
- package/dist/nip/assurance-level.d.ts +19 -0
- package/dist/nip/assurance-level.d.ts.map +1 -0
- package/dist/nip/assurance-level.js +38 -0
- package/dist/nip/assurance-level.js.map +1 -0
- package/dist/nip/cert-format.d.ts +5 -0
- package/dist/nip/cert-format.d.ts.map +1 -0
- package/dist/nip/cert-format.js +6 -0
- package/dist/nip/cert-format.js.map +1 -0
- package/dist/nip/error-codes.d.ts +44 -0
- package/dist/nip/error-codes.d.ts.map +1 -0
- package/dist/nip/error-codes.js +97 -0
- package/dist/nip/error-codes.js.map +1 -0
- package/dist/nip/frames.d.ts +19 -1
- package/dist/nip/frames.d.ts.map +1 -1
- package/dist/nip/frames.js +39 -4
- package/dist/nip/frames.js.map +1 -1
- package/dist/nip/identity.d.ts +0 -0
- package/dist/nip/identity.d.ts.map +0 -0
- package/dist/nip/identity.js +0 -0
- package/dist/nip/identity.js.map +0 -0
- package/dist/nip/index.d.ts +7 -0
- package/dist/nip/index.d.ts.map +1 -1
- package/dist/nip/index.js +9 -0
- package/dist/nip/index.js.map +1 -1
- package/dist/nip/registry.d.ts +0 -0
- package/dist/nip/registry.d.ts.map +0 -0
- package/dist/nip/registry.js +0 -0
- package/dist/nip/registry.js.map +0 -0
- package/dist/nip/reputation-client.d.ts +116 -0
- package/dist/nip/reputation-client.d.ts.map +1 -0
- package/dist/nip/reputation-client.js +261 -0
- package/dist/nip/reputation-client.js.map +1 -0
- package/dist/nip/verifier.d.ts +23 -0
- package/dist/nip/verifier.d.ts.map +1 -0
- package/dist/nip/verifier.js +90 -0
- package/dist/nip/verifier.js.map +1 -0
- package/dist/nip/x509/builder.d.ts +35 -0
- package/dist/nip/x509/builder.d.ts.map +1 -0
- package/dist/nip/x509/builder.js +59 -0
- package/dist/nip/x509/builder.js.map +1 -0
- package/dist/nip/x509/index.d.ts +4 -0
- package/dist/nip/x509/index.d.ts.map +1 -0
- package/dist/nip/x509/index.js +6 -0
- package/dist/nip/x509/index.js.map +1 -0
- package/dist/nip/x509/oids.d.ts +16 -0
- package/dist/nip/x509/oids.d.ts.map +1 -0
- package/dist/nip/x509/oids.js +22 -0
- package/dist/nip/x509/oids.js.map +1 -0
- package/dist/nip/x509/verifier.d.ts +26 -0
- package/dist/nip/x509/verifier.d.ts.map +1 -0
- package/dist/nip/x509/verifier.js +171 -0
- package/dist/nip/x509/verifier.js.map +1 -0
- package/dist/nop/client.d.ts +0 -0
- package/dist/nop/client.d.ts.map +0 -0
- package/dist/nop/client.js +0 -0
- package/dist/nop/client.js.map +1 -1
- package/dist/nop/dag-validator.d.ts +15 -0
- package/dist/nop/dag-validator.d.ts.map +1 -0
- package/dist/nop/dag-validator.js +91 -0
- package/dist/nop/dag-validator.js.map +1 -0
- package/dist/nop/frames.d.ts +8 -3
- package/dist/nop/frames.d.ts.map +1 -1
- package/dist/nop/frames.js +21 -6
- package/dist/nop/frames.js.map +1 -1
- package/dist/nop/index.d.ts +3 -0
- package/dist/nop/index.d.ts.map +1 -1
- package/dist/nop/index.js +3 -0
- package/dist/nop/index.js.map +1 -1
- package/dist/nop/models.d.ts +13 -2
- package/dist/nop/models.d.ts.map +1 -1
- package/dist/nop/models.js +9 -0
- package/dist/nop/models.js.map +1 -1
- package/dist/nop/nop-error-codes.d.ts +31 -0
- package/dist/nop/nop-error-codes.d.ts.map +1 -0
- package/dist/nop/nop-error-codes.js +61 -0
- package/dist/nop/nop-error-codes.js.map +1 -0
- package/dist/nop/nop-types.d.ts +0 -0
- package/dist/nop/nop-types.d.ts.map +0 -0
- package/dist/nop/nop-types.js +0 -0
- package/dist/nop/nop-types.js.map +0 -0
- package/dist/nop/orchestrator.d.ts +66 -0
- package/dist/nop/orchestrator.d.ts.map +1 -0
- package/dist/nop/orchestrator.js +229 -0
- package/dist/nop/orchestrator.js.map +1 -0
- package/dist/nop/registry.d.ts +0 -0
- package/dist/nop/registry.d.ts.map +0 -0
- package/dist/nop/registry.js +0 -0
- package/dist/nop/registry.js.map +0 -0
- package/dist/nwp/anchor-client.d.ts +109 -0
- package/dist/nwp/anchor-client.d.ts.map +1 -0
- package/dist/nwp/anchor-client.js +279 -0
- package/dist/nwp/anchor-client.js.map +1 -0
- package/dist/nwp/anchor-server.d.ts +127 -0
- package/dist/nwp/anchor-server.d.ts.map +1 -0
- package/dist/nwp/anchor-server.js +649 -0
- package/dist/nwp/anchor-server.js.map +1 -0
- package/dist/nwp/bridge.d.ts +24 -0
- package/dist/nwp/bridge.d.ts.map +1 -0
- package/dist/nwp/bridge.js +26 -0
- package/dist/nwp/bridge.js.map +1 -0
- package/dist/nwp/cgn.d.ts +19 -0
- package/dist/nwp/cgn.d.ts.map +1 -0
- package/dist/nwp/cgn.js +29 -0
- package/dist/nwp/cgn.js.map +1 -0
- package/dist/nwp/client.d.ts +10 -3
- package/dist/nwp/client.d.ts.map +1 -1
- package/dist/nwp/client.js +58 -7
- package/dist/nwp/client.js.map +1 -1
- package/dist/nwp/frames.d.ts +56 -2
- package/dist/nwp/frames.d.ts.map +1 -1
- package/dist/nwp/frames.js +86 -4
- package/dist/nwp/frames.js.map +1 -1
- package/dist/nwp/http-headers.d.ts +24 -0
- package/dist/nwp/http-headers.d.ts.map +1 -0
- package/dist/nwp/http-headers.js +29 -0
- package/dist/nwp/http-headers.js.map +1 -0
- package/dist/nwp/index.d.ts +9 -0
- package/dist/nwp/index.d.ts.map +1 -1
- package/dist/nwp/index.js +9 -0
- package/dist/nwp/index.js.map +1 -1
- package/dist/nwp/manifest.d.ts +75 -0
- package/dist/nwp/manifest.d.ts.map +1 -0
- package/dist/nwp/manifest.js +5 -0
- package/dist/nwp/manifest.js.map +1 -0
- package/dist/nwp/memory-node-server.d.ts +70 -0
- package/dist/nwp/memory-node-server.d.ts.map +1 -0
- package/dist/nwp/memory-node-server.js +315 -0
- package/dist/nwp/memory-node-server.js.map +1 -0
- package/dist/nwp/nwp-error-codes.d.ts +48 -0
- package/dist/nwp/nwp-error-codes.d.ts.map +1 -0
- package/dist/nwp/nwp-error-codes.js +108 -0
- package/dist/nwp/nwp-error-codes.js.map +1 -0
- package/dist/nwp/registry.d.ts +0 -0
- package/dist/nwp/registry.d.ts.map +0 -0
- package/dist/nwp/registry.js +0 -0
- package/dist/nwp/registry.js.map +0 -0
- package/dist/nwp/reputation.d.ts +37 -0
- package/dist/nwp/reputation.d.ts.map +1 -0
- package/dist/nwp/reputation.js +118 -0
- package/dist/nwp/reputation.js.map +1 -0
- package/dist/setup.d.ts +0 -0
- package/dist/setup.d.ts.map +0 -0
- package/dist/setup.js +0 -0
- package/dist/setup.js.map +0 -0
- package/doc/nps-sdk.core.cn.md +321 -0
- package/doc/nps-sdk.core.md +326 -0
- package/doc/nps-sdk.ncp.cn.md +270 -0
- package/doc/nps-sdk.ncp.md +276 -0
- package/doc/nps-sdk.ndp.cn.md +267 -0
- package/doc/nps-sdk.ndp.md +273 -0
- package/doc/nps-sdk.nip.cn.md +265 -0
- package/doc/nps-sdk.nip.md +272 -0
- package/doc/nps-sdk.nop.cn.md +329 -0
- package/doc/nps-sdk.nop.md +332 -0
- package/doc/nps-sdk.nwp.cn.md +288 -0
- package/doc/nps-sdk.nwp.md +295 -0
- package/doc/overview.cn.md +149 -0
- package/doc/overview.md +153 -0
- package/package.json +33 -4
- package/CONTRIBUTING.md +0 -33
- package/dist/codec-CmHeovTV.d.cts +0 -120
- package/dist/codec-CmHeovTV.d.ts +0 -120
- package/dist/core/index.cjs +0 -371
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.cts +0 -41
- package/dist/frames-B3qLdl_g.d.cts +0 -77
- package/dist/frames-Ff7-ZPUl.d.ts +0 -77
- package/dist/index.cjs +0 -1556
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -21
- package/dist/ncp/index.cjs +0 -188
- package/dist/ncp/index.cjs.map +0 -1
- package/dist/ncp/index.d.cts +0 -6
- package/dist/ndp/index.cjs +0 -252
- package/dist/ndp/index.cjs.map +0 -1
- package/dist/ndp/index.d.cts +0 -86
- package/dist/nip/index.cjs +0 -214
- package/dist/nip/index.cjs.map +0 -1
- package/dist/nip/index.d.cts +0 -65
- package/dist/nop/index.cjs +0 -762
- package/dist/nop/index.cjs.map +0 -1
- package/dist/nop/index.d.cts +0 -155
- package/dist/nwp/index.cjs +0 -658
- package/dist/nwp/index.cjs.map +0 -1
- package/dist/nwp/index.d.cts +0 -65
- package/nip-ca-server/Dockerfile +0 -27
- package/nip-ca-server/README.md +0 -45
- package/nip-ca-server/db/001_init.sql +0 -25
- package/nip-ca-server/docker-compose.yml +0 -29
- package/nip-ca-server/package.json +0 -23
- package/nip-ca-server/src/ca.ts +0 -155
- package/nip-ca-server/src/db.ts +0 -104
- package/nip-ca-server/src/index.ts +0 -157
- package/nip-ca-server/tsconfig.json +0 -13
- package/src/core/anchor-cache.ts +0 -129
- package/src/core/cache.ts +0 -93
- package/src/core/canonical-json.ts +0 -50
- package/src/core/codec.ts +0 -158
- package/src/core/codecs/index.ts +0 -5
- package/src/core/codecs/ncp-codec.ts +0 -170
- package/src/core/codecs/tier1-json-codec.ts +0 -33
- package/src/core/codecs/tier2-msgpack-codec.ts +0 -30
- package/src/core/crypto-provider.ts +0 -47
- package/src/core/exceptions.ts +0 -57
- package/src/core/frame-header.ts +0 -282
- package/src/core/frame-registry.ts +0 -91
- package/src/core/frames.ts +0 -183
- package/src/core/index.ts +0 -10
- package/src/core/registry.ts +0 -28
- package/src/core/status-codes.ts +0 -46
- package/src/index.ts +0 -10
- package/src/ncp/frames/anchor-frame.ts +0 -87
- package/src/ncp/frames/caps-frame.ts +0 -59
- package/src/ncp/frames/diff-frame.ts +0 -69
- package/src/ncp/frames/error-frame.ts +0 -26
- package/src/ncp/frames/hello-frame.ts +0 -50
- package/src/ncp/frames/stream-frame.ts +0 -35
- package/src/ncp/frames.ts +0 -199
- package/src/ncp/handshake.ts +0 -95
- package/src/ncp/index.ts +0 -12
- package/src/ncp/ncp-error-codes.ts +0 -34
- package/src/ncp/ncp-patch-format.ts +0 -16
- package/src/ncp/registry.ts +0 -14
- package/src/ncp/stream-manager.ts +0 -212
- package/src/ndp/frames.ts +0 -124
- package/src/ndp/index.ts +0 -7
- package/src/ndp/ndp-registry.ts +0 -82
- package/src/ndp/registry.ts +0 -12
- package/src/ndp/validator.ts +0 -64
- package/src/nip/frames.ts +0 -106
- package/src/nip/identity.ts +0 -113
- package/src/nip/index.ts +0 -6
- package/src/nip/registry.ts +0 -12
- package/src/nop/client.ts +0 -103
- package/src/nop/frames.ts +0 -181
- package/src/nop/index.ts +0 -7
- package/src/nop/models.ts +0 -79
- package/src/nop/nop-types.ts +0 -208
- package/src/nop/registry.ts +0 -13
- package/src/nwp/client.ts +0 -114
- package/src/nwp/frames.ts +0 -116
- package/src/nwp/index.ts +0 -6
- package/src/nwp/registry.ts +0 -11
- package/src/setup.ts +0 -32
- package/tests/core/anchor-cache.test.ts +0 -242
- package/tests/core/codec.test.ts +0 -205
- package/tests/core/frame-registry.test.ts +0 -46
- package/tests/core.test.ts +0 -327
- package/tests/ncp/diff-binary-bitset.test.ts +0 -107
- package/tests/ncp/e2e-enc-reject.test.ts +0 -93
- package/tests/ncp/err-error-frame.test.ts +0 -152
- package/tests/ncp/frames.test.ts +0 -359
- package/tests/ncp/framing.test.ts +0 -233
- package/tests/ncp/hello-frame.test.ts +0 -122
- package/tests/ncp/inline-anchor.test.ts +0 -88
- package/tests/ncp/security.test.ts +0 -184
- package/tests/ncp/stream-window.test.ts +0 -167
- package/tests/ncp/stream.test.ts +0 -242
- package/tests/ncp/version-negotiation.test.ts +0 -123
- package/tests/ndp.test.ts +0 -271
- package/tests/nip.test.ts +0 -184
- package/tests/nop.test.ts +0 -344
- package/tests/nwp.test.ts +0 -237
- package/tsconfig.json +0 -20
- package/tsup.config.ts +0 -20
- package/vitest.config.ts +0 -10
package/dist/ncp/frames.js
CHANGED
|
@@ -144,4 +144,65 @@ export class ErrorFrame {
|
|
|
144
144
|
return new ErrorFrame(data["status"], data["error"], data["message"] ?? undefined, data["details"] ?? undefined);
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
+
// ── HelloFrame ────────────────────────────────────────────────────────────────
|
|
148
|
+
// NPS-1 §4.6 — Native-mode handshake (0x06). Always Tier-1 JSON: encoding
|
|
149
|
+
// is not yet negotiated when this frame is sent.
|
|
150
|
+
export class HelloFrame {
|
|
151
|
+
npsVersion;
|
|
152
|
+
supportedEncodings;
|
|
153
|
+
supportedProtocols;
|
|
154
|
+
minVersion;
|
|
155
|
+
agentId;
|
|
156
|
+
maxFramePayload;
|
|
157
|
+
extSupport;
|
|
158
|
+
maxConcurrentStreams;
|
|
159
|
+
e2eEncAlgorithms;
|
|
160
|
+
pingIntervalMs;
|
|
161
|
+
frameType = FrameType.HELLO;
|
|
162
|
+
preferredTier = EncodingTier.JSON;
|
|
163
|
+
static DEFAULT_MAX_FRAME_PAYLOAD = 0xFFFF;
|
|
164
|
+
static DEFAULT_MAX_CONCURRENT_STREAMS = 32;
|
|
165
|
+
constructor(npsVersion, supportedEncodings, supportedProtocols, minVersion, agentId, maxFramePayload = HelloFrame.DEFAULT_MAX_FRAME_PAYLOAD, extSupport = false, maxConcurrentStreams = HelloFrame.DEFAULT_MAX_CONCURRENT_STREAMS, e2eEncAlgorithms, pingIntervalMs = 0) {
|
|
166
|
+
this.npsVersion = npsVersion;
|
|
167
|
+
this.supportedEncodings = supportedEncodings;
|
|
168
|
+
this.supportedProtocols = supportedProtocols;
|
|
169
|
+
this.minVersion = minVersion;
|
|
170
|
+
this.agentId = agentId;
|
|
171
|
+
this.maxFramePayload = maxFramePayload;
|
|
172
|
+
this.extSupport = extSupport;
|
|
173
|
+
this.maxConcurrentStreams = maxConcurrentStreams;
|
|
174
|
+
this.e2eEncAlgorithms = e2eEncAlgorithms;
|
|
175
|
+
this.pingIntervalMs = pingIntervalMs;
|
|
176
|
+
}
|
|
177
|
+
toDict() {
|
|
178
|
+
return {
|
|
179
|
+
nps_version: this.npsVersion,
|
|
180
|
+
supported_encodings: [...this.supportedEncodings],
|
|
181
|
+
supported_protocols: [...this.supportedProtocols],
|
|
182
|
+
min_version: this.minVersion ?? null,
|
|
183
|
+
agent_id: this.agentId ?? null,
|
|
184
|
+
max_frame_payload: this.maxFramePayload,
|
|
185
|
+
ext_support: this.extSupport,
|
|
186
|
+
max_concurrent_streams: this.maxConcurrentStreams,
|
|
187
|
+
e2e_enc_algorithms: this.e2eEncAlgorithms ? [...this.e2eEncAlgorithms] : null,
|
|
188
|
+
ping_interval_ms: this.pingIntervalMs,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
static fromDict(data) {
|
|
192
|
+
return new HelloFrame(data["nps_version"], data["supported_encodings"] ?? [], data["supported_protocols"] ?? [], data["min_version"] ?? undefined, data["agent_id"] ?? undefined, data["max_frame_payload"] ?? HelloFrame.DEFAULT_MAX_FRAME_PAYLOAD, data["ext_support"] ?? false, data["max_concurrent_streams"] ?? HelloFrame.DEFAULT_MAX_CONCURRENT_STREAMS, data["e2e_enc_algorithms"] ?? undefined, data["ping_interval_ms"] ?? 0);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// ── NopFrame (0x07) ───────────────────────────────────────────────────────────
|
|
196
|
+
// NCP v0.8 §4.8 / §7.5 — Keepalive/heartbeat frame, no payload.
|
|
197
|
+
// Either peer MAY send after handshake; receiver MUST accept and SHOULD reply.
|
|
198
|
+
export class NopFrame {
|
|
199
|
+
frameType = FrameType.NOP;
|
|
200
|
+
preferredTier = EncodingTier.JSON;
|
|
201
|
+
toDict() {
|
|
202
|
+
return {};
|
|
203
|
+
}
|
|
204
|
+
static fromDict(_data) {
|
|
205
|
+
return new NopFrame();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
147
208
|
//# sourceMappingURL=frames.js.map
|
package/dist/ncp/frames.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/ncp/frames.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/ncp/frames.ts"],"names":[],"mappings":"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"}
|
package/dist/ncp/handshake.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/ncp/handshake.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/ncp/index.d.ts
CHANGED
package/dist/ncp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ncp/index.ts"],"names":[],"mappings":"AAEA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ncp/index.ts"],"names":[],"mappings":"AAEA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
|
package/dist/ncp/index.js
CHANGED
package/dist/ncp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ncp/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ncp/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const NCP_ERROR_CODES: {
|
|
2
2
|
readonly NCP_FRAME_PARSE_ERROR: "NCP-FRAME-PARSE-ERROR";
|
|
3
3
|
readonly NCP_FRAME_INCOMPLETE: "NCP-FRAME-INCOMPLETE";
|
|
4
|
+
readonly NCP_PREAMBLE_INVALID: "NCP-PREAMBLE-INVALID";
|
|
4
5
|
readonly NCP_FRAME_UNKNOWN_TYPE: "NCP-FRAME-UNKNOWN-TYPE";
|
|
5
6
|
readonly NCP_FRAME_PAYLOAD_TOO_LARGE: "NCP-FRAME-PAYLOAD-TOO-LARGE";
|
|
6
7
|
readonly NCP_FRAME_FLAGS_INVALID: "NCP-FRAME-FLAGS-INVALID";
|
|
@@ -17,6 +18,10 @@ export declare const NCP_ERROR_CODES: {
|
|
|
17
18
|
readonly NCP_VERSION_INCOMPATIBLE: "NCP-VERSION-INCOMPATIBLE";
|
|
18
19
|
readonly NCP_ENC_NOT_NEGOTIATED: "NCP-ENC-NOT-NEGOTIATED";
|
|
19
20
|
readonly NCP_ENC_AUTH_FAILED: "NCP-ENC-AUTH-FAILED";
|
|
21
|
+
readonly NCP_KEEPALIVE_TIMEOUT: "NCP-KEEPALIVE-TIMEOUT";
|
|
22
|
+
readonly NCP_REKEY_REQUIRED: "NCP-REKEY-REQUIRED";
|
|
20
23
|
};
|
|
21
24
|
export type NcpErrorCode = typeof NCP_ERROR_CODES[keyof typeof NCP_ERROR_CODES];
|
|
25
|
+
/** Maps each spec-defined NCP error code to its NPS status code. */
|
|
26
|
+
export declare const NCP_ERROR_TO_NPS_STATUS: Record<string, string>;
|
|
22
27
|
//# sourceMappingURL=ncp-error-codes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ncp-error-codes.d.ts","sourceRoot":"","sources":["../../src/ncp/ncp-error-codes.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"ncp-error-codes.d.ts","sourceRoot":"","sources":["../../src/ncp/ncp-error-codes.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CA0BlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEhF,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoB1D,CAAC"}
|
|
@@ -11,6 +11,8 @@ export const NCP_ERROR_CODES = {
|
|
|
11
11
|
// Implementation-only codes (not in spec §6 — see test_results.md spec question 2)
|
|
12
12
|
NCP_FRAME_PARSE_ERROR: "NCP-FRAME-PARSE-ERROR",
|
|
13
13
|
NCP_FRAME_INCOMPLETE: "NCP-FRAME-INCOMPLETE",
|
|
14
|
+
// NPS-RFC-0001 — native-mode preamble
|
|
15
|
+
NCP_PREAMBLE_INVALID: "NCP-PREAMBLE-INVALID",
|
|
14
16
|
// Spec-defined codes
|
|
15
17
|
NCP_FRAME_UNKNOWN_TYPE: "NCP-FRAME-UNKNOWN-TYPE",
|
|
16
18
|
NCP_FRAME_PAYLOAD_TOO_LARGE: "NCP-FRAME-PAYLOAD-TOO-LARGE",
|
|
@@ -28,5 +30,30 @@ export const NCP_ERROR_CODES = {
|
|
|
28
30
|
NCP_VERSION_INCOMPATIBLE: "NCP-VERSION-INCOMPATIBLE",
|
|
29
31
|
NCP_ENC_NOT_NEGOTIATED: "NCP-ENC-NOT-NEGOTIATED",
|
|
30
32
|
NCP_ENC_AUTH_FAILED: "NCP-ENC-AUTH-FAILED",
|
|
33
|
+
// v0.8 keepalive
|
|
34
|
+
NCP_KEEPALIVE_TIMEOUT: "NCP-KEEPALIVE-TIMEOUT",
|
|
35
|
+
NCP_REKEY_REQUIRED: "NCP-REKEY-REQUIRED",
|
|
36
|
+
};
|
|
37
|
+
/** Maps each spec-defined NCP error code to its NPS status code. */
|
|
38
|
+
export const NCP_ERROR_TO_NPS_STATUS = {
|
|
39
|
+
"NCP-ANCHOR-NOT-FOUND": "NPS-CLIENT-NOT-FOUND",
|
|
40
|
+
"NCP-ANCHOR-SCHEMA-INVALID": "NPS-CLIENT-BAD-FRAME",
|
|
41
|
+
"NCP-ANCHOR-ID-MISMATCH": "NPS-CLIENT-CONFLICT",
|
|
42
|
+
"NCP-ANCHOR-STALE": "NPS-CLIENT-CONFLICT",
|
|
43
|
+
"NCP-FRAME-UNKNOWN-TYPE": "NPS-CLIENT-BAD-FRAME",
|
|
44
|
+
"NCP-FRAME-PAYLOAD-TOO-LARGE": "NPS-LIMIT-PAYLOAD",
|
|
45
|
+
"NCP-FRAME-FLAGS-INVALID": "NPS-CLIENT-BAD-FRAME",
|
|
46
|
+
"NCP-STREAM-SEQ-GAP": "NPS-STREAM-SEQ-GAP",
|
|
47
|
+
"NCP-STREAM-NOT-FOUND": "NPS-STREAM-NOT-FOUND",
|
|
48
|
+
"NCP-STREAM-LIMIT-EXCEEDED": "NPS-STREAM-LIMIT",
|
|
49
|
+
"NCP-STREAM-WINDOW-OVERFLOW": "NPS-STREAM-LIMIT",
|
|
50
|
+
"NCP-ENCODING-UNSUPPORTED": "NPS-SERVER-ENCODING-UNSUPPORTED",
|
|
51
|
+
"NCP-DIFF-FORMAT-UNSUPPORTED": "NPS-CLIENT-BAD-FRAME",
|
|
52
|
+
"NCP-VERSION-INCOMPATIBLE": "NPS-PROTO-VERSION-INCOMPATIBLE",
|
|
53
|
+
"NCP-ENC-NOT-NEGOTIATED": "NPS-CLIENT-BAD-FRAME",
|
|
54
|
+
"NCP-ENC-AUTH-FAILED": "NPS-CLIENT-BAD-FRAME",
|
|
55
|
+
"NCP-PREAMBLE-INVALID": "NPS-PROTO-PREAMBLE-INVALID",
|
|
56
|
+
"NCP-KEEPALIVE-TIMEOUT": "NPS-SERVER-TIMEOUT",
|
|
57
|
+
"NCP-REKEY-REQUIRED": "NPS-CLIENT-BAD-FRAME",
|
|
31
58
|
};
|
|
32
59
|
//# sourceMappingURL=ncp-error-codes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ncp-error-codes.js","sourceRoot":"","sources":["../../src/ncp/ncp-error-codes.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,kDAAkD;AAClD,kBAAkB;AAClB,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,yDAAyD;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,mFAAmF;IACnF,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB;IACrB,sBAAsB,EAAE,wBAAwB;IAChD,2BAA2B,EAAE,6BAA6B;IAC1D,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAC5C,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,yBAAyB,EAAE,2BAA2B;IACtD,0BAA0B,EAAE,4BAA4B;IACxD,wBAAwB,EAAE,0BAA0B;IACpD,2BAA2B,EAAE,6BAA6B;IAC1D,wBAAwB,EAAE,0BAA0B;IACpD,sBAAsB,EAAE,wBAAwB;IAChD,mBAAmB,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"ncp-error-codes.js","sourceRoot":"","sources":["../../src/ncp/ncp-error-codes.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,kDAAkD;AAClD,kBAAkB;AAClB,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,yDAAyD;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,mFAAmF;IACnF,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,sBAAsB;IAC5C,sCAAsC;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB;IACrB,sBAAsB,EAAE,wBAAwB;IAChD,2BAA2B,EAAE,6BAA6B;IAC1D,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAC5C,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,yBAAyB,EAAE,2BAA2B;IACtD,0BAA0B,EAAE,4BAA4B;IACxD,wBAAwB,EAAE,0BAA0B;IACpD,2BAA2B,EAAE,6BAA6B;IAC1D,wBAAwB,EAAE,0BAA0B;IACpD,sBAAsB,EAAE,wBAAwB;IAChD,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB;IACjB,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAIX,oEAAoE;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,sBAAsB,EAAU,sBAAsB;IACtD,2BAA2B,EAAK,sBAAsB;IACtD,wBAAwB,EAAQ,qBAAqB;IACrD,kBAAkB,EAAc,qBAAqB;IACrD,wBAAwB,EAAQ,sBAAsB;IACtD,6BAA6B,EAAG,mBAAmB;IACnD,yBAAyB,EAAO,sBAAsB;IACtD,oBAAoB,EAAY,oBAAoB;IACpD,sBAAsB,EAAU,sBAAsB;IACtD,2BAA2B,EAAK,kBAAkB;IAClD,4BAA4B,EAAI,kBAAkB;IAClD,0BAA0B,EAAM,iCAAiC;IACjE,6BAA6B,EAAG,sBAAsB;IACtD,0BAA0B,EAAM,gCAAgC;IAChE,wBAAwB,EAAQ,sBAAsB;IACtD,qBAAqB,EAAW,sBAAsB;IACtD,sBAAsB,EAAU,4BAA4B;IAC5D,uBAAuB,EAAS,oBAAoB;IACpD,oBAAoB,EAAY,sBAAsB;CACvD,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NCP native-mode connection preamble — the 8-byte ASCII constant
|
|
3
|
+
* `"NPS/1.0\n"` that every native-mode client MUST emit immediately
|
|
4
|
+
* after the transport handshake and before its first HelloFrame.
|
|
5
|
+
* Defined by NPS-RFC-0001 and NPS-1 NCP §2.6.1.
|
|
6
|
+
*
|
|
7
|
+
* HTTP-mode connections do not use the preamble.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PREAMBLE_LITERAL = "NPS/1.0\n";
|
|
10
|
+
export declare const PREAMBLE_LENGTH = 8;
|
|
11
|
+
export declare const PREAMBLE_BYTES: Uint8Array;
|
|
12
|
+
/** Validation timeout in milliseconds (NPS-RFC-0001 §4.1). */
|
|
13
|
+
export declare const PREAMBLE_READ_TIMEOUT_MS = 10000;
|
|
14
|
+
/** Maximum delay before closing after a mismatch, in milliseconds. */
|
|
15
|
+
export declare const PREAMBLE_CLOSE_DEADLINE_MS = 500;
|
|
16
|
+
export declare const PREAMBLE_ERROR_CODE = "NCP-PREAMBLE-INVALID";
|
|
17
|
+
export declare const PREAMBLE_STATUS_CODE = "NPS-PROTO-PREAMBLE-INVALID";
|
|
18
|
+
export declare class NcpPreambleInvalidError extends Error {
|
|
19
|
+
readonly errorCode = "NCP-PREAMBLE-INVALID";
|
|
20
|
+
readonly statusCode = "NPS-PROTO-PREAMBLE-INVALID";
|
|
21
|
+
constructor(reason: string);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns `true` iff `buf` starts with the 8-byte NPS/1.0 preamble.
|
|
25
|
+
* Safe to call with shorter buffers.
|
|
26
|
+
*/
|
|
27
|
+
export declare function preambleMatches(buf: Uint8Array): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Validates a presumed-preamble buffer.
|
|
30
|
+
* Returns `{ valid: true, reason: "" }` on success or `{ valid: false, reason }` on failure.
|
|
31
|
+
*/
|
|
32
|
+
export declare function tryValidatePreamble(buf: Uint8Array): {
|
|
33
|
+
valid: boolean;
|
|
34
|
+
reason: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Validates a presumed-preamble buffer, throwing {@link NcpPreambleInvalidError} on mismatch.
|
|
38
|
+
*/
|
|
39
|
+
export declare function validatePreamble(buf: Uint8Array): void;
|
|
40
|
+
/**
|
|
41
|
+
* Writes the preamble bytes to `writer`.
|
|
42
|
+
* `writer` must expose a `write(buf: Uint8Array): void` method (e.g. Node.js `net.Socket`).
|
|
43
|
+
*/
|
|
44
|
+
export declare function writePreamble(writer: {
|
|
45
|
+
write(buf: Uint8Array): void;
|
|
46
|
+
}): void;
|
|
47
|
+
//# sourceMappingURL=preamble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preamble.d.ts","sourceRoot":"","sources":["../../src/ncp/preamble.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,cAAc,EAAE,UAAuD,CAAC;AACrF,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,eAAO,MAAM,mBAAmB,yBAA0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AAEjE,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,SAAS,0BAAwB;IAC1C,QAAQ,CAAC,UAAU,gCAAwB;gBAE/B,MAAM,EAAE,MAAM;CAI3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAMxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAavF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAGtD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAE5E"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// Copyright 2026 INNO LOTUS PTY LTD
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* NCP native-mode connection preamble — the 8-byte ASCII constant
|
|
5
|
+
* `"NPS/1.0\n"` that every native-mode client MUST emit immediately
|
|
6
|
+
* after the transport handshake and before its first HelloFrame.
|
|
7
|
+
* Defined by NPS-RFC-0001 and NPS-1 NCP §2.6.1.
|
|
8
|
+
*
|
|
9
|
+
* HTTP-mode connections do not use the preamble.
|
|
10
|
+
*/
|
|
11
|
+
export const PREAMBLE_LITERAL = "NPS/1.0\n";
|
|
12
|
+
export const PREAMBLE_LENGTH = 8;
|
|
13
|
+
export const PREAMBLE_BYTES = new TextEncoder().encode(PREAMBLE_LITERAL);
|
|
14
|
+
/** Validation timeout in milliseconds (NPS-RFC-0001 §4.1). */
|
|
15
|
+
export const PREAMBLE_READ_TIMEOUT_MS = 10_000;
|
|
16
|
+
/** Maximum delay before closing after a mismatch, in milliseconds. */
|
|
17
|
+
export const PREAMBLE_CLOSE_DEADLINE_MS = 500;
|
|
18
|
+
export const PREAMBLE_ERROR_CODE = "NCP-PREAMBLE-INVALID";
|
|
19
|
+
export const PREAMBLE_STATUS_CODE = "NPS-PROTO-PREAMBLE-INVALID";
|
|
20
|
+
export class NcpPreambleInvalidError extends Error {
|
|
21
|
+
errorCode = PREAMBLE_ERROR_CODE;
|
|
22
|
+
statusCode = PREAMBLE_STATUS_CODE;
|
|
23
|
+
constructor(reason) {
|
|
24
|
+
super(reason);
|
|
25
|
+
this.name = "NcpPreambleInvalidError";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Returns `true` iff `buf` starts with the 8-byte NPS/1.0 preamble.
|
|
30
|
+
* Safe to call with shorter buffers.
|
|
31
|
+
*/
|
|
32
|
+
export function preambleMatches(buf) {
|
|
33
|
+
if (buf.length < PREAMBLE_LENGTH)
|
|
34
|
+
return false;
|
|
35
|
+
for (let i = 0; i < PREAMBLE_LENGTH; i++) {
|
|
36
|
+
if (buf[i] !== PREAMBLE_BYTES[i])
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validates a presumed-preamble buffer.
|
|
43
|
+
* Returns `{ valid: true, reason: "" }` on success or `{ valid: false, reason }` on failure.
|
|
44
|
+
*/
|
|
45
|
+
export function tryValidatePreamble(buf) {
|
|
46
|
+
if (buf.length < PREAMBLE_LENGTH) {
|
|
47
|
+
return { valid: false, reason: `short read (${buf.length}/${PREAMBLE_LENGTH} bytes); peer is not speaking NCP` };
|
|
48
|
+
}
|
|
49
|
+
if (!preambleMatches(buf)) {
|
|
50
|
+
// "NPS/" = 0x4E 0x50 0x53 0x2F
|
|
51
|
+
const isNps = buf[0] === 0x4e && buf[1] === 0x50 && buf[2] === 0x53 && buf[3] === 0x2f;
|
|
52
|
+
if (isNps) {
|
|
53
|
+
return { valid: false, reason: "future-major-version NPS preamble; close with NPS-PREAMBLE-UNSUPPORTED-VERSION diagnostic" };
|
|
54
|
+
}
|
|
55
|
+
return { valid: false, reason: "preamble mismatch; peer is not speaking NPS/1.x" };
|
|
56
|
+
}
|
|
57
|
+
return { valid: true, reason: "" };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Validates a presumed-preamble buffer, throwing {@link NcpPreambleInvalidError} on mismatch.
|
|
61
|
+
*/
|
|
62
|
+
export function validatePreamble(buf) {
|
|
63
|
+
const { valid, reason } = tryValidatePreamble(buf);
|
|
64
|
+
if (!valid)
|
|
65
|
+
throw new NcpPreambleInvalidError(reason);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Writes the preamble bytes to `writer`.
|
|
69
|
+
* `writer` must expose a `write(buf: Uint8Array): void` method (e.g. Node.js `net.Socket`).
|
|
70
|
+
*/
|
|
71
|
+
export function writePreamble(writer) {
|
|
72
|
+
writer.write(PREAMBLE_BYTES);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=preamble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preamble.js","sourceRoot":"","sources":["../../src/ncp/preamble.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAe,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACrF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAC/C,sEAAsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAI,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAEjE,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,SAAS,GAAI,mBAAmB,CAAC;IACjC,UAAU,GAAG,oBAAoB,CAAC;IAE3C,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,IAAI,GAAG,CAAC,MAAM,GAAG,eAAe;QAAE,OAAO,KAAK,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAe;IACjD,IAAI,GAAG,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,GAAG,CAAC,MAAM,IAAI,eAAe,mCAAmC,EAAE,CAAC;IACnH,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,+BAA+B;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QACvF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2FAA2F,EAAE,CAAC;QAC/H,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;IACrF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwC;IACpE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/ncp/registry.d.ts
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/ncp/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/ncp/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAO/D"}
|
package/dist/ncp/registry.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// Copyright 2026 INNO LOTUS PTY LTD
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { FrameType } from "../core/frames.js";
|
|
4
|
-
import { AnchorFrame, CapsFrame, DiffFrame, ErrorFrame, StreamFrame } from "./frames.js";
|
|
4
|
+
import { AnchorFrame, CapsFrame, DiffFrame, ErrorFrame, HelloFrame, StreamFrame } from "./frames.js";
|
|
5
5
|
export function registerNcpFrames(registry) {
|
|
6
6
|
registry.register(FrameType.ANCHOR, AnchorFrame);
|
|
7
7
|
registry.register(FrameType.DIFF, DiffFrame);
|
|
8
8
|
registry.register(FrameType.STREAM, StreamFrame);
|
|
9
9
|
registry.register(FrameType.CAPS, CapsFrame);
|
|
10
|
+
registry.register(FrameType.HELLO, HelloFrame);
|
|
10
11
|
registry.register(FrameType.ERROR, ErrorFrame);
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=registry.js.map
|
package/dist/ncp/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/ncp/registry.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/ncp/registry.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAErG,MAAM,UAAU,iBAAiB,CAAC,QAAuB;IACvD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAI,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAI,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC,CAAC;AAClD,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { NdpResolveResult } from "./frames.js";
|
|
2
|
+
export declare const DNS_TXT_DEFAULT_TTL = 300;
|
|
3
|
+
/**
|
|
4
|
+
* Extract the hostname from an NWP target URI.
|
|
5
|
+
* e.g. "nwp://api.example.com/products" → "api.example.com"
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractHostFromTarget(target: string): string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Parse one TXT record (array of string chunks) into an NdpResolveResult.
|
|
10
|
+
*
|
|
11
|
+
* Expected format (chunks joined with a single space):
|
|
12
|
+
* v=nps1 type=<type> port=<port> nid=<nid> fp=sha256:<fingerprint>
|
|
13
|
+
*
|
|
14
|
+
* Rules:
|
|
15
|
+
* - `v` MUST be present and equal to "nps1"
|
|
16
|
+
* - `nid` MUST be present
|
|
17
|
+
* - `port` defaults to 17433 when absent
|
|
18
|
+
* - `fp` is mapped to certFingerprint
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseNpsTxtRecord(parts: string[], host: string): NdpResolveResult | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Abstraction over DNS TXT lookups.
|
|
23
|
+
* The default implementation uses Node's `dns.promises`; pass a mock in tests.
|
|
24
|
+
*/
|
|
25
|
+
export interface DnsTxtLookup {
|
|
26
|
+
resolveTxt(hostname: string): Promise<string[][]>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* System DNS TXT resolver backed by Node's built-in `dns.promises`.
|
|
30
|
+
* The dynamic `import()` keeps browser bundles from failing at parse time.
|
|
31
|
+
*/
|
|
32
|
+
export declare class SystemDnsTxtLookup implements DnsTxtLookup {
|
|
33
|
+
resolveTxt(hostname: string): Promise<string[][]>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=dns-txt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns-txt.d.ts","sourceRoot":"","sources":["../../src/ndp/dns-txt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,EAAE,MAAM,GACX,gBAAgB,GAAG,SAAS,CAgC9B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACnD;AAED;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IAC/C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAIxD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Copyright 2026 INNO LOTUS PTY LTD
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
export const DNS_TXT_DEFAULT_TTL = 300;
|
|
4
|
+
/**
|
|
5
|
+
* Extract the hostname from an NWP target URI.
|
|
6
|
+
* e.g. "nwp://api.example.com/products" → "api.example.com"
|
|
7
|
+
*/
|
|
8
|
+
export function extractHostFromTarget(target) {
|
|
9
|
+
if (!target.startsWith("nwp://"))
|
|
10
|
+
return undefined;
|
|
11
|
+
const rest = target.slice("nwp://".length);
|
|
12
|
+
const slashIdx = rest.indexOf("/");
|
|
13
|
+
const host = slashIdx === -1 ? rest : rest.slice(0, slashIdx);
|
|
14
|
+
return host.length > 0 ? host : undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse one TXT record (array of string chunks) into an NdpResolveResult.
|
|
18
|
+
*
|
|
19
|
+
* Expected format (chunks joined with a single space):
|
|
20
|
+
* v=nps1 type=<type> port=<port> nid=<nid> fp=sha256:<fingerprint>
|
|
21
|
+
*
|
|
22
|
+
* Rules:
|
|
23
|
+
* - `v` MUST be present and equal to "nps1"
|
|
24
|
+
* - `nid` MUST be present
|
|
25
|
+
* - `port` defaults to 17433 when absent
|
|
26
|
+
* - `fp` is mapped to certFingerprint
|
|
27
|
+
*/
|
|
28
|
+
export function parseNpsTxtRecord(parts, host) {
|
|
29
|
+
const joined = parts.join(" ");
|
|
30
|
+
const kv = new Map();
|
|
31
|
+
for (const token of joined.split(/\s+/)) {
|
|
32
|
+
const eq = token.indexOf("=");
|
|
33
|
+
if (eq === -1)
|
|
34
|
+
continue;
|
|
35
|
+
const key = token.slice(0, eq);
|
|
36
|
+
const val = token.slice(eq + 1);
|
|
37
|
+
kv.set(key, val);
|
|
38
|
+
}
|
|
39
|
+
if (kv.get("v") !== "nps1")
|
|
40
|
+
return undefined;
|
|
41
|
+
const nid = kv.get("nid");
|
|
42
|
+
if (!nid)
|
|
43
|
+
return undefined;
|
|
44
|
+
const rawPort = kv.get("port");
|
|
45
|
+
const port = rawPort !== undefined ? Number(rawPort) : 17433;
|
|
46
|
+
const fp = kv.get("fp");
|
|
47
|
+
const result = {
|
|
48
|
+
host,
|
|
49
|
+
port,
|
|
50
|
+
ttl: DNS_TXT_DEFAULT_TTL,
|
|
51
|
+
};
|
|
52
|
+
if (fp !== undefined) {
|
|
53
|
+
result.certFingerprint = fp;
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* System DNS TXT resolver backed by Node's built-in `dns.promises`.
|
|
59
|
+
* The dynamic `import()` keeps browser bundles from failing at parse time.
|
|
60
|
+
*/
|
|
61
|
+
export class SystemDnsTxtLookup {
|
|
62
|
+
async resolveTxt(hostname) {
|
|
63
|
+
const { promises: dns } = await import("node:dns");
|
|
64
|
+
return dns.resolveTxt(hostname);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=dns-txt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns-txt.js","sourceRoot":"","sources":["../../src/ndp/dns-txt.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAItC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,IAAI,GAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAe,EACf,IAAY;IAEZ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAO,IAAI,GAAG,EAAkB,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAChC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAE7C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAM,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,MAAM,EAAE,GAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,MAAM,GAAqB;QAC/B,IAAI;QACJ,IAAI;QACJ,GAAG,EAAE,mBAAmB;KACzB,CAAC;IAEF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAUD;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF"}
|
package/dist/ndp/frames.d.ts
CHANGED
|
@@ -7,9 +7,14 @@ export interface NdpAddress {
|
|
|
7
7
|
}
|
|
8
8
|
export interface NdpGraphNode {
|
|
9
9
|
nid: string;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
cluster_anchor?: string;
|
|
11
|
+
node_roles?: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface NdpGraphEdge {
|
|
14
|
+
from_nid: string;
|
|
15
|
+
to_nid: string;
|
|
16
|
+
latency_ms?: number;
|
|
17
|
+
protocol?: string;
|
|
13
18
|
}
|
|
14
19
|
export interface NdpResolveResult {
|
|
15
20
|
host: string;
|
|
@@ -25,9 +30,21 @@ export declare class AnnounceFrame implements NpsFrame {
|
|
|
25
30
|
readonly timestamp: string;
|
|
26
31
|
readonly signature: string;
|
|
27
32
|
readonly nodeType?: string | undefined;
|
|
33
|
+
readonly node_roles?: string[] | undefined;
|
|
34
|
+
readonly cluster_anchor?: string | undefined;
|
|
35
|
+
readonly spawn_spec_ref?: Record<string, unknown> | undefined;
|
|
36
|
+
readonly bridge_protocols?: string[] | undefined;
|
|
37
|
+
readonly activation_mode?: string | undefined;
|
|
38
|
+
readonly activation_endpoint?: string | undefined;
|
|
39
|
+
readonly heartbeat_interval_ms: number;
|
|
40
|
+
readonly health?: string | undefined;
|
|
41
|
+
readonly last_seen?: string | undefined;
|
|
28
42
|
readonly frameType = FrameType.ANNOUNCE;
|
|
29
43
|
readonly preferredTier = EncodingTier.MSGPACK;
|
|
30
|
-
constructor(nid: string, addresses: readonly NdpAddress[], capabilities: readonly string[], ttl: number, timestamp: string, signature: string, nodeType?: string | undefined
|
|
44
|
+
constructor(nid: string, addresses: readonly NdpAddress[], capabilities: readonly string[], ttl: number, timestamp: string, signature: string, nodeType?: string | undefined, node_roles?: string[] | undefined, cluster_anchor?: string | undefined, spawn_spec_ref?: Record<string, unknown> | undefined, // NDP v0.9 §3.1.1 schema
|
|
45
|
+
bridge_protocols?: string[] | undefined, activation_mode?: string | undefined, activation_endpoint?: string | undefined, heartbeat_interval_ms?: number, // NDP v0.9 §3.1
|
|
46
|
+
health?: string | undefined, // "healthy" / "degraded" / "draining"
|
|
47
|
+
last_seen?: string | undefined);
|
|
31
48
|
unsignedDict(): Record<string, unknown>;
|
|
32
49
|
toDict(): Record<string, unknown>;
|
|
33
50
|
static fromDict(data: Record<string, unknown>): AnnounceFrame;
|
|
@@ -42,14 +59,22 @@ export declare class ResolveFrame implements NpsFrame {
|
|
|
42
59
|
toDict(): Record<string, unknown>;
|
|
43
60
|
static fromDict(data: Record<string, unknown>): ResolveFrame;
|
|
44
61
|
}
|
|
62
|
+
export interface GraphFrameData {
|
|
63
|
+
graph_id: string;
|
|
64
|
+
nodes: NdpGraphNode[];
|
|
65
|
+
edges: NdpGraphEdge[];
|
|
66
|
+
ttl: number;
|
|
67
|
+
metadata?: Record<string, unknown>;
|
|
68
|
+
}
|
|
45
69
|
export declare class GraphFrame implements NpsFrame {
|
|
46
|
-
readonly
|
|
47
|
-
readonly
|
|
48
|
-
readonly
|
|
49
|
-
readonly
|
|
70
|
+
readonly graph_id: string;
|
|
71
|
+
readonly nodes: readonly NdpGraphNode[];
|
|
72
|
+
readonly edges: readonly NdpGraphEdge[];
|
|
73
|
+
readonly ttl: number;
|
|
74
|
+
readonly metadata?: Record<string, unknown> | undefined;
|
|
50
75
|
readonly frameType = FrameType.GRAPH;
|
|
51
76
|
readonly preferredTier = EncodingTier.MSGPACK;
|
|
52
|
-
constructor(
|
|
77
|
+
constructor(graph_id: string, nodes: readonly NdpGraphNode[], edges: readonly NdpGraphEdge[], ttl: number, metadata?: Record<string, unknown> | undefined);
|
|
53
78
|
toDict(): Record<string, unknown>;
|
|
54
79
|
static fromDict(data: Record<string, unknown>): GraphFrame;
|
|
55
80
|
}
|
package/dist/ndp/frames.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/ndp/frames.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAM,MAAM,CAAC;IACjB,IAAI,EAAM,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/ndp/frames.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAM,MAAM,CAAC;IACjB,IAAI,EAAM,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAa,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAK,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAK,MAAM,CAAC;IACpB,MAAM,EAAO,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAI,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAe,MAAM,CAAC;IAC1B,IAAI,EAAe,MAAM,CAAC;IAC1B,GAAG,EAAgB,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAG,MAAM,CAAC;CAC3B;AAED,qBAAa,aAAc,YAAW,QAAQ;aAK1B,GAAG,EAAmB,MAAM;aAC5B,SAAS,EAAa,SAAS,UAAU,EAAE;aAC3C,YAAY,EAAU,SAAS,MAAM,EAAE;aACvC,GAAG,EAAmB,MAAM;aAC5B,SAAS,EAAa,MAAM;aAC5B,SAAS,EAAa,MAAM;aAC5B,QAAQ,CAAC,EAAa,MAAM;aAC5B,UAAU,CAAC,EAAW,MAAM,EAAE;aAC9B,cAAc,CAAC,EAAO,MAAM;aAC5B,cAAc,CAAC,EAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aAC7C,gBAAgB,CAAC,EAAK,MAAM,EAAE;aAC9B,eAAe,CAAC,EAAM,MAAM;aAC5B,mBAAmB,CAAC,EAAE,MAAM;aAC5B,qBAAqB,EAAE,MAAM;aAG7B,MAAM,CAAC,EAAe,MAAM;aAC5B,SAAS,CAAC,EAAY,MAAM;IArB9C,QAAQ,CAAC,SAAS,sBAA0B;IAC5C,QAAQ,CAAC,aAAa,wBAAwB;gBAG5B,GAAG,EAAmB,MAAM,EAC5B,SAAS,EAAa,SAAS,UAAU,EAAE,EAC3C,YAAY,EAAU,SAAS,MAAM,EAAE,EACvC,GAAG,EAAmB,MAAM,EAC5B,SAAS,EAAa,MAAM,EAC5B,SAAS,EAAa,MAAM,EAC5B,QAAQ,CAAC,EAAa,MAAM,YAAA,EAC5B,UAAU,CAAC,EAAW,MAAM,EAAE,YAAA,EAC9B,cAAc,CAAC,EAAO,MAAM,YAAA,EAC5B,cAAc,CAAC,EAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA,EAAE,yBAAyB;IACxE,gBAAgB,CAAC,EAAK,MAAM,EAAE,YAAA,EAC9B,eAAe,CAAC,EAAM,MAAM,YAAA,EAC5B,mBAAmB,CAAC,EAAE,MAAM,YAAA,EAC5B,qBAAqB,GAAE,MAAe,EAAE,gBAAgB;IAGxD,MAAM,CAAC,EAAe,MAAM,YAAA,EAAE,sCAAsC;IACpE,SAAS,CAAC,EAAY,MAAM,YAAA;IAG9C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBvC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQjC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa;CAoB9D;AAED,qBAAa,YAAa,YAAW,QAAQ;aAKzB,MAAM,EAAS,MAAM;aACrB,YAAY,CAAC,EAAE,MAAM;aACrB,QAAQ,CAAC,EAAM,gBAAgB;IANjD,QAAQ,CAAC,SAAS,qBAAyB;IAC3C,QAAQ,CAAC,aAAa,wBAAwB;gBAG5B,MAAM,EAAS,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,QAAQ,CAAC,EAAM,gBAAgB,YAAA;IAGjD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQjC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;CAO7D;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAG,MAAM,CAAC;IAClB,KAAK,EAAM,YAAY,EAAE,CAAC;IAC1B,KAAK,EAAM,YAAY,EAAE,CAAC;IAC1B,GAAG,EAAQ,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,UAAW,YAAW,QAAQ;aAKvB,QAAQ,EAAG,MAAM;aACjB,KAAK,EAAM,SAAS,YAAY,EAAE;aAClC,KAAK,EAAM,SAAS,YAAY,EAAE;aAClC,GAAG,EAAQ,MAAM;aACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IARpD,QAAQ,CAAC,SAAS,mBAAuB;IACzC,QAAQ,CAAC,aAAa,wBAAwB;gBAG5B,QAAQ,EAAG,MAAM,EACjB,KAAK,EAAM,SAAS,YAAY,EAAE,EAClC,KAAK,EAAM,SAAS,YAAY,EAAE,EAClC,GAAG,EAAQ,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAGpD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUjC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;CAS3D"}
|