@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.
Files changed (452) hide show
  1. package/CHANGELOG.cn.md +181 -0
  2. package/CHANGELOG.md +234 -0
  3. package/LICENSE +0 -0
  4. package/NOTICE +0 -0
  5. package/README.cn.md +163 -0
  6. package/README.md +16 -6
  7. package/dist/core/anchor-cache.d.ts +0 -0
  8. package/dist/core/anchor-cache.d.ts.map +0 -0
  9. package/dist/core/anchor-cache.js +0 -0
  10. package/dist/core/anchor-cache.js.map +0 -0
  11. package/dist/core/cache.d.ts +0 -0
  12. package/dist/core/cache.d.ts.map +0 -0
  13. package/dist/core/cache.js +0 -0
  14. package/dist/core/cache.js.map +0 -0
  15. package/dist/core/canonical-json.d.ts +0 -0
  16. package/dist/core/canonical-json.d.ts.map +0 -0
  17. package/dist/core/canonical-json.js +0 -0
  18. package/dist/core/canonical-json.js.map +0 -0
  19. package/dist/core/codec.d.ts +0 -0
  20. package/dist/core/codec.d.ts.map +0 -0
  21. package/dist/core/codec.js +0 -0
  22. package/dist/core/codec.js.map +0 -0
  23. package/dist/core/codecs/index.d.ts +0 -0
  24. package/dist/core/codecs/index.d.ts.map +0 -0
  25. package/dist/core/codecs/index.js +0 -0
  26. package/dist/core/codecs/index.js.map +0 -0
  27. package/dist/core/codecs/ncp-codec.d.ts +0 -0
  28. package/dist/core/codecs/ncp-codec.d.ts.map +0 -0
  29. package/dist/core/codecs/ncp-codec.js +0 -0
  30. package/dist/core/codecs/ncp-codec.js.map +0 -0
  31. package/dist/core/codecs/tier1-json-codec.d.ts +0 -0
  32. package/dist/core/codecs/tier1-json-codec.d.ts.map +0 -0
  33. package/dist/core/codecs/tier1-json-codec.js +0 -0
  34. package/dist/core/codecs/tier1-json-codec.js.map +0 -0
  35. package/dist/core/codecs/tier2-msgpack-codec.d.ts +0 -0
  36. package/dist/core/codecs/tier2-msgpack-codec.d.ts.map +0 -0
  37. package/dist/core/codecs/tier2-msgpack-codec.js +0 -0
  38. package/dist/core/codecs/tier2-msgpack-codec.js.map +0 -0
  39. package/dist/core/crypto-provider.d.ts +0 -0
  40. package/dist/core/crypto-provider.d.ts.map +0 -0
  41. package/dist/core/crypto-provider.js +0 -0
  42. package/dist/core/crypto-provider.js.map +0 -0
  43. package/dist/core/exceptions.d.ts +0 -0
  44. package/dist/core/exceptions.d.ts.map +0 -0
  45. package/dist/core/exceptions.js +0 -0
  46. package/dist/core/exceptions.js.map +0 -0
  47. package/dist/core/frame-header.d.ts +1 -0
  48. package/dist/core/frame-header.d.ts.map +1 -1
  49. package/dist/core/frame-header.js +1 -0
  50. package/dist/core/frame-header.js.map +1 -1
  51. package/dist/core/frame-registry.d.ts +0 -0
  52. package/dist/core/frame-registry.d.ts.map +1 -1
  53. package/dist/core/frame-registry.js +1 -0
  54. package/dist/core/frame-registry.js.map +1 -1
  55. package/dist/core/frames.d.ts +3 -0
  56. package/dist/core/frames.d.ts.map +1 -1
  57. package/dist/core/frames.js +3 -0
  58. package/dist/core/frames.js.map +1 -1
  59. package/dist/core/index.d.ts +6 -4
  60. package/dist/core/index.d.ts.map +1 -1
  61. package/dist/core/index.js +17 -5
  62. package/dist/core/index.js.map +1 -1
  63. package/dist/core/registry.d.ts +0 -0
  64. package/dist/core/registry.d.ts.map +0 -0
  65. package/dist/core/registry.js +0 -0
  66. package/dist/core/registry.js.map +0 -0
  67. package/dist/core/status-codes.d.ts +20 -0
  68. package/dist/core/status-codes.d.ts.map +1 -1
  69. package/dist/core/status-codes.js +51 -0
  70. package/dist/core/status-codes.js.map +1 -1
  71. package/dist/index.d.ts +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +1 -1
  74. package/dist/index.js.map +1 -1
  75. package/dist/ncp/frames/anchor-frame.d.ts +0 -0
  76. package/dist/ncp/frames/anchor-frame.d.ts.map +0 -0
  77. package/dist/ncp/frames/anchor-frame.js +0 -0
  78. package/dist/ncp/frames/anchor-frame.js.map +0 -0
  79. package/dist/ncp/frames/caps-frame.d.ts +0 -0
  80. package/dist/ncp/frames/caps-frame.d.ts.map +0 -0
  81. package/dist/ncp/frames/caps-frame.js +0 -0
  82. package/dist/ncp/frames/caps-frame.js.map +0 -0
  83. package/dist/ncp/frames/diff-frame.d.ts +0 -0
  84. package/dist/ncp/frames/diff-frame.d.ts.map +0 -0
  85. package/dist/ncp/frames/diff-frame.js +0 -0
  86. package/dist/ncp/frames/diff-frame.js.map +0 -0
  87. package/dist/ncp/frames/error-frame.d.ts +0 -0
  88. package/dist/ncp/frames/error-frame.d.ts.map +0 -0
  89. package/dist/ncp/frames/error-frame.js +0 -0
  90. package/dist/ncp/frames/error-frame.js.map +0 -0
  91. package/dist/ncp/frames/hello-frame.d.ts +0 -0
  92. package/dist/ncp/frames/hello-frame.d.ts.map +0 -0
  93. package/dist/ncp/frames/hello-frame.js +0 -0
  94. package/dist/ncp/frames/hello-frame.js.map +0 -0
  95. package/dist/ncp/frames/stream-frame.d.ts +0 -0
  96. package/dist/ncp/frames/stream-frame.d.ts.map +0 -0
  97. package/dist/ncp/frames/stream-frame.js +0 -0
  98. package/dist/ncp/frames/stream-frame.js.map +0 -0
  99. package/dist/ncp/frames.d.ts +25 -0
  100. package/dist/ncp/frames.d.ts.map +1 -1
  101. package/dist/ncp/frames.js +61 -0
  102. package/dist/ncp/frames.js.map +1 -1
  103. package/dist/ncp/handshake.d.ts +0 -0
  104. package/dist/ncp/handshake.d.ts.map +0 -0
  105. package/dist/ncp/handshake.js +0 -0
  106. package/dist/ncp/handshake.js.map +0 -0
  107. package/dist/ncp/index.d.ts +1 -0
  108. package/dist/ncp/index.d.ts.map +1 -1
  109. package/dist/ncp/index.js +1 -0
  110. package/dist/ncp/index.js.map +1 -1
  111. package/dist/ncp/ncp-error-codes.d.ts +5 -0
  112. package/dist/ncp/ncp-error-codes.d.ts.map +1 -1
  113. package/dist/ncp/ncp-error-codes.js +27 -0
  114. package/dist/ncp/ncp-error-codes.js.map +1 -1
  115. package/dist/ncp/ncp-patch-format.d.ts +0 -0
  116. package/dist/ncp/ncp-patch-format.d.ts.map +0 -0
  117. package/dist/ncp/ncp-patch-format.js +0 -0
  118. package/dist/ncp/ncp-patch-format.js.map +0 -0
  119. package/dist/ncp/preamble.d.ts +47 -0
  120. package/dist/ncp/preamble.d.ts.map +1 -0
  121. package/dist/ncp/preamble.js +74 -0
  122. package/dist/ncp/preamble.js.map +1 -0
  123. package/dist/ncp/registry.d.ts +0 -0
  124. package/dist/ncp/registry.d.ts.map +1 -1
  125. package/dist/ncp/registry.js +2 -1
  126. package/dist/ncp/registry.js.map +1 -1
  127. package/dist/ncp/stream-manager.d.ts +0 -0
  128. package/dist/ncp/stream-manager.d.ts.map +0 -0
  129. package/dist/ncp/stream-manager.js +0 -0
  130. package/dist/ncp/stream-manager.js.map +0 -0
  131. package/dist/ndp/dns-txt.d.ts +35 -0
  132. package/dist/ndp/dns-txt.d.ts.map +1 -0
  133. package/dist/ndp/dns-txt.js +67 -0
  134. package/dist/ndp/dns-txt.js.map +1 -0
  135. package/dist/ndp/frames.d.ts +34 -9
  136. package/dist/ndp/frames.d.ts.map +1 -1
  137. package/dist/ndp/frames.js +54 -15
  138. package/dist/ndp/frames.js.map +1 -1
  139. package/dist/ndp/index.d.ts +3 -0
  140. package/dist/ndp/index.d.ts.map +1 -1
  141. package/dist/ndp/index.js +3 -0
  142. package/dist/ndp/index.js.map +1 -1
  143. package/dist/ndp/ndp-error-codes.d.ts +25 -0
  144. package/dist/ndp/ndp-error-codes.d.ts.map +1 -0
  145. package/dist/ndp/ndp-error-codes.js +48 -0
  146. package/dist/ndp/ndp-error-codes.js.map +1 -0
  147. package/dist/ndp/ndp-registry.d.ts +2 -0
  148. package/dist/ndp/ndp-registry.d.ts.map +1 -1
  149. package/dist/ndp/ndp-registry.js +25 -0
  150. package/dist/ndp/ndp-registry.js.map +1 -1
  151. package/dist/ndp/registry.d.ts +0 -0
  152. package/dist/ndp/registry.d.ts.map +0 -0
  153. package/dist/ndp/registry.js +0 -0
  154. package/dist/ndp/registry.js.map +0 -0
  155. package/dist/ndp/security.d.ts +8 -0
  156. package/dist/ndp/security.d.ts.map +1 -0
  157. package/dist/ndp/security.js +9 -0
  158. package/dist/ndp/security.js.map +1 -0
  159. package/dist/ndp/validator.d.ts +0 -0
  160. package/dist/ndp/validator.d.ts.map +0 -0
  161. package/dist/ndp/validator.js +0 -0
  162. package/dist/ndp/validator.js.map +0 -0
  163. package/dist/nip/acme/client.d.ts +31 -0
  164. package/dist/nip/acme/client.d.ts.map +1 -0
  165. package/dist/nip/acme/client.js +136 -0
  166. package/dist/nip/acme/client.js.map +1 -0
  167. package/dist/nip/acme/index.d.ts +6 -0
  168. package/dist/nip/acme/index.d.ts.map +1 -0
  169. package/dist/nip/acme/index.js +8 -0
  170. package/dist/nip/acme/index.js.map +1 -0
  171. package/dist/nip/acme/jws.d.ts +31 -0
  172. package/dist/nip/acme/jws.d.ts.map +1 -0
  173. package/dist/nip/acme/jws.js +76 -0
  174. package/dist/nip/acme/jws.js.map +1 -0
  175. package/dist/nip/acme/messages.d.ts +71 -0
  176. package/dist/nip/acme/messages.d.ts.map +1 -0
  177. package/dist/nip/acme/messages.js +4 -0
  178. package/dist/nip/acme/messages.js.map +1 -0
  179. package/dist/nip/acme/server.d.ts +41 -0
  180. package/dist/nip/acme/server.d.ts.map +1 -0
  181. package/dist/nip/acme/server.js +458 -0
  182. package/dist/nip/acme/server.js.map +1 -0
  183. package/dist/nip/acme/wire.d.ts +19 -0
  184. package/dist/nip/acme/wire.d.ts.map +1 -0
  185. package/dist/nip/acme/wire.js +21 -0
  186. package/dist/nip/acme/wire.js.map +1 -0
  187. package/dist/nip/assurance-level.d.ts +19 -0
  188. package/dist/nip/assurance-level.d.ts.map +1 -0
  189. package/dist/nip/assurance-level.js +38 -0
  190. package/dist/nip/assurance-level.js.map +1 -0
  191. package/dist/nip/cert-format.d.ts +5 -0
  192. package/dist/nip/cert-format.d.ts.map +1 -0
  193. package/dist/nip/cert-format.js +6 -0
  194. package/dist/nip/cert-format.js.map +1 -0
  195. package/dist/nip/error-codes.d.ts +44 -0
  196. package/dist/nip/error-codes.d.ts.map +1 -0
  197. package/dist/nip/error-codes.js +97 -0
  198. package/dist/nip/error-codes.js.map +1 -0
  199. package/dist/nip/frames.d.ts +19 -1
  200. package/dist/nip/frames.d.ts.map +1 -1
  201. package/dist/nip/frames.js +39 -4
  202. package/dist/nip/frames.js.map +1 -1
  203. package/dist/nip/identity.d.ts +0 -0
  204. package/dist/nip/identity.d.ts.map +0 -0
  205. package/dist/nip/identity.js +0 -0
  206. package/dist/nip/identity.js.map +0 -0
  207. package/dist/nip/index.d.ts +7 -0
  208. package/dist/nip/index.d.ts.map +1 -1
  209. package/dist/nip/index.js +9 -0
  210. package/dist/nip/index.js.map +1 -1
  211. package/dist/nip/registry.d.ts +0 -0
  212. package/dist/nip/registry.d.ts.map +0 -0
  213. package/dist/nip/registry.js +0 -0
  214. package/dist/nip/registry.js.map +0 -0
  215. package/dist/nip/reputation-client.d.ts +116 -0
  216. package/dist/nip/reputation-client.d.ts.map +1 -0
  217. package/dist/nip/reputation-client.js +261 -0
  218. package/dist/nip/reputation-client.js.map +1 -0
  219. package/dist/nip/verifier.d.ts +23 -0
  220. package/dist/nip/verifier.d.ts.map +1 -0
  221. package/dist/nip/verifier.js +90 -0
  222. package/dist/nip/verifier.js.map +1 -0
  223. package/dist/nip/x509/builder.d.ts +35 -0
  224. package/dist/nip/x509/builder.d.ts.map +1 -0
  225. package/dist/nip/x509/builder.js +59 -0
  226. package/dist/nip/x509/builder.js.map +1 -0
  227. package/dist/nip/x509/index.d.ts +4 -0
  228. package/dist/nip/x509/index.d.ts.map +1 -0
  229. package/dist/nip/x509/index.js +6 -0
  230. package/dist/nip/x509/index.js.map +1 -0
  231. package/dist/nip/x509/oids.d.ts +16 -0
  232. package/dist/nip/x509/oids.d.ts.map +1 -0
  233. package/dist/nip/x509/oids.js +22 -0
  234. package/dist/nip/x509/oids.js.map +1 -0
  235. package/dist/nip/x509/verifier.d.ts +26 -0
  236. package/dist/nip/x509/verifier.d.ts.map +1 -0
  237. package/dist/nip/x509/verifier.js +171 -0
  238. package/dist/nip/x509/verifier.js.map +1 -0
  239. package/dist/nop/client.d.ts +0 -0
  240. package/dist/nop/client.d.ts.map +0 -0
  241. package/dist/nop/client.js +0 -0
  242. package/dist/nop/client.js.map +1 -1
  243. package/dist/nop/dag-validator.d.ts +15 -0
  244. package/dist/nop/dag-validator.d.ts.map +1 -0
  245. package/dist/nop/dag-validator.js +91 -0
  246. package/dist/nop/dag-validator.js.map +1 -0
  247. package/dist/nop/frames.d.ts +8 -3
  248. package/dist/nop/frames.d.ts.map +1 -1
  249. package/dist/nop/frames.js +21 -6
  250. package/dist/nop/frames.js.map +1 -1
  251. package/dist/nop/index.d.ts +3 -0
  252. package/dist/nop/index.d.ts.map +1 -1
  253. package/dist/nop/index.js +3 -0
  254. package/dist/nop/index.js.map +1 -1
  255. package/dist/nop/models.d.ts +13 -2
  256. package/dist/nop/models.d.ts.map +1 -1
  257. package/dist/nop/models.js +9 -0
  258. package/dist/nop/models.js.map +1 -1
  259. package/dist/nop/nop-error-codes.d.ts +31 -0
  260. package/dist/nop/nop-error-codes.d.ts.map +1 -0
  261. package/dist/nop/nop-error-codes.js +61 -0
  262. package/dist/nop/nop-error-codes.js.map +1 -0
  263. package/dist/nop/nop-types.d.ts +0 -0
  264. package/dist/nop/nop-types.d.ts.map +0 -0
  265. package/dist/nop/nop-types.js +0 -0
  266. package/dist/nop/nop-types.js.map +0 -0
  267. package/dist/nop/orchestrator.d.ts +66 -0
  268. package/dist/nop/orchestrator.d.ts.map +1 -0
  269. package/dist/nop/orchestrator.js +229 -0
  270. package/dist/nop/orchestrator.js.map +1 -0
  271. package/dist/nop/registry.d.ts +0 -0
  272. package/dist/nop/registry.d.ts.map +0 -0
  273. package/dist/nop/registry.js +0 -0
  274. package/dist/nop/registry.js.map +0 -0
  275. package/dist/nwp/anchor-client.d.ts +109 -0
  276. package/dist/nwp/anchor-client.d.ts.map +1 -0
  277. package/dist/nwp/anchor-client.js +279 -0
  278. package/dist/nwp/anchor-client.js.map +1 -0
  279. package/dist/nwp/anchor-server.d.ts +127 -0
  280. package/dist/nwp/anchor-server.d.ts.map +1 -0
  281. package/dist/nwp/anchor-server.js +649 -0
  282. package/dist/nwp/anchor-server.js.map +1 -0
  283. package/dist/nwp/bridge.d.ts +24 -0
  284. package/dist/nwp/bridge.d.ts.map +1 -0
  285. package/dist/nwp/bridge.js +26 -0
  286. package/dist/nwp/bridge.js.map +1 -0
  287. package/dist/nwp/cgn.d.ts +19 -0
  288. package/dist/nwp/cgn.d.ts.map +1 -0
  289. package/dist/nwp/cgn.js +29 -0
  290. package/dist/nwp/cgn.js.map +1 -0
  291. package/dist/nwp/client.d.ts +10 -3
  292. package/dist/nwp/client.d.ts.map +1 -1
  293. package/dist/nwp/client.js +58 -7
  294. package/dist/nwp/client.js.map +1 -1
  295. package/dist/nwp/frames.d.ts +56 -2
  296. package/dist/nwp/frames.d.ts.map +1 -1
  297. package/dist/nwp/frames.js +86 -4
  298. package/dist/nwp/frames.js.map +1 -1
  299. package/dist/nwp/http-headers.d.ts +24 -0
  300. package/dist/nwp/http-headers.d.ts.map +1 -0
  301. package/dist/nwp/http-headers.js +29 -0
  302. package/dist/nwp/http-headers.js.map +1 -0
  303. package/dist/nwp/index.d.ts +9 -0
  304. package/dist/nwp/index.d.ts.map +1 -1
  305. package/dist/nwp/index.js +9 -0
  306. package/dist/nwp/index.js.map +1 -1
  307. package/dist/nwp/manifest.d.ts +75 -0
  308. package/dist/nwp/manifest.d.ts.map +1 -0
  309. package/dist/nwp/manifest.js +5 -0
  310. package/dist/nwp/manifest.js.map +1 -0
  311. package/dist/nwp/memory-node-server.d.ts +70 -0
  312. package/dist/nwp/memory-node-server.d.ts.map +1 -0
  313. package/dist/nwp/memory-node-server.js +315 -0
  314. package/dist/nwp/memory-node-server.js.map +1 -0
  315. package/dist/nwp/nwp-error-codes.d.ts +48 -0
  316. package/dist/nwp/nwp-error-codes.d.ts.map +1 -0
  317. package/dist/nwp/nwp-error-codes.js +108 -0
  318. package/dist/nwp/nwp-error-codes.js.map +1 -0
  319. package/dist/nwp/registry.d.ts +0 -0
  320. package/dist/nwp/registry.d.ts.map +0 -0
  321. package/dist/nwp/registry.js +0 -0
  322. package/dist/nwp/registry.js.map +0 -0
  323. package/dist/nwp/reputation.d.ts +37 -0
  324. package/dist/nwp/reputation.d.ts.map +1 -0
  325. package/dist/nwp/reputation.js +118 -0
  326. package/dist/nwp/reputation.js.map +1 -0
  327. package/dist/setup.d.ts +0 -0
  328. package/dist/setup.d.ts.map +0 -0
  329. package/dist/setup.js +0 -0
  330. package/dist/setup.js.map +0 -0
  331. package/doc/nps-sdk.core.cn.md +321 -0
  332. package/doc/nps-sdk.core.md +326 -0
  333. package/doc/nps-sdk.ncp.cn.md +270 -0
  334. package/doc/nps-sdk.ncp.md +276 -0
  335. package/doc/nps-sdk.ndp.cn.md +267 -0
  336. package/doc/nps-sdk.ndp.md +273 -0
  337. package/doc/nps-sdk.nip.cn.md +265 -0
  338. package/doc/nps-sdk.nip.md +272 -0
  339. package/doc/nps-sdk.nop.cn.md +329 -0
  340. package/doc/nps-sdk.nop.md +332 -0
  341. package/doc/nps-sdk.nwp.cn.md +288 -0
  342. package/doc/nps-sdk.nwp.md +295 -0
  343. package/doc/overview.cn.md +149 -0
  344. package/doc/overview.md +153 -0
  345. package/package.json +33 -4
  346. package/CONTRIBUTING.md +0 -33
  347. package/dist/codec-CmHeovTV.d.cts +0 -120
  348. package/dist/codec-CmHeovTV.d.ts +0 -120
  349. package/dist/core/index.cjs +0 -371
  350. package/dist/core/index.cjs.map +0 -1
  351. package/dist/core/index.d.cts +0 -41
  352. package/dist/frames-B3qLdl_g.d.cts +0 -77
  353. package/dist/frames-Ff7-ZPUl.d.ts +0 -77
  354. package/dist/index.cjs +0 -1556
  355. package/dist/index.cjs.map +0 -1
  356. package/dist/index.d.cts +0 -21
  357. package/dist/ncp/index.cjs +0 -188
  358. package/dist/ncp/index.cjs.map +0 -1
  359. package/dist/ncp/index.d.cts +0 -6
  360. package/dist/ndp/index.cjs +0 -252
  361. package/dist/ndp/index.cjs.map +0 -1
  362. package/dist/ndp/index.d.cts +0 -86
  363. package/dist/nip/index.cjs +0 -214
  364. package/dist/nip/index.cjs.map +0 -1
  365. package/dist/nip/index.d.cts +0 -65
  366. package/dist/nop/index.cjs +0 -762
  367. package/dist/nop/index.cjs.map +0 -1
  368. package/dist/nop/index.d.cts +0 -155
  369. package/dist/nwp/index.cjs +0 -658
  370. package/dist/nwp/index.cjs.map +0 -1
  371. package/dist/nwp/index.d.cts +0 -65
  372. package/nip-ca-server/Dockerfile +0 -27
  373. package/nip-ca-server/README.md +0 -45
  374. package/nip-ca-server/db/001_init.sql +0 -25
  375. package/nip-ca-server/docker-compose.yml +0 -29
  376. package/nip-ca-server/package.json +0 -23
  377. package/nip-ca-server/src/ca.ts +0 -155
  378. package/nip-ca-server/src/db.ts +0 -104
  379. package/nip-ca-server/src/index.ts +0 -157
  380. package/nip-ca-server/tsconfig.json +0 -13
  381. package/src/core/anchor-cache.ts +0 -129
  382. package/src/core/cache.ts +0 -93
  383. package/src/core/canonical-json.ts +0 -50
  384. package/src/core/codec.ts +0 -158
  385. package/src/core/codecs/index.ts +0 -5
  386. package/src/core/codecs/ncp-codec.ts +0 -170
  387. package/src/core/codecs/tier1-json-codec.ts +0 -33
  388. package/src/core/codecs/tier2-msgpack-codec.ts +0 -30
  389. package/src/core/crypto-provider.ts +0 -47
  390. package/src/core/exceptions.ts +0 -57
  391. package/src/core/frame-header.ts +0 -282
  392. package/src/core/frame-registry.ts +0 -91
  393. package/src/core/frames.ts +0 -183
  394. package/src/core/index.ts +0 -10
  395. package/src/core/registry.ts +0 -28
  396. package/src/core/status-codes.ts +0 -46
  397. package/src/index.ts +0 -10
  398. package/src/ncp/frames/anchor-frame.ts +0 -87
  399. package/src/ncp/frames/caps-frame.ts +0 -59
  400. package/src/ncp/frames/diff-frame.ts +0 -69
  401. package/src/ncp/frames/error-frame.ts +0 -26
  402. package/src/ncp/frames/hello-frame.ts +0 -50
  403. package/src/ncp/frames/stream-frame.ts +0 -35
  404. package/src/ncp/frames.ts +0 -199
  405. package/src/ncp/handshake.ts +0 -95
  406. package/src/ncp/index.ts +0 -12
  407. package/src/ncp/ncp-error-codes.ts +0 -34
  408. package/src/ncp/ncp-patch-format.ts +0 -16
  409. package/src/ncp/registry.ts +0 -14
  410. package/src/ncp/stream-manager.ts +0 -212
  411. package/src/ndp/frames.ts +0 -124
  412. package/src/ndp/index.ts +0 -7
  413. package/src/ndp/ndp-registry.ts +0 -82
  414. package/src/ndp/registry.ts +0 -12
  415. package/src/ndp/validator.ts +0 -64
  416. package/src/nip/frames.ts +0 -106
  417. package/src/nip/identity.ts +0 -113
  418. package/src/nip/index.ts +0 -6
  419. package/src/nip/registry.ts +0 -12
  420. package/src/nop/client.ts +0 -103
  421. package/src/nop/frames.ts +0 -181
  422. package/src/nop/index.ts +0 -7
  423. package/src/nop/models.ts +0 -79
  424. package/src/nop/nop-types.ts +0 -208
  425. package/src/nop/registry.ts +0 -13
  426. package/src/nwp/client.ts +0 -114
  427. package/src/nwp/frames.ts +0 -116
  428. package/src/nwp/index.ts +0 -6
  429. package/src/nwp/registry.ts +0 -11
  430. package/src/setup.ts +0 -32
  431. package/tests/core/anchor-cache.test.ts +0 -242
  432. package/tests/core/codec.test.ts +0 -205
  433. package/tests/core/frame-registry.test.ts +0 -46
  434. package/tests/core.test.ts +0 -327
  435. package/tests/ncp/diff-binary-bitset.test.ts +0 -107
  436. package/tests/ncp/e2e-enc-reject.test.ts +0 -93
  437. package/tests/ncp/err-error-frame.test.ts +0 -152
  438. package/tests/ncp/frames.test.ts +0 -359
  439. package/tests/ncp/framing.test.ts +0 -233
  440. package/tests/ncp/hello-frame.test.ts +0 -122
  441. package/tests/ncp/inline-anchor.test.ts +0 -88
  442. package/tests/ncp/security.test.ts +0 -184
  443. package/tests/ncp/stream-window.test.ts +0 -167
  444. package/tests/ncp/stream.test.ts +0 -242
  445. package/tests/ncp/version-negotiation.test.ts +0 -123
  446. package/tests/ndp.test.ts +0 -271
  447. package/tests/nip.test.ts +0 -184
  448. package/tests/nop.test.ts +0 -344
  449. package/tests/nwp.test.ts +0 -237
  450. package/tsconfig.json +0 -20
  451. package/tsup.config.ts +0 -20
  452. package/vitest.config.ts +0 -10
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/ncp/frames.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAgB5D,iFAAiF;AAEjF,MAAM,OAAO,WAAW;IAKJ;IACA;IACA;IANT,SAAS,GAAO,SAAS,CAAC,MAAM,CAAC;IACjC,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,QAAgB,EAChB,MAAqB,EACrB,MAAmB,IAAI;QAFvB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAe;QACrB,QAAG,GAAH,GAAG,CAAoB;IACtC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,MAAM,EAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE;YAChE,GAAG,EAAQ,IAAI,CAAC,GAAG;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAA8B,CAAC;QAC9D,OAAO,IAAI,WAAW,CACpB,IAAI,CAAC,WAAW,CAAW,EAC3B,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,EAC3B,IAAI,CAAC,KAAK,CAAwB,IAAI,IAAI,CAC5C,CAAC;IACJ,CAAC;CACF;AAUD,iFAAiF;AAEjF,MAAM,OAAO,SAAS;IAKF;IACA;IACA;IACA;IAPT,SAAS,GAAO,SAAS,CAAC,IAAI,CAAC;IAC/B,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,SAAiB,EACjB,OAAiB,EACjB,KAAwC,EACxC,QAAiB;QAHjB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAU;QACjB,UAAK,GAAL,KAAK,CAAmC;QACxC,aAAQ,GAAR,QAAQ,CAAS;IAChC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,QAAQ,EAAI,IAAI,CAAC,OAAO;YACxB,KAAK,EAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAG,IAAI,CAAC,QAAQ,IAAI,IAAI;SAClC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,YAAY,CAAW,EAC5B,IAAI,CAAC,UAAU,CAAa,EAC5B,IAAI,CAAC,OAAO,CAA8B,EACzC,IAAI,CAAC,WAAW,CAAmB,IAAI,SAAS,CAClD,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,WAAW;IAKJ;IACA;IACA;IACA;IACA;IACA;IATT,SAAS,GAAO,SAAS,CAAC,MAAM,CAAC;IACjC,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,QAAkB,EAClB,GAAkB,EAClB,MAAmB,EACnB,IAA8C,EAC9C,SAAkB,EAClB,UAAmB;QALnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,QAAG,GAAH,GAAG,CAAe;QAClB,WAAM,GAAN,MAAM,CAAa;QACnB,SAAI,GAAJ,IAAI,CAA0C;QAC9C,cAAS,GAAT,SAAS,CAAS;QAClB,eAAU,GAAV,UAAU,CAAS;IAClC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,SAAS,EAAI,IAAI,CAAC,QAAQ;YAC1B,GAAG,EAAU,IAAI,CAAC,GAAG;YACrB,OAAO,EAAM,IAAI,CAAC,MAAM;YACxB,IAAI,EAAS,IAAI,CAAC,IAAI;YACtB,UAAU,EAAG,IAAI,CAAC,SAAS,IAAK,IAAI;YACpC,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,WAAW,CACpB,IAAI,CAAC,WAAW,CAAa,EAC7B,IAAI,CAAC,KAAK,CAAmB,EAC7B,IAAI,CAAC,SAAS,CAAgB,EAC9B,IAAI,CAAC,MAAM,CAAqC,EAC/C,IAAI,CAAC,YAAY,CAAoB,IAAK,SAAS,EACnD,IAAI,CAAC,aAAa,CAAmB,IAAK,SAAS,CACrD,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,SAAS;IAKF;IACA;IACA;IACA;IACA;IACA;IACA;IAVT,SAAS,GAAO,SAAS,CAAC,IAAI,CAAC;IAC/B,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,SAAsB,EACtB,KAAsB,EACtB,IAAkD,EAClD,UAAsB,EACtB,QAAsB,EACtB,MAAuB,EACvB,aAAsB;QANtB,cAAS,GAAT,SAAS,CAAa;QACtB,UAAK,GAAL,KAAK,CAAiB;QACtB,SAAI,GAAJ,IAAI,CAA8C;QAClD,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAc;QACtB,WAAM,GAAN,MAAM,CAAiB;QACvB,kBAAa,GAAb,aAAa,CAAS;IACrC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,UAAU,EAAO,IAAI,CAAC,SAAS;YAC/B,KAAK,EAAY,IAAI,CAAC,KAAK;YAC3B,IAAI,EAAa,IAAI,CAAC,IAAI;YAC1B,WAAW,EAAM,IAAI,CAAC,UAAU,IAAO,IAAI;YAC3C,SAAS,EAAQ,IAAI,CAAC,QAAQ,IAAS,IAAI;YAC3C,MAAM,EAAW,IAAI,CAAC,MAAM,IAAW,IAAI;YAC3C,cAAc,EAAG,IAAI,CAAC,aAAa,IAAI,IAAI;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,YAAY,CAAe,EAChC,IAAI,CAAC,OAAO,CAAoB,EAChC,IAAI,CAAC,MAAM,CAAwC,EAClD,IAAI,CAAC,aAAa,CAAsB,IAAI,SAAS,EACrD,IAAI,CAAC,WAAW,CAAwB,IAAI,SAAS,EACrD,IAAI,CAAC,QAAQ,CAA4B,IAAI,SAAS,EACtD,IAAI,CAAC,gBAAgB,CAAmB,IAAI,SAAS,CACvD,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,UAAU;IAKH;IACA;IACA;IACA;IAPT,SAAS,GAAO,SAAS,CAAC,KAAK,CAAC;IAChC,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,MAAgB,EAChB,KAAgB,EAChB,OAAgB,EAChB,OAAiC;QAHjC,WAAM,GAAN,MAAM,CAAU;QAChB,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAA0B;IAChD,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,MAAM,EAAG,IAAI,CAAC,MAAM;YACpB,KAAK,EAAI,IAAI,CAAC,KAAK;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,QAAQ,CAAY,EACzB,IAAI,CAAC,OAAO,CAAa,EACxB,IAAI,CAAC,SAAS,CAAmB,IAAI,SAAS,EAC9C,IAAI,CAAC,SAAS,CAAoC,IAAI,SAAS,CACjE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/ncp/frames.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAgB5D,iFAAiF;AAEjF,MAAM,OAAO,WAAW;IAKJ;IACA;IACA;IANT,SAAS,GAAO,SAAS,CAAC,MAAM,CAAC;IACjC,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,QAAgB,EAChB,MAAqB,EACrB,MAAmB,IAAI;QAFvB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAe;QACrB,QAAG,GAAH,GAAG,CAAoB;IACtC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,MAAM,EAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE;YAChE,GAAG,EAAQ,IAAI,CAAC,GAAG;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAA8B,CAAC;QAC9D,OAAO,IAAI,WAAW,CACpB,IAAI,CAAC,WAAW,CAAW,EAC3B,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,EAC3B,IAAI,CAAC,KAAK,CAAwB,IAAI,IAAI,CAC5C,CAAC;IACJ,CAAC;CACF;AAUD,iFAAiF;AAEjF,MAAM,OAAO,SAAS;IAKF;IACA;IACA;IACA;IAPT,SAAS,GAAO,SAAS,CAAC,IAAI,CAAC;IAC/B,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,SAAiB,EACjB,OAAiB,EACjB,KAAwC,EACxC,QAAiB;QAHjB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAU;QACjB,UAAK,GAAL,KAAK,CAAmC;QACxC,aAAQ,GAAR,QAAQ,CAAS;IAChC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,QAAQ,EAAI,IAAI,CAAC,OAAO;YACxB,KAAK,EAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAG,IAAI,CAAC,QAAQ,IAAI,IAAI;SAClC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,YAAY,CAAW,EAC5B,IAAI,CAAC,UAAU,CAAa,EAC5B,IAAI,CAAC,OAAO,CAA8B,EACzC,IAAI,CAAC,WAAW,CAAmB,IAAI,SAAS,CAClD,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,WAAW;IAKJ;IACA;IACA;IACA;IACA;IACA;IATT,SAAS,GAAO,SAAS,CAAC,MAAM,CAAC;IACjC,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,QAAkB,EAClB,GAAkB,EAClB,MAAmB,EACnB,IAA8C,EAC9C,SAAkB,EAClB,UAAmB;QALnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,QAAG,GAAH,GAAG,CAAe;QAClB,WAAM,GAAN,MAAM,CAAa;QACnB,SAAI,GAAJ,IAAI,CAA0C;QAC9C,cAAS,GAAT,SAAS,CAAS;QAClB,eAAU,GAAV,UAAU,CAAS;IAClC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,SAAS,EAAI,IAAI,CAAC,QAAQ;YAC1B,GAAG,EAAU,IAAI,CAAC,GAAG;YACrB,OAAO,EAAM,IAAI,CAAC,MAAM;YACxB,IAAI,EAAS,IAAI,CAAC,IAAI;YACtB,UAAU,EAAG,IAAI,CAAC,SAAS,IAAK,IAAI;YACpC,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,WAAW,CACpB,IAAI,CAAC,WAAW,CAAa,EAC7B,IAAI,CAAC,KAAK,CAAmB,EAC7B,IAAI,CAAC,SAAS,CAAgB,EAC9B,IAAI,CAAC,MAAM,CAAqC,EAC/C,IAAI,CAAC,YAAY,CAAoB,IAAK,SAAS,EACnD,IAAI,CAAC,aAAa,CAAmB,IAAK,SAAS,CACrD,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,SAAS;IAKF;IACA;IACA;IACA;IACA;IACA;IACA;IAVT,SAAS,GAAO,SAAS,CAAC,IAAI,CAAC;IAC/B,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,SAAsB,EACtB,KAAsB,EACtB,IAAkD,EAClD,UAAsB,EACtB,QAAsB,EACtB,MAAuB,EACvB,aAAsB;QANtB,cAAS,GAAT,SAAS,CAAa;QACtB,UAAK,GAAL,KAAK,CAAiB;QACtB,SAAI,GAAJ,IAAI,CAA8C;QAClD,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAc;QACtB,WAAM,GAAN,MAAM,CAAiB;QACvB,kBAAa,GAAb,aAAa,CAAS;IACrC,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,UAAU,EAAO,IAAI,CAAC,SAAS;YAC/B,KAAK,EAAY,IAAI,CAAC,KAAK;YAC3B,IAAI,EAAa,IAAI,CAAC,IAAI;YAC1B,WAAW,EAAM,IAAI,CAAC,UAAU,IAAO,IAAI;YAC3C,SAAS,EAAQ,IAAI,CAAC,QAAQ,IAAS,IAAI;YAC3C,MAAM,EAAW,IAAI,CAAC,MAAM,IAAW,IAAI;YAC3C,cAAc,EAAG,IAAI,CAAC,aAAa,IAAI,IAAI;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,YAAY,CAAe,EAChC,IAAI,CAAC,OAAO,CAAoB,EAChC,IAAI,CAAC,MAAM,CAAwC,EAClD,IAAI,CAAC,aAAa,CAAsB,IAAI,SAAS,EACrD,IAAI,CAAC,WAAW,CAAwB,IAAI,SAAS,EACrD,IAAI,CAAC,QAAQ,CAA4B,IAAI,SAAS,EACtD,IAAI,CAAC,gBAAgB,CAAmB,IAAI,SAAS,CACvD,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,UAAU;IAKH;IACA;IACA;IACA;IAPT,SAAS,GAAO,SAAS,CAAC,KAAK,CAAC;IAChC,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE9C,YACkB,MAAgB,EAChB,KAAgB,EAChB,OAAgB,EAChB,OAAiC;QAHjC,WAAM,GAAN,MAAM,CAAU;QAChB,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAA0B;IAChD,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,MAAM,EAAG,IAAI,CAAC,MAAM;YACpB,KAAK,EAAI,IAAI,CAAC,KAAK;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,QAAQ,CAAY,EACzB,IAAI,CAAC,OAAO,CAAa,EACxB,IAAI,CAAC,SAAS,CAAmB,IAAI,SAAS,EAC9C,IAAI,CAAC,SAAS,CAAoC,IAAI,SAAS,CACjE,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AACjF,0EAA0E;AAC1E,iDAAiD;AAEjD,MAAM,OAAO,UAAU;IAQH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAhBT,SAAS,GAAO,SAAS,CAAC,KAAK,CAAC;IAChC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC;IAE3C,MAAM,CAAU,yBAAyB,GAAQ,MAAM,CAAC;IACxD,MAAM,CAAU,8BAA8B,GAAG,EAAE,CAAC;IAEpD,YACkB,UAA4B,EAC5B,kBAAuC,EACvC,kBAAuC,EACvC,UAA4B,EAC5B,OAA4B,EAC5B,kBAA+B,UAAU,CAAC,yBAAyB,EACnE,aAAgC,KAAK,EACrC,uBAA+B,UAAU,CAAC,8BAA8B,EACxE,gBAAuC,EACvC,iBAA+B,CAAC;QAThC,eAAU,GAAV,UAAU,CAAkB;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAqB;QACvC,uBAAkB,GAAlB,kBAAkB,CAAqB;QACvC,eAAU,GAAV,UAAU,CAAkB;QAC5B,YAAO,GAAP,OAAO,CAAqB;QAC5B,oBAAe,GAAf,eAAe,CAAoD;QACnE,eAAU,GAAV,UAAU,CAA2B;QACrC,yBAAoB,GAApB,oBAAoB,CAAoD;QACxE,qBAAgB,GAAhB,gBAAgB,CAAuB;QACvC,mBAAc,GAAd,cAAc,CAAkB;IAC/C,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,WAAW,EAAa,IAAI,CAAC,UAAU;YACvC,mBAAmB,EAAK,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACpD,mBAAmB,EAAK,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACpD,WAAW,EAAa,IAAI,CAAC,UAAU,IAAI,IAAI;YAC/C,QAAQ,EAAgB,IAAI,CAAC,OAAO,IAAO,IAAI;YAC/C,iBAAiB,EAAO,IAAI,CAAC,eAAe;YAC5C,WAAW,EAAa,IAAI,CAAC,UAAU;YACvC,sBAAsB,EAAE,IAAI,CAAC,oBAAoB;YACjD,kBAAkB,EAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;YACjF,gBAAgB,EAAQ,IAAI,CAAC,cAAc;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,UAAU,CACnB,IAAI,CAAC,aAAa,CAAmB,EACpC,IAAI,CAAC,qBAAqB,CAAc,IAAI,EAAE,EAC9C,IAAI,CAAC,qBAAqB,CAAc,IAAI,EAAE,EAC9C,IAAI,CAAC,aAAa,CAA0B,IAAI,SAAS,EACzD,IAAI,CAAC,UAAU,CAA6B,IAAI,SAAS,EACzD,IAAI,CAAC,mBAAmB,CAAoB,IAAI,UAAU,CAAC,yBAAyB,EACpF,IAAI,CAAC,aAAa,CAA2B,IAAI,KAAK,EACtD,IAAI,CAAC,wBAAwB,CAAmB,IAAI,UAAU,CAAC,8BAA8B,EAC7F,IAAI,CAAC,oBAAoB,CAAqB,IAAI,SAAS,EAC3D,IAAI,CAAC,kBAAkB,CAAqB,IAAI,CAAC,CACnD,CAAC;IACJ,CAAC;;AAGH,iFAAiF;AACjF,gEAAgE;AAChE,+EAA+E;AAE/E,MAAM,OAAO,QAAQ;IACV,SAAS,GAAO,SAAS,CAAC,GAAG,CAAC;IAC9B,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC;IAE3C,MAAM;QACJ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAA8B;QAC5C,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxB,CAAC;CACF"}
File without changes
File without changes
File without changes
File without changes
@@ -8,4 +8,5 @@ export * from "./ncp-error-codes.js";
8
8
  export * from "./ncp-patch-format.js";
