@labacacia/nps-sdk 1.0.0-alpha.13 → 1.0.0-alpha.15

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 (76) hide show
  1. package/CHANGELOG.cn.md +8 -133
  2. package/CHANGELOG.md +18 -180
  3. package/README.cn.md +63 -4
  4. package/README.md +63 -4
  5. package/dist/conformance.d.ts +55 -0
  6. package/dist/conformance.d.ts.map +1 -0
  7. package/dist/conformance.js +100 -0
  8. package/dist/conformance.js.map +1 -0
  9. package/dist/core/codec.d.ts +5 -0
  10. package/dist/core/codec.d.ts.map +1 -1
  11. package/dist/core/codec.js +38 -1
  12. package/dist/core/codec.js.map +1 -1
  13. package/dist/core/codecs/ncp-codec.d.ts.map +1 -1
  14. package/dist/core/codecs/ncp-codec.js +20 -2
  15. package/dist/core/codecs/ncp-codec.js.map +1 -1
  16. package/dist/core/codecs/tier3-binary-vector-codec.d.ts +9 -0
  17. package/dist/core/codecs/tier3-binary-vector-codec.d.ts.map +1 -0
  18. package/dist/core/codecs/tier3-binary-vector-codec.js +155 -0
  19. package/dist/core/codecs/tier3-binary-vector-codec.js.map +1 -0
  20. package/dist/core/frame-header.d.ts +3 -1
  21. package/dist/core/frame-header.d.ts.map +1 -1
  22. package/dist/core/frame-header.js +2 -1
  23. package/dist/core/frame-header.js.map +1 -1
  24. package/dist/core/frames.d.ts +4 -1
  25. package/dist/core/frames.d.ts.map +1 -1
  26. package/dist/core/frames.js +3 -0
  27. package/dist/core/frames.js.map +1 -1
  28. package/dist/core/index.d.ts +1 -1
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/core/index.js +1 -1
  31. package/dist/core/index.js.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/ndp/federation.d.ts +8 -0
  35. package/dist/ndp/federation.d.ts.map +1 -0
  36. package/dist/ndp/federation.js +23 -0
  37. package/dist/ndp/federation.js.map +1 -0
  38. package/dist/ndp/frames.d.ts +4 -4
  39. package/dist/ndp/frames.d.ts.map +1 -1
  40. package/dist/ndp/frames.js +44 -9
  41. package/dist/ndp/frames.js.map +1 -1
  42. package/dist/ndp/index.d.ts +1 -0
  43. package/dist/ndp/index.d.ts.map +1 -1
  44. package/dist/ndp/index.js +1 -0
  45. package/dist/ndp/index.js.map +1 -1
  46. package/dist/ndp/ndp-error-codes.d.ts +2 -0
  47. package/dist/ndp/ndp-error-codes.d.ts.map +1 -1
  48. package/dist/ndp/ndp-error-codes.js +4 -0
  49. package/dist/ndp/ndp-error-codes.js.map +1 -1
  50. package/dist/ndp/validator.d.ts.map +1 -1
  51. package/dist/ndp/validator.js +5 -4
  52. package/dist/ndp/validator.js.map +1 -1
  53. package/dist/nip/ca-client.d.ts +93 -0
  54. package/dist/nip/ca-client.d.ts.map +1 -0
  55. package/dist/nip/ca-client.js +83 -0
  56. package/dist/nip/ca-client.js.map +1 -0
  57. package/dist/nip/frames.d.ts +18 -8
  58. package/dist/nip/frames.d.ts.map +1 -1
  59. package/dist/nip/frames.js +71 -19
  60. package/dist/nip/frames.js.map +1 -1
  61. package/dist/nip/index.d.ts +1 -0
  62. package/dist/nip/index.d.ts.map +1 -1
  63. package/dist/nip/index.js +1 -0
  64. package/dist/nip/index.js.map +1 -1
  65. package/dist/nwp/frames.d.ts.map +1 -1
  66. package/dist/nwp/frames.js +2 -1
  67. package/dist/nwp/frames.js.map +1 -1
  68. package/dist/nwp/index.d.ts +1 -0
  69. package/dist/nwp/index.d.ts.map +1 -1
  70. package/dist/nwp/index.js +1 -0
  71. package/dist/nwp/index.js.map +1 -1
  72. package/dist/nwp/native-server.d.ts +39 -0
  73. package/dist/nwp/native-server.d.ts.map +1 -0
  74. package/dist/nwp/native-server.js +131 -0
  75. package/dist/nwp/native-server.js.map +1 -0
  76. package/package.json +5 -1
