@labacacia/nps-sdk 1.0.0-alpha.5 → 1.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.cn.md +2 -93
  2. package/CHANGELOG.md +2 -102
  3. package/CONTRIBUTING.cn.md +0 -0
  4. package/CONTRIBUTING.md +0 -0
  5. package/LICENSE +0 -0
  6. package/NOTICE +0 -0
  7. package/README.cn.md +5 -12
  8. package/README.md +5 -12
  9. package/doc/nps-sdk.core.cn.md +0 -0
  10. package/doc/nps-sdk.core.md +0 -0
  11. package/doc/nps-sdk.ncp.cn.md +0 -0
  12. package/doc/nps-sdk.ncp.md +0 -0
  13. package/doc/nps-sdk.ndp.cn.md +0 -0
  14. package/doc/nps-sdk.ndp.md +0 -0
  15. package/doc/nps-sdk.nop.cn.md +0 -0
  16. package/doc/nps-sdk.nop.md +0 -0
  17. package/doc/overview.cn.md +0 -0
  18. package/doc/overview.md +0 -0
  19. package/nip-ca-server/Dockerfile +0 -0
  20. package/nip-ca-server/README.md +1 -1
  21. package/nip-ca-server/db/001_init.sql +0 -0
  22. package/nip-ca-server/docker-compose.yml +0 -0
  23. package/nip-ca-server/package.json +0 -0
  24. package/nip-ca-server/src/ca.ts +0 -0
  25. package/nip-ca-server/src/db.ts +0 -0
  26. package/nip-ca-server/src/index.ts +0 -0
  27. package/nip-ca-server/tsconfig.json +0 -0
  28. package/package.json +1 -1
  29. package/src/core/anchor-cache.ts +0 -0
  30. package/src/core/cache.ts +0 -0
  31. package/src/core/canonical-json.ts +0 -0
  32. package/src/core/codec.ts +0 -0
  33. package/src/core/codecs/index.ts +0 -0
  34. package/src/core/codecs/ncp-codec.ts +0 -0
  35. package/src/core/codecs/tier1-json-codec.ts +0 -0
  36. package/src/core/codecs/tier2-msgpack-codec.ts +0 -0
  37. package/src/core/crypto-provider.ts +0 -0
  38. package/src/core/exceptions.ts +0 -0
  39. package/src/core/frame-header.ts +0 -0
  40. package/src/core/frame-registry.ts +0 -0
  41. package/src/core/frames.ts +0 -0
  42. package/src/core/index.ts +0 -0
  43. package/src/core/registry.ts +0 -0
  44. package/src/ncp/frames/anchor-frame.ts +0 -0
  45. package/src/ncp/frames/caps-frame.ts +0 -0
  46. package/src/ncp/frames/diff-frame.ts +0 -0
  47. package/src/ncp/frames/error-frame.ts +0 -0
  48. package/src/ncp/frames/hello-frame.ts +0 -0
  49. package/src/ncp/frames/stream-frame.ts +0 -0
  50. package/src/ncp/frames.ts +0 -0
  51. package/src/ncp/handshake.ts +0 -0
  52. package/src/ncp/ncp-patch-format.ts +0 -0
  53. package/src/ncp/registry.ts +0 -0
  54. package/src/ncp/stream-manager.ts +0 -0
  55. package/src/ndp/frames.ts +0 -0
  56. package/src/ndp/registry.ts +0 -0
  57. package/src/ndp/validator.ts +0 -0
  58. package/src/nip/identity.ts +0 -0
  59. package/src/nip/registry.ts +0 -0
  60. package/src/nip/x509/oids.ts +3 -4
  61. package/src/nop/client.ts +0 -0
  62. package/src/nop/frames.ts +0 -0
  63. package/src/nop/index.ts +0 -0
  64. package/src/nop/models.ts +0 -0
  65. package/src/nop/nop-types.ts +0 -0
  66. package/src/nop/registry.ts +0 -0
  67. package/src/nwp/client.ts +0 -0
  68. package/src/nwp/frames.ts +0 -0
  69. package/src/nwp/index.ts +0 -1
  70. package/src/nwp/registry.ts +0 -0
  71. package/src/setup.ts +0 -0
  72. package/tests/core/anchor-cache.test.ts +0 -0
  73. package/tests/core/codec.test.ts +0 -0
  74. package/tests/core/frame-registry.test.ts +0 -0
  75. package/tests/core.test.ts +0 -0
  76. package/tests/ncp/diff-binary-bitset.test.ts +0 -0
  77. package/tests/ncp/e2e-enc-reject.test.ts +0 -0
  78. package/tests/ncp/err-error-frame.test.ts +0 -0
  79. package/tests/ncp/frames.test.ts +0 -0
  80. package/tests/ncp/framing.test.ts +0 -0
  81. package/tests/ncp/hello-frame.test.ts +0 -0
  82. package/tests/ncp/inline-anchor.test.ts +0 -0
  83. package/tests/ncp/security.test.ts +0 -0
  84. package/tests/ncp/stream-window.test.ts +0 -0
  85. package/tests/ncp/stream.test.ts +0 -0
  86. package/tests/ncp/version-negotiation.test.ts +0 -0
  87. package/tests/nip.test.ts +0 -0
  88. package/tests/nop.test.ts +0 -0
  89. package/tests/nwp.test.ts +0 -0
  90. package/tsconfig.json +0 -0
  91. package/tsup.config.ts +0 -0
  92. package/vitest.config.ts +0 -0
  93. package/dist/core/anchor-cache.d.ts +0 -42
  94. package/dist/core/anchor-cache.d.ts.map +0 -1
  95. package/dist/core/anchor-cache.js +0 -104
  96. package/dist/core/anchor-cache.js.map +0 -1
  97. package/dist/core/cache.d.ts +0 -14
  98. package/dist/core/cache.d.ts.map +0 -1
  99. package/dist/core/cache.js +0 -80
  100. package/dist/core/cache.js.map +0 -1
  101. package/dist/core/canonical-json.d.ts +0 -12
  102. package/dist/core/canonical-json.d.ts.map +0 -1
  103. package/dist/core/canonical-json.js +0 -44
  104. package/dist/core/canonical-json.js.map +0 -1
  105. package/dist/core/codec.d.ts +0 -32
  106. package/dist/core/codec.d.ts.map +0 -1
  107. package/dist/core/codec.js +0 -119
  108. package/dist/core/codec.js.map +0 -1
  109. package/dist/core/codecs/index.d.ts +0 -4
  110. package/dist/core/codecs/index.d.ts.map +0 -1
  111. package/dist/core/codecs/index.js +0 -6
  112. package/dist/core/codecs/index.js.map +0 -1
  113. package/dist/core/codecs/ncp-codec.d.ts +0 -39
  114. package/dist/core/codecs/ncp-codec.d.ts.map +0 -1
  115. package/dist/core/codecs/ncp-codec.js +0 -93
  116. package/dist/core/codecs/ncp-codec.js.map +0 -1
  117. package/dist/core/codecs/tier1-json-codec.d.ts +0 -10
  118. package/dist/core/codecs/tier1-json-codec.d.ts.map +0 -1
  119. package/dist/core/codecs/tier1-json-codec.js +0 -28
  120. package/dist/core/codecs/tier1-json-codec.js.map +0 -1
  121. package/dist/core/codecs/tier2-msgpack-codec.d.ts +0 -10
  122. package/dist/core/codecs/tier2-msgpack-codec.d.ts.map +0 -1
  123. package/dist/core/codecs/tier2-msgpack-codec.js +0 -26
  124. package/dist/core/codecs/tier2-msgpack-codec.js.map +0 -1
  125. package/dist/core/crypto-provider.d.ts +0 -31
  126. package/dist/core/crypto-provider.d.ts.map +0 -1
  127. package/dist/core/crypto-provider.js +0 -10
  128. package/dist/core/crypto-provider.js.map +0 -1
  129. package/dist/core/exceptions.d.ts +0 -27
  130. package/dist/core/exceptions.d.ts.map +0 -1
  131. package/dist/core/exceptions.js +0 -52
  132. package/dist/core/exceptions.js.map +0 -1
  133. package/dist/core/frame-header.d.ts +0 -87
  134. package/dist/core/frame-header.d.ts.map +0 -1
  135. package/dist/core/frame-header.js +0 -185
  136. package/dist/core/frame-header.js.map +0 -1
  137. package/dist/core/frame-registry.d.ts +0 -35
  138. package/dist/core/frame-registry.d.ts.map +0 -1
  139. package/dist/core/frame-registry.js +0 -63
  140. package/dist/core/frame-registry.js.map +0 -1
  141. package/dist/core/frames.d.ts +0 -81
  142. package/dist/core/frames.d.ts.map +0 -1
  143. package/dist/core/frames.js +0 -154
  144. package/dist/core/frames.js.map +0 -1
  145. package/dist/core/index.d.ts +0 -11
  146. package/dist/core/index.d.ts.map +0 -1
  147. package/dist/core/index.js +0 -22
  148. package/dist/core/index.js.map +0 -1
  149. package/dist/core/registry.d.ts +0 -11
  150. package/dist/core/registry.d.ts.map +0 -1
  151. package/dist/core/registry.js +0 -17
  152. package/dist/core/registry.js.map +0 -1
  153. package/dist/core/status-codes.d.ts +0 -29
  154. package/dist/core/status-codes.d.ts.map +0 -1
  155. package/dist/core/status-codes.js +0 -39
  156. package/dist/core/status-codes.js.map +0 -1
  157. package/dist/index.d.ts +0 -2
  158. package/dist/index.d.ts.map +0 -1
  159. package/dist/index.js +0 -10
  160. package/dist/index.js.map +0 -1
  161. package/dist/ncp/frames/anchor-frame.d.ts +0 -29
  162. package/dist/ncp/frames/anchor-frame.d.ts.map +0 -1
  163. package/dist/ncp/frames/anchor-frame.js +0 -54
  164. package/dist/ncp/frames/anchor-frame.js.map +0 -1
  165. package/dist/ncp/frames/caps-frame.d.ts +0 -29
  166. package/dist/ncp/frames/caps-frame.d.ts.map +0 -1
  167. package/dist/ncp/frames/caps-frame.js +0 -29
  168. package/dist/ncp/frames/caps-frame.js.map +0 -1
  169. package/dist/ncp/frames/diff-frame.d.ts +0 -32
  170. package/dist/ncp/frames/diff-frame.d.ts.map +0 -1
  171. package/dist/ncp/frames/diff-frame.js +0 -37
  172. package/dist/ncp/frames/diff-frame.js.map +0 -1
  173. package/dist/ncp/frames/error-frame.d.ts +0 -16
  174. package/dist/ncp/frames/error-frame.d.ts.map +0 -1
  175. package/dist/ncp/frames/error-frame.js +0 -13
  176. package/dist/ncp/frames/error-frame.js.map +0 -1
  177. package/dist/ncp/frames/hello-frame.d.ts +0 -21
  178. package/dist/ncp/frames/hello-frame.d.ts.map +0 -1
  179. package/dist/ncp/frames/hello-frame.js +0 -25
  180. package/dist/ncp/frames/hello-frame.js.map +0 -1
  181. package/dist/ncp/frames/stream-frame.d.ts +0 -16
  182. package/dist/ncp/frames/stream-frame.d.ts.map +0 -1
  183. package/dist/ncp/frames/stream-frame.js +0 -18
  184. package/dist/ncp/frames/stream-frame.js.map +0 -1
  185. package/dist/ncp/frames.d.ts +0 -94
  186. package/dist/ncp/frames.d.ts.map +0 -1
  187. package/dist/ncp/frames.js +0 -192
  188. package/dist/ncp/frames.js.map +0 -1
  189. package/dist/ncp/handshake.d.ts +0 -30
  190. package/dist/ncp/handshake.d.ts.map +0 -1
  191. package/dist/ncp/handshake.js +0 -80
  192. package/dist/ncp/handshake.js.map +0 -1
  193. package/dist/ncp/index.d.ts +0 -12
  194. package/dist/ncp/index.d.ts.map +0 -1
  195. package/dist/ncp/index.js +0 -14
  196. package/dist/ncp/index.js.map +0 -1
  197. package/dist/ncp/ncp-error-codes.d.ts +0 -23
  198. package/dist/ncp/ncp-error-codes.d.ts.map +0 -1
  199. package/dist/ncp/ncp-error-codes.js +0 -34
  200. package/dist/ncp/ncp-error-codes.js.map +0 -1
  201. package/dist/ncp/ncp-patch-format.d.ts +0 -7
  202. package/dist/ncp/ncp-patch-format.d.ts.map +0 -1
  203. package/dist/ncp/ncp-patch-format.js +0 -13
  204. package/dist/ncp/ncp-patch-format.js.map +0 -1
  205. package/dist/ncp/preamble.d.ts +0 -47
  206. package/dist/ncp/preamble.d.ts.map +0 -1
  207. package/dist/ncp/preamble.js +0 -74
  208. package/dist/ncp/preamble.js.map +0 -1
  209. package/dist/ncp/registry.d.ts +0 -3
  210. package/dist/ncp/registry.d.ts.map +0 -1
  211. package/dist/ncp/registry.js +0 -13
  212. package/dist/ncp/registry.js.map +0 -1
  213. package/dist/ncp/stream-manager.d.ts +0 -57
  214. package/dist/ncp/stream-manager.d.ts.map +0 -1
  215. package/dist/ncp/stream-manager.js +0 -163
  216. package/dist/ncp/stream-manager.js.map +0 -1
  217. package/dist/ndp/dns-txt.d.ts +0 -35
  218. package/dist/ndp/dns-txt.d.ts.map +0 -1
  219. package/dist/ndp/dns-txt.js +0 -67
  220. package/dist/ndp/dns-txt.js.map +0 -1
  221. package/dist/ndp/frames.d.ts +0 -56
  222. package/dist/ndp/frames.d.ts.map +0 -1
  223. package/dist/ndp/frames.js +0 -87
  224. package/dist/ndp/frames.js.map +0 -1
  225. package/dist/ndp/index.d.ts +0 -6
  226. package/dist/ndp/index.d.ts.map +0 -1
  227. package/dist/ndp/index.js +0 -8
  228. package/dist/ndp/index.js.map +0 -1
  229. package/dist/ndp/ndp-registry.d.ts +0 -13
  230. package/dist/ndp/ndp-registry.d.ts.map +0 -1
  231. package/dist/ndp/ndp-registry.js +0 -104
  232. package/dist/ndp/ndp-registry.js.map +0 -1
  233. package/dist/ndp/registry.d.ts +0 -3
  234. package/dist/ndp/registry.d.ts.map +0 -1
  235. package/dist/ndp/registry.js +0 -10
  236. package/dist/ndp/registry.js.map +0 -1
  237. package/dist/ndp/validator.d.ts +0 -18
  238. package/dist/ndp/validator.d.ts.map +0 -1
  239. package/dist/ndp/validator.js +0 -48
  240. package/dist/ndp/validator.js.map +0 -1
  241. package/dist/nip/acme/client.d.ts +0 -31
  242. package/dist/nip/acme/client.d.ts.map +0 -1
  243. package/dist/nip/acme/client.js +0 -136
  244. package/dist/nip/acme/client.js.map +0 -1
  245. package/dist/nip/acme/index.d.ts +0 -6
  246. package/dist/nip/acme/index.d.ts.map +0 -1
  247. package/dist/nip/acme/index.js +0 -8
  248. package/dist/nip/acme/index.js.map +0 -1
  249. package/dist/nip/acme/jws.d.ts +0 -31
  250. package/dist/nip/acme/jws.d.ts.map +0 -1
  251. package/dist/nip/acme/jws.js +0 -76
  252. package/dist/nip/acme/jws.js.map +0 -1
  253. package/dist/nip/acme/messages.d.ts +0 -71
  254. package/dist/nip/acme/messages.d.ts.map +0 -1
  255. package/dist/nip/acme/messages.js +0 -4
  256. package/dist/nip/acme/messages.js.map +0 -1
  257. package/dist/nip/acme/server.d.ts +0 -41
  258. package/dist/nip/acme/server.d.ts.map +0 -1
  259. package/dist/nip/acme/server.js +0 -458
  260. package/dist/nip/acme/server.js.map +0 -1
  261. package/dist/nip/acme/wire.d.ts +0 -19
  262. package/dist/nip/acme/wire.d.ts.map +0 -1
  263. package/dist/nip/acme/wire.js +0 -21
  264. package/dist/nip/acme/wire.js.map +0 -1
  265. package/dist/nip/assurance-level.d.ts +0 -19
  266. package/dist/nip/assurance-level.d.ts.map +0 -1
  267. package/dist/nip/assurance-level.js +0 -38
  268. package/dist/nip/assurance-level.js.map +0 -1
  269. package/dist/nip/cert-format.d.ts +0 -5
  270. package/dist/nip/cert-format.d.ts.map +0 -1
  271. package/dist/nip/cert-format.js +0 -6
  272. package/dist/nip/cert-format.js.map +0 -1
  273. package/dist/nip/error-codes.d.ts +0 -25
  274. package/dist/nip/error-codes.d.ts.map +0 -1
  275. package/dist/nip/error-codes.js +0 -32
  276. package/dist/nip/error-codes.js.map +0 -1
  277. package/dist/nip/frames.d.ts +0 -53
  278. package/dist/nip/frames.d.ts.map +0 -1
  279. package/dist/nip/frames.js +0 -106
  280. package/dist/nip/frames.js.map +0 -1
  281. package/dist/nip/identity.d.ts +0 -18
  282. package/dist/nip/identity.d.ts.map +0 -1
  283. package/dist/nip/identity.js +0 -94
  284. package/dist/nip/identity.js.map +0 -1
  285. package/dist/nip/index.d.ts +0 -10
  286. package/dist/nip/index.d.ts.map +0 -1
  287. package/dist/nip/index.js +0 -13
  288. package/dist/nip/index.js.map +0 -1
  289. package/dist/nip/registry.d.ts +0 -3
  290. package/dist/nip/registry.d.ts.map +0 -1
  291. package/dist/nip/registry.js +0 -10
  292. package/dist/nip/registry.js.map +0 -1
  293. package/dist/nip/verifier.d.ts +0 -23
  294. package/dist/nip/verifier.d.ts.map +0 -1
  295. package/dist/nip/verifier.js +0 -90
  296. package/dist/nip/verifier.js.map +0 -1
  297. package/dist/nip/x509/builder.d.ts +0 -35
  298. package/dist/nip/x509/builder.d.ts.map +0 -1
  299. package/dist/nip/x509/builder.js +0 -59
  300. package/dist/nip/x509/builder.js.map +0 -1
  301. package/dist/nip/x509/index.d.ts +0 -4
  302. package/dist/nip/x509/index.d.ts.map +0 -1
  303. package/dist/nip/x509/index.js +0 -6
  304. package/dist/nip/x509/index.js.map +0 -1
  305. package/dist/nip/x509/oids.d.ts +0 -17
  306. package/dist/nip/x509/oids.d.ts.map +0 -1
  307. package/dist/nip/x509/oids.js +0 -23
  308. package/dist/nip/x509/oids.js.map +0 -1
  309. package/dist/nip/x509/verifier.d.ts +0 -26
  310. package/dist/nip/x509/verifier.d.ts.map +0 -1
  311. package/dist/nip/x509/verifier.js +0 -171
  312. package/dist/nip/x509/verifier.js.map +0 -1
  313. package/dist/nop/client.d.ts +0 -34
  314. package/dist/nop/client.d.ts.map +0 -1
  315. package/dist/nop/client.js +0 -90
  316. package/dist/nop/client.js.map +0 -1
  317. package/dist/nop/frames.d.ts +0 -65
  318. package/dist/nop/frames.d.ts.map +0 -1
  319. package/dist/nop/frames.js +0 -148
  320. package/dist/nop/frames.js.map +0 -1
  321. package/dist/nop/index.d.ts +0 -5
  322. package/dist/nop/index.d.ts.map +0 -1
  323. package/dist/nop/index.js +0 -7
  324. package/dist/nop/index.js.map +0 -1
  325. package/dist/nop/models.d.ts +0 -58
  326. package/dist/nop/models.d.ts.map +0 -1
  327. package/dist/nop/models.js +0 -50
  328. package/dist/nop/models.js.map +0 -1
  329. package/dist/nop/nop-types.d.ts +0 -136
  330. package/dist/nop/nop-types.d.ts.map +0 -1
  331. package/dist/nop/nop-types.js +0 -44
  332. package/dist/nop/nop-types.js.map +0 -1
  333. package/dist/nop/registry.d.ts +0 -3
  334. package/dist/nop/registry.d.ts.map +0 -1
  335. package/dist/nop/registry.js +0 -11
  336. package/dist/nop/registry.js.map +0 -1
  337. package/dist/nwp/client.d.ts +0 -22
  338. package/dist/nwp/client.d.ts.map +0 -1
  339. package/dist/nwp/client.js +0 -101
  340. package/dist/nwp/client.js.map +0 -1
  341. package/dist/nwp/error-codes.d.ts +0 -42
  342. package/dist/nwp/error-codes.d.ts.map +0 -1
  343. package/dist/nwp/error-codes.js +0 -53
  344. package/dist/nwp/error-codes.js.map +0 -1
  345. package/dist/nwp/frames.d.ts +0 -46
  346. package/dist/nwp/frames.d.ts.map +0 -1
  347. package/dist/nwp/frames.js +0 -81
  348. package/dist/nwp/frames.js.map +0 -1
  349. package/dist/nwp/index.d.ts +0 -5
  350. package/dist/nwp/index.d.ts.map +0 -1
  351. package/dist/nwp/index.js +0 -7
  352. package/dist/nwp/index.js.map +0 -1
  353. package/dist/nwp/registry.d.ts +0 -3
  354. package/dist/nwp/registry.d.ts.map +0 -1
  355. package/dist/nwp/registry.js +0 -9
  356. package/dist/nwp/registry.js.map +0 -1
  357. package/dist/setup.d.ts +0 -10
  358. package/dist/setup.d.ts.map +0 -1
  359. package/dist/setup.js +0 -29
  360. package/dist/setup.js.map +0 -1
  361. package/src/nwp/error-codes.ts +0 -62