9
9
  export * from "./handshake.js";
10
10
  export * from "./stream-manager.js";
11
+ export * from "./preamble.js";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -10,4 +10,5 @@ export * from "./ncp-error-codes.js";
10
10
  export * from "./ncp-patch-format.js";
11
11
  export * from "./handshake.js";
12
12
  export * from "./stream-manager.js";
13
+ export * from "./preamble.js";
13
14
  //# sourceMappingURL=index.js.map
@@ -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;;;;;;;;;;;;;;;;;;;CAqBlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
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;CAClC,CAAC"}
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"}
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,CAM/D"}
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"}
@@ -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
@@ -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;AAEzF,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;AAClD,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"}
@@ -7,9 +7,14 @@ export interface NdpAddress {
7
7
  }
8
8
  export interface NdpGraphNode {
9
9
  nid: string;
10
- addresses: readonly NdpAddress[];
11
- capabilities: readonly string[];
12
- nodeType?: string;
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 seq: number;
47
- readonly initialSync: boolean;
48
- readonly nodes?: readonly NdpGraphNode[] | undefined;
49
- readonly patch?: readonly Record<string, unknown>[] | undefined;
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(seq: number, initialSync: boolean, nodes?: readonly NdpGraphNode[] | undefined, patch?: readonly Record<string, unknown>[] | undefined);
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
  }