@@ -26,10 +26,12 @@ export declare enum FrameType {
26
26
  * Wire encoding tier, stored in the lower 2 bits of the flags byte (NPS-1 §3.2).
27
27
  * 0x00 = Tier-1 JSON — human-readable; development / compatibility.
28
28
  * 0x01 = Tier-2 MsgPack — binary, ~60 % smaller; production default.
29
+ * 0x02 = Tier-3 BinaryVector — MsgPack metadata plus float32 vector segments.
29
30
  */
30
31
  export declare enum EncodingTier {
31
32
  JSON = 0,
32
- MSGPACK = 1
33
+ MSGPACK = 1,
34
+ BINARY_VECTOR = 2
33
35
  }
34
36
  /**
35
37
  * Flags byte in the NPS frame header (NPS-1 §3.2).
@@ -44,6 +46,7 @@ export declare const FrameFlags: {
44
46
  readonly NONE: 0;
45
47
  readonly TIER1_JSON: 0;
46
48
  readonly TIER2_MSGPACK: 1;
49
+ readonly TIER3_BINARY_VECTOR: 2;
47
50
  readonly FINAL: 4;
48
51
  readonly ENCRYPTED: 8;
49
52
  readonly EXT: 128;
@@ -1 +1 @@
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;IACnB,GAAG,IAAgB,CAAE,+BAA+B;IAGpD,KAAK,KAAc;IACnB,MAAM,KAAa;IACnB,SAAS,KAAU;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
+ {"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;IACnB,GAAG,IAAgB,CAAE,+BAA+B;IAGpD,KAAK,KAAc;IACnB,MAAM,KAAa;IACnB,SAAS,KAAU;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;;;;;GAKG;AACH,oBAAY,YAAY;IACtB,IAAI,IAAgB;IACpB,OAAO,IAAa;IACpB,aAAa,IAAO;CACrB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAQb,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"}
@@ -41,11 +41,13 @@ export var FrameType;
41
41
  * Wire encoding tier, stored in the lower 2 bits of the flags byte (NPS-1 §3.2).
42
42
  * 0x00 = Tier-1 JSON — human-readable; development / compatibility.
43
43
  * 0x01 = Tier-2 MsgPack — binary, ~60 % smaller; production default.
44
+ * 0x02 = Tier-3 BinaryVector — MsgPack metadata plus float32 vector segments.
44
45
  */
45
46
  export var EncodingTier;
46
47
  (function (EncodingTier) {
47
48
  EncodingTier[EncodingTier["JSON"] = 0] = "JSON";
48
49
  EncodingTier[EncodingTier["MSGPACK"] = 1] = "MSGPACK";
50
+ EncodingTier[EncodingTier["BINARY_VECTOR"] = 2] = "BINARY_VECTOR";
49
51
  })(EncodingTier || (EncodingTier = {}));
50
52
  // ── FrameFlags ───────────────────────────────────────────────────────────────
51
53
  /**
@@ -61,6 +63,7 @@ export const FrameFlags = {
61
63
  NONE: 0x00,
62
64
  TIER1_JSON: 0x00,
63
65
  TIER2_MSGPACK: 0x01,
66
+ TIER3_BINARY_VECTOR: 0x02,
64
67
  FINAL: 0x04,
65
68
  ENCRYPTED: 0x08,
66
69
  EXT: 0x80,
@@ -1 +1 @@
1
- {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/core/frames.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/core/frames.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
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";
2
+ export { Tier1JsonCodec, Tier2MsgPackCodec, Tier3BinaryVectorCodec, NpsFrameCodec, } from "./codec.js";
3
3
  export type { NpsFrame } from "./codec.js";
4
4
  export { FrameRegistry } from "./registry.js";
5
5
  export type { FrameClass } from "./registry.js";
@@ -1 +1 @@
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
+ {"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,sBAAsB,EACtB,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"}
@@ -10,7 +10,7 @@
10
10
  // ── Frame primitives (OOP) ────────────────────────────────────────────────────
11
11
  export { FrameType, EncodingTier, FrameFlags, FrameHeader, DEFAULT_HEADER_SIZE, EXTENDED_HEADER_SIZE, DEFAULT_MAX_PAYLOAD, EXTENDED_MAX_PAYLOAD, } from "./frames.js";
12
12
  // ── Codec (OOP) ───────────────────────────────────────────────────────────────
13
- export { Tier1JsonCodec, Tier2MsgPackCodec, NpsFrameCodec, } from "./codec.js";
13
+ export { Tier1JsonCodec, Tier2MsgPackCodec, Tier3BinaryVectorCodec, NpsFrameCodec, } from "./codec.js";
14
14
  // ── Registry (OOP) ────────────────────────────────────────────────────────────
15
15
  export { FrameRegistry } from "./registry.js";
16
16
  // ── Anchor cache (OOP) ────────────────────────────────────────────────────────
@@ -1 +1 @@
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
+ {"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,sBAAsB,EACtB,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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "1.0.0-alpha.13";
1
+ export declare const VERSION = "1.0.0-alpha.15";
2
2
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -6,5 +6,5 @@
6
6
  // All protocol APIs are accessed via sub-package imports:
7
7
  // import { ... } from "@labacacia/nps-sdk/core"
8
8
  // import { ... } from "@labacacia/nps-sdk/ncp"
9
- export const VERSION = "1.0.0-alpha.13";
9
+ export const VERSION = "1.0.0-alpha.15";
10
10
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,8 @@
1
+ export declare const NDP_FORWARDED_BY_HEADER: "ndp-forwarded-by";
2
+ export declare const MAX_FEDERATION_HOPS = 3;
3
+ export declare class NdpFederationLoopError extends Error {
4
+ readonly code: "NDP-FEDERATION-LOOP";
5
+ }
6
+ export declare function parseForwardedBy(header?: string | null): string[];
7
+ export declare function appendForwardedBy(ownNid: string, header?: string | null): string | undefined;
8
+ //# sourceMappingURL=federation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/ndp/federation.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,EAAG,kBAA2B,CAAC;AACnE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,wBAAuB;CACrC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAGjE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAO5F"}
@@ -0,0 +1,23 @@
1
+ // Copyright 2026 INNO LOTUS PTY LTD
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { NDP_FEDERATION_LOOP } from "./ndp-error-codes.js";
4
+ export const NDP_FORWARDED_BY_HEADER = "ndp-forwarded-by";
5
+ export const MAX_FEDERATION_HOPS = 3;
6
+ export class NdpFederationLoopError extends Error {
7
+ code = NDP_FEDERATION_LOOP;
8
+ }
9
+ export function parseForwardedBy(header) {
10
+ if (!header)
11
+ return [];
12
+ return header.split(",").map((part) => part.trim()).filter(Boolean);
13
+ }
14
+ export function appendForwardedBy(ownNid, header) {
15
+ const hops = parseForwardedBy(header);
16
+ if (hops.includes(ownNid)) {
17
+ throw new NdpFederationLoopError(`${NDP_FEDERATION_LOOP}: own NID already appears in ndp-forwarded-by`);
18
+ }
19
+ if (hops.length >= MAX_FEDERATION_HOPS)
20
+ return undefined;
21
+ return [...hops, ownNid].join(", ");
22
+ }
23
+ //# sourceMappingURL=federation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/ndp/federation.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAA2B,CAAC;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,GAAG,mBAAmB,CAAC;CACrC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAsB;IACtE,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,sBAAsB,CAAC,GAAG,mBAAmB,+CAA+C,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB;QAAE,OAAO,SAAS,CAAC;IACzD,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -32,17 +32,17 @@ export declare class AnnounceFrame implements NpsFrame {
32
32
  readonly nodeType?: string | undefined;
33
33
  readonly node_roles?: string[] | undefined;
34
34
  readonly cluster_anchor?: string | undefined;
35
- readonly spawn_spec_ref?: Record<string, unknown> | undefined;
35
+ readonly spawn_spec_ref?: string | undefined;
36
36
  readonly bridge_protocols?: string[] | undefined;
37
37
  readonly activation_mode?: string | undefined;
38
- readonly activation_endpoint?: string | undefined;
38
+ readonly activation_endpoint?: NdpAddress | undefined;
39
39
  readonly heartbeat_interval_ms: number;
40
40
  readonly health?: string | undefined;
41
41
  readonly last_seen?: string | undefined;
42
42
  readonly frameType = FrameType.ANNOUNCE;
43
43
  readonly preferredTier = EncodingTier.MSGPACK;
44
- constructor(nid: string, addresses: readonly NdpAddress[], capabilities: readonly string[], ttl: number, timestamp: string, signature: string, nodeType?: string | undefined, node_roles?: string[] | undefined, cluster_anchor?: string | undefined, spawn_spec_ref?: Record<string, unknown> | undefined, // NDP v0.9 §3.1.1 schema
45
- bridge_protocols?: string[] | undefined, activation_mode?: string | undefined, activation_endpoint?: string | undefined, heartbeat_interval_ms?: number, // NDP v0.9 §3.1
44
+ constructor(nid: string, addresses: readonly NdpAddress[], capabilities: readonly string[], ttl: number, timestamp: string, signature: string, nodeType?: string | undefined, node_roles?: string[] | undefined, cluster_anchor?: string | undefined, spawn_spec_ref?: string | undefined, // opaque ref resolving to a SpawnSpec
45
+ bridge_protocols?: string[] | undefined, activation_mode?: string | undefined, activation_endpoint?: NdpAddress | undefined, heartbeat_interval_ms?: number, // NDP v0.9 §3.1
46
46
  health?: string | undefined, // "healthy" / "degraded" / "draining"
47
47
  last_seen?: string | undefined);
48
48
  unsignedDict(): Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/ndp/frames.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/ndp/frames.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  // Copyright 2026 INNO LOTUS PTY LTD
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { EncodingTier, FrameType } from "../core/frames.js";
4
+ import { NDP_GRAPH_INVALID, NDP_GRAPH_TOO_LARGE } from "./ndp-error-codes.js";
5
+ const MAX_GRAPH_NODES = 256;
6
+ const MAX_GRAPH_EDGES = 1024;
4
7
  export class AnnounceFrame {
5
8
  nid;
6
9
  addresses;
@@ -20,7 +23,7 @@ export class AnnounceFrame {
20
23
  last_seen;
21
24
  frameType = FrameType.ANNOUNCE;
22
25
  preferredTier = EncodingTier.MSGPACK;
23
- constructor(nid, addresses, capabilities, ttl, timestamp, signature, nodeType, node_roles, cluster_anchor, spawn_spec_ref, // NDP v0.9 §3.1.1 schema
26
+ constructor(nid, addresses, capabilities, ttl, timestamp, signature, nodeType, node_roles, cluster_anchor, spawn_spec_ref, // opaque ref resolving to a SpawnSpec
24
27
  bridge_protocols, activation_mode, activation_endpoint, heartbeat_interval_ms = 60_000, // NDP v0.9 §3.1
25
28
  // NDP v0.9 liveness — wire-only, EXCLUDED from the signed canonical form
26
29
  // (last_seen updates every heartbeat → must not require re-signing; §3.2.1).
@@ -44,21 +47,29 @@ export class AnnounceFrame {
44
47
  this.last_seen = last_seen;
45
48
  }
46
49
  unsignedDict() {
47
- return {
50
+ const d = {
48
51
  nid: this.nid,
49
52
  addresses: this.addresses,
50
53
  capabilities: this.capabilities,
51
54
  ttl: this.ttl,
52
55
  timestamp: this.timestamp,
53
- node_type: this.nodeType ?? null,
54
- node_roles: this.node_roles ?? null,
55
- cluster_anchor: this.cluster_anchor ?? null,
56
- spawn_spec_ref: this.spawn_spec_ref ?? null,
57
- bridge_protocols: this.bridge_protocols ?? null,
58
- activation_mode: this.activation_mode ?? null,
59
- activation_endpoint: this.activation_endpoint ?? null,
60
56
  heartbeat_interval_ms: this.heartbeat_interval_ms,
61
57
  };
58
+ if (this.nodeType !== undefined)
59
+ d["node_type"] = this.nodeType;
60
+ if (this.node_roles !== undefined)
61
+ d["node_roles"] = this.node_roles;
62
+ if (this.cluster_anchor !== undefined)
63
+ d["cluster_anchor"] = this.cluster_anchor;
64
+ if (this.spawn_spec_ref !== undefined)
65
+ d["spawn_spec_ref"] = this.spawn_spec_ref;
66
+ if (this.bridge_protocols !== undefined)
67
+ d["bridge_protocols"] = this.bridge_protocols;
68
+ if (this.activation_mode !== undefined)
69
+ d["activation_mode"] = this.activation_mode;
70
+ if (this.activation_endpoint !== undefined)
71
+ d["activation_endpoint"] = this.activation_endpoint;
72
+ return d;
62
73
  }
63
74
  toDict() {
64
75
  const d = { ...this.unsignedDict(), signature: this.signature };
@@ -109,6 +120,7 @@ export class GraphFrame {
109
120
  this.edges = edges;
110
121
  this.ttl = ttl;
111
122
  this.metadata = metadata;
123
+ validateGraphFrame(nodes, edges);
112
124
  }
113
125
  toDict() {
114
126
  return {
@@ -123,4 +135,27 @@ export class GraphFrame {
123
135
  return new GraphFrame(data["graph_id"], data["nodes"] ?? [], data["edges"] ?? [], data["ttl"], data["metadata"] ?? undefined);
124
136
  }
125
137
  }
138
+ function validateGraphFrame(nodes, edges) {
139
+ if (nodes.length > MAX_GRAPH_NODES) {
140
+ throw new Error(`${NDP_GRAPH_TOO_LARGE}: nodes length exceeds ${MAX_GRAPH_NODES}`);
141
+ }
142
+ if (edges.length > MAX_GRAPH_EDGES) {
143
+ throw new Error(`${NDP_GRAPH_TOO_LARGE}: edges length exceeds ${MAX_GRAPH_EDGES}`);
144
+ }
145
+ const nodeIds = new Set(nodes.map((node) => node.nid));
146
+ if (nodes.some((node) => !node.nid)) {
147
+ throw new Error(`${NDP_GRAPH_INVALID}: graph nodes require nid`);
148
+ }
149
+ for (const edge of edges) {
150
+ if (!edge.from_nid || !edge.to_nid) {
151
+ throw new Error(`${NDP_GRAPH_INVALID}: graph edges require from_nid and to_nid`);
152
+ }
153
+ if (edge.from_nid === edge.to_nid) {
154
+ throw new Error(`${NDP_GRAPH_INVALID}: graph self-edges are forbidden`);
155
+ }
156
+ if (!nodeIds.has(edge.from_nid) || !nodeIds.has(edge.to_nid)) {
157
+ throw new Error(`${NDP_GRAPH_INVALID}: graph edge endpoints must appear in nodes`);
158
+ }
159
+ }
160
+ }
126
161
  //# sourceMappingURL=frames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/ndp/frames.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/ndp/frames.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export * from "./ndp-registry.js";
4
4
  export * from "./validator.js";
5
5
  export * from "./dns-txt.js";
6
6
  export * from "./ndp-error-codes.js";
7
+ export * from "./federation.js";
7
8
  export * from "./security.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ndp/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ndp/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
package/dist/ndp/index.js CHANGED
@@ -6,5 +6,6 @@ export * from "./ndp-registry.js";
6
6
  export * from "./validator.js";
7
7
  export * from "./dns-txt.js";
8
8
  export * from "./ndp-error-codes.js";
9
+ export * from "./federation.js";
9
10
  export * from "./security.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ndp/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ndp/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
@@ -1,12 +1,14 @@
1
1
  export declare const NDP_RESOLVE_NOT_FOUND: "NDP-RESOLVE-NOT-FOUND";
2
2
  export declare const NDP_RESOLVE_AMBIGUOUS: "NDP-RESOLVE-AMBIGUOUS";
3
3
  export declare const NDP_RESOLVE_TIMEOUT: "NDP-RESOLVE-TIMEOUT";
4
+ export declare const NDP_RESOLVE_STALE: "NDP-RESOLVE-STALE";
4
5
  export declare const NDP_ANNOUNCE_SIGNATURE_INVALID: "NDP-ANNOUNCE-SIGNATURE-INVALID";
5
6
  export declare const NDP_ANNOUNCE_NID_MISMATCH: "NDP-ANNOUNCE-NID-MISMATCH";
6
7
  /** NPS-CR-0001: legacy "gateway" role removed; use "anchor" or "bridge" */
7
8
  export declare const NDP_ANNOUNCE_ROLE_REMOVED: "NDP-ANNOUNCE-ROLE-REMOVED";
8
9
  export declare const NDP_ANNOUNCE_ROLE_UNKNOWN: "NDP-ANNOUNCE-ROLE-UNKNOWN";
9
10
  export declare const NDP_ANNOUNCE_CONFLICT: "NDP-ANNOUNCE-CONFLICT";
11
+ export declare const NDP_ANNOUNCE_PROFILE_VIOLATION: "NDP-ANNOUNCE-PROFILE-VIOLATION";
10
12
  export declare const NDP_GRAPH_SEQ_ROLLBACK: "NDP-GRAPH-SEQ-ROLLBACK";
11
13
  export declare const NDP_GRAPH_SEQ_GAP: "NDP-GRAPH-SEQ-GAP";
12
14
  export declare const NDP_ISSUER_NOT_ALLOWED: "NDP-ISSUER-NOT-ALLOWED";
@@ -1 +1 @@
1
- {"version":3,"file":"ndp-error-codes.d.ts","sourceRoot":"","sources":["../../src/ndp/ndp-error-codes.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,EAAW,uBAAgC,CAAC;AAC9E,eAAO,MAAM,qBAAqB,EAAW,uBAAgC,CAAC;AAC9E,eAAO,MAAM,mBAAmB,EAAa,qBAA8B,CAAC;AAC5E,eAAO,MAAM,8BAA8B,EAAG,gCAAyC,CAAC;AACxF,eAAO,MAAM,yBAAyB,EAAO,2BAAoC,CAAC;AAClF,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,EAAO,2BAAoC,CAAC;AAClF,eAAO,MAAM,yBAAyB,EAAO,2BAAoC,CAAC;AAClF,eAAO,MAAM,qBAAqB,EAAW,uBAAgC,CAAC;AAC9E,eAAO,MAAM,sBAAsB,EAAU,wBAAiC,CAAC;AAC/E,eAAO,MAAM,iBAAiB,EAAe,mBAA4B,CAAC;AAC1E,eAAO,MAAM,sBAAsB,EAAU,wBAAiC,CAAC;AAC/E,eAAO,MAAM,sBAAsB,EAAU,wBAAiC,CAAC;AAC/E,eAAO,MAAM,wBAAwB,EAAQ,0BAAmC,CAAC;AAGjF,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,EAAe,mBAA4B,CAAC;AAC1E,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,EAAa,qBAA8B,CAAC;AAC5E,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,EAAa,qBAA8B,CAAC;AAC5E,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,EAAc,oBAA6B,CAAC;AAE3E,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkB1D,CAAC"}
1
+ {"version":3,"file":"ndp-error-codes.d.ts","sourceRoot":"","sources":["../../src/ndp/ndp-error-codes.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,EAAW,uBAAgC,CAAC;AAC9E,eAAO,MAAM,qBAAqB,EAAW,uBAAgC,CAAC;AAC9E,eAAO,MAAM,mBAAmB,EAAa,qBAA8B,CAAC;AAC5E,eAAO,MAAM,iBAAiB,EAAe,mBAA4B,CAAC;AAC1E,eAAO,MAAM,8BAA8B,EAAG,gCAAyC,CAAC;AACxF,eAAO,MAAM,yBAAyB,EAAO,2BAAoC,CAAC;AAClF,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,EAAO,2BAAoC,CAAC;AAClF,eAAO,MAAM,yBAAyB,EAAO,2BAAoC,CAAC;AAClF,eAAO,MAAM,qBAAqB,EAAW,uBAAgC,CAAC;AAC9E,eAAO,MAAM,8BAA8B,EAAG,gCAAyC,CAAC;AACxF,eAAO,MAAM,sBAAsB,EAAU,wBAAiC,CAAC;AAC/E,eAAO,MAAM,iBAAiB,EAAe,mBAA4B,CAAC;AAC1E,eAAO,MAAM,sBAAsB,EAAU,wBAAiC,CAAC;AAC/E,eAAO,MAAM,sBAAsB,EAAU,wBAAiC,CAAC;AAC/E,eAAO,MAAM,wBAAwB,EAAQ,0BAAmC,CAAC;AAGjF,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,EAAe,mBAA4B,CAAC;AAC1E,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,EAAa,qBAA8B,CAAC;AAC5E,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,EAAa,qBAA8B,CAAC;AAC5E,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,EAAc,oBAA6B,CAAC;AAE3E,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoB1D,CAAC"}
@@ -5,12 +5,14 @@
5
5
  export const NDP_RESOLVE_NOT_FOUND = "NDP-RESOLVE-NOT-FOUND";
6
6
  export const NDP_RESOLVE_AMBIGUOUS = "NDP-RESOLVE-AMBIGUOUS";
7
7
  export const NDP_RESOLVE_TIMEOUT = "NDP-RESOLVE-TIMEOUT";
8
+ export const NDP_RESOLVE_STALE = "NDP-RESOLVE-STALE";
8
9
  export const NDP_ANNOUNCE_SIGNATURE_INVALID = "NDP-ANNOUNCE-SIGNATURE-INVALID";
9
10
  export const NDP_ANNOUNCE_NID_MISMATCH = "NDP-ANNOUNCE-NID-MISMATCH";
10
11
  /** NPS-CR-0001: legacy "gateway" role removed; use "anchor" or "bridge" */
11
12
  export const NDP_ANNOUNCE_ROLE_REMOVED = "NDP-ANNOUNCE-ROLE-REMOVED";
12
13
  export const NDP_ANNOUNCE_ROLE_UNKNOWN = "NDP-ANNOUNCE-ROLE-UNKNOWN";
13
14
  export const NDP_ANNOUNCE_CONFLICT = "NDP-ANNOUNCE-CONFLICT";
15
+ export const NDP_ANNOUNCE_PROFILE_VIOLATION = "NDP-ANNOUNCE-PROFILE-VIOLATION";
14
16
  export const NDP_GRAPH_SEQ_ROLLBACK = "NDP-GRAPH-SEQ-ROLLBACK";
15
17
  export const NDP_GRAPH_SEQ_GAP = "NDP-GRAPH-SEQ-GAP";
16
18
  export const NDP_ISSUER_NOT_ALLOWED = "NDP-ISSUER-NOT-ALLOWED";
@@ -30,11 +32,13 @@ export const NDP_ERROR_TO_NPS_STATUS = {
30
32
  "NDP-RESOLVE-NOT-FOUND": "NPS-CLIENT-NOT-FOUND",
31
33
  "NDP-RESOLVE-AMBIGUOUS": "NPS-CLIENT-CONFLICT",
32
34
  "NDP-RESOLVE-TIMEOUT": "NPS-SERVER-TIMEOUT",
35
+ "NDP-RESOLVE-STALE": "NPS-CLIENT-NOT-FOUND",
33
36
  "NDP-ANNOUNCE-SIGNATURE-INVALID": "NPS-AUTH-UNAUTHENTICATED",
34
37
  "NDP-ANNOUNCE-NID-MISMATCH": "NPS-CLIENT-BAD-FRAME",
35
38
  "NDP-ANNOUNCE-ROLE-REMOVED": "NPS-CLIENT-BAD-FRAME",
36
39
  "NDP-ANNOUNCE-ROLE-UNKNOWN": "NPS-CLIENT-BAD-FRAME",
37
40
  "NDP-ANNOUNCE-CONFLICT": "NPS-CLIENT-CONFLICT",
41
+ "NDP-ANNOUNCE-PROFILE-VIOLATION": "NPS-AUTH-FORBIDDEN",
38
42
  "NDP-GRAPH-SEQ-ROLLBACK": "NPS-CLIENT-BAD-FRAME",
39
43
  "NDP-GRAPH-SEQ-GAP": "NPS-STREAM-SEQ-GAP",
40
44
  "NDP-ISSUER-NOT-ALLOWED": "NPS-AUTH-FORBIDDEN",
@@ -1 +1 @@
1
- {"version":3,"file":"ndp-error-codes.js","sourceRoot":"","sources":["../../src/ndp/ndp-error-codes.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAW,uBAAgC,CAAC;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAW,uBAAgC,CAAC;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAa,qBAA8B,CAAC;AAC5E,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAyC,CAAC;AACxF,MAAM,CAAC,MAAM,yBAAyB,GAAO,2BAAoC,CAAC;AAClF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAO,2BAAoC,CAAC;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAO,2BAAoC,CAAC;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAW,uBAAgC,CAAC;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAU,wBAAiC,CAAC;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAe,mBAA4B,CAAC;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAU,wBAAiC,CAAC;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAU,wBAAiC,CAAC;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAQ,0BAAmC,CAAC;AAEjF,iFAAiF;AACjF,qCAAqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAe,mBAA4B,CAAC;AAC1E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAa,qBAA8B,CAAC;AAC5E,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAa,qBAA8B,CAAC;AAC5E,wFAAwF;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAc,oBAA6B,CAAC;AAE3E,uDAAuD;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,uBAAuB,EAAW,sBAAsB;IACxD,uBAAuB,EAAW,qBAAqB;IACvD,qBAAqB,EAAa,oBAAoB;IACtD,gCAAgC,EAAE,0BAA0B;IAC5D,2BAA2B,EAAO,sBAAsB;IACxD,2BAA2B,EAAO,sBAAsB;IACxD,2BAA2B,EAAO,sBAAsB;IACxD,uBAAuB,EAAW,qBAAqB;IACvD,wBAAwB,EAAU,sBAAsB;IACxD,mBAAmB,EAAe,oBAAoB;IACtD,wBAAwB,EAAU,oBAAoB;IACtD,wBAAwB,EAAU,0BAA0B;IAC5D,0BAA0B,EAAQ,wBAAwB;IAC1D,mBAAmB,EAAe,sBAAsB;IACxD,qBAAqB,EAAa,mBAAmB;IACrD,qBAAqB,EAAa,qBAAqB;IACvD,oBAAoB,EAAc,sBAAsB;CACzD,CAAC"}
1
+ {"version":3,"file":"ndp-error-codes.js","sourceRoot":"","sources":["../../src/ndp/ndp-error-codes.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAW,uBAAgC,CAAC;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAW,uBAAgC,CAAC;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAa,qBAA8B,CAAC;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAe,mBAA4B,CAAC;AAC1E,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAyC,CAAC;AACxF,MAAM,CAAC,MAAM,yBAAyB,GAAO,2BAAoC,CAAC;AAClF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAO,2BAAoC,CAAC;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAO,2BAAoC,CAAC;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAW,uBAAgC,CAAC;AAC9E,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAyC,CAAC;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAU,wBAAiC,CAAC;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAe,mBAA4B,CAAC;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAU,wBAAiC,CAAC;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAU,wBAAiC,CAAC;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAQ,0BAAmC,CAAC;AAEjF,iFAAiF;AACjF,qCAAqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAe,mBAA4B,CAAC;AAC1E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAa,qBAA8B,CAAC;AAC5E,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAa,qBAA8B,CAAC;AAC5E,wFAAwF;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAc,oBAA6B,CAAC;AAE3E,uDAAuD;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,uBAAuB,EAAW,sBAAsB;IACxD,uBAAuB,EAAW,qBAAqB;IACvD,qBAAqB,EAAa,oBAAoB;IACtD,mBAAmB,EAAe,sBAAsB;IACxD,gCAAgC,EAAE,0BAA0B;IAC5D,2BAA2B,EAAO,sBAAsB;IACxD,2BAA2B,EAAO,sBAAsB;IACxD,2BAA2B,EAAO,sBAAsB;IACxD,uBAAuB,EAAW,qBAAqB;IACvD,gCAAgC,EAAE,oBAAoB;IACtD,wBAAwB,EAAU,sBAAsB;IACxD,mBAAmB,EAAe,oBAAoB;IACtD,wBAAwB,EAAU,oBAAoB;IACtD,wBAAwB,EAAU,0BAA0B;IAC5D,0BAA0B,EAAQ,wBAAwB;IAC1D,mBAAmB,EAAe,sBAAsB;IACxD,qBAAqB,EAAa,mBAAmB;IACrD,qBAAqB,EAAa,qBAAqB;IACvD,oBAAoB,EAAc,sBAAsB;CACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/ndp/validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAK,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAI,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB;cACpB,iBAAiB;sBACP,MAAM,WAAW,MAAM,KAAG,iBAAiB;CAC9D,CAAC;AAEF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAI3D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIlC,IAAI,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAED,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB;CA4BlD"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/ndp/validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAK,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAI,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB;cACpB,iBAAiB;sBACP,MAAM,WAAW,MAAM,KAAG,iBAAiB;CAC9D,CAAC;AAEF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAI3D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIlC,IAAI,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAED,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB;CA4BlD"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import * as ed25519 from "@noble/ed25519";
4
4
  import { sha512 } from "@noble/hashes/sha512";
5
+ import { NDP_ANNOUNCE_NID_MISMATCH, NDP_ANNOUNCE_SIGNATURE_INVALID, } from "./ndp-error-codes.js";
5
6
  ed25519.etc.sha512Sync = (...m) => sha512(ed25519.etc.concatBytes(...m));
6
7
  export const NdpAnnounceResult = {
7
8
  ok: () => ({ isValid: true }),
@@ -21,7 +22,7 @@ export class NdpAnnounceValidator {
21
22
  validate(frame) {
22
23
  const encoded = this._keys.get(frame.nid);
23
24
  if (encoded === undefined) {
24
- return NdpAnnounceResult.fail("NDP-ANNOUNCE-NID-MISMATCH", `No public key registered for NID: ${frame.nid}`);
25
+ return NdpAnnounceResult.fail(NDP_ANNOUNCE_NID_MISMATCH, `No public key registered for NID: ${frame.nid}`);
25
26
  }
26
27
  try {
27
28
  const prefix = "ed25519:";
@@ -29,7 +30,7 @@ export class NdpAnnounceValidator {
29
30
  const pubKey = Buffer.from(pubHex, "hex");
30
31
  const sig = frame.signature;
31
32
  if (!sig.startsWith(prefix)) {
32
- return NdpAnnounceResult.fail("NDP-ANNOUNCE-SIG-INVALID", "Signature must start with 'ed25519:'");
33
+ return NdpAnnounceResult.fail(NDP_ANNOUNCE_SIGNATURE_INVALID, "Signature must start with 'ed25519:'");
33
34
  }
34
35
  const sigBytes = Buffer.from(sig.slice(prefix.length), "base64");
35
36
  const unsigned = frame.unsignedDict();
@@ -37,11 +38,11 @@ export class NdpAnnounceValidator {
37
38
  const message = new TextEncoder().encode(canonical);
38
39
  const valid = ed25519.verify(sigBytes, message, pubKey);
39
40
  if (!valid)
40
- return NdpAnnounceResult.fail("NDP-ANNOUNCE-SIG-INVALID", "Ed25519 signature verification failed.");
41
+ return NdpAnnounceResult.fail(NDP_ANNOUNCE_SIGNATURE_INVALID, "Ed25519 signature verification failed.");
41
42
  return NdpAnnounceResult.ok();
42
43
  }
43
44
  catch {
44
- return NdpAnnounceResult.fail("NDP-ANNOUNCE-SIG-INVALID", "Ed25519 signature verification failed.");
45
+ return NdpAnnounceResult.fail(NDP_ANNOUNCE_SIGNATURE_INVALID, "Ed25519 signature verification failed.");
45
46
  }
46
47
  }
47
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/ndp/validator.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAQzE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,GAAsB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAqB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;CAC1G,CAAC;AAEF,MAAM,OAAO,oBAAoB;IACd,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,wBAAwB;IAE5E,iBAAiB,CAAC,GAAW,EAAE,aAAqB;QAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,iBAAiB,CAAC,IAAI,CAAC,2BAA2B,EAAE,qCAAqC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/G,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAI,UAAU,CAAC;YAC3B,MAAM,MAAM,GAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACpF,MAAM,MAAM,GAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE3C,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,OAAO,iBAAiB,CAAC,IAAI,CAAC,0BAA0B,EAAE,sCAAsC,CAAC,CAAC;YACpG,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,OAAO,GAAK,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK;gBAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,0BAA0B,EAAE,wCAAwC,CAAC,CAAC;YAChH,OAAO,iBAAiB,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,iBAAiB,CAAC,IAAI,CAAC,0BAA0B,EAAE,wCAAwC,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/ndp/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ export interface NipCaRegisterRequest {
2
+ identifier: string;
3
+ pub_key: string;
4
+ capabilities?: readonly string[];
5
+ scope_json?: string | null;
6
+ metadata_json?: string | null;
7
+ }
8
+ export interface NipCaRegisterX509Request extends NipCaRegisterRequest {
9
+ assurance_level?: string | null;
10
+ }
11
+ export interface NipCaIdentFrame {
12
+ frame?: string;
13
+ nid: string;
14
+ pub_key: string;
15
+ capabilities?: readonly string[];
16
+ scope?: unknown;
17
+ issued_by?: string;
18
+ issued_at?: string;
19
+ expires_at?: string;
20
+ serial?: string;
21
+ signature?: string;
22
+ cert_format?: string;
23
+ cert_chain?: readonly string[];
24
+ ocsp_staple?: string;
25
+ [key: string]: unknown;
26
+ }
27
+ export interface NipCaCrlEntry {
28
+ nid: string;
29
+ serial: string;
30
+ revoked_at?: string | null;
31
+ reason?: string | null;
32
+ }
33
+ export interface NipCaCrl {
34
+ issued_by: string;
35
+ issued_at: string;
36
+ entries: readonly NipCaCrlEntry[];
37
+ signature: string;
38
+ }
39
+ export interface NipCaRevokeFrame {
40
+ frame?: string;
41
+ target_nid?: string;
42
+ nid?: string;
43
+ serial?: string;
44
+ reason?: string;
45
+ revoked_at?: string;
46
+ signature?: string;
47
+ [key: string]: unknown;
48
+ }
49
+ export interface NipCaDiscoveryDocument {
50
+ nps_ca: string;
51
+ issuer: string;
52
+ public_key: string;
53
+ display_name?: string;
54
+ algorithms?: readonly string[];
55
+ endpoints?: Record<string, unknown>;
56
+ capabilities?: readonly string[];
57
+ max_cert_validity_days?: number;
58
+ }
59
+ export interface NipCaVerifyResponse {
60
+ valid: boolean;
61
+ nid?: string;
62
+ expires_at?: string;
63
+ serial?: string;
64
+ error_code?: string;
65
+ message?: string;
66
+ }
67
+ export declare class NipCaClientError extends Error {
68
+ readonly errorCode: string;
69
+ readonly statusCode?: number | undefined;
70
+ constructor(errorCode: string, message: string, statusCode?: number | undefined);
71
+ }
72
+ export declare class NipCaClient {
73
+ private readonly baseUrl;
74
+ private readonly prefix;
75
+ constructor(baseUrl: string, options?: {
76
+ routePrefix?: string;
77
+ });
78
+ getDiscovery(): Promise<NipCaDiscoveryDocument>;
79
+ getCrl(): Promise<NipCaCrl>;
80
+ registerAgent(request: NipCaRegisterRequest, bearerToken?: string): Promise<NipCaIdentFrame>;
81
+ registerNode(request: NipCaRegisterRequest, bearerToken?: string): Promise<NipCaIdentFrame>;
82
+ registerAgentX509(request: NipCaRegisterX509Request, bearerToken?: string): Promise<NipCaIdentFrame>;
83
+ registerNodeX509(request: NipCaRegisterX509Request, bearerToken?: string): Promise<NipCaIdentFrame>;
84
+ renewAgent(nid: string, bearerToken?: string): Promise<NipCaIdentFrame>;
85
+ renewNode(nid: string, bearerToken?: string): Promise<NipCaIdentFrame>;
86
+ revokeAgent(nid: string, reason?: string, bearerToken?: string): Promise<NipCaRevokeFrame>;
87
+ revokeNode(nid: string, reason?: string, bearerToken?: string): Promise<NipCaRevokeFrame>;
88
+ verifyAgent(nid: string): Promise<NipCaVerifyResponse>;
89
+ verifyNode(nid: string): Promise<NipCaVerifyResponse>;
90
+ private getJson;
91
+ private sendJson;
92
+ }
93
+ //# sourceMappingURL=ca-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-client.d.ts","sourceRoot":"","sources":["../../src/nip/ca-client.ts"],"names":[],"mappings":"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"}