@@ -1,81 +0,0 @@
1
- /** Unified frame byte namespace for the full NPS suite (NPS-0 §9). */
2
- export declare enum FrameType {
3
- ANCHOR = 1,
4
- DIFF = 2,
5
- STREAM = 3,
6
- CAPS = 4,
7
- ALIGN = 5,// deprecated — use AlignStream (0x43)
8
- HELLO = 6,
9
- QUERY = 16,
10
- ACTION = 17,
11
- IDENT = 32,
12
- TRUST = 33,
13
- REVOKE = 34,
14
- ANNOUNCE = 48,
15
- RESOLVE = 49,
16
- GRAPH = 50,
17
- TASK = 64,
18
- DELEGATE = 65,
19
- SYNC = 66,
20
- ALIGN_STREAM = 67,
21
- ERROR = 254
22
- }
23
- /**
24
- * Wire encoding tier, stored in the lower 2 bits of the flags byte (NPS-1 §3.2).
25
- * 0x00 = Tier-1 JSON — human-readable; development / compatibility.
26
- * 0x01 = Tier-2 MsgPack — binary, ~60 % smaller; production default.
27
- */
28
- export declare enum EncodingTier {
29
- JSON = 0,
30
- MSGPACK = 1
31
- }
32
- /**
33
- * Flags byte in the NPS frame header (NPS-1 §3.2).
34
- * Bit layout (LSB = bit 0):
35
- * Bits 0–1 (T0,T1) : Encoding tier
36
- * Bit 2 (FINAL) : Last chunk of a StreamFrame; non-stream frames MUST set this
37
- * Bit 3 (ENC) : Payload encrypted
38
- * Bits 4–6 (RSV) : Reserved — sender MUST write 0
39
- * Bit 7 (EXT) : Extended 8-byte header
40
- */
41
- export declare const FrameFlags: {
42
- readonly NONE: 0;
43
- readonly TIER1_JSON: 0;
44
- readonly TIER2_MSGPACK: 1;
45
- readonly FINAL: 4;
46
- readonly ENCRYPTED: 8;
47
- readonly EXT: 128;
48
- };
49
- export declare const DEFAULT_HEADER_SIZE = 4;
50
- export declare const EXTENDED_HEADER_SIZE = 8;
51
- export declare const DEFAULT_MAX_PAYLOAD = 65535;
52
- export declare const EXTENDED_MAX_PAYLOAD = 4294967295;
53
- /**
54
- * NPS frame header, present at the start of every wire message (NPS-1 §3.1).
55
- *
56
- * Default (4 bytes, EXT=0):
57
- * Byte 0 : FrameType
58
- * Byte 1 : Flags
59
- * Byte 2–3 : PayloadLength (big-endian uint16)
60
- *
61
- * Extended (8 bytes, EXT=1):
62
- * Byte 0 : FrameType
63
- * Byte 1 : Flags (bit 7 = 1)
64
- * Byte 2–3 : Reserved (must be 0)
65
- * Byte 4–7 : PayloadLength (big-endian uint32)
66
- */
67
- export declare class FrameHeader {
68
- readonly frameType: FrameType;
69
- readonly flags: number;
70
- readonly payloadLength: number;
71
- constructor(frameType: FrameType, flags: number, payloadLength: number);
72
- get isExtended(): boolean;
73
- get headerSize(): number;
74
- get encodingTier(): EncodingTier;
75
- get isFinal(): boolean;
76
- get isEncrypted(): boolean;
77
- static parse(buf: Uint8Array): FrameHeader;
78
- toBytes(): Uint8Array;
79
- toString(): string;
80
- }
81
- //# sourceMappingURL=frames.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/core/frames.ts"],"names":[],"mappings":"AAWA,sEAAsE;AACtE,oBAAY,SAAS;IAEnB,MAAM,IAAa;IACnB,IAAI,IAAe;IACnB,MAAM,IAAa;IACnB,IAAI,IAAe;IACnB,KAAK,IAAc,CAAE,sCAAsC;IAC3D,KAAK,IAAc;IAGnB,KAAK,KAAc;IACnB,MAAM,KAAa;IAGnB,KAAK,KAAc;IACnB,KAAK,KAAc;IACnB,MAAM,KAAa;IAGnB,QAAQ,KAAW;IACnB,OAAO,KAAY;IACnB,KAAK,KAAc;IAGnB,IAAI,KAAe;IACnB,QAAQ,KAAW;IACnB,IAAI,KAAe;IACnB,YAAY,KAAO;IAGnB,KAAK,MAAc;CACpB;AAID;;;;GAIG;AACH,oBAAY,YAAY;IACtB,IAAI,IAAU;IACd,OAAO,IAAO;CACf;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAIX,eAAO,MAAM,mBAAmB,IAAK,CAAC;AACtC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAC3C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAI/C;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAW;aAEJ,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,MAAM;aACb,aAAa,EAAE,MAAM;gBAFrB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM;IAGvC,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAID,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;IAiC1C,OAAO,IAAI,UAAU;IAkBrB,QAAQ,IAAI,MAAM;CAGnB"}
@@ -1,154 +0,0 @@
1
- // Copyright 2026 INNO LOTUS PTY LTD
2
- // SPDX-License-Identifier: Apache-2.0
3
- /**
4
- * NPS wire-level frame primitives: FrameType, FrameFlags, EncodingTier, FrameHeader.
5
- */
6
- import { NpsFrameError } from "./exceptions.js";
7
- // ── FrameType ────────────────────────────────────────────────────────────────
8
- /** Unified frame byte namespace for the full NPS suite (NPS-0 §9). */
9
- export var FrameType;
10
- (function (FrameType) {
11
- // NCP 0x01–0x0F
12
- FrameType[FrameType["ANCHOR"] = 1] = "ANCHOR";
13
- FrameType[FrameType["DIFF"] = 2] = "DIFF";
14
- FrameType[FrameType["STREAM"] = 3] = "STREAM";
15
- FrameType[FrameType["CAPS"] = 4] = "CAPS";
16
- FrameType[FrameType["ALIGN"] = 5] = "ALIGN";
17
- FrameType[FrameType["HELLO"] = 6] = "HELLO";
18
- // NWP 0x10–0x1F
19
- FrameType[FrameType["QUERY"] = 16] = "QUERY";
20
- FrameType[FrameType["ACTION"] = 17] = "ACTION";
21
- // NIP 0x20–0x2F
22
- FrameType[FrameType["IDENT"] = 32] = "IDENT";
23
- FrameType[FrameType["TRUST"] = 33] = "TRUST";
24
- FrameType[FrameType["REVOKE"] = 34] = "REVOKE";
25
- // NDP 0x30–0x3F
26
- FrameType[FrameType["ANNOUNCE"] = 48] = "ANNOUNCE";
27
- FrameType[FrameType["RESOLVE"] = 49] = "RESOLVE";
28
- FrameType[FrameType["GRAPH"] = 50] = "GRAPH";
29
- // NOP 0x40–0x4F
30
- FrameType[FrameType["TASK"] = 64] = "TASK";
31
- FrameType[FrameType["DELEGATE"] = 65] = "DELEGATE";
32
- FrameType[FrameType["SYNC"] = 66] = "SYNC";
33
- FrameType[FrameType["ALIGN_STREAM"] = 67] = "ALIGN_STREAM";
34
- // Reserved / System 0xF0–0xFF
35
- FrameType[FrameType["ERROR"] = 254] = "ERROR";
36
- })(FrameType || (FrameType = {}));
37
- // ── EncodingTier ─────────────────────────────────────────────────────────────
38
- /**
39
- * Wire encoding tier, stored in the lower 2 bits of the flags byte (NPS-1 §3.2).
40
- * 0x00 = Tier-1 JSON — human-readable; development / compatibility.
41
- * 0x01 = Tier-2 MsgPack — binary, ~60 % smaller; production default.
42
- */
43
- export var EncodingTier;
44
- (function (EncodingTier) {
45
- EncodingTier[EncodingTier["JSON"] = 0] = "JSON";
46
- EncodingTier[EncodingTier["MSGPACK"] = 1] = "MSGPACK";
47
- })(EncodingTier || (EncodingTier = {}));
48
- // ── FrameFlags ───────────────────────────────────────────────────────────────
49
- /**
50
- * Flags byte in the NPS frame header (NPS-1 §3.2).
51
- * Bit layout (LSB = bit 0):
52
- * Bits 0–1 (T0,T1) : Encoding tier
53
- * Bit 2 (FINAL) : Last chunk of a StreamFrame; non-stream frames MUST set this
54
- * Bit 3 (ENC) : Payload encrypted
55
- * Bits 4–6 (RSV) : Reserved — sender MUST write 0
56
- * Bit 7 (EXT) : Extended 8-byte header
57
- */
58
- export const FrameFlags = {
59
- NONE: 0x00,
60
- TIER1_JSON: 0x00,
61
- TIER2_MSGPACK: 0x01,
62
- FINAL: 0x04,
63
- ENCRYPTED: 0x08,
64
- EXT: 0x80,
65
- };
66
- // ── Constants ─────────────────────────────────────────────────────────────────
67
- export const DEFAULT_HEADER_SIZE = 4;
68
- export const EXTENDED_HEADER_SIZE = 8;
69
- export const DEFAULT_MAX_PAYLOAD = 0xffff; // 65 535 bytes
70
- export const EXTENDED_MAX_PAYLOAD = 0xffffffff; // 4 GiB - 1
71
- // ── FrameHeader ──────────────────────────────────────────────────────────────
72
- /**
73
- * NPS frame header, present at the start of every wire message (NPS-1 §3.1).
74
- *
75
- * Default (4 bytes, EXT=0):
76
- * Byte 0 : FrameType
77
- * Byte 1 : Flags
78
- * Byte 2–3 : PayloadLength (big-endian uint16)
79
- *
80
- * Extended (8 bytes, EXT=1):
81
- * Byte 0 : FrameType
82
- * Byte 1 : Flags (bit 7 = 1)
83
- * Byte 2–3 : Reserved (must be 0)
84
- * Byte 4–7 : PayloadLength (big-endian uint32)
85
- */
86
- export class FrameHeader {
87
- frameType;
88
- flags;
89
- payloadLength;
90
- constructor(frameType, flags, payloadLength) {
91
- this.frameType = frameType;
92
- this.flags = flags;
93
- this.payloadLength = payloadLength;
94
- }
95
- get isExtended() {
96
- return (this.flags & FrameFlags.EXT) !== 0;
97
- }
98
- get headerSize() {
99
- return this.isExtended ? EXTENDED_HEADER_SIZE : DEFAULT_HEADER_SIZE;
100
- }
101
- get encodingTier() {
102
- return (this.flags & 0x03);
103
- }
104
- get isFinal() {
105
- return (this.flags & 0x04) !== 0;
106
- }
107
- get isEncrypted() {
108
- return (this.flags & 0x08) !== 0;
109
- }
110
- // ── Parsing ───────────────────────────────────────────────────────────────
111
- static parse(buf) {
112
- if (buf.length < 2) {
113
- throw new NpsFrameError(`Buffer too small to read frame type and flags: need >= 2 bytes, got ${buf.length}.`);
114
- }
115
- const flags = buf[1];
116
- const ext = (flags & FrameFlags.EXT) !== 0;
117
- if (ext) {
118
- if (buf.length < EXTENDED_HEADER_SIZE) {
119
- throw new NpsFrameError(`Buffer too small for extended frame header: need ${EXTENDED_HEADER_SIZE} bytes, got ${buf.length}.`);
120
- }
121
- const view = new DataView(buf.buffer, buf.byteOffset);
122
- const payloadLength = view.getUint32(4, false); // big-endian
123
- return new FrameHeader(buf[0], flags, payloadLength);
124
- }
125
- if (buf.length < DEFAULT_HEADER_SIZE) {
126
- throw new NpsFrameError(`Buffer too small for frame header: need ${DEFAULT_HEADER_SIZE} bytes, got ${buf.length}.`);
127
- }
128
- const view = new DataView(buf.buffer, buf.byteOffset);
129
- const payloadLength = view.getUint16(2, false); // big-endian
130
- return new FrameHeader(buf[0], flags, payloadLength);
131
- }
132
- // ── Serialisation ─────────────────────────────────────────────────────────
133
- toBytes() {
134
- if (this.isExtended) {
135
- const buf = new Uint8Array(EXTENDED_HEADER_SIZE);
136
- const view = new DataView(buf.buffer);
137
- view.setUint8(0, this.frameType);
138
- view.setUint8(1, this.flags);
139
- view.setUint16(2, 0, false); // reserved
140
- view.setUint32(4, this.payloadLength, false);
141
- return buf;
142
- }
143
- const buf = new Uint8Array(DEFAULT_HEADER_SIZE);
144
- const view = new DataView(buf.buffer);
145
- view.setUint8(0, this.frameType);
146
- view.setUint8(1, this.flags);
147
- view.setUint16(2, this.payloadLength, false);
148
- return buf;
149
- }
150
- toString() {
151
- return `FrameHeader(frameType=0x${this.frameType.toString(16).padStart(2, "0")}, flags=0x${this.flags.toString(16).padStart(2, "0")}, payloadLength=${this.payloadLength})`;
152
- }
153
- }
154
- //# sourceMappingURL=frames.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/core/frames.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export { FrameType, EncodingTier, FrameFlags, FrameHeader, DEFAULT_HEADER_SIZE, EXTENDED_HEADER_SIZE, DEFAULT_MAX_PAYLOAD, EXTENDED_MAX_PAYLOAD, } from "./frames.js";
2
- export { Tier1JsonCodec, Tier2MsgPackCodec, NpsFrameCodec, } from "./codec.js";
3
- export type { NpsFrame } from "./codec.js";
4
- export { FrameRegistry } from "./registry.js";
5
- export type { FrameClass } from "./registry.js";
6
- export { AnchorFrameCache } from "./cache.js";
7
- export * from "./exceptions.js";
8
- export * from "./status-codes.js";
9
- export { jcsStringify, sortKeysStringify } from "./canonical-json.js";
10
- export type { CryptoProvider } from "./crypto-provider.js";
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,22 +0,0 @@
1
- // Copyright 2026 INNO LOTUS PTY LTD
2
- // SPDX-License-Identifier: Apache-2.0
3
- //
4
- // @labacacia/nps-sdk/core — public re-exports for NCP wire primitives.
5
- //
6
- // This module exposes the shipped OOP codec API used by NWP / NOP / NIP / NDP
7
- // clients. The parallel functional API under ./codecs/ and ./frame-header.js
8
- // remains importable by direct path but is not re-exported here to avoid
9
- // symbol collisions (both files define FrameType / EncodingTier / FrameHeader).
10
- // ── Frame primitives (OOP) ────────────────────────────────────────────────────
11
- export { FrameType, EncodingTier, FrameFlags, FrameHeader, DEFAULT_HEADER_SIZE, EXTENDED_HEADER_SIZE, DEFAULT_MAX_PAYLOAD, EXTENDED_MAX_PAYLOAD, } from "./frames.js";
12
- // ── Codec (OOP) ───────────────────────────────────────────────────────────────
13
- export { Tier1JsonCodec, Tier2MsgPackCodec, NpsFrameCodec, } from "./codec.js";
14
- // ── Registry (OOP) ────────────────────────────────────────────────────────────
15
- export { FrameRegistry } from "./registry.js";
16
- // ── Anchor cache (OOP) ────────────────────────────────────────────────────────
17
- export { AnchorFrameCache } from "./cache.js";
18
- // ── Exceptions / Status / Canonical JSON ──────────────────────────────────────
19
- export * from "./exceptions.js";
20
- export * from "./status-codes.js";
21
- export { jcsStringify, sortKeysStringify } from "./canonical-json.js";
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AACtC,EAAE;AACF,uEAAuE;AACvE,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,gFAAgF;AAEhF,iFAAiF;AACjF,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,iFAAiF;AACjF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,iFAAiF;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,iFAAiF;AACjF,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,11 +0,0 @@
1
- import { FrameType } from "./frames.js";
2
- import type { NpsFrame } from "./codec.js";
3
- export interface FrameClass {
4
- fromDict(data: Record<string, unknown>): NpsFrame;
5
- }
6
- export declare class FrameRegistry {
7
- private readonly _map;
8
- register(frameType: FrameType, cls: FrameClass): void;
9
- resolve(frameType: FrameType): FrameClass;
10
- }
11
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;CACnD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAEzD,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAIrD,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU;CAS1C"}
@@ -1,17 +0,0 @@
1
- // Copyright 2026 INNO LOTUS PTY LTD
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { NpsFrameError } from "./exceptions.js";
4
- export class FrameRegistry {
5
- _map = new Map();
6
- register(frameType, cls) {
7
- this._map.set(frameType, cls);
8
- }
9
- resolve(frameType) {
10
- const cls = this._map.get(frameType);
11
- if (cls === undefined) {
12
- throw new NpsFrameError(`No frame class registered for type 0x${frameType.toString(16).padStart(2, "0")}.`);
13
- }
14
- return cls;
15
- }
16
- }
17
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,MAAM,OAAO,aAAa;IACP,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEzD,QAAQ,CAAC,SAAoB,EAAE,GAAe;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,SAAoB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CACrB,wCAAwC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -1,29 +0,0 @@
1
- /** NPS native status code constants. */
2
- export declare const NpsStatusCodes: {
3
- readonly NPS_OK: "NPS-OK";
4
- readonly NPS_OK_ACCEPTED: "NPS-OK-ACCEPTED";
5
- readonly NPS_OK_NO_CONTENT: "NPS-OK-NO-CONTENT";
6
- readonly NPS_AUTH_UNAUTHENTICATED: "NPS-AUTH-UNAUTHENTICATED";
7
- readonly NPS_AUTH_FORBIDDEN: "NPS-AUTH-FORBIDDEN";
8
- readonly NPS_CLIENT_BAD_FRAME: "NPS-CLIENT-BAD-FRAME";
9
- readonly NPS_CLIENT_BAD_PARAM: "NPS-CLIENT-BAD-PARAM";
10
- readonly NPS_CLIENT_NOT_FOUND: "NPS-CLIENT-NOT-FOUND";
11
- readonly NPS_CLIENT_CONFLICT: "NPS-CLIENT-CONFLICT";
12
- readonly NPS_CLIENT_GONE: "NPS-CLIENT-GONE";
13
- readonly NPS_CLIENT_UNPROCESSABLE: "NPS-CLIENT-UNPROCESSABLE";
14
- readonly NPS_SERVER_INTERNAL: "NPS-SERVER-INTERNAL";
15
- readonly NPS_SERVER_UNAVAILABLE: "NPS-SERVER-UNAVAILABLE";
16
- readonly NPS_SERVER_TIMEOUT: "NPS-SERVER-TIMEOUT";
17
- readonly NPS_SERVER_ENCODING_UNSUPPORTED: "NPS-SERVER-ENCODING-UNSUPPORTED";
18
- readonly NPS_SERVER_UNSUPPORTED: "NPS-SERVER-UNSUPPORTED";
19
- readonly NPS_STREAM_SEQ_GAP: "NPS-STREAM-SEQ-GAP";
20
- readonly NPS_STREAM_NOT_FOUND: "NPS-STREAM-NOT-FOUND";
21
- readonly NPS_STREAM_LIMIT: "NPS-STREAM-LIMIT";
22
- readonly NPS_LIMIT_RATE: "NPS-LIMIT-RATE";
23
- readonly NPS_LIMIT_BUDGET: "NPS-LIMIT-BUDGET";
24
- readonly NPS_LIMIT_PAYLOAD: "NPS-LIMIT-PAYLOAD";
25
- readonly NPS_LIMIT_EXCEEDED: "NPS-LIMIT-EXCEEDED";
26
- readonly NPS_PROTO_VERSION_INCOMPATIBLE: "NPS-PROTO-VERSION-INCOMPATIBLE";
27
- };
28
- export type NpsStatusCode = (typeof NpsStatusCodes)[keyof typeof NpsStatusCodes];
29
- //# sourceMappingURL=status-codes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-codes.d.ts","sourceRoot":"","sources":["../../src/core/status-codes.ts"],"names":[],"mappings":"AAKA,wCAAwC;AACxC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAsCjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC"}
@@ -1,39 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
3
- //
4
- // NPS native status codes — per spec/status-codes.md
5
- /** NPS native status code constants. */
6
- export const NpsStatusCodes = {
7
- // Success
8
- NPS_OK: "NPS-OK",
9
- NPS_OK_ACCEPTED: "NPS-OK-ACCEPTED",
10
- NPS_OK_NO_CONTENT: "NPS-OK-NO-CONTENT",
11
- // Auth
12
- NPS_AUTH_UNAUTHENTICATED: "NPS-AUTH-UNAUTHENTICATED",
13
- NPS_AUTH_FORBIDDEN: "NPS-AUTH-FORBIDDEN",
14
- // Client errors
15
- NPS_CLIENT_BAD_FRAME: "NPS-CLIENT-BAD-FRAME",
16
- NPS_CLIENT_BAD_PARAM: "NPS-CLIENT-BAD-PARAM",
17
- NPS_CLIENT_NOT_FOUND: "NPS-CLIENT-NOT-FOUND",
18
- NPS_CLIENT_CONFLICT: "NPS-CLIENT-CONFLICT",
19
- NPS_CLIENT_GONE: "NPS-CLIENT-GONE",
20
- NPS_CLIENT_UNPROCESSABLE: "NPS-CLIENT-UNPROCESSABLE",
21
- // Server errors
22
- NPS_SERVER_INTERNAL: "NPS-SERVER-INTERNAL",
23
- NPS_SERVER_UNAVAILABLE: "NPS-SERVER-UNAVAILABLE",
24
- NPS_SERVER_TIMEOUT: "NPS-SERVER-TIMEOUT",
25
- NPS_SERVER_ENCODING_UNSUPPORTED: "NPS-SERVER-ENCODING-UNSUPPORTED",
26
- NPS_SERVER_UNSUPPORTED: "NPS-SERVER-UNSUPPORTED",
27
- // Stream
28
- NPS_STREAM_SEQ_GAP: "NPS-STREAM-SEQ-GAP",
29
- NPS_STREAM_NOT_FOUND: "NPS-STREAM-NOT-FOUND",
30
- NPS_STREAM_LIMIT: "NPS-STREAM-LIMIT",
31
- // Limit
32
- NPS_LIMIT_RATE: "NPS-LIMIT-RATE",
33
- NPS_LIMIT_BUDGET: "NPS-LIMIT-BUDGET",
34
- NPS_LIMIT_PAYLOAD: "NPS-LIMIT-PAYLOAD",
35
- NPS_LIMIT_EXCEEDED: "NPS-LIMIT-EXCEEDED",
36
- // Protocol
37
- NPS_PROTO_VERSION_INCOMPATIBLE: "NPS-PROTO-VERSION-INCOMPATIBLE",
38
- };
39
- //# sourceMappingURL=status-codes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-codes.js","sourceRoot":"","sources":["../../src/core/status-codes.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,qDAAqD;AAErD,wCAAwC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU;IACV,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IAEtC,OAAO;IACP,wBAAwB,EAAE,0BAA0B;IACpD,kBAAkB,EAAE,oBAAoB;IAExC,gBAAgB;IAChB,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,wBAAwB,EAAE,0BAA0B;IAEpD,gBAAgB;IAChB,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,+BAA+B,EAAE,iCAAiC;IAClE,sBAAsB,EAAE,wBAAwB;IAEhD,SAAS;IACT,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,gBAAgB,EAAE,kBAAkB;IAEpC,QAAQ;IACR,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IAExC,WAAW;IACX,8BAA8B,EAAE,gCAAgC;CACxD,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare const VERSION = "1.0.0-alpha.2";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
package/dist/index.js DELETED
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
3
- //
4
- // @labacacia/nps-sdk — root entry point.
5
- // Mirrors Python root __init__.py: exports only the SDK version.
6
- // All protocol APIs are accessed via sub-package imports:
7
- // import { ... } from "@labacacia/nps-sdk/core"
8
- // import { ... } from "@labacacia/nps-sdk/ncp"
9
- export const VERSION = "1.0.0-alpha.2";
10
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,yCAAyC;AACzC,iEAAiE;AACjE,0DAA0D;AAC1D,kDAAkD;AAClD,iDAAiD;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC"}
@@ -1,29 +0,0 @@
1
- declare const VALID_FIELD_TYPES: readonly ["string", "uint64", "int64", "decimal", "bool", "timestamp", "bytes", "object", "array"];
2
- export type SchemaFieldType = (typeof VALID_FIELD_TYPES)[number];
3
- export interface SchemaField {
4
- name: string;
5
- type: string;
6
- semantic?: string;
7
- nullable?: boolean;
8
- }
9
- export interface FrameSchema {
10
- fields: SchemaField[];
11
- }
12
- export interface AnchorFrame {
13
- frame: string;
14
- anchor_id: string;
15
- schema: FrameSchema;
16
- ttl?: number;
17
- }
18
- /**
19
- * Compute anchor_id from schema using RFC 8785 JCS canonicalization + SHA-256.
20
- * Format: "sha256:{64 lowercase hex chars}"
21
- */
22
- export declare function computeAnchorId(schema: FrameSchema): string;
23
- /**
24
- * Validate an AnchorFrame.
25
- * @throws {NcpError} NCP-ANCHOR-SCHEMA-INVALID if anchor_id doesn't match or schema is invalid.
26
- */
27
- export declare function validateAnchorFrame(frame: AnchorFrame): void;
28
- export {};
29
- //# sourceMappingURL=anchor-frame.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anchor-frame.d.ts","sourceRoot":"","sources":["../../../src/ncp/frames/anchor-frame.ts"],"names":[],"mappings":"AAgBA,QAAA,MAAM,iBAAiB,oGAGb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAO3D;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAoB5D"}
@@ -1,54 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
3
- //
4
- // AnchorFrame (0x01) — Schema anchor for global reference
5
- // NPS-1 §4.1
6
- import { createHash } from "node:crypto";
7
- // canonicalize ships CJS with TS `export default` — NodeNext resolves as namespace
8
- import canonicalizeDefault from "canonicalize";
9
- const canonicalize = canonicalizeDefault;
10
- import { NcpError } from "../../core/frame-header.js";
11
- // ---------------------------------------------------------------------------
12
- // Types
13
- // ---------------------------------------------------------------------------
14
- const VALID_FIELD_TYPES = [
15
- "string", "uint64", "int64", "decimal", "bool",
16
- "timestamp", "bytes", "object", "array",
17
- ];
18
- // ---------------------------------------------------------------------------
19
- // anchor_id computation (RFC 8785 JCS + SHA-256)
20
- // ---------------------------------------------------------------------------
21
- /**
22
- * Compute anchor_id from schema using RFC 8785 JCS canonicalization + SHA-256.
23
- * Format: "sha256:{64 lowercase hex chars}"
24
- */
25
- export function computeAnchorId(schema) {
26
- const canonical = canonicalize(schema);
27
- if (!canonical) {
28
- throw new NcpError("NCP-ANCHOR-SCHEMA-INVALID", "Schema cannot be canonicalized");
29
- }
30
- const hash = createHash("sha256").update(canonical).digest("hex");
31
- return `sha256:${hash}`;
32
- }
33
- // ---------------------------------------------------------------------------
34
- // Validation
35
- // ---------------------------------------------------------------------------
36
- /**
37
- * Validate an AnchorFrame.
38
- * @throws {NcpError} NCP-ANCHOR-SCHEMA-INVALID if anchor_id doesn't match or schema is invalid.
39
- */
40
- export function validateAnchorFrame(frame) {
41
- // Validate schema field types
42
- for (const field of frame.schema.fields) {
43
- if (!VALID_FIELD_TYPES.includes(field.type)) {
44
- throw new NcpError("NCP-ANCHOR-SCHEMA-INVALID", `Unsupported field type "${field.type}" for field "${field.name}". ` +
45
- `Valid types: ${VALID_FIELD_TYPES.join(", ")}`);
46
- }
47
- }
48
- // Validate anchor_id matches computed hash
49
- const expected = computeAnchorId(frame.schema);
50
- if (frame.anchor_id !== expected) {
51
- throw new NcpError("NCP-ANCHOR-SCHEMA-INVALID", `anchor_id mismatch: expected ${expected}, got ${frame.anchor_id}`);
52
- }
53
- }
54
- //# sourceMappingURL=anchor-frame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anchor-frame.js","sourceRoot":"","sources":["../../../src/ncp/frames/anchor-frame.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,0DAA0D;AAC1D,aAAa;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,mFAAmF;AACnF,OAAO,mBAAmB,MAAM,cAAc,CAAC;AAC/C,MAAM,YAAY,GAAG,mBAAwE,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG;IACxB,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAC9C,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;CAC/B,CAAC;AAsBX,8EAA8E;AAC9E,iDAAiD;AACjD,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,2BAA2B,EAAE,gCAAgC,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,UAAU,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,8BAA8B;IAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAuB,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,QAAQ,CAChB,2BAA2B,EAC3B,2BAA2B,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,IAAI,KAAK;gBAClE,gBAAgB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAChB,2BAA2B,EAC3B,gCAAgC,QAAQ,SAAS,KAAK,CAAC,SAAS,EAAE,CACnE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,29 +0,0 @@
1
- import { type FrameSchema } from "./anchor-frame.js";
2
- export interface CapsFrameInlineAnchor {
3
- anchor_id: string;
4
- schema: FrameSchema;
5
- ttl?: number;
6
- }
7
- export interface CapsFrame {
8
- frame: string;
9
- anchor_ref: string;
10
- count: number;
11
- data: unknown[];
12
- next_cursor?: string | null;
13
- token_est?: number;
14
- tokenizer_used?: string;
15
- cached?: boolean;
16
- inline_anchor?: CapsFrameInlineAnchor;
17
- }
18
- /**
19
- * Validate a CapsFrame.
20
- *
21
- * Checks:
22
- * - count matches data.length (NPS-CLIENT-BAD-FRAME)
23
- * - if inline_anchor present, recomputes anchor_id and validates match (NCP-ANCHOR-SCHEMA-INVALID)
24
- *
25
- * @throws {NcpError} NPS-CLIENT-BAD-FRAME if count doesn't match data length.
26
- * @throws {NcpError} NCP-ANCHOR-SCHEMA-INVALID if inline_anchor.anchor_id doesn't match schema.
27
- */
28
- export declare function validateCapsFrame(frame: CapsFrame): void;
29
- //# sourceMappingURL=caps-frame.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"caps-frame.d.ts","sourceRoot":"","sources":["../../../src/ncp/frames/caps-frame.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAiBxD"}
@@ -1,29 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
3
- //
4
- // CapsFrame (0x04) — Capsule response envelope
5
- // NPS-1 §4.4
6
- import { NcpError } from "../../core/frame-header.js";
7
- import { computeAnchorId, } from "./anchor-frame.js";
8
- /**
9
- * Validate a CapsFrame.
10
- *
11
- * Checks:
12
- * - count matches data.length (NPS-CLIENT-BAD-FRAME)
13
- * - if inline_anchor present, recomputes anchor_id and validates match (NCP-ANCHOR-SCHEMA-INVALID)
14
- *
15
- * @throws {NcpError} NPS-CLIENT-BAD-FRAME if count doesn't match data length.
16
- * @throws {NcpError} NCP-ANCHOR-SCHEMA-INVALID if inline_anchor.anchor_id doesn't match schema.
17
- */
18
- export function validateCapsFrame(frame) {
19
- if (frame.count !== frame.data.length) {
20
- throw new NcpError("NPS-CLIENT-BAD-FRAME", `CapsFrame count mismatch: count=${frame.count}, data.length=${frame.data.length}`);
21
- }
22
- if (frame.inline_anchor !== undefined) {
23
- const computed = computeAnchorId(frame.inline_anchor.schema);
24
- if (frame.inline_anchor.anchor_id !== computed) {
25
- throw new NcpError("NCP-ANCHOR-SCHEMA-INVALID", `inline_anchor anchor_id mismatch: expected ${computed}, got ${frame.inline_anchor.anchor_id}`);
26
- }
27
- }
28
- }
29
- //# sourceMappingURL=caps-frame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"caps-frame.js","sourceRoot":"","sources":["../../../src/ncp/frames/caps-frame.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,+CAA+C;AAC/C,aAAa;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAoB3B;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,QAAQ,CAChB,sBAAsB,EACtB,mCAAmC,KAAK,CAAC,KAAK,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,IAAI,QAAQ,CAChB,2BAA2B,EAC3B,8CAA8C,QAAQ,SAAS,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,CAC/F,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,32 +0,0 @@
1
- import { EncodingTier } from "../../core/frame-header.js";
2
- import { type PatchFormat } from "../ncp-patch-format.js";
3
- export interface JsonPatchOperation {
4
- op: "add" | "remove" | "replace" | "move" | "copy" | "test";
5
- path: string;
6
- value?: unknown;
7
- from?: string;
8
- }
9
- export interface DiffFrame {
10
- frame: string;
11
- anchor_ref: string;
12
- base_seq: number;
13
- patch_format?: PatchFormat;
14
- patch: JsonPatchOperation[] | Uint8Array;
15
- entity_id?: string;
16
- }
17
- /**
18
- * Validate DiffFrame base_seq against current sequence.
19
- * @throws {NcpError} NCP-STREAM-SEQ-GAP if sequences don't match.
20
- */
21
- export declare function validateDiffSeq(frame: DiffFrame, currentSeq: number): void;
22
- /**
23
- * Validate DiffFrame patch_format against the encoding tier.
24
- *
25
- * binary_bitset is only supported on Tier-2 (MsgPack) frames.
26
- * Unknown patch_format values are also rejected.
27
- *
28
- * @throws {NcpError} NCP-DIFF-FORMAT-UNSUPPORTED if binary_bitset on non-Tier-2,
29
- * or if patch_format is an unknown value.
30
- */
31
- export declare function validateDiffFrame(frame: DiffFrame, encodingTier: EncodingTier | number): void;
32
- //# sourceMappingURL=diff-frame.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff-frame.d.ts","sourceRoot":"","sources":["../../../src/ncp/frames/diff-frame.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,KAAK,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,YAAY,GAAG,MAAM,GAClC,IAAI,CAkBN"}