@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
@@ -0,0 +1,109 @@
1
+ export interface MemberInfo {
2
+ nid: string;
3
+ node_roles: string[];
4
+ activation_mode: string;
5
+ child_anchor?: boolean;
6
+ member_count?: number;
7
+ tags?: string[];
8
+ joined_at?: string;
9
+ last_seen?: string;
10
+ capabilities?: unknown;
11
+ metrics?: unknown;
12
+ }
13
+ export interface TopologySnapshot {
14
+ version: number;
15
+ anchor_nid: string;
16
+ cluster_size: number;
17
+ members: MemberInfo[];
18
+ truncated?: boolean;
19
+ }
20
+ export interface TopologyFilter {
21
+ tags_any?: string[];
22
+ tags_all?: string[];
23
+ node_roles?: string[];
24
+ }
25
+ export interface MemberChanges {
26
+ node_roles?: string[];
27
+ activation_mode?: string;
28
+ tags?: string[];
29
+ member_count?: number;
30
+ last_seen?: string;
31
+ capabilities?: unknown;
32
+ metrics?: unknown;
33
+ }
34
+ /** Discriminated union for topology stream events (NPS-2 §12.2). */
35
+ export type TopologyEvent = {
36
+ kind: "member_joined";
37
+ version: number;
38
+ member: MemberInfo;
39
+ } | {
40
+ kind: "member_left";
41
+ version: number;
42
+ nid: string;
43
+ } | {
44
+ kind: "member_updated";
45
+ version: number;
46
+ nid: string;
47
+ changes: MemberChanges;
48
+ } | {
49
+ kind: "anchor_state";
50
+ version: number;
51
+ field: string;
52
+ details?: unknown;
53
+ } | {
54
+ kind: "resync_required";
55
+ version: 0;
56
+ reason: string;
57
+ };
58
+ /**
59
+ * Surfaces an Anchor-side topology error to the caller. `nwpErrorCode` matches
60
+ * one of the NWP-TOPOLOGY-* codes; `npsStatus` is the NPS status code.
61
+ */
62
+ export declare class AnchorTopologyError extends Error {
63
+ readonly nwpErrorCode: string;
64
+ readonly npsStatus: string;
65
+ constructor(nwpErrorCode: string, npsStatus: string, message?: string);
66
+ }
67
+ /**
68
+ * Typed client for an Anchor Node's reserved query endpoints.
69
+ *
70
+ * ```ts
71
+ * const client = new AnchorNodeClient("http://anchor.local:8080", "/anchor");
72
+ *
73
+ * const snap = await client.getSnapshot({ scope: "cluster" });
74
+ * for await (const ev of client.subscribe({ sinceVersion: snap.version })) {
75
+ * console.log(ev);
76
+ * }
77
+ * ```
78
+ */
79
+ export declare class AnchorNodeClient {
80
+ private readonly baseUrl;
81
+ private readonly pathPrefix;
82
+ constructor(baseUrl: string, pathPrefix?: string);
83
+ /**
84
+ * Fetch the current cluster topology (NPS-2 §12.1).
85
+ *
86
+ * POSTs a `topology.snapshot` query and returns the first `data` element of
87
+ * the response CapsFrame.
88
+ */
89
+ getSnapshot(options?: {
90
+ scope?: "cluster" | "member";
91
+ include?: string[];
92
+ depth?: number;
93
+ targetNid?: string;
94
+ }): Promise<TopologySnapshot>;
95
+ /**
96
+ * Subscribe to live topology changes (NPS-2 §12.2).
97
+ *
98
+ * The first NDJSON line (subscription ack) is automatically skipped. Each
99
+ * subsequent line is parsed into a `TopologyEvent`. The generator stops after
100
+ * a `resync_required` event — callers MUST issue a fresh `getSnapshot` before
101
+ * resubscribing.
102
+ */
103
+ subscribe(options?: {
104
+ filter?: TopologyFilter;
105
+ sinceVersion?: number;
106
+ scope?: "cluster" | "member";
107
+ }): AsyncGenerator<TopologyEvent>;
108
+ }
109
+ //# sourceMappingURL=anchor-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-client.d.ts","sourceRoot":"","sources":["../../src/nwp/anchor-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,279 @@
1
+ // Copyright 2026 INNO LOTUS PTY LTD
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * AnchorNodeClient — typed HTTP client for an Anchor Node's reserved query
5
+ * types (NPS-2 §12 — `topology.snapshot` and `topology.stream`).
6
+ *
7
+ * Uses `fetch` only; no extra dependencies.
8
+ */
9
+ // ── Wire constants ────────────────────────────────────────────────────────────
10
+ const SCOPE_CLUSTER = "cluster";
11
+ const SCOPE_MEMBER = "member";
12
+ const TYPE_SNAPSHOT = "topology.snapshot";
13
+ const TYPE_STREAM = "topology.stream";
14
+ const EVENT_MEMBER_JOINED = "member_joined";
15
+ const EVENT_MEMBER_LEFT = "member_left";
16
+ const EVENT_MEMBER_UPDATED = "member_updated";
17
+ const EVENT_ANCHOR_STATE = "anchor_state";
18
+ const EVENT_RESYNC_REQUIRED = "resync_required";
19
+ /**
20
+ * Surfaces an Anchor-side topology error to the caller. `nwpErrorCode` matches
21
+ * one of the NWP-TOPOLOGY-* codes; `npsStatus` is the NPS status code.
22
+ */
23
+ export class AnchorTopologyError extends Error {
24
+ nwpErrorCode;
25
+ npsStatus;
26
+ constructor(nwpErrorCode, npsStatus, message) {
27
+ super(message);
28
+ this.nwpErrorCode = nwpErrorCode;
29
+ this.npsStatus = npsStatus;
30
+ this.name = "AnchorTopologyError";
31
+ }
32
+ }
33
+ // ── AnchorNodeClient ──────────────────────────────────────────────────────────
34
+ /**
35
+ * Typed client for an Anchor Node's reserved query endpoints.
36
+ *
37
+ * ```ts
38
+ * const client = new AnchorNodeClient("http://anchor.local:8080", "/anchor");
39
+ *
40
+ * const snap = await client.getSnapshot({ scope: "cluster" });
41
+ * for await (const ev of client.subscribe({ sinceVersion: snap.version })) {
42
+ * console.log(ev);
43
+ * }
44
+ * ```
45
+ */
46
+ export class AnchorNodeClient {
47
+ baseUrl;
48
+ pathPrefix;
49
+ constructor(baseUrl, pathPrefix = "") {
50
+ // Normalise trailing slashes once.
51
+ this.baseUrl = baseUrl.replace(/\/$/, "");
52
+ this.pathPrefix = pathPrefix.replace(/\/$/, "");
53
+ }
54
+ // ── topology.snapshot ──────────────────────────────────────────────────────
55
+ /**
56
+ * Fetch the current cluster topology (NPS-2 §12.1).
57
+ *
58
+ * POSTs a `topology.snapshot` query and returns the first `data` element of
59
+ * the response CapsFrame.
60
+ */
61
+ async getSnapshot(options) {
62
+ const scope = options?.scope ?? "cluster";
63
+ const include = options?.include ?? ["members"];
64
+ const depth = options?.depth;
65
+ const targetNid = options?.targetNid;
66
+ const topology = {
67
+ scope: scope === "cluster" ? SCOPE_CLUSTER : SCOPE_MEMBER,
68
+ include,
69
+ };
70
+ if (depth !== undefined)
71
+ topology["depth"] = depth;
72
+ if (targetNid !== undefined)
73
+ topology["target_nid"] = targetNid;
74
+ const body = { type: TYPE_SNAPSHOT, topology };
75
+ const url = `${this.baseUrl}${this.pathPrefix}/query`;
76
+ const res = await fetch(url, {
77
+ method: "POST",
78
+ headers: { "Content-Type": "application/json", "Accept": "application/json" },
79
+ body: JSON.stringify(body),
80
+ });
81
+ if (!res.ok) {
82
+ throw await buildFetchError("topology.snapshot", res);
83
+ }
84
+ const caps = await res.json();
85
+ const rows = caps.data;
86
+ if (!Array.isArray(rows) || rows.length !== 1) {
87
+ throw new Error(`topology.snapshot expected exactly 1 data row; got ${Array.isArray(rows) ? rows.length : "non-array"}.`);
88
+ }
89
+ return rows[0];
90
+ }
91
+ // ── topology.stream ────────────────────────────────────────────────────────
92
+ /**
93
+ * Subscribe to live topology changes (NPS-2 §12.2).
94
+ *
95
+ * The first NDJSON line (subscription ack) is automatically skipped. Each
96
+ * subsequent line is parsed into a `TopologyEvent`. The generator stops after
97
+ * a `resync_required` event — callers MUST issue a fresh `getSnapshot` before
98
+ * resubscribing.
99
+ */
100
+ async *subscribe(options) {
101
+ const scope = options?.scope ?? "cluster";
102
+ const filter = options?.filter;
103
+ const sinceVersion = options?.sinceVersion;
104
+ const topology = {
105
+ scope: scope === "cluster" ? SCOPE_CLUSTER : SCOPE_MEMBER,
106
+ };
107
+ if (filter !== undefined)
108
+ topology["filter"] = filter;
109
+ if (sinceVersion !== undefined)
110
+ topology["since_version"] = sinceVersion;
111
+ const body = {
112
+ type: TYPE_STREAM,
113
+ action: "subscribe",
114
+ stream_id: crypto.randomUUID(),
115
+ topology,
116
+ };
117
+ const url = `${this.baseUrl}${this.pathPrefix}/subscribe`;
118
+ const res = await fetch(url, {
119
+ method: "POST",
120
+ headers: {
121
+ "Content-Type": "application/json",
122
+ "Accept": "application/x-ndjson",
123
+ },
124
+ body: JSON.stringify(body),
125
+ });
126
+ if (!res.ok) {
127
+ throw await buildFetchError("topology.stream", res);
128
+ }
129
+ if (res.body === null)
130
+ return;
131
+ let ackSkipped = false;
132
+ for await (const line of readNdjsonLines(res.body)) {
133
+ // Skip the first non-empty line (subscription ack).
134
+ if (!ackSkipped) {
135
+ ackSkipped = true;
136
+ continue;
137
+ }
138
+ // Mid-stream protocol error: { status, error } with no event_type.
139
+ const maybeErr = tryParseStreamError(line);
140
+ if (maybeErr !== null)
141
+ throw maybeErr;
142
+ const ev = parseTopologyEvent(line);
143
+ if (ev === null)
144
+ continue;
145
+ yield ev;
146
+ if (ev.kind === EVENT_RESYNC_REQUIRED)
147
+ return;
148
+ }
149
+ }
150
+ }
151
+ // ── NDJSON line reader ────────────────────────────────────────────────────────
152
+ /**
153
+ * Reads a `ReadableStream<Uint8Array>` and yields complete, non-empty lines.
154
+ * Lines are split on `\n`; trailing `\r` is stripped.
155
+ */
156
+ async function* readNdjsonLines(body) {
157
+ const decoder = new TextDecoder();
158
+ let buffer = "";
159
+ const reader = body.getReader();
160
+ try {
161
+ while (true) {
162
+ const { done, value } = await reader.read();
163
+ if (done)
164
+ break;
165
+ buffer += decoder.decode(value, { stream: true });
166
+ let newlineIdx;
167
+ while ((newlineIdx = buffer.indexOf("\n")) !== -1) {
168
+ const raw = buffer.slice(0, newlineIdx);
169
+ buffer = buffer.slice(newlineIdx + 1);
170
+ const line = raw.endsWith("\r") ? raw.slice(0, -1) : raw;
171
+ if (line.length > 0)
172
+ yield line;
173
+ }
174
+ }
175
+ // Flush decoder.
176
+ buffer += decoder.decode();
177
+ const remaining = buffer.endsWith("\r") ? buffer.slice(0, -1) : buffer;
178
+ if (remaining.length > 0)
179
+ yield remaining;
180
+ }
181
+ finally {
182
+ reader.releaseLock();
183
+ }
184
+ }
185
+ // ── Parsing helpers ───────────────────────────────────────────────────────────
186
+ /** Returns an `AnchorTopologyError` if the line is an error frame, else null. */
187
+ function tryParseStreamError(line) {
188
+ try {
189
+ const obj = JSON.parse(line);
190
+ if (typeof obj !== "object" || obj === null)
191
+ return null;
192
+ if ("event_type" in obj)
193
+ return null; // It's a regular event line.
194
+ if (typeof obj["error"] !== "string")
195
+ return null;
196
+ if (typeof obj["status"] !== "string")
197
+ return null;
198
+ const msg = typeof obj["message"] === "string" ? obj["message"] : undefined;
199
+ return new AnchorTopologyError(obj["error"], obj["status"], msg);
200
+ }
201
+ catch {
202
+ return null;
203
+ }
204
+ }
205
+ /** Parses one NDJSON event line into a `TopologyEvent`, or null if unrecognised. */
206
+ function parseTopologyEvent(line) {
207
+ let obj;
208
+ try {
209
+ obj = JSON.parse(line);
210
+ }
211
+ catch {
212
+ return null;
213
+ }
214
+ if (typeof obj !== "object" || obj === null)
215
+ return null;
216
+ const eventType = obj["event_type"];
217
+ if (typeof eventType !== "string")
218
+ return null;
219
+ const version = typeof obj["seq"] === "number" ? obj["seq"] : 0;
220
+ const payload = (obj["payload"] ?? {});
221
+ switch (eventType) {
222
+ case EVENT_MEMBER_JOINED:
223
+ return {
224
+ kind: "member_joined",
225
+ version,
226
+ member: payload,
227
+ };
228
+ case EVENT_MEMBER_LEFT:
229
+ return {
230
+ kind: "member_left",
231
+ version,
232
+ nid: typeof payload["nid"] === "string" ? payload["nid"] : "",
233
+ };
234
+ case EVENT_MEMBER_UPDATED:
235
+ return {
236
+ kind: "member_updated",
237
+ version,
238
+ nid: typeof payload["nid"] === "string" ? payload["nid"] : "",
239
+ changes: (payload["changes"] ?? {}),
240
+ };
241
+ case EVENT_ANCHOR_STATE:
242
+ return {
243
+ kind: "anchor_state",
244
+ version,
245
+ field: typeof payload["field"] === "string" ? payload["field"] : "",
246
+ details: payload["details"],
247
+ };
248
+ case EVENT_RESYNC_REQUIRED:
249
+ return {
250
+ kind: "resync_required",
251
+ version: 0,
252
+ reason: typeof payload["reason"] === "string" ? payload["reason"] : "unknown",
253
+ };
254
+ default:
255
+ return null;
256
+ }
257
+ }
258
+ /** Builds an `AnchorTopologyError` from a non-ok HTTP response. */
259
+ async function buildFetchError(operation, res) {
260
+ let body;
261
+ try {
262
+ body = await res.text();
263
+ }
264
+ catch {
265
+ body = "";
266
+ }
267
+ try {
268
+ const obj = JSON.parse(body);
269
+ if (typeof obj === "object" && obj !== null &&
270
+ typeof obj["error"] === "string" &&
271
+ typeof obj["status"] === "string") {
272
+ const msg = typeof obj["message"] === "string" ? obj["message"] : body;
273
+ return new AnchorTopologyError(obj["error"], obj["status"], msg);
274
+ }
275
+ }
276
+ catch { /* fall through */ }
277
+ return new AnchorTopologyError("UNKNOWN", `HTTP-${res.status}`, `${operation} returned ${res.status}: ${body}`);
278
+ }
279
+ //# sourceMappingURL=anchor-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-client.js","sourceRoot":"","sources":["../../src/nwp/anchor-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { ActionFrame } from "./frames.js";
2
+ import type { MemberInfo, TopologyEvent, TopologyFilter, TopologySnapshot } from "./anchor-client.js";
3
+ import { type ReputationPolicy, type IReputationEvaluator } from "./reputation.js";
4
+ export declare const TopologyWire: {
5
+ readonly TYPE_SNAPSHOT: "topology.snapshot";
6
+ readonly TYPE_STREAM: "topology.stream";
7
+ readonly SCOPE_CLUSTER: "cluster";
8
+ readonly SCOPE_MEMBER: "member";
9
+ readonly SNAPSHOT_ANCHOR_REF: "nps:system:topology:snapshot";
10
+ };
11
+ export declare class TopologyProtocolError extends Error {
12
+ readonly nwpErrorCode: string;
13
+ readonly npsStatus: string;
14
+ constructor(nwpErrorCode: string, npsStatus: string, message: string);
15
+ }
16
+ export declare class AnchorActionError extends Error {
17
+ readonly httpStatus: number;
18
+ readonly npsStatus: string;
19
+ readonly errorCode: string;
20
+ readonly details?: unknown | undefined;
21
+ constructor(httpStatus: number, npsStatus: string, errorCode: string, message: string, details?: unknown | undefined);
22
+ }
23
+ export interface AnchorSnapshotRequest {
24
+ scope: string;
25
+ include: Set<string>;
26
+ depth: number;
27
+ targetNid?: string;
28
+ }
29
+ export interface AnchorStreamRequest {
30
+ scope: string;
31
+ filter?: TopologyFilter;
32
+ sinceVersion?: number;
33
+ }
34
+ export interface AnchorTopologyService {
35
+ readonly anchorNid: string;
36
+ getSnapshot(request: AnchorSnapshotRequest): Promise<TopologySnapshot>;
37
+ subscribe(request: AnchorStreamRequest): AsyncIterable<TopologyEvent>;
38
+ }
39
+ /** Reference in-memory topology service. */
40
+ export declare class InMemoryAnchorTopologyService implements AnchorTopologyService {
41
+ readonly anchorNid: string;
42
+ private readonly members;
43
+ private readonly version;
44
+ private readonly events;
45
+ constructor(anchorNid: string, members?: MemberInfo[], version?: number, events?: TopologyEvent[]);
46
+ getSnapshot(request: AnchorSnapshotRequest): Promise<TopologySnapshot>;
47
+ subscribe(_request: AnchorStreamRequest): AsyncIterable<TopologyEvent>;
48
+ }
49
+ export interface AnchorActionSpec {
50
+ description?: string;
51
+ paramsAnchor?: string;
52
+ resultAnchor?: string;
53
+ estimatedCgn?: number;
54
+ timeoutMsDefault?: number;
55
+ timeoutMsMax?: number;
56
+ requiredCapability?: string;
57
+ async_?: boolean;
58
+ }
59
+ export interface AnchorNodeOptions {
60
+ nodeId: string;
61
+ pathPrefix: string;
62
+ actions: Record<string, AnchorActionSpec>;
63
+ displayName?: string;
64
+ requireAuth?: boolean;
65
+ requiredCapabilities?: string[];
66
+ requireTopologyCapability?: boolean;
67
+ defaultTimeoutMs?: number;
68
+ maxTimeoutMs?: number;
69
+ defaultTokenBudget?: number;
70
+ cgnLimit?: number;
71
+ assuranceHintUrl?: string;
72
+ reputationPolicy?: ReputationPolicy;
73
+ trustAnchors?: string[];
74
+ rateLimits?: Record<string, unknown>;
75
+ autoInjectTraceContext?: boolean;
76
+ }
77
+ export interface InvokeContext {
78
+ agentNid?: string;
79
+ effectiveTimeoutMs: number;
80
+ budgetCgn: number;
81
+ traceId?: string;
82
+ spanId?: string;
83
+ }
84
+ export type AnchorInvokeHandler = (actionId: string, frame: ActionFrame, ctx: InvokeContext) => Promise<unknown>;
85
+ export interface RateDecision {
86
+ allowed: boolean;
87
+ retryAfterSeconds?: number;
88
+ reason?: string;
89
+ }
90
+ export interface AnchorRateLimiter {
91
+ tryAcquire(consumerKey: string, costHint: number): RateDecision;
92
+ release(consumerKey: string): void;
93
+ }
94
+ export declare class AllowAllRateLimiter implements AnchorRateLimiter {
95
+ tryAcquire(): RateDecision;
96
+ release(): void;
97
+ }
98
+ export interface AnchorNodeAppDeps {
99
+ invokeHandler?: AnchorInvokeHandler;
100
+ topologyService?: AnchorTopologyService;
101
+ reputationEvaluator?: IReputationEvaluator;
102
+ rateLimiter?: AnchorRateLimiter;
103
+ }
104
+ export declare class AnchorNodeApp {
105
+ private readonly opt;
106
+ private readonly prefix;
107
+ private readonly handler?;
108
+ private readonly topology?;
109
+ private readonly evaluator?;
110
+ private readonly limiter;
111
+ private readonly nwmJson;
112
+ private readonly actionsJson;
113
+ constructor(options: AnchorNodeOptions, deps?: AnchorNodeAppDeps);
114
+ /** WHATWG Fetch handler. */
115
+ fetch: (req: Request) => Promise<Response>;
116
+ private handleQuery;
117
+ private handleSubscribe;
118
+ private handleInvoke;
119
+ private applyReputation;
120
+ private checkTopologyCapability;
121
+ private clampTimeout;
122
+ private readEffectiveBudget;
123
+ private errorResponse;
124
+ private actionsDict;
125
+ private buildManifest;
126
+ }
127
+ //# sourceMappingURL=anchor-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-server.d.ts","sourceRoot":"","sources":["../../src/nwp/anchor-server.ts"],"names":[],"mappings":"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"}