@labacacia/nps-sdk 1.0.0-alpha.2 → 1.0.0-alpha.4

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 (315) hide show
  1. package/CHANGELOG.cn.md +73 -2
  2. package/CHANGELOG.md +82 -2
  3. package/README.cn.md +8 -2
  4. package/README.md +8 -2
  5. package/dist/core/anchor-cache.d.ts +0 -0
  6. package/dist/core/anchor-cache.d.ts.map +0 -0
  7. package/dist/core/anchor-cache.js +0 -0
  8. package/dist/core/anchor-cache.js.map +0 -0
  9. package/dist/core/cache.d.ts +0 -0
  10. package/dist/core/cache.d.ts.map +0 -0
  11. package/dist/core/cache.js +0 -0
  12. package/dist/core/cache.js.map +0 -0
  13. package/dist/core/canonical-json.d.ts +0 -0
  14. package/dist/core/canonical-json.d.ts.map +0 -0
  15. package/dist/core/canonical-json.js +0 -0
  16. package/dist/core/canonical-json.js.map +0 -0
  17. package/dist/core/codec.d.ts +0 -0
  18. package/dist/core/codec.d.ts.map +0 -0
  19. package/dist/core/codec.js +0 -0
  20. package/dist/core/codec.js.map +0 -0
  21. package/dist/core/codecs/index.d.ts +0 -0
  22. package/dist/core/codecs/index.d.ts.map +0 -0
  23. package/dist/core/codecs/index.js +0 -0
  24. package/dist/core/codecs/index.js.map +0 -0
  25. package/dist/core/codecs/ncp-codec.d.ts +0 -0
  26. package/dist/core/codecs/ncp-codec.d.ts.map +0 -0
  27. package/dist/core/codecs/ncp-codec.js +0 -0
  28. package/dist/core/codecs/ncp-codec.js.map +0 -0
  29. package/dist/core/codecs/tier1-json-codec.d.ts +0 -0
  30. package/dist/core/codecs/tier1-json-codec.d.ts.map +0 -0
  31. package/dist/core/codecs/tier1-json-codec.js +0 -0
  32. package/dist/core/codecs/tier1-json-codec.js.map +0 -0
  33. package/dist/core/codecs/tier2-msgpack-codec.d.ts +0 -0
  34. package/dist/core/codecs/tier2-msgpack-codec.d.ts.map +0 -0
  35. package/dist/core/codecs/tier2-msgpack-codec.js +0 -0
  36. package/dist/core/codecs/tier2-msgpack-codec.js.map +0 -0
  37. package/dist/core/crypto-provider.d.ts +0 -0
  38. package/dist/core/crypto-provider.d.ts.map +0 -0
  39. package/dist/core/crypto-provider.js +0 -0
  40. package/dist/core/crypto-provider.js.map +0 -0
  41. package/dist/core/exceptions.d.ts +0 -0
  42. package/dist/core/exceptions.d.ts.map +0 -0
  43. package/dist/core/exceptions.js +0 -0
  44. package/dist/core/exceptions.js.map +0 -0
  45. package/dist/core/frame-header.d.ts +0 -0
  46. package/dist/core/frame-header.d.ts.map +0 -0
  47. package/dist/core/frame-header.js +0 -0
  48. package/dist/core/frame-header.js.map +0 -0
  49. package/dist/core/frame-registry.d.ts +0 -0
  50. package/dist/core/frame-registry.d.ts.map +0 -0
  51. package/dist/core/frame-registry.js +0 -0
  52. package/dist/core/frame-registry.js.map +0 -0
  53. package/dist/core/frames.d.ts +0 -0
  54. package/dist/core/frames.d.ts.map +0 -0
  55. package/dist/core/frames.js +0 -0
  56. package/dist/core/frames.js.map +0 -0
  57. package/dist/core/index.d.ts +0 -0
  58. package/dist/core/index.d.ts.map +0 -0
  59. package/dist/core/index.js +0 -0
  60. package/dist/core/index.js.map +0 -0
  61. package/dist/core/registry.d.ts +0 -0
  62. package/dist/core/registry.d.ts.map +0 -0
  63. package/dist/core/registry.js +0 -0
  64. package/dist/core/registry.js.map +0 -0
  65. package/dist/core/status-codes.d.ts +0 -0
  66. package/dist/core/status-codes.d.ts.map +0 -0
  67. package/dist/core/status-codes.js +0 -0
  68. package/dist/core/status-codes.js.map +0 -0
  69. package/dist/index.d.ts +0 -0
  70. package/dist/index.d.ts.map +0 -0
  71. package/dist/index.js +0 -0
  72. package/dist/index.js.map +0 -0
  73. package/dist/ncp/frames/anchor-frame.d.ts +0 -0
  74. package/dist/ncp/frames/anchor-frame.d.ts.map +0 -0
  75. package/dist/ncp/frames/anchor-frame.js +0 -0
  76. package/dist/ncp/frames/anchor-frame.js.map +0 -0
  77. package/dist/ncp/frames/caps-frame.d.ts +0 -0
  78. package/dist/ncp/frames/caps-frame.d.ts.map +0 -0
  79. package/dist/ncp/frames/caps-frame.js +0 -0
  80. package/dist/ncp/frames/caps-frame.js.map +0 -0
  81. package/dist/ncp/frames/diff-frame.d.ts +0 -0
  82. package/dist/ncp/frames/diff-frame.d.ts.map +0 -0
  83. package/dist/ncp/frames/diff-frame.js +0 -0
  84. package/dist/ncp/frames/diff-frame.js.map +0 -0
  85. package/dist/ncp/frames/error-frame.d.ts +0 -0
  86. package/dist/ncp/frames/error-frame.d.ts.map +0 -0
  87. package/dist/ncp/frames/error-frame.js +0 -0
  88. package/dist/ncp/frames/error-frame.js.map +0 -0
  89. package/dist/ncp/frames/hello-frame.d.ts +0 -0
  90. package/dist/ncp/frames/hello-frame.d.ts.map +0 -0
  91. package/dist/ncp/frames/hello-frame.js +0 -0
  92. package/dist/ncp/frames/hello-frame.js.map +0 -0
  93. package/dist/ncp/frames/stream-frame.d.ts +0 -0
  94. package/dist/ncp/frames/stream-frame.d.ts.map +0 -0
  95. package/dist/ncp/frames/stream-frame.js +0 -0
  96. package/dist/ncp/frames/stream-frame.js.map +0 -0
  97. package/dist/ncp/frames.d.ts +0 -0
  98. package/dist/ncp/frames.d.ts.map +0 -0
  99. package/dist/ncp/frames.js +0 -0
  100. package/dist/ncp/frames.js.map +0 -0
  101. package/dist/ncp/handshake.d.ts +0 -0
  102. package/dist/ncp/handshake.d.ts.map +0 -0
  103. package/dist/ncp/handshake.js +0 -0
  104. package/dist/ncp/handshake.js.map +0 -0
  105. package/dist/ncp/index.d.ts +1 -0
  106. package/dist/ncp/index.d.ts.map +1 -1
  107. package/dist/ncp/index.js +1 -0
  108. package/dist/ncp/index.js.map +1 -1
  109. package/dist/ncp/ncp-error-codes.d.ts +1 -0
  110. package/dist/ncp/ncp-error-codes.d.ts.map +1 -1
  111. package/dist/ncp/ncp-error-codes.js +2 -0
  112. package/dist/ncp/ncp-error-codes.js.map +1 -1
  113. package/dist/ncp/ncp-patch-format.d.ts +0 -0
  114. package/dist/ncp/ncp-patch-format.d.ts.map +0 -0
  115. package/dist/ncp/ncp-patch-format.js +0 -0
  116. package/dist/ncp/ncp-patch-format.js.map +0 -0
  117. package/dist/ncp/preamble.d.ts +47 -0
  118. package/dist/ncp/preamble.d.ts.map +1 -0
  119. package/dist/ncp/preamble.js +74 -0
  120. package/dist/ncp/preamble.js.map +1 -0
  121. package/dist/ncp/registry.d.ts +0 -0
  122. package/dist/ncp/registry.d.ts.map +0 -0
  123. package/dist/ncp/registry.js +0 -0
  124. package/dist/ncp/registry.js.map +0 -0
  125. package/dist/ncp/stream-manager.d.ts +0 -0
  126. package/dist/ncp/stream-manager.d.ts.map +0 -0
  127. package/dist/ncp/stream-manager.js +0 -0
  128. package/dist/ncp/stream-manager.js.map +0 -0
  129. package/dist/ndp/frames.d.ts +0 -0
  130. package/dist/ndp/frames.d.ts.map +0 -0
  131. package/dist/ndp/frames.js +0 -0
  132. package/dist/ndp/frames.js.map +0 -0
  133. package/dist/ndp/index.d.ts +0 -0
  134. package/dist/ndp/index.d.ts.map +0 -0
  135. package/dist/ndp/index.js +0 -0
  136. package/dist/ndp/index.js.map +0 -0
  137. package/dist/ndp/ndp-registry.d.ts +0 -0
  138. package/dist/ndp/ndp-registry.d.ts.map +0 -0
  139. package/dist/ndp/ndp-registry.js +0 -0
  140. package/dist/ndp/ndp-registry.js.map +0 -0
  141. package/dist/ndp/registry.d.ts +0 -0
  142. package/dist/ndp/registry.d.ts.map +0 -0
  143. package/dist/ndp/registry.js +0 -0
  144. package/dist/ndp/registry.js.map +0 -0
  145. package/dist/ndp/validator.d.ts +0 -0
  146. package/dist/ndp/validator.d.ts.map +0 -0
  147. package/dist/ndp/validator.js +0 -0
  148. package/dist/ndp/validator.js.map +0 -0
  149. package/dist/nip/acme/client.d.ts +31 -0
  150. package/dist/nip/acme/client.d.ts.map +1 -0
  151. package/dist/nip/acme/client.js +136 -0
  152. package/dist/nip/acme/client.js.map +1 -0
  153. package/dist/nip/acme/index.d.ts +6 -0
  154. package/dist/nip/acme/index.d.ts.map +1 -0
  155. package/dist/nip/acme/index.js +8 -0
  156. package/dist/nip/acme/index.js.map +1 -0
  157. package/dist/nip/acme/jws.d.ts +31 -0
  158. package/dist/nip/acme/jws.d.ts.map +1 -0
  159. package/dist/nip/acme/jws.js +76 -0
  160. package/dist/nip/acme/jws.js.map +1 -0
  161. package/dist/nip/acme/messages.d.ts +71 -0
  162. package/dist/nip/acme/messages.d.ts.map +1 -0
  163. package/dist/nip/acme/messages.js +4 -0
  164. package/dist/nip/acme/messages.js.map +1 -0
  165. package/dist/nip/acme/server.d.ts +41 -0
  166. package/dist/nip/acme/server.d.ts.map +1 -0
  167. package/dist/nip/acme/server.js +458 -0
  168. package/dist/nip/acme/server.js.map +1 -0
  169. package/dist/nip/acme/wire.d.ts +19 -0
  170. package/dist/nip/acme/wire.d.ts.map +1 -0
  171. package/dist/nip/acme/wire.js +21 -0
  172. package/dist/nip/acme/wire.js.map +1 -0
  173. package/dist/nip/assurance-level.d.ts +14 -0
  174. package/dist/nip/assurance-level.d.ts.map +1 -0
  175. package/dist/nip/assurance-level.js +33 -0
  176. package/dist/nip/assurance-level.js.map +1 -0
  177. package/dist/nip/cert-format.d.ts +5 -0
  178. package/dist/nip/cert-format.d.ts.map +1 -0
  179. package/dist/nip/cert-format.js +6 -0
  180. package/dist/nip/cert-format.js.map +1 -0
  181. package/dist/nip/error-codes.d.ts +23 -0
  182. package/dist/nip/error-codes.d.ts.map +1 -0
  183. package/dist/nip/error-codes.js +30 -0
  184. package/dist/nip/error-codes.js.map +1 -0
  185. package/dist/nip/frames.d.ts +10 -1
  186. package/dist/nip/frames.d.ts.map +1 -1
  187. package/dist/nip/frames.js +29 -4
  188. package/dist/nip/frames.js.map +1 -1
  189. package/dist/nip/identity.d.ts +0 -0
  190. package/dist/nip/identity.d.ts.map +0 -0
  191. package/dist/nip/identity.js +0 -0
  192. package/dist/nip/identity.js.map +0 -0
  193. package/dist/nip/index.d.ts +6 -0
  194. package/dist/nip/index.d.ts.map +1 -1
  195. package/dist/nip/index.js +7 -0
  196. package/dist/nip/index.js.map +1 -1
  197. package/dist/nip/registry.d.ts +0 -0
  198. package/dist/nip/registry.d.ts.map +0 -0
  199. package/dist/nip/registry.js +0 -0
  200. package/dist/nip/registry.js.map +0 -0
  201. package/dist/nip/verifier.d.ts +23 -0
  202. package/dist/nip/verifier.d.ts.map +1 -0
  203. package/dist/nip/verifier.js +90 -0
  204. package/dist/nip/verifier.js.map +1 -0
  205. package/dist/nip/x509/builder.d.ts +35 -0
  206. package/dist/nip/x509/builder.d.ts.map +1 -0
  207. package/dist/nip/x509/builder.js +59 -0
  208. package/dist/nip/x509/builder.js.map +1 -0
  209. package/dist/nip/x509/index.d.ts +4 -0
  210. package/dist/nip/x509/index.d.ts.map +1 -0
  211. package/dist/nip/x509/index.js +6 -0
  212. package/dist/nip/x509/index.js.map +1 -0
  213. package/dist/nip/x509/oids.d.ts +17 -0
  214. package/dist/nip/x509/oids.d.ts.map +1 -0
  215. package/dist/nip/x509/oids.js +23 -0
  216. package/dist/nip/x509/oids.js.map +1 -0
  217. package/dist/nip/x509/verifier.d.ts +26 -0
  218. package/dist/nip/x509/verifier.d.ts.map +1 -0
  219. package/dist/nip/x509/verifier.js +171 -0
  220. package/dist/nip/x509/verifier.js.map +1 -0
  221. package/dist/nop/client.d.ts +0 -0
  222. package/dist/nop/client.d.ts.map +0 -0
  223. package/dist/nop/client.js +0 -0
  224. package/dist/nop/client.js.map +0 -0
  225. package/dist/nop/frames.d.ts +0 -0
  226. package/dist/nop/frames.d.ts.map +0 -0
  227. package/dist/nop/frames.js +0 -0
  228. package/dist/nop/frames.js.map +0 -0
  229. package/dist/nop/index.d.ts +0 -0
  230. package/dist/nop/index.d.ts.map +0 -0
  231. package/dist/nop/index.js +0 -0
  232. package/dist/nop/index.js.map +0 -0
  233. package/dist/nop/models.d.ts +0 -0
  234. package/dist/nop/models.d.ts.map +0 -0
  235. package/dist/nop/models.js +0 -0
  236. package/dist/nop/models.js.map +0 -0
  237. package/dist/nop/nop-types.d.ts +0 -0
  238. package/dist/nop/nop-types.d.ts.map +0 -0
  239. package/dist/nop/nop-types.js +0 -0
  240. package/dist/nop/nop-types.js.map +0 -0
  241. package/dist/nop/registry.d.ts +0 -0
  242. package/dist/nop/registry.d.ts.map +0 -0
  243. package/dist/nop/registry.js +0 -0
  244. package/dist/nop/registry.js.map +0 -0
  245. package/dist/nwp/client.d.ts +0 -0
  246. package/dist/nwp/client.d.ts.map +0 -0
  247. package/dist/nwp/client.js +0 -0
  248. package/dist/nwp/client.js.map +0 -0
  249. package/dist/nwp/frames.d.ts +0 -0
  250. package/dist/nwp/frames.d.ts.map +0 -0
  251. package/dist/nwp/frames.js +0 -0
  252. package/dist/nwp/frames.js.map +0 -0
  253. package/dist/nwp/index.d.ts +0 -0
  254. package/dist/nwp/index.d.ts.map +0 -0
  255. package/dist/nwp/index.js +0 -0
  256. package/dist/nwp/index.js.map +0 -0
  257. package/dist/nwp/registry.d.ts +0 -0
  258. package/dist/nwp/registry.d.ts.map +0 -0
  259. package/dist/nwp/registry.js +0 -0
  260. package/dist/nwp/registry.js.map +0 -0
  261. package/dist/setup.d.ts +0 -0
  262. package/dist/setup.d.ts.map +0 -0
  263. package/dist/setup.js +0 -0
  264. package/dist/setup.js.map +0 -0
  265. package/package.json +2 -1
  266. package/src/index.ts +0 -0
  267. package/src/ncp/index.ts +1 -0
  268. package/src/ncp/ncp-error-codes.ts +2 -0
  269. package/src/ncp/preamble.ts +79 -0
  270. package/src/nip/acme/client.ts +185 -0
  271. package/src/nip/acme/index.ts +8 -0
  272. package/src/nip/acme/jws.ts +109 -0
  273. package/src/nip/acme/messages.ts +85 -0
  274. package/src/nip/acme/server.ts +480 -0
  275. package/src/nip/acme/wire.ts +24 -0
  276. package/src/nip/assurance-level.ts +35 -0
  277. package/src/nip/cert-format.ts +9 -0
  278. package/src/nip/error-codes.ts +36 -0
  279. package/src/nip/frames.ts +35 -3
  280. package/src/nip/index.ts +8 -0
  281. package/src/nip/verifier.ts +122 -0
  282. package/src/nip/x509/builder.ts +91 -0
  283. package/src/nip/x509/index.ts +6 -0
  284. package/src/nip/x509/oids.ts +28 -0
  285. package/src/nip/x509/verifier.ts +214 -0
  286. package/tests/_rfc0002-keys.ts +57 -0
  287. package/tests/ncp/preamble.test.ts +93 -0
  288. package/tests/nip-acme-agent01.test.ts +192 -0
  289. package/tests/nip-x509.test.ts +280 -0
  290. package/.npmrc.publish +0 -1
  291. package/dist/codec-CmHeovTV.d.cts +0 -120
  292. package/dist/codec-CmHeovTV.d.ts +0 -120
  293. package/dist/core/index.cjs +0 -371
  294. package/dist/core/index.cjs.map +0 -1
  295. package/dist/core/index.d.cts +0 -41
  296. package/dist/frames-B3qLdl_g.d.cts +0 -77
  297. package/dist/frames-Ff7-ZPUl.d.ts +0 -77
  298. package/dist/index.cjs +0 -1556
  299. package/dist/index.cjs.map +0 -1
  300. package/dist/index.d.cts +0 -21
  301. package/dist/ncp/index.cjs +0 -188
  302. package/dist/ncp/index.cjs.map +0 -1
  303. package/dist/ncp/index.d.cts +0 -6
  304. package/dist/ndp/index.cjs +0 -252
  305. package/dist/ndp/index.cjs.map +0 -1
  306. package/dist/ndp/index.d.cts +0 -86
  307. package/dist/nip/index.cjs +0 -214
  308. package/dist/nip/index.cjs.map +0 -1
  309. package/dist/nip/index.d.cts +0 -65
  310. package/dist/nop/index.cjs +0 -762
  311. package/dist/nop/index.cjs.map +0 -1
  312. package/dist/nop/index.d.cts +0 -155
  313. package/dist/nwp/index.cjs +0 -658
  314. package/dist/nwp/index.cjs.map +0 -1
  315. package/dist/nwp/index.d.cts +0 -65
