@labacacia/nps-sdk 1.0.0-alpha.1
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.
- package/CONTRIBUTING.md +33 -0
- package/LICENSE +170 -0
- package/NOTICE +7 -0
- package/README.md +153 -0
- package/dist/codec-CmHeovTV.d.cts +120 -0
- package/dist/codec-CmHeovTV.d.ts +120 -0
- package/dist/core/anchor-cache.d.ts +42 -0
- package/dist/core/anchor-cache.d.ts.map +1 -0
- package/dist/core/anchor-cache.js +104 -0
- package/dist/core/anchor-cache.js.map +1 -0
- package/dist/core/cache.d.ts +14 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +80 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/canonical-json.d.ts +12 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +44 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/codec.d.ts +32 -0
- package/dist/core/codec.d.ts.map +1 -0
- package/dist/core/codec.js +119 -0
- package/dist/core/codec.js.map +1 -0
- package/dist/core/codecs/index.d.ts +4 -0
- package/dist/core/codecs/index.d.ts.map +1 -0
- package/dist/core/codecs/index.js +6 -0
- package/dist/core/codecs/index.js.map +1 -0
- package/dist/core/codecs/ncp-codec.d.ts +39 -0
- package/dist/core/codecs/ncp-codec.d.ts.map +1 -0
- package/dist/core/codecs/ncp-codec.js +93 -0
- package/dist/core/codecs/ncp-codec.js.map +1 -0
- package/dist/core/codecs/tier1-json-codec.d.ts +10 -0
- package/dist/core/codecs/tier1-json-codec.d.ts.map +1 -0
- package/dist/core/codecs/tier1-json-codec.js +28 -0
- package/dist/core/codecs/tier1-json-codec.js.map +1 -0
- package/dist/core/codecs/tier2-msgpack-codec.d.ts +10 -0
- package/dist/core/codecs/tier2-msgpack-codec.d.ts.map +1 -0
- package/dist/core/codecs/tier2-msgpack-codec.js +26 -0
- package/dist/core/codecs/tier2-msgpack-codec.js.map +1 -0
- package/dist/core/crypto-provider.d.ts +31 -0
- package/dist/core/crypto-provider.d.ts.map +1 -0
- package/dist/core/crypto-provider.js +10 -0
- package/dist/core/crypto-provider.js.map +1 -0
- package/dist/core/exceptions.d.ts +27 -0
- package/dist/core/exceptions.d.ts.map +1 -0
- package/dist/core/exceptions.js +52 -0
- package/dist/core/exceptions.js.map +1 -0
- package/dist/core/frame-header.d.ts +87 -0
- package/dist/core/frame-header.d.ts.map +1 -0
- package/dist/core/frame-header.js +185 -0
- package/dist/core/frame-header.js.map +1 -0
- package/dist/core/frame-registry.d.ts +35 -0
- package/dist/core/frame-registry.d.ts.map +1 -0
- package/dist/core/frame-registry.js +63 -0
- package/dist/core/frame-registry.js.map +1 -0
- package/dist/core/frames.d.ts +80 -0
- package/dist/core/frames.d.ts.map +1 -0
- package/dist/core/frames.js +153 -0
- package/dist/core/frames.js.map +1 -0
- package/dist/core/index.cjs +371 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +41 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/registry.d.ts +11 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +17 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/status-codes.d.ts +28 -0
- package/dist/core/status-codes.d.ts.map +1 -0
- package/dist/core/status-codes.js +38 -0
- package/dist/core/status-codes.js.map +1 -0
- package/dist/frames-B3qLdl_g.d.cts +77 -0
- package/dist/frames-Ff7-ZPUl.d.ts +77 -0
- package/dist/index.cjs +1556 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +21 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/ncp/frames/anchor-frame.d.ts +29 -0
- package/dist/ncp/frames/anchor-frame.d.ts.map +1 -0
- package/dist/ncp/frames/anchor-frame.js +54 -0
- package/dist/ncp/frames/anchor-frame.js.map +1 -0
- package/dist/ncp/frames/caps-frame.d.ts +29 -0
- package/dist/ncp/frames/caps-frame.d.ts.map +1 -0
- package/dist/ncp/frames/caps-frame.js +29 -0
- package/dist/ncp/frames/caps-frame.js.map +1 -0
- package/dist/ncp/frames/diff-frame.d.ts +32 -0
- package/dist/ncp/frames/diff-frame.d.ts.map +1 -0
- package/dist/ncp/frames/diff-frame.js +37 -0
- package/dist/ncp/frames/diff-frame.js.map +1 -0
- package/dist/ncp/frames/error-frame.d.ts +16 -0
- package/dist/ncp/frames/error-frame.d.ts.map +1 -0
- package/dist/ncp/frames/error-frame.js +13 -0
- package/dist/ncp/frames/error-frame.js.map +1 -0
- package/dist/ncp/frames/hello-frame.d.ts +21 -0
- package/dist/ncp/frames/hello-frame.d.ts.map +1 -0
- package/dist/ncp/frames/hello-frame.js +25 -0
- package/dist/ncp/frames/hello-frame.js.map +1 -0
- package/dist/ncp/frames/stream-frame.d.ts +16 -0
- package/dist/ncp/frames/stream-frame.d.ts.map +1 -0
- package/dist/ncp/frames/stream-frame.js +18 -0
- package/dist/ncp/frames/stream-frame.js.map +1 -0
- package/dist/ncp/frames.d.ts +76 -0
- package/dist/ncp/frames.d.ts.map +1 -0
- package/dist/ncp/frames.js +147 -0
- package/dist/ncp/frames.js.map +1 -0
- package/dist/ncp/handshake.d.ts +30 -0
- package/dist/ncp/handshake.d.ts.map +1 -0
- package/dist/ncp/handshake.js +80 -0
- package/dist/ncp/handshake.js.map +1 -0
- package/dist/ncp/index.cjs +188 -0
- package/dist/ncp/index.cjs.map +1 -0
- package/dist/ncp/index.d.cts +6 -0
- package/dist/ncp/index.d.ts +11 -0
- package/dist/ncp/index.d.ts.map +1 -0
- package/dist/ncp/index.js +13 -0
- package/dist/ncp/index.js.map +1 -0
- package/dist/ncp/ncp-error-codes.d.ts +22 -0
- package/dist/ncp/ncp-error-codes.d.ts.map +1 -0
- package/dist/ncp/ncp-error-codes.js +32 -0
- package/dist/ncp/ncp-error-codes.js.map +1 -0
- package/dist/ncp/ncp-patch-format.d.ts +7 -0
- package/dist/ncp/ncp-patch-format.d.ts.map +1 -0
- package/dist/ncp/ncp-patch-format.js +13 -0
- package/dist/ncp/ncp-patch-format.js.map +1 -0
- package/dist/ncp/registry.d.ts +3 -0
- package/dist/ncp/registry.d.ts.map +1 -0
- package/dist/ncp/registry.js +12 -0
- package/dist/ncp/registry.js.map +1 -0
- package/dist/ncp/stream-manager.d.ts +57 -0
- package/dist/ncp/stream-manager.d.ts.map +1 -0
- package/dist/ncp/stream-manager.js +163 -0
- package/dist/ncp/stream-manager.js.map +1 -0
- package/dist/ndp/frames.d.ts +56 -0
- package/dist/ndp/frames.d.ts.map +1 -0
- package/dist/ndp/frames.js +87 -0
- package/dist/ndp/frames.js.map +1 -0
- package/dist/ndp/index.cjs +252 -0
- package/dist/ndp/index.cjs.map +1 -0
- package/dist/ndp/index.d.cts +86 -0
- package/dist/ndp/index.d.ts +5 -0
- package/dist/ndp/index.d.ts.map +1 -0
- package/dist/ndp/index.js +7 -0
- package/dist/ndp/index.js.map +1 -0
- package/dist/ndp/ndp-registry.d.ts +11 -0
- package/dist/ndp/ndp-registry.d.ts.map +1 -0
- package/dist/ndp/ndp-registry.js +79 -0
- package/dist/ndp/ndp-registry.js.map +1 -0
- package/dist/ndp/registry.d.ts +3 -0
- package/dist/ndp/registry.d.ts.map +1 -0
- package/dist/ndp/registry.js +10 -0
- package/dist/ndp/registry.js.map +1 -0
- package/dist/ndp/validator.d.ts +18 -0
- package/dist/ndp/validator.d.ts.map +1 -0
- package/dist/ndp/validator.js +48 -0
- package/dist/ndp/validator.js.map +1 -0
- package/dist/nip/frames.d.ts +44 -0
- package/dist/nip/frames.d.ts.map +1 -0
- package/dist/nip/frames.js +81 -0
- package/dist/nip/frames.js.map +1 -0
- package/dist/nip/identity.d.ts +18 -0
- package/dist/nip/identity.d.ts.map +1 -0
- package/dist/nip/identity.js +94 -0
- package/dist/nip/identity.js.map +1 -0
- package/dist/nip/index.cjs +214 -0
- package/dist/nip/index.cjs.map +1 -0
- package/dist/nip/index.d.cts +65 -0
- package/dist/nip/index.d.ts +4 -0
- package/dist/nip/index.d.ts.map +1 -0
- package/dist/nip/index.js +6 -0
- package/dist/nip/index.js.map +1 -0
- package/dist/nip/registry.d.ts +3 -0
- package/dist/nip/registry.d.ts.map +1 -0
- package/dist/nip/registry.js +10 -0
- package/dist/nip/registry.js.map +1 -0
- package/dist/nop/client.d.ts +34 -0
- package/dist/nop/client.d.ts.map +1 -0
- package/dist/nop/client.js +90 -0
- package/dist/nop/client.js.map +1 -0
- package/dist/nop/frames.d.ts +65 -0
- package/dist/nop/frames.d.ts.map +1 -0
- package/dist/nop/frames.js +148 -0
- package/dist/nop/frames.js.map +1 -0
- package/dist/nop/index.cjs +762 -0
- package/dist/nop/index.cjs.map +1 -0
- package/dist/nop/index.d.cts +155 -0
- package/dist/nop/index.d.ts +5 -0
- package/dist/nop/index.d.ts.map +1 -0
- package/dist/nop/index.js +7 -0
- package/dist/nop/index.js.map +1 -0
- package/dist/nop/models.d.ts +58 -0
- package/dist/nop/models.d.ts.map +1 -0
- package/dist/nop/models.js +50 -0
- package/dist/nop/models.js.map +1 -0
- package/dist/nop/nop-types.d.ts +136 -0
- package/dist/nop/nop-types.d.ts.map +1 -0
- package/dist/nop/nop-types.js +44 -0
- package/dist/nop/nop-types.js.map +1 -0
- package/dist/nop/registry.d.ts +3 -0
- package/dist/nop/registry.d.ts.map +1 -0
- package/dist/nop/registry.js +11 -0
- package/dist/nop/registry.js.map +1 -0
- package/dist/nwp/client.d.ts +22 -0
- package/dist/nwp/client.d.ts.map +1 -0
- package/dist/nwp/client.js +101 -0
- package/dist/nwp/client.js.map +1 -0
- package/dist/nwp/frames.d.ts +46 -0
- package/dist/nwp/frames.d.ts.map +1 -0
- package/dist/nwp/frames.js +81 -0
- package/dist/nwp/frames.js.map +1 -0
- package/dist/nwp/index.cjs +658 -0
- package/dist/nwp/index.cjs.map +1 -0
- package/dist/nwp/index.d.cts +65 -0
- package/dist/nwp/index.d.ts +4 -0
- package/dist/nwp/index.d.ts.map +1 -0
- package/dist/nwp/index.js +6 -0
- package/dist/nwp/index.js.map +1 -0
- package/dist/nwp/registry.d.ts +3 -0
- package/dist/nwp/registry.d.ts.map +1 -0
- package/dist/nwp/registry.js +9 -0
- package/dist/nwp/registry.js.map +1 -0
- package/dist/setup.d.ts +10 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +29 -0
- package/dist/setup.js.map +1 -0
- package/nip-ca-server/Dockerfile +27 -0
- package/nip-ca-server/README.md +45 -0
- package/nip-ca-server/db/001_init.sql +25 -0
- package/nip-ca-server/docker-compose.yml +29 -0
- package/nip-ca-server/package.json +23 -0
- package/nip-ca-server/src/ca.ts +155 -0
- package/nip-ca-server/src/db.ts +104 -0
- package/nip-ca-server/src/index.ts +157 -0
- package/nip-ca-server/tsconfig.json +13 -0
- package/package.json +47 -0
- package/src/core/anchor-cache.ts +129 -0
- package/src/core/cache.ts +93 -0
- package/src/core/canonical-json.ts +50 -0
- package/src/core/codec.ts +158 -0
- package/src/core/codecs/index.ts +5 -0
- package/src/core/codecs/ncp-codec.ts +170 -0
- package/src/core/codecs/tier1-json-codec.ts +33 -0
- package/src/core/codecs/tier2-msgpack-codec.ts +30 -0
- package/src/core/crypto-provider.ts +47 -0
- package/src/core/exceptions.ts +57 -0
- package/src/core/frame-header.ts +282 -0
- package/src/core/frame-registry.ts +91 -0
- package/src/core/frames.ts +183 -0
- package/src/core/index.ts +10 -0
- package/src/core/registry.ts +28 -0
- package/src/core/status-codes.ts +46 -0
- package/src/index.ts +10 -0
- package/src/ncp/frames/anchor-frame.ts +87 -0
- package/src/ncp/frames/caps-frame.ts +59 -0
- package/src/ncp/frames/diff-frame.ts +69 -0
- package/src/ncp/frames/error-frame.ts +26 -0
- package/src/ncp/frames/hello-frame.ts +50 -0
- package/src/ncp/frames/stream-frame.ts +35 -0
- package/src/ncp/frames.ts +199 -0
- package/src/ncp/handshake.ts +95 -0
- package/src/ncp/index.ts +12 -0
- package/src/ncp/ncp-error-codes.ts +34 -0
- package/src/ncp/ncp-patch-format.ts +16 -0
- package/src/ncp/registry.ts +14 -0
- package/src/ncp/stream-manager.ts +212 -0
- package/src/ndp/frames.ts +124 -0
- package/src/ndp/index.ts +7 -0
- package/src/ndp/ndp-registry.ts +82 -0
- package/src/ndp/registry.ts +12 -0
- package/src/ndp/validator.ts +64 -0
- package/src/nip/frames.ts +106 -0
- package/src/nip/identity.ts +113 -0
- package/src/nip/index.ts +6 -0
- package/src/nip/registry.ts +12 -0
- package/src/nop/client.ts +103 -0
- package/src/nop/frames.ts +181 -0
- package/src/nop/index.ts +7 -0
- package/src/nop/models.ts +79 -0
- package/src/nop/nop-types.ts +208 -0
- package/src/nop/registry.ts +13 -0
- package/src/nwp/client.ts +114 -0
- package/src/nwp/frames.ts +116 -0
- package/src/nwp/index.ts +6 -0
- package/src/nwp/registry.ts +11 -0
- package/src/setup.ts +32 -0
- package/tests/core/anchor-cache.test.ts +242 -0
- package/tests/core/codec.test.ts +205 -0
- package/tests/core/frame-registry.test.ts +46 -0
- package/tests/core.test.ts +327 -0
- package/tests/ncp/diff-binary-bitset.test.ts +107 -0
- package/tests/ncp/e2e-enc-reject.test.ts +93 -0
- package/tests/ncp/err-error-frame.test.ts +152 -0
- package/tests/ncp/frames.test.ts +359 -0
- package/tests/ncp/framing.test.ts +233 -0
- package/tests/ncp/hello-frame.test.ts +122 -0
- package/tests/ncp/inline-anchor.test.ts +88 -0
- package/tests/ncp/security.test.ts +184 -0
- package/tests/ncp/stream-window.test.ts +167 -0
- package/tests/ncp/stream.test.ts +242 -0
- package/tests/ncp/version-negotiation.test.ts +123 -0
- package/tests/ndp.test.ts +271 -0
- package/tests/nip.test.ts +184 -0
- package/tests/nop.test.ts +344 -0
- package/tests/nwp.test.ts +237 -0
- package/tsconfig.json +20 -0
- package/tsup.config.ts +20 -0
- package/vitest.config.ts +10 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/exceptions.ts","../../src/core/frames.ts","../../src/core/codec.ts","../../src/core/registry.ts","../../src/core/cache.ts"],"names":["FrameType","EncodingTier","view","payloadLength","buf","msgpack","createHash"],"mappings":"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","file":"index.cjs","sourcesContent":["// Copyright 2026 INNO LOTUS PTY LTD\n// SPDX-License-Identifier: Apache-2.0\n\n/** Base class for all NPS errors. */\nexport class NpsError extends Error {\n constructor(message: string) {\n super(message);\n this.name = new.target.name;\n }\n}\n\n/** Raised when a wire buffer cannot be parsed as a valid NPS frame. */\nexport class NpsFrameError extends NpsError {}\n\n/** Raised when frame serialisation or deserialisation fails. */\nexport class NpsCodecError extends NpsError {}\n\n/** Raised when an anchor_id is not found in the cache. */\nexport class NpsAnchorNotFoundError extends NpsError {\n constructor(public readonly anchorId: string) {\n super(`AnchorFrame not found in cache: ${anchorId}`);\n }\n}\n\n/**\n * Raised when the same anchor_id is stored with a different schema (NPS-1 §7.2).\n * This indicates a potential anchor-poisoning attack.\n */\nexport class NpsAnchorPoisonError extends NpsError {\n constructor(public readonly anchorId: string) {\n super(\n `Anchor poisoning detected: anchor_id ${anchorId} already exists with a different schema.`,\n );\n }\n}\n","// Copyright 2026 INNO LOTUS PTY LTD\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * NPS wire-level frame primitives: FrameType, FrameFlags, EncodingTier, FrameHeader.\n */\n\nimport { NpsFrameError } from \"./exceptions.js\";\n\n// ── FrameType ────────────────────────────────────────────────────────────────\n\n/** Unified frame byte namespace for the full NPS suite (NPS-0 §9). */\nexport enum FrameType {\n // NCP 0x01–0x0F\n ANCHOR = 0x01,\n DIFF = 0x02,\n STREAM = 0x03,\n CAPS = 0x04,\n ALIGN = 0x05, // deprecated — use AlignStream (0x43)\n\n // NWP 0x10–0x1F\n QUERY = 0x10,\n ACTION = 0x11,\n\n // NIP 0x20–0x2F\n IDENT = 0x20,\n TRUST = 0x21,\n REVOKE = 0x22,\n\n // NDP 0x30–0x3F\n ANNOUNCE = 0x30,\n RESOLVE = 0x31,\n GRAPH = 0x32,\n\n // NOP 0x40–0x4F\n TASK = 0x40,\n DELEGATE = 0x41,\n SYNC = 0x42,\n ALIGN_STREAM = 0x43,\n\n // Reserved / System 0xF0–0xFF\n ERROR = 0xFE,\n}\n\n// ── EncodingTier ─────────────────────────────────────────────────────────────\n\n/**\n * Wire encoding tier, stored in the lower 2 bits of the flags byte (NPS-1 §3.2).\n * 0x00 = Tier-1 JSON — human-readable; development / compatibility.\n * 0x01 = Tier-2 MsgPack — binary, ~60 % smaller; production default.\n */\nexport enum EncodingTier {\n JSON = 0x00,\n MSGPACK = 0x01,\n}\n\n// ── FrameFlags ───────────────────────────────────────────────────────────────\n\n/**\n * Flags byte in the NPS frame header (NPS-1 §3.2).\n * Bit layout (LSB = bit 0):\n * Bits 0–1 (T0,T1) : Encoding tier\n * Bit 2 (FINAL) : Last chunk of a StreamFrame; non-stream frames MUST set this\n * Bit 3 (ENC) : Payload encrypted\n * Bits 4–6 (RSV) : Reserved — sender MUST write 0\n * Bit 7 (EXT) : Extended 8-byte header\n */\nexport const FrameFlags = {\n NONE: 0x00,\n TIER1_JSON: 0x00,\n TIER2_MSGPACK: 0x01,\n FINAL: 0x04,\n ENCRYPTED: 0x08,\n EXT: 0x80,\n} as const;\n\n// ── Constants ─────────────────────────────────────────────────────────────────\n\nexport const DEFAULT_HEADER_SIZE = 4;\nexport const EXTENDED_HEADER_SIZE = 8;\nexport const DEFAULT_MAX_PAYLOAD = 0xffff; // 65 535 bytes\nexport const EXTENDED_MAX_PAYLOAD = 0xffffffff; // 4 GiB - 1\n\n// ── FrameHeader ──────────────────────────────────────────────────────────────\n\n/**\n * NPS frame header, present at the start of every wire message (NPS-1 §3.1).\n *\n * Default (4 bytes, EXT=0):\n * Byte 0 : FrameType\n * Byte 1 : Flags\n * Byte 2–3 : PayloadLength (big-endian uint16)\n *\n * Extended (8 bytes, EXT=1):\n * Byte 0 : FrameType\n * Byte 1 : Flags (bit 7 = 1)\n * Byte 2–3 : Reserved (must be 0)\n * Byte 4–7 : PayloadLength (big-endian uint32)\n */\nexport class FrameHeader {\n constructor(\n public readonly frameType: FrameType,\n public readonly flags: number,\n public readonly payloadLength: number,\n ) {}\n\n get isExtended(): boolean {\n return (this.flags & FrameFlags.EXT) !== 0;\n }\n\n get headerSize(): number {\n return this.isExtended ? EXTENDED_HEADER_SIZE : DEFAULT_HEADER_SIZE;\n }\n\n get encodingTier(): EncodingTier {\n return (this.flags & 0x03) as EncodingTier;\n }\n\n get isFinal(): boolean {\n return (this.flags & 0x04) !== 0;\n }\n\n get isEncrypted(): boolean {\n return (this.flags & 0x08) !== 0;\n }\n\n // ── Parsing ───────────────────────────────────────────────────────────────\n\n static parse(buf: Uint8Array): FrameHeader {\n if (buf.length < 2) {\n throw new NpsFrameError(\n `Buffer too small to read frame type and flags: need >= 2 bytes, got ${buf.length}.`,\n );\n }\n\n const flags = buf[1]!;\n const ext = (flags & FrameFlags.EXT) !== 0;\n\n if (ext) {\n if (buf.length < EXTENDED_HEADER_SIZE) {\n throw new NpsFrameError(\n `Buffer too small for extended frame header: need ${EXTENDED_HEADER_SIZE} bytes, got ${buf.length}.`,\n );\n }\n const view = new DataView(buf.buffer, buf.byteOffset);\n const payloadLength = view.getUint32(4, false); // big-endian\n return new FrameHeader(buf[0]! as FrameType, flags, payloadLength);\n }\n\n if (buf.length < DEFAULT_HEADER_SIZE) {\n throw new NpsFrameError(\n `Buffer too small for frame header: need ${DEFAULT_HEADER_SIZE} bytes, got ${buf.length}.`,\n );\n }\n const view = new DataView(buf.buffer, buf.byteOffset);\n const payloadLength = view.getUint16(2, false); // big-endian\n return new FrameHeader(buf[0]! as FrameType, flags, payloadLength);\n }\n\n // ── Serialisation ─────────────────────────────────────────────────────────\n\n toBytes(): Uint8Array {\n if (this.isExtended) {\n const buf = new Uint8Array(EXTENDED_HEADER_SIZE);\n const view = new DataView(buf.buffer);\n view.setUint8(0, this.frameType);\n view.setUint8(1, this.flags);\n view.setUint16(2, 0, false); // reserved\n view.setUint32(4, this.payloadLength, false);\n return buf;\n }\n const buf = new Uint8Array(DEFAULT_HEADER_SIZE);\n const view = new DataView(buf.buffer);\n view.setUint8(0, this.frameType);\n view.setUint8(1, this.flags);\n view.setUint16(2, this.payloadLength, false);\n return buf;\n }\n\n toString(): string {\n return `FrameHeader(frameType=0x${this.frameType.toString(16).padStart(2, \"0\")}, flags=0x${this.flags.toString(16).padStart(2, \"0\")}, payloadLength=${this.payloadLength})`;\n }\n}\n","// Copyright 2026 INNO LOTUS PTY LTD\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * NPS frame codec: Tier-1 (JSON) and Tier-2 (MsgPack) encode/decode,\n * plus the top-level NpsFrameCodec dispatcher.\n */\n\nimport * as msgpack from \"@msgpack/msgpack\";\nimport { NpsCodecError } from \"./exceptions.js\";\nimport {\n DEFAULT_MAX_PAYLOAD,\n EncodingTier,\n FrameFlags,\n FrameHeader,\n FrameType,\n} from \"./frames.js\";\nimport type { FrameRegistry } from \"./registry.js\";\n\n// ── NpsFrame interface ────────────────────────────────────────────────────────\n\nexport interface NpsFrame {\n readonly frameType: FrameType;\n readonly preferredTier: EncodingTier;\n toDict(): Record<string, unknown>;\n}\n\n// ── Tier-1 JSON codec ─────────────────────────────────────────────────────────\n\nexport class Tier1JsonCodec {\n encode(frame: NpsFrame): Uint8Array {\n try {\n const json = JSON.stringify(frame.toDict());\n return new TextEncoder().encode(json);\n } catch (err) {\n throw new NpsCodecError(\n `Tier-1 JSON encode failed for 0x${frame.frameType.toString(16).padStart(2, \"0\")}: ${String(err)}`,\n );\n }\n }\n\n decode(frameType: FrameType, payload: Uint8Array, registry: FrameRegistry): NpsFrame {\n const cls = registry.resolve(frameType);\n try {\n const text = new TextDecoder().decode(payload);\n const data = JSON.parse(text) as Record<string, unknown>;\n return cls.fromDict(data);\n } catch (err) {\n throw new NpsCodecError(\n `Tier-1 JSON decode failed for 0x${frameType.toString(16).padStart(2, \"0\")}: ${String(err)}`,\n );\n }\n }\n}\n\n// ── Tier-2 MsgPack codec ──────────────────────────────────────────────────────\n\nexport class Tier2MsgPackCodec {\n encode(frame: NpsFrame): Uint8Array {\n try {\n return msgpack.encode(frame.toDict());\n } catch (err) {\n throw new NpsCodecError(\n `Tier-2 MsgPack encode failed for 0x${frame.frameType.toString(16).padStart(2, \"0\")}: ${String(err)}`,\n );\n }\n }\n\n decode(frameType: FrameType, payload: Uint8Array, registry: FrameRegistry): NpsFrame {\n const cls = registry.resolve(frameType);\n try {\n const data = msgpack.decode(payload) as Record<string, unknown>;\n return cls.fromDict(data);\n } catch (err) {\n throw new NpsCodecError(\n `Tier-2 MsgPack decode failed for 0x${frameType.toString(16).padStart(2, \"0\")}: ${String(err)}`,\n );\n }\n }\n}\n\n// ── NpsFrameCodec (dispatcher) ────────────────────────────────────────────────\n\nexport class NpsFrameCodec {\n private readonly _registry: FrameRegistry;\n private readonly _maxPayload: number;\n private readonly _json = new Tier1JsonCodec();\n private readonly _msgpack = new Tier2MsgPackCodec();\n\n constructor(registry: FrameRegistry, options: { maxPayload?: number } = {}) {\n this._registry = registry;\n this._maxPayload = options.maxPayload ?? DEFAULT_MAX_PAYLOAD;\n }\n\n // ── Encode ────────────────────────────────────────────────────────────────\n\n encode(frame: NpsFrame, options: { overrideTier?: EncodingTier } = {}): Uint8Array {\n const tier = options.overrideTier ?? frame.preferredTier;\n const tierCodec = this._selectCodec(tier);\n\n let payload: Uint8Array;\n try {\n payload = tierCodec.encode(frame);\n } catch (err) {\n if (err instanceof NpsCodecError) throw err;\n throw new NpsCodecError(`Encode failed for 0x${frame.frameType.toString(16)}.`);\n }\n\n if (payload.length > this._maxPayload) {\n throw new NpsCodecError(\n `Encoded payload for 0x${frame.frameType.toString(16).padStart(2, \"0\")} exceeds max_frame_payload` +\n ` (${payload.length} bytes > ${this._maxPayload}). Use StreamFrame (0x03) for large payloads.`,\n );\n }\n\n const useExt = payload.length > DEFAULT_MAX_PAYLOAD;\n let flags = this._buildFlags(frame, tier);\n if (useExt) flags |= FrameFlags.EXT;\n\n const header = new FrameHeader(frame.frameType, flags, payload.length);\n const headerBytes = header.toBytes();\n const wire = new Uint8Array(headerBytes.length + payload.length);\n wire.set(headerBytes, 0);\n wire.set(payload, headerBytes.length);\n return wire;\n }\n\n // ── Decode ────────────────────────────────────────────────────────────────\n\n decode(wire: Uint8Array): NpsFrame {\n const header = FrameHeader.parse(wire);\n const payload = wire.slice(header.headerSize, header.headerSize + header.payloadLength);\n const codec = this._selectCodec(header.encodingTier);\n return codec.decode(header.frameType, payload, this._registry);\n }\n\n static peekHeader(wire: Uint8Array): FrameHeader {\n return FrameHeader.parse(wire);\n }\n\n // ── Private ───────────────────────────────────────────────────────────────\n\n private _buildFlags(frame: NpsFrame, tier: EncodingTier): number {\n let flags = tier === EncodingTier.JSON ? FrameFlags.TIER1_JSON : FrameFlags.TIER2_MSGPACK;\n\n const isStreamFrame = \"isLast\" in frame;\n const isFinal = !isStreamFrame || (frame as { isLast: boolean }).isLast;\n if (isFinal) flags |= FrameFlags.FINAL;\n\n return flags;\n }\n\n private _selectCodec(tier: EncodingTier): Tier1JsonCodec | Tier2MsgPackCodec {\n if (tier === EncodingTier.JSON) return this._json;\n if (tier === EncodingTier.MSGPACK) return this._msgpack;\n throw new NpsCodecError(`Unsupported encoding tier: 0x${(tier as number).toString(16).padStart(2, \"0\")}.`);\n }\n}\n","// Copyright 2026 INNO LOTUS PTY LTD\n// SPDX-License-Identifier: Apache-2.0\n\nimport { NpsFrameError } from \"./exceptions.js\";\nimport { FrameType } from \"./frames.js\";\nimport type { NpsFrame } from \"./codec.js\";\n\nexport interface FrameClass {\n fromDict(data: Record<string, unknown>): NpsFrame;\n}\n\nexport class FrameRegistry {\n private readonly _map = new Map<FrameType, FrameClass>();\n\n register(frameType: FrameType, cls: FrameClass): void {\n this._map.set(frameType, cls);\n }\n\n resolve(frameType: FrameType): FrameClass {\n const cls = this._map.get(frameType);\n if (cls === undefined) {\n throw new NpsFrameError(\n `No frame class registered for type 0x${frameType.toString(16).padStart(2, \"0\")}.`,\n );\n }\n return cls;\n }\n}\n","// Copyright 2026 INNO LOTUS PTY LTD\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * AnchorFrameCache — in-process cache for AnchorFrame instances (NPS-1 §4.1).\n */\n\nimport { createHash } from \"node:crypto\";\nimport { NpsAnchorNotFoundError, NpsAnchorPoisonError } from \"./exceptions.js\";\nimport type { AnchorFrame, FrameSchema } from \"../ncp/frames.js\";\n\nexport class AnchorFrameCache {\n private readonly _store = new Map<string, { frame: AnchorFrame; expiresAt: number }>();\n\n // Allow clock injection for testing\n clock: () => number = () => Date.now();\n\n // ── Public API ────────────────────────────────────────────────────────────\n\n set(frame: AnchorFrame): string {\n const anchorId = frame.anchorId.startsWith(\"sha256:\")\n ? frame.anchorId\n : AnchorFrameCache.computeAnchorId(frame.schema);\n\n const existing = this._store.get(anchorId);\n if (existing !== undefined && this.clock() < existing.expiresAt) {\n if (!AnchorFrameCache._schemasEqual(existing.frame.schema, frame.schema)) {\n throw new NpsAnchorPoisonError(anchorId);\n }\n // Same schema — idempotent; refresh TTL below\n }\n\n const ttlMs = (frame.ttl ?? 3600) * 1000;\n const expiresAt = this.clock() + ttlMs;\n this._store.set(anchorId, { frame, expiresAt });\n return anchorId;\n }\n\n get(anchorId: string): AnchorFrame | undefined {\n const entry = this._store.get(anchorId);\n if (entry === undefined) return undefined;\n if (this.clock() > entry.expiresAt) {\n this._store.delete(anchorId);\n return undefined;\n }\n return entry.frame;\n }\n\n getRequired(anchorId: string): AnchorFrame {\n const frame = this.get(anchorId);\n if (frame === undefined) throw new NpsAnchorNotFoundError(anchorId);\n return frame;\n }\n\n invalidate(anchorId: string): void {\n this._store.delete(anchorId);\n }\n\n get size(): number {\n this._evictExpired();\n return this._store.size;\n }\n\n // ── Static helpers ────────────────────────────────────────────────────────\n\n static computeAnchorId(schema: FrameSchema): string {\n const sorted = [...schema.fields]\n .map((f) => {\n const obj: Record<string, unknown> = { name: f.name, type: f.type };\n if (f.semantic !== undefined) obj[\"semantic\"] = f.semantic;\n if (f.nullable !== undefined) obj[\"nullable\"] = f.nullable;\n return obj;\n })\n .sort((a, b) => String(a[\"name\"]).localeCompare(String(b[\"name\"])));\n\n const canonical = JSON.stringify(sorted);\n const digest = createHash(\"sha256\").update(canonical, \"utf8\").digest(\"hex\");\n return `sha256:${digest}`;\n }\n\n // ── Private ───────────────────────────────────────────────────────────────\n\n private _evictExpired(): void {\n const now = this.clock();\n for (const [k, entry] of this._store) {\n if (now > entry.expiresAt) this._store.delete(k);\n }\n }\n\n private static _schemasEqual(a: FrameSchema, b: FrameSchema): boolean {\n return AnchorFrameCache.computeAnchorId(a) === AnchorFrameCache.computeAnchorId(b);\n }\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export { D as DEFAULT_HEADER_SIZE, a as DEFAULT_MAX_PAYLOAD, E as EXTENDED_HEADER_SIZE, b as EXTENDED_MAX_PAYLOAD, c as EncodingTier, d as FrameClass, e as FrameFlags, f as FrameHeader, F as FrameRegistry, g as FrameType, N as NpsFrame, h as NpsFrameCodec, T as Tier1JsonCodec, i as Tier2MsgPackCodec } from '../codec-CmHeovTV.cjs';
|
|
2
|
+
import { A as AnchorFrame, F as FrameSchema } from '../frames-B3qLdl_g.cjs';
|
|
3
|
+
|
|
4
|
+
/** Base class for all NPS errors. */
|
|
5
|
+
declare class NpsError extends Error {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
/** Raised when a wire buffer cannot be parsed as a valid NPS frame. */
|
|
9
|
+
declare class NpsFrameError extends NpsError {
|
|
10
|
+
}
|
|
11
|
+
/** Raised when frame serialisation or deserialisation fails. */
|
|
12
|
+
declare class NpsCodecError extends NpsError {
|
|
13
|
+
}
|
|
14
|
+
/** Raised when an anchor_id is not found in the cache. */
|
|
15
|
+
declare class NpsAnchorNotFoundError extends NpsError {
|
|
16
|
+
readonly anchorId: string;
|
|
17
|
+
constructor(anchorId: string);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Raised when the same anchor_id is stored with a different schema (NPS-1 §7.2).
|
|
21
|
+
* This indicates a potential anchor-poisoning attack.
|
|
22
|
+
*/
|
|
23
|
+
declare class NpsAnchorPoisonError extends NpsError {
|
|
24
|
+
readonly anchorId: string;
|
|
25
|
+
constructor(anchorId: string);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
declare class AnchorFrameCache {
|
|
29
|
+
private readonly _store;
|
|
30
|
+
clock: () => number;
|
|
31
|
+
set(frame: AnchorFrame): string;
|
|
32
|
+
get(anchorId: string): AnchorFrame | undefined;
|
|
33
|
+
getRequired(anchorId: string): AnchorFrame;
|
|
34
|
+
invalidate(anchorId: string): void;
|
|
35
|
+
get size(): number;
|
|
36
|
+
static computeAnchorId(schema: FrameSchema): string;
|
|
37
|
+
private _evictExpired;
|
|
38
|
+
private static _schemasEqual;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { AnchorFrameCache, NpsAnchorNotFoundError, NpsAnchorPoisonError, NpsCodecError, NpsError, NpsFrameError };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./frame-header.js";
|
|
2
|
+
export * from "./frame-registry.js";
|
|
3
|
+
export * from "./anchor-cache.js";
|
|
4
|
+
export * from "./exceptions.js";
|
|
5
|
+
export * from "./status-codes.js";
|
|
6
|
+
export { jcsStringify, sortKeysStringify } from "./canonical-json.js";
|
|
7
|
+
export type { CryptoProvider } from "./crypto-provider.js";
|
|
8
|
+
export * from "./codecs/index.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,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;AAC3D,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
|
|
3
|
+
export * from "./frame-header.js";
|
|
4
|
+
export * from "./frame-registry.js";
|
|
5
|
+
export * from "./anchor-cache.js";
|
|
6
|
+
export * from "./exceptions.js";
|
|
7
|
+
export * from "./status-codes.js";
|
|
8
|
+
export { jcsStringify, sortKeysStringify } from "./canonical-json.js";
|
|
9
|
+
export * from "./codecs/index.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEtE,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FrameType } from "./frames.js";
|
|
2
|
+
import type { NpsFrame } from "./codec.js";
|
|
3
|
+
export interface FrameClass {
|
|
4
|
+
fromDict(data: Record<string, unknown>): NpsFrame;
|
|
5
|
+
}
|
|
6
|
+
export declare class FrameRegistry {
|
|
7
|
+
private readonly _map;
|
|
8
|
+
register(frameType: FrameType, cls: FrameClass): void;
|
|
9
|
+
resolve(frameType: FrameType): FrameClass;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;CACnD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAEzD,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAIrD,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU;CAS1C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Copyright 2026 INNO LOTUS PTY LTD
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { NpsFrameError } from "./exceptions.js";
|
|
4
|
+
export class FrameRegistry {
|
|
5
|
+
_map = new Map();
|
|
6
|
+
register(frameType, cls) {
|
|
7
|
+
this._map.set(frameType, cls);
|
|
8
|
+
}
|
|
9
|
+
resolve(frameType) {
|
|
10
|
+
const cls = this._map.get(frameType);
|
|
11
|
+
if (cls === undefined) {
|
|
12
|
+
throw new NpsFrameError(`No frame class registered for type 0x${frameType.toString(16).padStart(2, "0")}.`);
|
|
13
|
+
}
|
|
14
|
+
return cls;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,MAAM,OAAO,aAAa;IACP,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEzD,QAAQ,CAAC,SAAoB,EAAE,GAAe;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,SAAoB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CACrB,wCAAwC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** NPS native status code constants. */
|
|
2
|
+
export declare const NpsStatusCodes: {
|
|
3
|
+
readonly NPS_OK: "NPS-OK";
|
|
4
|
+
readonly NPS_OK_ACCEPTED: "NPS-OK-ACCEPTED";
|
|
5
|
+
readonly NPS_OK_NO_CONTENT: "NPS-OK-NO-CONTENT";
|
|
6
|
+
readonly NPS_AUTH_UNAUTHENTICATED: "NPS-AUTH-UNAUTHENTICATED";
|
|
7
|
+
readonly NPS_AUTH_FORBIDDEN: "NPS-AUTH-FORBIDDEN";
|
|
8
|
+
readonly NPS_CLIENT_BAD_FRAME: "NPS-CLIENT-BAD-FRAME";
|
|
9
|
+
readonly NPS_CLIENT_BAD_PARAM: "NPS-CLIENT-BAD-PARAM";
|
|
10
|
+
readonly NPS_CLIENT_NOT_FOUND: "NPS-CLIENT-NOT-FOUND";
|
|
11
|
+
readonly NPS_CLIENT_CONFLICT: "NPS-CLIENT-CONFLICT";
|
|
12
|
+
readonly NPS_CLIENT_GONE: "NPS-CLIENT-GONE";
|
|
13
|
+
readonly NPS_CLIENT_UNPROCESSABLE: "NPS-CLIENT-UNPROCESSABLE";
|
|
14
|
+
readonly NPS_SERVER_INTERNAL: "NPS-SERVER-INTERNAL";
|
|
15
|
+
readonly NPS_SERVER_UNAVAILABLE: "NPS-SERVER-UNAVAILABLE";
|
|
16
|
+
readonly NPS_SERVER_TIMEOUT: "NPS-SERVER-TIMEOUT";
|
|
17
|
+
readonly NPS_SERVER_ENCODING_UNSUPPORTED: "NPS-SERVER-ENCODING-UNSUPPORTED";
|
|
18
|
+
readonly NPS_STREAM_SEQ_GAP: "NPS-STREAM-SEQ-GAP";
|
|
19
|
+
readonly NPS_STREAM_NOT_FOUND: "NPS-STREAM-NOT-FOUND";
|
|
20
|
+
readonly NPS_STREAM_LIMIT: "NPS-STREAM-LIMIT";
|
|
21
|
+
readonly NPS_LIMIT_RATE: "NPS-LIMIT-RATE";
|
|
22
|
+
readonly NPS_LIMIT_BUDGET: "NPS-LIMIT-BUDGET";
|
|
23
|
+
readonly NPS_LIMIT_PAYLOAD: "NPS-LIMIT-PAYLOAD";
|
|
24
|
+
readonly NPS_LIMIT_EXCEEDED: "NPS-LIMIT-EXCEEDED";
|
|
25
|
+
readonly NPS_PROTO_VERSION_INCOMPATIBLE: "NPS-PROTO-VERSION-INCOMPATIBLE";
|
|
26
|
+
};
|
|
27
|
+
export type NpsStatusCode = (typeof NpsStatusCodes)[keyof typeof NpsStatusCodes];
|
|
28
|
+
//# sourceMappingURL=status-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-codes.d.ts","sourceRoot":"","sources":["../../src/core/status-codes.ts"],"names":[],"mappings":"AAKA,wCAAwC;AACxC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;CAqCjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (c) 2026 LabAcacia / INNO LOTUS PTY LTD
|
|
3
|
+
//
|
|
4
|
+
// NPS native status codes — per spec/status-codes.md
|
|
5
|
+
/** NPS native status code constants. */
|
|
6
|
+
export const NpsStatusCodes = {
|
|
7
|
+
// Success
|
|
8
|
+
NPS_OK: "NPS-OK",
|
|
9
|
+
NPS_OK_ACCEPTED: "NPS-OK-ACCEPTED",
|
|
10
|
+
NPS_OK_NO_CONTENT: "NPS-OK-NO-CONTENT",
|
|
11
|
+
// Auth
|
|
12
|
+
NPS_AUTH_UNAUTHENTICATED: "NPS-AUTH-UNAUTHENTICATED",
|
|
13
|
+
NPS_AUTH_FORBIDDEN: "NPS-AUTH-FORBIDDEN",
|
|
14
|
+
// Client errors
|
|
15
|
+
NPS_CLIENT_BAD_FRAME: "NPS-CLIENT-BAD-FRAME",
|
|
16
|
+
NPS_CLIENT_BAD_PARAM: "NPS-CLIENT-BAD-PARAM",
|
|
17
|
+
NPS_CLIENT_NOT_FOUND: "NPS-CLIENT-NOT-FOUND",
|
|
18
|
+
NPS_CLIENT_CONFLICT: "NPS-CLIENT-CONFLICT",
|
|
19
|
+
NPS_CLIENT_GONE: "NPS-CLIENT-GONE",
|
|
20
|
+
NPS_CLIENT_UNPROCESSABLE: "NPS-CLIENT-UNPROCESSABLE",
|
|
21
|
+
// Server errors
|
|
22
|
+
NPS_SERVER_INTERNAL: "NPS-SERVER-INTERNAL",
|
|
23
|
+
NPS_SERVER_UNAVAILABLE: "NPS-SERVER-UNAVAILABLE",
|
|
24
|
+
NPS_SERVER_TIMEOUT: "NPS-SERVER-TIMEOUT",
|
|
25
|
+
NPS_SERVER_ENCODING_UNSUPPORTED: "NPS-SERVER-ENCODING-UNSUPPORTED",
|
|
26
|
+
// Stream
|
|
27
|
+
NPS_STREAM_SEQ_GAP: "NPS-STREAM-SEQ-GAP",
|
|
28
|
+
NPS_STREAM_NOT_FOUND: "NPS-STREAM-NOT-FOUND",
|
|
29
|
+
NPS_STREAM_LIMIT: "NPS-STREAM-LIMIT",
|
|
30
|
+
// Limit
|
|
31
|
+
NPS_LIMIT_RATE: "NPS-LIMIT-RATE",
|
|
32
|
+
NPS_LIMIT_BUDGET: "NPS-LIMIT-BUDGET",
|
|
33
|
+
NPS_LIMIT_PAYLOAD: "NPS-LIMIT-PAYLOAD",
|
|
34
|
+
NPS_LIMIT_EXCEEDED: "NPS-LIMIT-EXCEEDED",
|
|
35
|
+
// Protocol
|
|
36
|
+
NPS_PROTO_VERSION_INCOMPATIBLE: "NPS-PROTO-VERSION-INCOMPATIBLE",
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=status-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-codes.js","sourceRoot":"","sources":["../../src/core/status-codes.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,oDAAoD;AACpD,EAAE;AACF,qDAAqD;AAErD,wCAAwC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU;IACV,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IAEtC,OAAO;IACP,wBAAwB,EAAE,0BAA0B;IACpD,kBAAkB,EAAE,oBAAoB;IAExC,gBAAgB;IAChB,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,wBAAwB,EAAE,0BAA0B;IAEpD,gBAAgB;IAChB,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,+BAA+B,EAAE,iCAAiC;IAElE,SAAS;IACT,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,gBAAgB,EAAE,kBAAkB;IAEpC,QAAQ;IACR,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IAExC,WAAW;IACX,8BAA8B,EAAE,gCAAgC;CACxD,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { N as NpsFrame, g as FrameType, c as EncodingTier } from './codec-CmHeovTV.cjs';
|
|
2
|
+
|
|
3
|
+
interface SchemaField {
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
semantic?: string;
|
|
7
|
+
nullable?: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface FrameSchema {
|
|
10
|
+
fields: readonly SchemaField[];
|
|
11
|
+
}
|
|
12
|
+
declare class AnchorFrame implements NpsFrame {
|
|
13
|
+
readonly anchorId: string;
|
|
14
|
+
readonly schema: FrameSchema;
|
|
15
|
+
readonly ttl: number;
|
|
16
|
+
readonly frameType = FrameType.ANCHOR;
|
|
17
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
18
|
+
constructor(anchorId: string, schema: FrameSchema, ttl?: number);
|
|
19
|
+
toDict(): Record<string, unknown>;
|
|
20
|
+
static fromDict(data: Record<string, unknown>): AnchorFrame;
|
|
21
|
+
}
|
|
22
|
+
interface JsonPatchOperation {
|
|
23
|
+
op: string;
|
|
24
|
+
path: string;
|
|
25
|
+
value?: unknown;
|
|
26
|
+
}
|
|
27
|
+
declare class DiffFrame implements NpsFrame {
|
|
28
|
+
readonly anchorRef: string;
|
|
29
|
+
readonly baseSeq: number;
|
|
30
|
+
readonly patch: readonly JsonPatchOperation[];
|
|
31
|
+
readonly entityId?: string | undefined;
|
|
32
|
+
readonly frameType = FrameType.DIFF;
|
|
33
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
34
|
+
constructor(anchorRef: string, baseSeq: number, patch: readonly JsonPatchOperation[], entityId?: string | undefined);
|
|
35
|
+
toDict(): Record<string, unknown>;
|
|
36
|
+
static fromDict(data: Record<string, unknown>): DiffFrame;
|
|
37
|
+
}
|
|
38
|
+
declare class StreamFrame implements NpsFrame {
|
|
39
|
+
readonly streamId: string;
|
|
40
|
+
readonly seq: number;
|
|
41
|
+
readonly isLast: boolean;
|
|
42
|
+
readonly data: readonly Record<string, unknown>[];
|
|
43
|
+
readonly anchorRef?: string | undefined;
|
|
44
|
+
readonly windowSize?: number | undefined;
|
|
45
|
+
readonly frameType = FrameType.STREAM;
|
|
46
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
47
|
+
constructor(streamId: string, seq: number, isLast: boolean, data: readonly Record<string, unknown>[], anchorRef?: string | undefined, windowSize?: number | undefined);
|
|
48
|
+
toDict(): Record<string, unknown>;
|
|
49
|
+
static fromDict(data: Record<string, unknown>): StreamFrame;
|
|
50
|
+
}
|
|
51
|
+
declare class CapsFrame implements NpsFrame {
|
|
52
|
+
readonly anchorRef: string;
|
|
53
|
+
readonly count: number;
|
|
54
|
+
readonly data: readonly Record<string, unknown>[];
|
|
55
|
+
readonly nextCursor?: string | undefined;
|
|
56
|
+
readonly tokenEst?: number | undefined;
|
|
57
|
+
readonly cached?: boolean | undefined;
|
|
58
|
+
readonly tokenizerUsed?: string | undefined;
|
|
59
|
+
readonly frameType = FrameType.CAPS;
|
|
60
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
61
|
+
constructor(anchorRef: string, count: number, data: readonly Record<string, unknown>[], nextCursor?: string | undefined, tokenEst?: number | undefined, cached?: boolean | undefined, tokenizerUsed?: string | undefined);
|
|
62
|
+
toDict(): Record<string, unknown>;
|
|
63
|
+
static fromDict(data: Record<string, unknown>): CapsFrame;
|
|
64
|
+
}
|
|
65
|
+
declare class ErrorFrame implements NpsFrame {
|
|
66
|
+
readonly status: string;
|
|
67
|
+
readonly error: string;
|
|
68
|
+
readonly message?: string | undefined;
|
|
69
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
70
|
+
readonly frameType = FrameType.ERROR;
|
|
71
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
72
|
+
constructor(status: string, error: string, message?: string | undefined, details?: Record<string, unknown> | undefined);
|
|
73
|
+
toDict(): Record<string, unknown>;
|
|
74
|
+
static fromDict(data: Record<string, unknown>): ErrorFrame;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { AnchorFrame as A, CapsFrame as C, DiffFrame as D, ErrorFrame as E, type FrameSchema as F, type JsonPatchOperation as J, type SchemaField as S, StreamFrame as a };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { N as NpsFrame, g as FrameType, c as EncodingTier } from './codec-CmHeovTV.js';
|
|
2
|
+
|
|
3
|
+
interface SchemaField {
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
semantic?: string;
|
|
7
|
+
nullable?: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface FrameSchema {
|
|
10
|
+
fields: readonly SchemaField[];
|
|
11
|
+
}
|
|
12
|
+
declare class AnchorFrame implements NpsFrame {
|
|
13
|
+
readonly anchorId: string;
|
|
14
|
+
readonly schema: FrameSchema;
|
|
15
|
+
readonly ttl: number;
|
|
16
|
+
readonly frameType = FrameType.ANCHOR;
|
|
17
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
18
|
+
constructor(anchorId: string, schema: FrameSchema, ttl?: number);
|
|
19
|
+
toDict(): Record<string, unknown>;
|
|
20
|
+
static fromDict(data: Record<string, unknown>): AnchorFrame;
|
|
21
|
+
}
|
|
22
|
+
interface JsonPatchOperation {
|
|
23
|
+
op: string;
|
|
24
|
+
path: string;
|
|
25
|
+
value?: unknown;
|
|
26
|
+
}
|
|
27
|
+
declare class DiffFrame implements NpsFrame {
|
|
28
|
+
readonly anchorRef: string;
|
|
29
|
+
readonly baseSeq: number;
|
|
30
|
+
readonly patch: readonly JsonPatchOperation[];
|
|
31
|
+
readonly entityId?: string | undefined;
|
|
32
|
+
readonly frameType = FrameType.DIFF;
|
|
33
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
34
|
+
constructor(anchorRef: string, baseSeq: number, patch: readonly JsonPatchOperation[], entityId?: string | undefined);
|
|
35
|
+
toDict(): Record<string, unknown>;
|
|
36
|
+
static fromDict(data: Record<string, unknown>): DiffFrame;
|
|
37
|
+
}
|
|
38
|
+
declare class StreamFrame implements NpsFrame {
|
|
39
|
+
readonly streamId: string;
|
|
40
|
+
readonly seq: number;
|
|
41
|
+
readonly isLast: boolean;
|
|
42
|
+
readonly data: readonly Record<string, unknown>[];
|
|
43
|
+
readonly anchorRef?: string | undefined;
|
|
44
|
+
readonly windowSize?: number | undefined;
|
|
45
|
+
readonly frameType = FrameType.STREAM;
|
|
46
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
47
|
+
constructor(streamId: string, seq: number, isLast: boolean, data: readonly Record<string, unknown>[], anchorRef?: string | undefined, windowSize?: number | undefined);
|
|
48
|
+
toDict(): Record<string, unknown>;
|
|
49
|
+
static fromDict(data: Record<string, unknown>): StreamFrame;
|
|
50
|
+
}
|
|
51
|
+
declare class CapsFrame implements NpsFrame {
|
|
52
|
+
readonly anchorRef: string;
|
|
53
|
+
readonly count: number;
|
|
54
|
+
readonly data: readonly Record<string, unknown>[];
|
|
55
|
+
readonly nextCursor?: string | undefined;
|
|
56
|
+
readonly tokenEst?: number | undefined;
|
|
57
|
+
readonly cached?: boolean | undefined;
|
|
58
|
+
readonly tokenizerUsed?: string | undefined;
|
|
59
|
+
readonly frameType = FrameType.CAPS;
|
|
60
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
61
|
+
constructor(anchorRef: string, count: number, data: readonly Record<string, unknown>[], nextCursor?: string | undefined, tokenEst?: number | undefined, cached?: boolean | undefined, tokenizerUsed?: string | undefined);
|
|
62
|
+
toDict(): Record<string, unknown>;
|
|
63
|
+
static fromDict(data: Record<string, unknown>): CapsFrame;
|
|
64
|
+
}
|
|
65
|
+
declare class ErrorFrame implements NpsFrame {
|
|
66
|
+
readonly status: string;
|
|
67
|
+
readonly error: string;
|
|
68
|
+
readonly message?: string | undefined;
|
|
69
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
70
|
+
readonly frameType = FrameType.ERROR;
|
|
71
|
+
readonly preferredTier = EncodingTier.MSGPACK;
|
|
72
|
+
constructor(status: string, error: string, message?: string | undefined, details?: Record<string, unknown> | undefined);
|
|
73
|
+
toDict(): Record<string, unknown>;
|
|
74
|
+
static fromDict(data: Record<string, unknown>): ErrorFrame;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { AnchorFrame as A, CapsFrame as C, DiffFrame as D, ErrorFrame as E, type FrameSchema as F, type JsonPatchOperation as J, type SchemaField as S, StreamFrame as a };
|