@@ -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,EAAW,MAAM,CAAC;IACrB,SAAS,EAAK,SAAS,UAAU,EAAE,CAAC;IACpC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAK,MAAM,CAAC;CACtB;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,EAAW,MAAM;aACpB,SAAS,EAAK,SAAS,UAAU,EAAE;aACnC,YAAY,EAAE,SAAS,MAAM,EAAE;aAC/B,GAAG,EAAW,MAAM;aACpB,SAAS,EAAK,MAAM;aACpB,SAAS,EAAK,MAAM;aACpB,QAAQ,CAAC,EAAK,MAAM;IAVtC,QAAQ,CAAC,SAAS,sBAA0B;IAC5C,QAAQ,CAAC,aAAa,wBAAwB;gBAG5B,GAAG,EAAW,MAAM,EACpB,SAAS,EAAK,SAAS,UAAU,EAAE,EACnC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,GAAG,EAAW,MAAM,EACpB,SAAS,EAAK,MAAM,EACpB,SAAS,EAAK,MAAM,EACpB,QAAQ,CAAC,EAAK,MAAM,YAAA;IAGtC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWvC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIjC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa;CAW9D;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,qBAAa,UAAW,YAAW,QAAQ;aAKvB,GAAG,EAAU,MAAM;aACnB,WAAW,EAAE,OAAO;aACpB,KAAK,CAAC,EAAO,SAAS,YAAY,EAAE;aACpC,KAAK,CAAC,EAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAPjE,QAAQ,CAAC,SAAS,mBAAuB;IACzC,QAAQ,CAAC,aAAa,wBAAwB;gBAG5B,GAAG,EAAU,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,CAAC,EAAO,SAAS,YAAY,EAAE,YAAA,EACpC,KAAK,CAAC,EAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAA;IAGjE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASjC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;CAQ3D"}
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/ndp/frames.ts"],"names":[],"mappings":"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"}