@@ -1,762 +0,0 @@
1
- 'use strict';
2
-
3
- var msgpack = require('@msgpack/msgpack');
4
-
5
- function _interopNamespace(e) {
6
- if (e && e.__esModule) return e;
7
- var n = Object.create(null);
8
- if (e) {
9
- Object.keys(e).forEach(function (k) {
10
- if (k !== 'default') {
11
- var d = Object.getOwnPropertyDescriptor(e, k);
12
- Object.defineProperty(n, k, d.get ? d : {
13
- enumerable: true,
14
- get: function () { return e[k]; }
15
- });
16
- }
17
- });
18
- }
19
- n.default = e;
20
- return Object.freeze(n);
21
- }
22
-
23
- var msgpack__namespace = /*#__PURE__*/_interopNamespace(msgpack);
24
-
25
- // src/nop/models.ts
26
- var TaskState = /* @__PURE__ */ ((TaskState2) => {
27
- TaskState2["PENDING"] = "pending";
28
- TaskState2["PREFLIGHT"] = "preflight";
29
- TaskState2["RUNNING"] = "running";
30
- TaskState2["WAITING_SYNC"] = "waiting_sync";
31
- TaskState2["COMPLETED"] = "completed";
32
- TaskState2["FAILED"] = "failed";
33
- TaskState2["CANCELLED"] = "cancelled";
34
- TaskState2["SKIPPED"] = "skipped";
35
- return TaskState2;
36
- })(TaskState || {});
37
- var TaskPriority = /* @__PURE__ */ ((TaskPriority2) => {
38
- TaskPriority2["LOW"] = "low";
39
- TaskPriority2["NORMAL"] = "normal";
40
- TaskPriority2["HIGH"] = "high";
41
- return TaskPriority2;
42
- })(TaskPriority || {});
43
- var BackoffStrategy = /* @__PURE__ */ ((BackoffStrategy2) => {
44
- BackoffStrategy2["FIXED"] = "fixed";
45
- BackoffStrategy2["LINEAR"] = "linear";
46
- BackoffStrategy2["EXPONENTIAL"] = "exponential";
47
- return BackoffStrategy2;
48
- })(BackoffStrategy || {});
49
- var AggregateStrategy = /* @__PURE__ */ ((AggregateStrategy2) => {
50
- AggregateStrategy2["MERGE"] = "merge";
51
- AggregateStrategy2["FIRST"] = "first";
52
- AggregateStrategy2["FASTEST_K"] = "fastest_k";
53
- AggregateStrategy2["ALL"] = "all";
54
- return AggregateStrategy2;
55
- })(AggregateStrategy || {});
56
- function computeDelayMs(policy, attempt) {
57
- const base = policy.baseDelayMs ?? 1e3;
58
- const cap = policy.maxDelayMs ?? 3e4;
59
- let delay;
60
- switch (policy.backoff) {
61
- case "fixed" /* FIXED */:
62
- delay = base;
63
- break;
64
- case "linear" /* LINEAR */:
65
- delay = base * (attempt + 1);
66
- break;
67
- case "exponential" /* EXPONENTIAL */:
68
- delay = base * Math.pow(2, attempt);
69
- break;
70
- }
71
- return Math.min(delay, cap);
72
- }
73
-
74
- // src/core/exceptions.ts
75
- var NpsError = class extends Error {
76
- constructor(message) {
77
- super(message);
78
- this.name = new.target.name;
79
- }
80
- };
81
- var NpsFrameError = class extends NpsError {
82
- };
83
- var NpsCodecError = class extends NpsError {
84
- };
85
-
86
- // src/core/frames.ts
87
- var FrameFlags = {
88
- TIER1_JSON: 0,
89
- TIER2_MSGPACK: 1,
90
- FINAL: 4,
91
- EXT: 128
92
- };
93
- var DEFAULT_HEADER_SIZE = 4;
94
- var EXTENDED_HEADER_SIZE = 8;
95
- var DEFAULT_MAX_PAYLOAD = 65535;
96
- var FrameHeader = class _FrameHeader {
97
- constructor(frameType, flags, payloadLength) {
98
- this.frameType = frameType;
99
- this.flags = flags;
100
- this.payloadLength = payloadLength;
101
- }
102
- frameType;
103
- flags;
104
- payloadLength;
105
- get isExtended() {
106
- return (this.flags & FrameFlags.EXT) !== 0;
107
- }
108
- get headerSize() {
109
- return this.isExtended ? EXTENDED_HEADER_SIZE : DEFAULT_HEADER_SIZE;
110
- }
111
- get encodingTier() {
112
- return this.flags & 3;
113
- }
114
- get isFinal() {
115
- return (this.flags & 4) !== 0;
116
- }
117
- get isEncrypted() {
118
- return (this.flags & 8) !== 0;
119
- }
120
- // ── Parsing ───────────────────────────────────────────────────────────────
121
- static parse(buf) {
122
- if (buf.length < 2) {
123
- throw new NpsFrameError(
124
- `Buffer too small to read frame type and flags: need >= 2 bytes, got ${buf.length}.`
125
- );
126
- }
127
- const flags = buf[1];
128
- const ext = (flags & FrameFlags.EXT) !== 0;
129
- if (ext) {
130
- if (buf.length < EXTENDED_HEADER_SIZE) {
131
- throw new NpsFrameError(
132
- `Buffer too small for extended frame header: need ${EXTENDED_HEADER_SIZE} bytes, got ${buf.length}.`
133
- );
134
- }
135
- const view2 = new DataView(buf.buffer, buf.byteOffset);
136
- const payloadLength2 = view2.getUint32(4, false);
137
- return new _FrameHeader(buf[0], flags, payloadLength2);
138
- }
139
- if (buf.length < DEFAULT_HEADER_SIZE) {
140
- throw new NpsFrameError(
141
- `Buffer too small for frame header: need ${DEFAULT_HEADER_SIZE} bytes, got ${buf.length}.`
142
- );
143
- }
144
- const view = new DataView(buf.buffer, buf.byteOffset);
145
- const payloadLength = view.getUint16(2, false);
146
- return new _FrameHeader(buf[0], flags, payloadLength);
147
- }
148
- // ── Serialisation ─────────────────────────────────────────────────────────
149
- toBytes() {
150
- if (this.isExtended) {
151
- const buf2 = new Uint8Array(EXTENDED_HEADER_SIZE);
152
- const view2 = new DataView(buf2.buffer);
153
- view2.setUint8(0, this.frameType);
154
- view2.setUint8(1, this.flags);
155
- view2.setUint16(2, 0, false);
156
- view2.setUint32(4, this.payloadLength, false);
157
- return buf2;
158
- }
159
- const buf = new Uint8Array(DEFAULT_HEADER_SIZE);
160
- const view = new DataView(buf.buffer);
161
- view.setUint8(0, this.frameType);
162
- view.setUint8(1, this.flags);
163
- view.setUint16(2, this.payloadLength, false);
164
- return buf;
165
- }
166
- toString() {
167
- return `FrameHeader(frameType=0x${this.frameType.toString(16).padStart(2, "0")}, flags=0x${this.flags.toString(16).padStart(2, "0")}, payloadLength=${this.payloadLength})`;
168
- }
169
- };
170
-
171
- // src/nop/frames.ts
172
- var TaskFrame = class _TaskFrame {
173
- constructor(taskId, dag, timeoutMs, callbackUrl, context, priority, depth) {
174
- this.taskId = taskId;
175
- this.dag = dag;
176
- this.timeoutMs = timeoutMs;
177
- this.callbackUrl = callbackUrl;
178
- this.context = context;
179
- this.priority = priority;
180
- this.depth = depth;
181
- }
182
- taskId;
183
- dag;
184
- timeoutMs;
185
- callbackUrl;
186
- context;
187
- priority;
188
- depth;
189
- frameType = 64 /* TASK */;
190
- preferredTier = 1 /* MSGPACK */;
191
- toDict() {
192
- return {
193
- task_id: this.taskId,
194
- dag: this.dag,
195
- timeout_ms: this.timeoutMs ?? null,
196
- callback_url: this.callbackUrl ?? null,
197
- context: this.context ?? null,
198
- priority: this.priority ?? null,
199
- depth: this.depth ?? null
200
- };
201
- }
202
- static fromDict(data) {
203
- return new _TaskFrame(
204
- data["task_id"],
205
- data["dag"],
206
- data["timeout_ms"] ?? void 0,
207
- data["callback_url"] ?? void 0,
208
- data["context"] ?? void 0,
209
- data["priority"] ?? void 0,
210
- data["depth"] ?? void 0
211
- );
212
- }
213
- };
214
- var DelegateFrame = class _DelegateFrame {
215
- constructor(taskId, subtaskId, action, agentNid, inputs, params, idempotencyKey) {
216
- this.taskId = taskId;
217
- this.subtaskId = subtaskId;
218
- this.action = action;
219
- this.agentNid = agentNid;
220
- this.inputs = inputs;
221
- this.params = params;
222
- this.idempotencyKey = idempotencyKey;
223
- }
224
- taskId;
225
- subtaskId;
226
- action;
227
- agentNid;
228
- inputs;
229
- params;
230
- idempotencyKey;
231
- frameType = 65 /* DELEGATE */;
232
- preferredTier = 1 /* MSGPACK */;
233
- toDict() {
234
- return {
235
- task_id: this.taskId,
236
- subtask_id: this.subtaskId,
237
- action: this.action,
238
- agent_nid: this.agentNid,
239
- inputs: this.inputs ?? null,
240
- params: this.params ?? null,
241
- idempotency_key: this.idempotencyKey ?? null
242
- };
243
- }
244
- static fromDict(data) {
245
- return new _DelegateFrame(
246
- data["task_id"],
247
- data["subtask_id"],
248
- data["action"],
249
- data["agent_nid"],
250
- data["inputs"] ?? void 0,
251
- data["params"] ?? void 0,
252
- data["idempotency_key"] ?? void 0
253
- );
254
- }
255
- };
256
- var SyncFrame = class _SyncFrame {
257
- constructor(taskId, syncId, waitFor, minRequired = 0, aggregate = "merge", timeoutMs) {
258
- this.taskId = taskId;
259
- this.syncId = syncId;
260
- this.waitFor = waitFor;
261
- this.minRequired = minRequired;
262
- this.aggregate = aggregate;
263
- this.timeoutMs = timeoutMs;
264
- }
265
- taskId;
266
- syncId;
267
- waitFor;
268
- minRequired;
269
- aggregate;
270
- timeoutMs;
271
- frameType = 66 /* SYNC */;
272
- preferredTier = 1 /* MSGPACK */;
273
- toDict() {
274
- return {
275
- task_id: this.taskId,
276
- sync_id: this.syncId,
277
- wait_for: this.waitFor,
278
- min_required: this.minRequired,
279
- aggregate: this.aggregate,
280
- timeout_ms: this.timeoutMs ?? null
281
- };
282
- }
283
- static fromDict(data) {
284
- return new _SyncFrame(
285
- data["task_id"],
286
- data["sync_id"],
287
- data["wait_for"],
288
- data["min_required"] ?? 0,
289
- data["aggregate"] ?? "merge",
290
- data["timeout_ms"] ?? void 0
291
- );
292
- }
293
- };
294
- var AlignStreamFrame = class _AlignStreamFrame {
295
- constructor(streamId, taskId, subtaskId, seq, isFinal, senderNid, data, error, windowSize) {
296
- this.streamId = streamId;
297
- this.taskId = taskId;
298
- this.subtaskId = subtaskId;
299
- this.seq = seq;
300
- this.isFinal = isFinal;
301
- this.senderNid = senderNid;
302
- this.data = data;
303
- this.error = error;
304
- this.windowSize = windowSize;
305
- }
306
- streamId;
307
- taskId;
308
- subtaskId;
309
- seq;
310
- isFinal;
311
- senderNid;
312
- data;
313
- error;
314
- windowSize;
315
- frameType = 67 /* ALIGN_STREAM */;
316
- preferredTier = 1 /* MSGPACK */;
317
- toDict() {
318
- return {
319
- stream_id: this.streamId,
320
- task_id: this.taskId,
321
- subtask_id: this.subtaskId,
322
- seq: this.seq,
323
- is_final: this.isFinal,
324
- sender_nid: this.senderNid,
325
- data: this.data ?? null,
326
- error: this.error ? { error_code: this.error.errorCode, message: this.error.message ?? null } : null,
327
- window_size: this.windowSize ?? null
328
- };
329
- }
330
- static fromDict(data) {
331
- const rawError = data["error"];
332
- return new _AlignStreamFrame(
333
- data["stream_id"],
334
- data["task_id"],
335
- data["subtask_id"],
336
- data["seq"],
337
- data["is_final"],
338
- data["sender_nid"],
339
- data["data"] ?? void 0,
340
- rawError ? { errorCode: rawError.error_code, ...rawError.message != null ? { message: rawError.message } : {} } : void 0,
341
- data["window_size"] ?? void 0
342
- );
343
- }
344
- };
345
-
346
- // src/nop/registry.ts
347
- function registerNopFrames(registry) {
348
- registry.register(64 /* TASK */, TaskFrame);
349
- registry.register(65 /* DELEGATE */, DelegateFrame);
350
- registry.register(66 /* SYNC */, SyncFrame);
351
- registry.register(67 /* ALIGN_STREAM */, AlignStreamFrame);
352
- }
353
- var Tier1JsonCodec = class {
354
- encode(frame) {
355
- try {
356
- const json = JSON.stringify(frame.toDict());
357
- return new TextEncoder().encode(json);
358
- } catch (err) {
359
- throw new NpsCodecError(
360
- `Tier-1 JSON encode failed for 0x${frame.frameType.toString(16).padStart(2, "0")}: ${String(err)}`
361
- );
362
- }
363
- }
364
- decode(frameType, payload, registry) {
365
- const cls = registry.resolve(frameType);
366
- try {
367
- const text = new TextDecoder().decode(payload);
368
- const data = JSON.parse(text);
369
- return cls.fromDict(data);
370
- } catch (err) {
371
- throw new NpsCodecError(
372
- `Tier-1 JSON decode failed for 0x${frameType.toString(16).padStart(2, "0")}: ${String(err)}`
373
- );
374
- }
375
- }
376
- };
377
- var Tier2MsgPackCodec = class {
378
- encode(frame) {
379
- try {
380
- return msgpack__namespace.encode(frame.toDict());
381
- } catch (err) {
382
- throw new NpsCodecError(
383
- `Tier-2 MsgPack encode failed for 0x${frame.frameType.toString(16).padStart(2, "0")}: ${String(err)}`
384
- );
385
- }
386
- }
387
- decode(frameType, payload, registry) {
388
- const cls = registry.resolve(frameType);
389
- try {
390
- const data = msgpack__namespace.decode(payload);
391
- return cls.fromDict(data);
392
- } catch (err) {
393
- throw new NpsCodecError(
394
- `Tier-2 MsgPack decode failed for 0x${frameType.toString(16).padStart(2, "0")}: ${String(err)}`
395
- );
396
- }
397
- }
398
- };
399
- var NpsFrameCodec = class {
400
- _registry;
401
- _maxPayload;
402
- _json = new Tier1JsonCodec();
403
- _msgpack = new Tier2MsgPackCodec();
404
- constructor(registry, options = {}) {
405
- this._registry = registry;
406
- this._maxPayload = options.maxPayload ?? DEFAULT_MAX_PAYLOAD;
407
- }
408
- // ── Encode ────────────────────────────────────────────────────────────────
409
- encode(frame, options = {}) {
410
- const tier = options.overrideTier ?? frame.preferredTier;
411
- const tierCodec = this._selectCodec(tier);
412
- let payload;
413
- try {
414
- payload = tierCodec.encode(frame);
415
- } catch (err) {
416
- if (err instanceof NpsCodecError) throw err;
417
- throw new NpsCodecError(`Encode failed for 0x${frame.frameType.toString(16)}.`);
418
- }
419
- if (payload.length > this._maxPayload) {
420
- throw new NpsCodecError(
421
- `Encoded payload for 0x${frame.frameType.toString(16).padStart(2, "0")} exceeds max_frame_payload (${payload.length} bytes > ${this._maxPayload}). Use StreamFrame (0x03) for large payloads.`
422
- );
423
- }
424
- const useExt = payload.length > DEFAULT_MAX_PAYLOAD;
425
- let flags = this._buildFlags(frame, tier);
426
- if (useExt) flags |= FrameFlags.EXT;
427
- const header = new FrameHeader(frame.frameType, flags, payload.length);
428
- const headerBytes = header.toBytes();
429
- const wire = new Uint8Array(headerBytes.length + payload.length);
430
- wire.set(headerBytes, 0);
431
- wire.set(payload, headerBytes.length);
432
- return wire;
433
- }
434
- // ── Decode ────────────────────────────────────────────────────────────────
435
- decode(wire) {
436
- const header = FrameHeader.parse(wire);
437
- const payload = wire.slice(header.headerSize, header.headerSize + header.payloadLength);
438
- const codec = this._selectCodec(header.encodingTier);
439
- return codec.decode(header.frameType, payload, this._registry);
440
- }
441
- static peekHeader(wire) {
442
- return FrameHeader.parse(wire);
443
- }
444
- // ── Private ───────────────────────────────────────────────────────────────
445
- _buildFlags(frame, tier) {
446
- let flags = tier === 0 /* JSON */ ? FrameFlags.TIER1_JSON : FrameFlags.TIER2_MSGPACK;
447
- const isStreamFrame = "isLast" in frame;
448
- const isFinal = !isStreamFrame || frame.isLast;
449
- if (isFinal) flags |= FrameFlags.FINAL;
450
- return flags;
451
- }
452
- _selectCodec(tier) {
453
- if (tier === 0 /* JSON */) return this._json;
454
- if (tier === 1 /* MSGPACK */) return this._msgpack;
455
- throw new NpsCodecError(`Unsupported encoding tier: 0x${tier.toString(16).padStart(2, "0")}.`);
456
- }
457
- };
458
-
459
- // src/core/registry.ts
460
- var FrameRegistry = class {
461
- _map = /* @__PURE__ */ new Map();
462
- register(frameType, cls) {
463
- this._map.set(frameType, cls);
464
- }
465
- resolve(frameType) {
466
- const cls = this._map.get(frameType);
467
- if (cls === void 0) {
468
- throw new NpsFrameError(
469
- `No frame class registered for type 0x${frameType.toString(16).padStart(2, "0")}.`
470
- );
471
- }
472
- return cls;
473
- }
474
- };
475
-
476
- // src/ncp/frames.ts
477
- var AnchorFrame = class _AnchorFrame {
478
- constructor(anchorId, schema, ttl = 3600) {
479
- this.anchorId = anchorId;
480
- this.schema = schema;
481
- this.ttl = ttl;
482
- }
483
- anchorId;
484
- schema;
485
- ttl;
486
- frameType = 1 /* ANCHOR */;
487
- preferredTier = 1 /* MSGPACK */;
488
- toDict() {
489
- return {
490
- anchor_id: this.anchorId,
491
- schema: { fields: this.schema.fields.map((f) => ({ ...f })) },
492
- ttl: this.ttl
493
- };
494
- }
495
- static fromDict(data) {
496
- const schemaRaw = data["schema"];
497
- return new _AnchorFrame(
498
- data["anchor_id"],
499
- { fields: schemaRaw.fields },
500
- data["ttl"] ?? 3600
501
- );
502
- }
503
- };
504
- var DiffFrame = class _DiffFrame {
505
- constructor(anchorRef, baseSeq, patch, entityId) {
506
- this.anchorRef = anchorRef;
507
- this.baseSeq = baseSeq;
508
- this.patch = patch;
509
- this.entityId = entityId;
510
- }
511
- anchorRef;
512
- baseSeq;
513
- patch;
514
- entityId;
515
- frameType = 2 /* DIFF */;
516
- preferredTier = 1 /* MSGPACK */;
517
- toDict() {
518
- return {
519
- anchor_ref: this.anchorRef,
520
- base_seq: this.baseSeq,
521
- patch: this.patch.map((p) => ({ ...p })),
522
- entity_id: this.entityId ?? null
523
- };
524
- }
525
- static fromDict(data) {
526
- return new _DiffFrame(
527
- data["anchor_ref"],
528
- data["base_seq"],
529
- data["patch"],
530
- data["entity_id"] ?? void 0
531
- );
532
- }
533
- };
534
- var StreamFrame = class _StreamFrame {
535
- constructor(streamId, seq, isLast, data, anchorRef, windowSize) {
536
- this.streamId = streamId;
537
- this.seq = seq;
538
- this.isLast = isLast;
539
- this.data = data;
540
- this.anchorRef = anchorRef;
541
- this.windowSize = windowSize;
542
- }
543
- streamId;
544
- seq;
545
- isLast;
546
- data;
547
- anchorRef;
548
- windowSize;
549
- frameType = 3 /* STREAM */;
550
- preferredTier = 1 /* MSGPACK */;
551
- toDict() {
552
- return {
553
- stream_id: this.streamId,
554
- seq: this.seq,
555
- is_last: this.isLast,
556
- data: this.data,
557
- anchor_ref: this.anchorRef ?? null,
558
- window_size: this.windowSize ?? null
559
- };
560
- }
561
- static fromDict(data) {
562
- return new _StreamFrame(
563
- data["stream_id"],
564
- data["seq"],
565
- data["is_last"],
566
- data["data"],
567
- data["anchor_ref"] ?? void 0,
568
- data["window_size"] ?? void 0
569
- );
570
- }
571
- };
572
- var CapsFrame = class _CapsFrame {
573
- constructor(anchorRef, count, data, nextCursor, tokenEst, cached, tokenizerUsed) {
574
- this.anchorRef = anchorRef;
575
- this.count = count;
576
- this.data = data;
577
- this.nextCursor = nextCursor;
578
- this.tokenEst = tokenEst;
579
- this.cached = cached;
580
- this.tokenizerUsed = tokenizerUsed;
581
- }
582
- anchorRef;
583
- count;
584
- data;
585
- nextCursor;
586
- tokenEst;
587
- cached;
588
- tokenizerUsed;
589
- frameType = 4 /* CAPS */;
590
- preferredTier = 1 /* MSGPACK */;
591
- toDict() {
592
- return {
593
- anchor_ref: this.anchorRef,
594
- count: this.count,
595
- data: this.data,
596
- next_cursor: this.nextCursor ?? null,
597
- token_est: this.tokenEst ?? null,
598
- cached: this.cached ?? null,
599
- tokenizer_used: this.tokenizerUsed ?? null
600
- };
601
- }
602
- static fromDict(data) {
603
- return new _CapsFrame(
604
- data["anchor_ref"],
605
- data["count"],
606
- data["data"],
607
- data["next_cursor"] ?? void 0,
608
- data["token_est"] ?? void 0,
609
- data["cached"] ?? void 0,
610
- data["tokenizer_used"] ?? void 0
611
- );
612
- }
613
- };
614
- var ErrorFrame = class _ErrorFrame {
615
- constructor(status, error, message, details) {
616
- this.status = status;
617
- this.error = error;
618
- this.message = message;
619
- this.details = details;
620
- }
621
- status;
622
- error;
623
- message;
624
- details;
625
- frameType = 254 /* ERROR */;
626
- preferredTier = 1 /* MSGPACK */;
627
- toDict() {
628
- return {
629
- status: this.status,
630
- error: this.error,
631
- message: this.message ?? null,
632
- details: this.details ?? null
633
- };
634
- }
635
- static fromDict(data) {
636
- return new _ErrorFrame(
637
- data["status"],
638
- data["error"],
639
- data["message"] ?? void 0,
640
- data["details"] ?? void 0
641
- );
642
- }
643
- };
644
-
645
- // src/ncp/registry.ts
646
- function registerNcpFrames(registry) {
647
- registry.register(1 /* ANCHOR */, AnchorFrame);
648
- registry.register(2 /* DIFF */, DiffFrame);
649
- registry.register(3 /* STREAM */, StreamFrame);
650
- registry.register(4 /* CAPS */, CapsFrame);
651
- registry.register(254 /* ERROR */, ErrorFrame);
652
- }
653
-
654
- // src/nop/client.ts
655
- var TERMINAL_STATES = /* @__PURE__ */ new Set([
656
- "completed" /* COMPLETED */,
657
- "failed" /* FAILED */,
658
- "cancelled" /* CANCELLED */
659
- ]);
660
- var NopTaskStatus = class {
661
- constructor(_raw) {
662
- this._raw = _raw;
663
- }
664
- _raw;
665
- get taskId() {
666
- return this._raw["task_id"];
667
- }
668
- get state() {
669
- return this._raw["state"];
670
- }
671
- get isTerminal() {
672
- return TERMINAL_STATES.has(this._raw["state"]);
673
- }
674
- get aggregatedResult() {
675
- return this._raw["aggregated_result"];
676
- }
677
- get errorCode() {
678
- return this._raw["error_code"] ?? void 0;
679
- }
680
- get errorMessage() {
681
- return this._raw["error_message"] ?? void 0;
682
- }
683
- get nodeResults() {
684
- return this._raw["node_results"] ?? {};
685
- }
686
- get raw() {
687
- return this._raw;
688
- }
689
- toString() {
690
- return `NopTaskStatus(taskId=${this.taskId}, state=${String(this._raw["state"])})`;
691
- }
692
- };
693
- var NopClient = class {
694
- _baseUrl;
695
- _codec;
696
- _tier;
697
- constructor(baseUrl, options = {}) {
698
- this._baseUrl = baseUrl.replace(/\/$/, "");
699
- this._tier = options.defaultTier ?? 1 /* MSGPACK */;
700
- const registry = options.registry ?? (() => {
701
- const r = new FrameRegistry();
702
- registerNcpFrames(r);
703
- registerNopFrames(r);
704
- return r;
705
- })();
706
- this._codec = new NpsFrameCodec(registry);
707
- }
708
- async submit(frame) {
709
- const wire = this._codec.encode(frame, { overrideTier: this._tier });
710
- const res = await fetch(`${this._baseUrl}/task`, {
711
- method: "POST",
712
- body: wire,
713
- headers: { "Content-Type": "application/x-nps-frame", "Accept": "application/json" }
714
- });
715
- if (!res.ok) throw new Error(`NOP /task failed: HTTP ${res.status}`);
716
- const data = await res.json();
717
- return data["task_id"];
718
- }
719
- async getStatus(taskId) {
720
- const res = await fetch(`${this._baseUrl}/task/${taskId}`, {
721
- headers: { "Accept": "application/json" }
722
- });
723
- if (!res.ok) throw new Error(`NOP /task/${taskId} failed: HTTP ${res.status}`);
724
- return new NopTaskStatus(await res.json());
725
- }
726
- async cancel(taskId) {
727
- const res = await fetch(`${this._baseUrl}/task/${taskId}/cancel`, {
728
- method: "POST",
729
- headers: { "Accept": "application/json" }
730
- });
731
- if (!res.ok) throw new Error(`NOP /task/${taskId}/cancel failed: HTTP ${res.status}`);
732
- }
733
- async wait(taskId, options = {}) {
734
- const pollIntervalMs = options.pollIntervalMs ?? 1e3;
735
- const timeoutMs = options.timeoutMs ?? 3e4;
736
- const deadline = Date.now() + timeoutMs;
737
- while (true) {
738
- const status = await this.getStatus(taskId);
739
- if (status.isTerminal) return status;
740
- const remaining = deadline - Date.now();
741
- if (remaining <= 0) {
742
- throw new Error(`Task '${taskId}' did not complete within ${timeoutMs}ms (state: ${String(status.raw["state"])}).`);
743
- }
744
- await new Promise((resolve) => setTimeout(resolve, Math.min(pollIntervalMs, remaining)));
745
- }
746
- }
747
- };
748
-
749
- exports.AggregateStrategy = AggregateStrategy;
750
- exports.AlignStreamFrame = AlignStreamFrame;
751
- exports.BackoffStrategy = BackoffStrategy;
752
- exports.DelegateFrame = DelegateFrame;
753
- exports.NopClient = NopClient;
754
- exports.NopTaskStatus = NopTaskStatus;
755
- exports.SyncFrame = SyncFrame;
756
- exports.TaskFrame = TaskFrame;
757
- exports.TaskPriority = TaskPriority;
758
- exports.TaskState = TaskState;
759
- exports.computeDelayMs = computeDelayMs;
760
- exports.registerNopFrames = registerNopFrames;
761
- //# sourceMappingURL=index.cjs.map
762
- //# sourceMappingURL=index.cjs.map