@labacacia/nps-sdk 1.0.0-alpha.3 → 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.
- package/CHANGELOG.cn.md +53 -0
- package/CHANGELOG.md +62 -0
- package/README.cn.md +8 -2
- package/README.md +8 -2
- package/dist/core/anchor-cache.js +104 -0
- package/dist/core/anchor-cache.js.map +1 -0
- package/dist/core/cache.js +80 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/canonical-json.js +44 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/codec.js +119 -0
- package/dist/core/codec.js.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.js +93 -0
- package/dist/core/codecs/ncp-codec.js.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.js +26 -0
- package/dist/core/codecs/tier2-msgpack-codec.js.map +1 -0
- package/dist/core/crypto-provider.js +10 -0
- package/dist/core/crypto-provider.js.map +1 -0
- package/dist/core/exceptions.js +52 -0
- package/dist/core/exceptions.js.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.js +63 -0
- package/dist/core/frame-registry.js.map +1 -0
- package/dist/core/frames.js +154 -0
- package/dist/core/frames.js.map +1 -0
- package/dist/core/index.js +21 -405
- package/dist/core/index.js.map +1 -1
- package/dist/core/registry.js +17 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/status-codes.js +38 -0
- package/dist/core/status-codes.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- 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.js +29 -0
- package/dist/ncp/frames/caps-frame.js.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.js +13 -0
- package/dist/ncp/frames/error-frame.js.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.js +18 -0
- package/dist/ncp/frames/stream-frame.js.map +1 -0
- package/dist/ncp/frames.js +192 -0
- package/dist/ncp/frames.js.map +1 -0
- package/dist/ncp/handshake.js +80 -0
- package/dist/ncp/handshake.js.map +1 -0
- package/dist/ncp/index.d.ts +1 -0
- package/dist/ncp/index.d.ts.map +1 -1
- package/dist/ncp/index.js +13 -368
- package/dist/ncp/index.js.map +1 -1
- package/dist/ncp/ncp-error-codes.d.ts +1 -0
- package/dist/ncp/ncp-error-codes.d.ts.map +1 -1
- package/dist/ncp/ncp-error-codes.js +34 -0
- package/dist/ncp/ncp-error-codes.js.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/preamble.d.ts +47 -0
- package/dist/ncp/preamble.d.ts.map +1 -0
- package/dist/ncp/preamble.js +74 -0
- package/dist/ncp/preamble.js.map +1 -0
- package/dist/ncp/registry.js +13 -0
- package/dist/ncp/registry.js.map +1 -0
- package/dist/ncp/stream-manager.js +163 -0
- package/dist/ncp/stream-manager.js.map +1 -0
- package/dist/ndp/frames.js +87 -0
- package/dist/ndp/frames.js.map +1 -0
- package/dist/ndp/index.js +6 -223
- package/dist/ndp/index.js.map +1 -1
- package/dist/ndp/ndp-registry.js +79 -0
- package/dist/ndp/ndp-registry.js.map +1 -0
- package/dist/ndp/registry.js +10 -0
- package/dist/ndp/registry.js.map +1 -0
- package/dist/ndp/validator.js +48 -0
- package/dist/ndp/validator.js.map +1 -0
- package/dist/nip/acme/client.d.ts +31 -0
- package/dist/nip/acme/client.d.ts.map +1 -0
- package/dist/nip/acme/client.js +136 -0
- package/dist/nip/acme/client.js.map +1 -0
- package/dist/nip/acme/index.d.ts +6 -0
- package/dist/nip/acme/index.d.ts.map +1 -0
- package/dist/nip/acme/index.js +8 -0
- package/dist/nip/acme/index.js.map +1 -0
- package/dist/nip/acme/jws.d.ts +31 -0
- package/dist/nip/acme/jws.d.ts.map +1 -0
- package/dist/nip/acme/jws.js +76 -0
- package/dist/nip/acme/jws.js.map +1 -0
- package/dist/nip/acme/messages.d.ts +71 -0
- package/dist/nip/acme/messages.d.ts.map +1 -0
- package/dist/nip/acme/messages.js +4 -0
- package/dist/nip/acme/messages.js.map +1 -0
- package/dist/nip/acme/server.d.ts +41 -0
- package/dist/nip/acme/server.d.ts.map +1 -0
- package/dist/nip/acme/server.js +458 -0
- package/dist/nip/acme/server.js.map +1 -0
- package/dist/nip/acme/wire.d.ts +19 -0
- package/dist/nip/acme/wire.d.ts.map +1 -0
- package/dist/nip/acme/wire.js +21 -0
- package/dist/nip/acme/wire.js.map +1 -0
- package/dist/nip/assurance-level.d.ts +14 -0
- package/dist/nip/assurance-level.d.ts.map +1 -0
- package/dist/nip/assurance-level.js +33 -0
- package/dist/nip/assurance-level.js.map +1 -0
- package/dist/nip/cert-format.d.ts +5 -0
- package/dist/nip/cert-format.d.ts.map +1 -0
- package/dist/nip/cert-format.js +6 -0
- package/dist/nip/cert-format.js.map +1 -0
- package/dist/nip/error-codes.d.ts +23 -0
- package/dist/nip/error-codes.d.ts.map +1 -0
- package/dist/nip/error-codes.js +30 -0
- package/dist/nip/error-codes.js.map +1 -0
- package/dist/nip/frames.d.ts +10 -1
- package/dist/nip/frames.d.ts.map +1 -1
- package/dist/nip/frames.js +106 -0
- package/dist/nip/frames.js.map +1 -0
- package/dist/nip/identity.js +94 -0
- package/dist/nip/identity.js.map +1 -0
- package/dist/nip/index.d.ts +6 -0
- package/dist/nip/index.d.ts.map +1 -1
- package/dist/nip/index.js +12 -187
- package/dist/nip/index.js.map +1 -1
- package/dist/nip/registry.js +10 -0
- package/dist/nip/registry.js.map +1 -0
- package/dist/nip/verifier.d.ts +23 -0
- package/dist/nip/verifier.d.ts.map +1 -0
- package/dist/nip/verifier.js +90 -0
- package/dist/nip/verifier.js.map +1 -0
- package/dist/nip/x509/builder.d.ts +35 -0
- package/dist/nip/x509/builder.d.ts.map +1 -0
- package/dist/nip/x509/builder.js +59 -0
- package/dist/nip/x509/builder.js.map +1 -0
- package/dist/nip/x509/index.d.ts +4 -0
- package/dist/nip/x509/index.d.ts.map +1 -0
- package/dist/nip/x509/index.js +6 -0
- package/dist/nip/x509/index.js.map +1 -0
- package/dist/nip/x509/oids.d.ts +17 -0
- package/dist/nip/x509/oids.d.ts.map +1 -0
- package/dist/nip/x509/oids.js +23 -0
- package/dist/nip/x509/oids.js.map +1 -0
- package/dist/nip/x509/verifier.d.ts +26 -0
- package/dist/nip/x509/verifier.d.ts.map +1 -0
- package/dist/nip/x509/verifier.js +171 -0
- package/dist/nip/x509/verifier.js.map +1 -0
- package/dist/nop/client.js +90 -0
- package/dist/nop/client.js.map +1 -0
- package/dist/nop/frames.js +148 -0
- package/dist/nop/frames.js.map +1 -0
- package/dist/nop/index.js +6 -789
- package/dist/nop/index.js.map +1 -1
- package/dist/nop/models.js +50 -0
- package/dist/nop/models.js.map +1 -0
- package/dist/nop/nop-types.js +44 -0
- package/dist/nop/nop-types.js.map +1 -0
- package/dist/nop/registry.js +11 -0
- package/dist/nop/registry.js.map +1 -0
- package/dist/nwp/client.js +101 -0
- package/dist/nwp/client.js.map +1 -0
- package/dist/nwp/frames.js +81 -0
- package/dist/nwp/frames.js.map +1 -0
- package/dist/nwp/index.js +5 -693
- package/dist/nwp/index.js.map +1 -1
- package/dist/nwp/registry.js +9 -0
- package/dist/nwp/registry.js.map +1 -0
- package/dist/setup.js +29 -0
- package/dist/setup.js.map +1 -0
- package/package.json +2 -1
- package/src/index.ts +1 -1
- package/src/ncp/index.ts +1 -0
- package/src/ncp/ncp-error-codes.ts +2 -0
- package/src/ncp/preamble.ts +79 -0
- package/src/nip/acme/client.ts +185 -0
- package/src/nip/acme/index.ts +8 -0
- package/src/nip/acme/jws.ts +109 -0
- package/src/nip/acme/messages.ts +85 -0
- package/src/nip/acme/server.ts +480 -0
- package/src/nip/acme/wire.ts +24 -0
- package/src/nip/assurance-level.ts +35 -0
- package/src/nip/cert-format.ts +9 -0
- package/src/nip/error-codes.ts +36 -0
- package/src/nip/frames.ts +35 -3
- package/src/nip/index.ts +8 -0
- package/src/nip/verifier.ts +122 -0
- package/src/nip/x509/builder.ts +91 -0
- package/src/nip/x509/index.ts +6 -0
- package/src/nip/x509/oids.ts +28 -0
- package/src/nip/x509/verifier.ts +214 -0
- package/tests/_rfc0002-keys.ts +57 -0
- package/tests/ncp/preamble.test.ts +93 -0
- package/tests/nip-acme-agent01.test.ts +192 -0
- package/tests/nip-x509.test.ts +280 -0
- package/dist/core/index.cjs +0 -452
- package/dist/core/index.cjs.map +0 -1
- package/dist/index.cjs +0 -8
- package/dist/index.cjs.map +0 -1
- package/dist/ncp/index.cjs +0 -388
- package/dist/ncp/index.cjs.map +0 -1
- package/dist/ndp/index.cjs +0 -252
- package/dist/ndp/index.cjs.map +0 -1
- package/dist/nip/index.cjs +0 -214
- package/dist/nip/index.cjs.map +0 -1
- package/dist/nop/index.cjs +0 -823
- package/dist/nop/index.cjs.map +0 -1
- package/dist/nwp/index.cjs +0 -720
- package/dist/nwp/index.cjs.map +0 -1
package/dist/nwp/index.js
CHANGED
|
@@ -1,694 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
7
|
-
};
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
// src/core/exceptions.ts
|
|
14
|
-
var NpsError, NpsFrameError, NpsCodecError;
|
|
15
|
-
var init_exceptions = __esm({
|
|
16
|
-
"src/core/exceptions.ts"() {
|
|
17
|
-
NpsError = class extends Error {
|
|
18
|
-
constructor(message) {
|
|
19
|
-
super(message);
|
|
20
|
-
this.name = "NpsError";
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
NpsFrameError = class extends NpsError {
|
|
24
|
-
constructor(message) {
|
|
25
|
-
super(message);
|
|
26
|
-
this.name = "NpsFrameError";
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
NpsCodecError = class extends NpsError {
|
|
30
|
-
constructor(message) {
|
|
31
|
-
super(message);
|
|
32
|
-
this.name = "NpsCodecError";
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
// src/core/frames.ts
|
|
39
|
-
var FrameFlags, DEFAULT_HEADER_SIZE, EXTENDED_HEADER_SIZE, DEFAULT_MAX_PAYLOAD, FrameHeader;
|
|
40
|
-
var init_frames = __esm({
|
|
41
|
-
"src/core/frames.ts"() {
|
|
42
|
-
init_exceptions();
|
|
43
|
-
FrameFlags = {
|
|
44
|
-
NONE: 0,
|
|
45
|
-
TIER1_JSON: 0,
|
|
46
|
-
TIER2_MSGPACK: 1,
|
|
47
|
-
FINAL: 4,
|
|
48
|
-
ENCRYPTED: 8,
|
|
49
|
-
EXT: 128
|
|
50
|
-
};
|
|
51
|
-
DEFAULT_HEADER_SIZE = 4;
|
|
52
|
-
EXTENDED_HEADER_SIZE = 8;
|
|
53
|
-
DEFAULT_MAX_PAYLOAD = 65535;
|
|
54
|
-
FrameHeader = class _FrameHeader {
|
|
55
|
-
constructor(frameType, flags, payloadLength) {
|
|
56
|
-
this.frameType = frameType;
|
|
57
|
-
this.flags = flags;
|
|
58
|
-
this.payloadLength = payloadLength;
|
|
59
|
-
}
|
|
60
|
-
frameType;
|
|
61
|
-
flags;
|
|
62
|
-
payloadLength;
|
|
63
|
-
get isExtended() {
|
|
64
|
-
return (this.flags & FrameFlags.EXT) !== 0;
|
|
65
|
-
}
|
|
66
|
-
get headerSize() {
|
|
67
|
-
return this.isExtended ? EXTENDED_HEADER_SIZE : DEFAULT_HEADER_SIZE;
|
|
68
|
-
}
|
|
69
|
-
get encodingTier() {
|
|
70
|
-
return this.flags & 3;
|
|
71
|
-
}
|
|
72
|
-
get isFinal() {
|
|
73
|
-
return (this.flags & 4) !== 0;
|
|
74
|
-
}
|
|
75
|
-
get isEncrypted() {
|
|
76
|
-
return (this.flags & 8) !== 0;
|
|
77
|
-
}
|
|
78
|
-
// ── Parsing ───────────────────────────────────────────────────────────────
|
|
79
|
-
static parse(buf) {
|
|
80
|
-
if (buf.length < 2) {
|
|
81
|
-
throw new NpsFrameError(
|
|
82
|
-
`Buffer too small to read frame type and flags: need >= 2 bytes, got ${buf.length}.`
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
const flags = buf[1];
|
|
86
|
-
const ext = (flags & FrameFlags.EXT) !== 0;
|
|
87
|
-
if (ext) {
|
|
88
|
-
if (buf.length < EXTENDED_HEADER_SIZE) {
|
|
89
|
-
throw new NpsFrameError(
|
|
90
|
-
`Buffer too small for extended frame header: need ${EXTENDED_HEADER_SIZE} bytes, got ${buf.length}.`
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
const view2 = new DataView(buf.buffer, buf.byteOffset);
|
|
94
|
-
const payloadLength2 = view2.getUint32(4, false);
|
|
95
|
-
return new _FrameHeader(buf[0], flags, payloadLength2);
|
|
96
|
-
}
|
|
97
|
-
if (buf.length < DEFAULT_HEADER_SIZE) {
|
|
98
|
-
throw new NpsFrameError(
|
|
99
|
-
`Buffer too small for frame header: need ${DEFAULT_HEADER_SIZE} bytes, got ${buf.length}.`
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
const view = new DataView(buf.buffer, buf.byteOffset);
|
|
103
|
-
const payloadLength = view.getUint16(2, false);
|
|
104
|
-
return new _FrameHeader(buf[0], flags, payloadLength);
|
|
105
|
-
}
|
|
106
|
-
// ── Serialisation ─────────────────────────────────────────────────────────
|
|
107
|
-
toBytes() {
|
|
108
|
-
if (this.isExtended) {
|
|
109
|
-
const buf2 = new Uint8Array(EXTENDED_HEADER_SIZE);
|
|
110
|
-
const view2 = new DataView(buf2.buffer);
|
|
111
|
-
view2.setUint8(0, this.frameType);
|
|
112
|
-
view2.setUint8(1, this.flags);
|
|
113
|
-
view2.setUint16(2, 0, false);
|
|
114
|
-
view2.setUint32(4, this.payloadLength, false);
|
|
115
|
-
return buf2;
|
|
116
|
-
}
|
|
117
|
-
const buf = new Uint8Array(DEFAULT_HEADER_SIZE);
|
|
118
|
-
const view = new DataView(buf.buffer);
|
|
119
|
-
view.setUint8(0, this.frameType);
|
|
120
|
-
view.setUint8(1, this.flags);
|
|
121
|
-
view.setUint16(2, this.payloadLength, false);
|
|
122
|
-
return buf;
|
|
123
|
-
}
|
|
124
|
-
toString() {
|
|
125
|
-
return `FrameHeader(frameType=0x${this.frameType.toString(16).padStart(2, "0")}, flags=0x${this.flags.toString(16).padStart(2, "0")}, payloadLength=${this.payloadLength})`;
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
// src/ncp/frames.ts
|
|
132
|
-
var frames_exports = {};
|
|
133
|
-
__export(frames_exports, {
|
|
134
|
-
AnchorFrame: () => AnchorFrame,
|
|
135
|
-
CapsFrame: () => CapsFrame,
|
|
136
|
-
DiffFrame: () => DiffFrame,
|
|
137
|
-
ErrorFrame: () => ErrorFrame,
|
|
138
|
-
HelloFrame: () => HelloFrame,
|
|
139
|
-
StreamFrame: () => StreamFrame
|
|
140
|
-
});
|
|
141
|
-
var AnchorFrame, DiffFrame, StreamFrame, CapsFrame, ErrorFrame, HelloFrame;
|
|
142
|
-
var init_frames2 = __esm({
|
|
143
|
-
"src/ncp/frames.ts"() {
|
|
144
|
-
init_frames();
|
|
145
|
-
AnchorFrame = class _AnchorFrame {
|
|
146
|
-
constructor(anchorId, schema, ttl = 3600) {
|
|
147
|
-
this.anchorId = anchorId;
|
|
148
|
-
this.schema = schema;
|
|
149
|
-
this.ttl = ttl;
|
|
150
|
-
}
|
|
151
|
-
anchorId;
|
|
152
|
-
schema;
|
|
153
|
-
ttl;
|
|
154
|
-
frameType = 1 /* ANCHOR */;
|
|
155
|
-
preferredTier = 1 /* MSGPACK */;
|
|
156
|
-
toDict() {
|
|
157
|
-
return {
|
|
158
|
-
anchor_id: this.anchorId,
|
|
159
|
-
schema: { fields: this.schema.fields.map((f) => ({ ...f })) },
|
|
160
|
-
ttl: this.ttl
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
static fromDict(data) {
|
|
164
|
-
const schemaRaw = data["schema"];
|
|
165
|
-
return new _AnchorFrame(
|
|
166
|
-
data["anchor_id"],
|
|
167
|
-
{ fields: schemaRaw.fields },
|
|
168
|
-
data["ttl"] ?? 3600
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
DiffFrame = class _DiffFrame {
|
|
173
|
-
constructor(anchorRef, baseSeq, patch, entityId) {
|
|
174
|
-
this.anchorRef = anchorRef;
|
|
175
|
-
this.baseSeq = baseSeq;
|
|
176
|
-
this.patch = patch;
|
|
177
|
-
this.entityId = entityId;
|
|
178
|
-
}
|
|
179
|
-
anchorRef;
|
|
180
|
-
baseSeq;
|
|
181
|
-
patch;
|
|
182
|
-
entityId;
|
|
183
|
-
frameType = 2 /* DIFF */;
|
|
184
|
-
preferredTier = 1 /* MSGPACK */;
|
|
185
|
-
toDict() {
|
|
186
|
-
return {
|
|
187
|
-
anchor_ref: this.anchorRef,
|
|
188
|
-
base_seq: this.baseSeq,
|
|
189
|
-
patch: this.patch.map((p) => ({ ...p })),
|
|
190
|
-
entity_id: this.entityId ?? null
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
static fromDict(data) {
|
|
194
|
-
return new _DiffFrame(
|
|
195
|
-
data["anchor_ref"],
|
|
196
|
-
data["base_seq"],
|
|
197
|
-
data["patch"],
|
|
198
|
-
data["entity_id"] ?? void 0
|
|
199
|
-
);
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
StreamFrame = class _StreamFrame {
|
|
203
|
-
constructor(streamId, seq, isLast, data, anchorRef, windowSize) {
|
|
204
|
-
this.streamId = streamId;
|
|
205
|
-
this.seq = seq;
|
|
206
|
-
this.isLast = isLast;
|
|
207
|
-
this.data = data;
|
|
208
|
-
this.anchorRef = anchorRef;
|
|
209
|
-
this.windowSize = windowSize;
|
|
210
|
-
}
|
|
211
|
-
streamId;
|
|
212
|
-
seq;
|
|
213
|
-
isLast;
|
|
214
|
-
data;
|
|
215
|
-
anchorRef;
|
|
216
|
-
windowSize;
|
|
217
|
-
frameType = 3 /* STREAM */;
|
|
218
|
-
preferredTier = 1 /* MSGPACK */;
|
|
219
|
-
toDict() {
|
|
220
|
-
return {
|
|
221
|
-
stream_id: this.streamId,
|
|
222
|
-
seq: this.seq,
|
|
223
|
-
is_last: this.isLast,
|
|
224
|
-
data: this.data,
|
|
225
|
-
anchor_ref: this.anchorRef ?? null,
|
|
226
|
-
window_size: this.windowSize ?? null
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
static fromDict(data) {
|
|
230
|
-
return new _StreamFrame(
|
|
231
|
-
data["stream_id"],
|
|
232
|
-
data["seq"],
|
|
233
|
-
data["is_last"],
|
|
234
|
-
data["data"],
|
|
235
|
-
data["anchor_ref"] ?? void 0,
|
|
236
|
-
data["window_size"] ?? void 0
|
|
237
|
-
);
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
CapsFrame = class _CapsFrame {
|
|
241
|
-
constructor(anchorRef, count, data, nextCursor, tokenEst, cached, tokenizerUsed) {
|
|
242
|
-
this.anchorRef = anchorRef;
|
|
243
|
-
this.count = count;
|
|
244
|
-
this.data = data;
|
|
245
|
-
this.nextCursor = nextCursor;
|
|
246
|
-
this.tokenEst = tokenEst;
|
|
247
|
-
this.cached = cached;
|
|
248
|
-
this.tokenizerUsed = tokenizerUsed;
|
|
249
|
-
}
|
|
250
|
-
anchorRef;
|
|
251
|
-
count;
|
|
252
|
-
data;
|
|
253
|
-
nextCursor;
|
|
254
|
-
tokenEst;
|
|
255
|
-
cached;
|
|
256
|
-
tokenizerUsed;
|
|
257
|
-
frameType = 4 /* CAPS */;
|
|
258
|
-
preferredTier = 1 /* MSGPACK */;
|
|
259
|
-
toDict() {
|
|
260
|
-
return {
|
|
261
|
-
anchor_ref: this.anchorRef,
|
|
262
|
-
count: this.count,
|
|
263
|
-
data: this.data,
|
|
264
|
-
next_cursor: this.nextCursor ?? null,
|
|
265
|
-
token_est: this.tokenEst ?? null,
|
|
266
|
-
cached: this.cached ?? null,
|
|
267
|
-
tokenizer_used: this.tokenizerUsed ?? null
|
|
268
|
-
};
|
|
269
|
-
}
|
|
270
|
-
static fromDict(data) {
|
|
271
|
-
return new _CapsFrame(
|
|
272
|
-
data["anchor_ref"],
|
|
273
|
-
data["count"],
|
|
274
|
-
data["data"],
|
|
275
|
-
data["next_cursor"] ?? void 0,
|
|
276
|
-
data["token_est"] ?? void 0,
|
|
277
|
-
data["cached"] ?? void 0,
|
|
278
|
-
data["tokenizer_used"] ?? void 0
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
ErrorFrame = class _ErrorFrame {
|
|
283
|
-
constructor(status, error, message, details) {
|
|
284
|
-
this.status = status;
|
|
285
|
-
this.error = error;
|
|
286
|
-
this.message = message;
|
|
287
|
-
this.details = details;
|
|
288
|
-
}
|
|
289
|
-
status;
|
|
290
|
-
error;
|
|
291
|
-
message;
|
|
292
|
-
details;
|
|
293
|
-
frameType = 254 /* ERROR */;
|
|
294
|
-
preferredTier = 1 /* MSGPACK */;
|
|
295
|
-
toDict() {
|
|
296
|
-
return {
|
|
297
|
-
status: this.status,
|
|
298
|
-
error: this.error,
|
|
299
|
-
message: this.message ?? null,
|
|
300
|
-
details: this.details ?? null
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
static fromDict(data) {
|
|
304
|
-
return new _ErrorFrame(
|
|
305
|
-
data["status"],
|
|
306
|
-
data["error"],
|
|
307
|
-
data["message"] ?? void 0,
|
|
308
|
-
data["details"] ?? void 0
|
|
309
|
-
);
|
|
310
|
-
}
|
|
311
|
-
};
|
|
312
|
-
HelloFrame = class _HelloFrame {
|
|
313
|
-
constructor(npsVersion, supportedEncodings, supportedProtocols, minVersion, agentId, maxFramePayload = _HelloFrame.DEFAULT_MAX_FRAME_PAYLOAD, extSupport = false, maxConcurrentStreams = _HelloFrame.DEFAULT_MAX_CONCURRENT_STREAMS, e2eEncAlgorithms) {
|
|
314
|
-
this.npsVersion = npsVersion;
|
|
315
|
-
this.supportedEncodings = supportedEncodings;
|
|
316
|
-
this.supportedProtocols = supportedProtocols;
|
|
317
|
-
this.minVersion = minVersion;
|
|
318
|
-
this.agentId = agentId;
|
|
319
|
-
this.maxFramePayload = maxFramePayload;
|
|
320
|
-
this.extSupport = extSupport;
|
|
321
|
-
this.maxConcurrentStreams = maxConcurrentStreams;
|
|
322
|
-
this.e2eEncAlgorithms = e2eEncAlgorithms;
|
|
323
|
-
}
|
|
324
|
-
npsVersion;
|
|
325
|
-
supportedEncodings;
|
|
326
|
-
supportedProtocols;
|
|
327
|
-
minVersion;
|
|
328
|
-
agentId;
|
|
329
|
-
maxFramePayload;
|
|
330
|
-
extSupport;
|
|
331
|
-
maxConcurrentStreams;
|
|
332
|
-
e2eEncAlgorithms;
|
|
333
|
-
frameType = 6 /* HELLO */;
|
|
334
|
-
preferredTier = 0 /* JSON */;
|
|
335
|
-
static DEFAULT_MAX_FRAME_PAYLOAD = 65535;
|
|
336
|
-
static DEFAULT_MAX_CONCURRENT_STREAMS = 32;
|
|
337
|
-
toDict() {
|
|
338
|
-
return {
|
|
339
|
-
nps_version: this.npsVersion,
|
|
340
|
-
supported_encodings: [...this.supportedEncodings],
|
|
341
|
-
supported_protocols: [...this.supportedProtocols],
|
|
342
|
-
min_version: this.minVersion ?? null,
|
|
343
|
-
agent_id: this.agentId ?? null,
|
|
344
|
-
max_frame_payload: this.maxFramePayload,
|
|
345
|
-
ext_support: this.extSupport,
|
|
346
|
-
max_concurrent_streams: this.maxConcurrentStreams,
|
|
347
|
-
e2e_enc_algorithms: this.e2eEncAlgorithms ? [...this.e2eEncAlgorithms] : null
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
static fromDict(data) {
|
|
351
|
-
return new _HelloFrame(
|
|
352
|
-
data["nps_version"],
|
|
353
|
-
data["supported_encodings"] ?? [],
|
|
354
|
-
data["supported_protocols"] ?? [],
|
|
355
|
-
data["min_version"] ?? void 0,
|
|
356
|
-
data["agent_id"] ?? void 0,
|
|
357
|
-
data["max_frame_payload"] ?? _HelloFrame.DEFAULT_MAX_FRAME_PAYLOAD,
|
|
358
|
-
data["ext_support"] ?? false,
|
|
359
|
-
data["max_concurrent_streams"] ?? _HelloFrame.DEFAULT_MAX_CONCURRENT_STREAMS,
|
|
360
|
-
data["e2e_enc_algorithms"] ?? void 0
|
|
361
|
-
);
|
|
362
|
-
}
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
|
|
367
|
-
// src/nwp/frames.ts
|
|
368
|
-
init_frames();
|
|
369
|
-
var QueryFrame = class _QueryFrame {
|
|
370
|
-
constructor(anchorRef, filter, limit, offset, orderBy, fields, vectorSearch, depth) {
|
|
371
|
-
this.anchorRef = anchorRef;
|
|
372
|
-
this.filter = filter;
|
|
373
|
-
this.limit = limit;
|
|
374
|
-
this.offset = offset;
|
|
375
|
-
this.orderBy = orderBy;
|
|
376
|
-
this.fields = fields;
|
|
377
|
-
this.vectorSearch = vectorSearch;
|
|
378
|
-
this.depth = depth;
|
|
379
|
-
}
|
|
380
|
-
anchorRef;
|
|
381
|
-
filter;
|
|
382
|
-
limit;
|
|
383
|
-
offset;
|
|
384
|
-
orderBy;
|
|
385
|
-
fields;
|
|
386
|
-
vectorSearch;
|
|
387
|
-
depth;
|
|
388
|
-
frameType = 16 /* QUERY */;
|
|
389
|
-
preferredTier = 1 /* MSGPACK */;
|
|
390
|
-
toDict() {
|
|
391
|
-
return {
|
|
392
|
-
anchor_ref: this.anchorRef ?? null,
|
|
393
|
-
filter: this.filter ?? null,
|
|
394
|
-
limit: this.limit ?? null,
|
|
395
|
-
offset: this.offset ?? null,
|
|
396
|
-
order_by: this.orderBy ?? null,
|
|
397
|
-
fields: this.fields ?? null,
|
|
398
|
-
vector_search: this.vectorSearch ?? null,
|
|
399
|
-
depth: this.depth ?? null
|
|
400
|
-
};
|
|
401
|
-
}
|
|
402
|
-
static fromDict(data) {
|
|
403
|
-
return new _QueryFrame(
|
|
404
|
-
data["anchor_ref"] ?? void 0,
|
|
405
|
-
data["filter"] ?? void 0,
|
|
406
|
-
data["limit"] ?? void 0,
|
|
407
|
-
data["offset"] ?? void 0,
|
|
408
|
-
data["order_by"] ?? void 0,
|
|
409
|
-
data["fields"] ?? void 0,
|
|
410
|
-
data["vector_search"] ?? void 0,
|
|
411
|
-
data["depth"] ?? void 0
|
|
412
|
-
);
|
|
413
|
-
}
|
|
414
|
-
};
|
|
415
|
-
var ActionFrame = class _ActionFrame {
|
|
416
|
-
constructor(actionId, params, async_, idempotencyKey, timeoutMs) {
|
|
417
|
-
this.actionId = actionId;
|
|
418
|
-
this.params = params;
|
|
419
|
-
this.async_ = async_;
|
|
420
|
-
this.idempotencyKey = idempotencyKey;
|
|
421
|
-
this.timeoutMs = timeoutMs;
|
|
422
|
-
}
|
|
423
|
-
actionId;
|
|
424
|
-
params;
|
|
425
|
-
async_;
|
|
426
|
-
idempotencyKey;
|
|
427
|
-
timeoutMs;
|
|
428
|
-
frameType = 17 /* ACTION */;
|
|
429
|
-
preferredTier = 1 /* MSGPACK */;
|
|
430
|
-
toDict() {
|
|
431
|
-
return {
|
|
432
|
-
action_id: this.actionId,
|
|
433
|
-
params: this.params ?? null,
|
|
434
|
-
async: this.async_ ?? false,
|
|
435
|
-
idempotency_key: this.idempotencyKey ?? null,
|
|
436
|
-
timeout_ms: this.timeoutMs ?? null
|
|
437
|
-
};
|
|
438
|
-
}
|
|
439
|
-
static fromDict(data) {
|
|
440
|
-
return new _ActionFrame(
|
|
441
|
-
data["action_id"],
|
|
442
|
-
data["params"] ?? void 0,
|
|
443
|
-
data["async"] ?? void 0,
|
|
444
|
-
data["idempotency_key"] ?? void 0,
|
|
445
|
-
data["timeout_ms"] ?? void 0
|
|
446
|
-
);
|
|
447
|
-
}
|
|
448
|
-
};
|
|
449
|
-
function asyncActionResponseFromDict(data) {
|
|
450
|
-
const r = {
|
|
451
|
-
taskId: data["task_id"],
|
|
452
|
-
status: data["status"]
|
|
453
|
-
};
|
|
454
|
-
const pollUrl = data["poll_url"];
|
|
455
|
-
if (pollUrl != null) r.pollUrl = pollUrl;
|
|
456
|
-
return r;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
// src/nwp/registry.ts
|
|
460
|
-
init_frames();
|
|
461
|
-
function registerNwpFrames(registry) {
|
|
462
|
-
registry.register(16 /* QUERY */, QueryFrame);
|
|
463
|
-
registry.register(17 /* ACTION */, ActionFrame);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
// src/core/codec.ts
|
|
467
|
-
init_exceptions();
|
|
468
|
-
init_frames();
|
|
469
|
-
var Tier1JsonCodec = class {
|
|
470
|
-
encode(frame) {
|
|
471
|
-
try {
|
|
472
|
-
const json = JSON.stringify(frame.toDict());
|
|
473
|
-
return new TextEncoder().encode(json);
|
|
474
|
-
} catch (err) {
|
|
475
|
-
throw new NpsCodecError(
|
|
476
|
-
`Tier-1 JSON encode failed for 0x${frame.frameType.toString(16).padStart(2, "0")}: ${String(err)}`
|
|
477
|
-
);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
decode(frameType, payload, registry) {
|
|
481
|
-
const cls = registry.resolve(frameType);
|
|
482
|
-
try {
|
|
483
|
-
const text = new TextDecoder().decode(payload);
|
|
484
|
-
const data = JSON.parse(text);
|
|
485
|
-
return cls.fromDict(data);
|
|
486
|
-
} catch (err) {
|
|
487
|
-
throw new NpsCodecError(
|
|
488
|
-
`Tier-1 JSON decode failed for 0x${frameType.toString(16).padStart(2, "0")}: ${String(err)}`
|
|
489
|
-
);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
};
|
|
493
|
-
var Tier2MsgPackCodec = class {
|
|
494
|
-
encode(frame) {
|
|
495
|
-
try {
|
|
496
|
-
return msgpack.encode(frame.toDict());
|
|
497
|
-
} catch (err) {
|
|
498
|
-
throw new NpsCodecError(
|
|
499
|
-
`Tier-2 MsgPack encode failed for 0x${frame.frameType.toString(16).padStart(2, "0")}: ${String(err)}`
|
|
500
|
-
);
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
decode(frameType, payload, registry) {
|
|
504
|
-
const cls = registry.resolve(frameType);
|
|
505
|
-
try {
|
|
506
|
-
const data = msgpack.decode(payload);
|
|
507
|
-
return cls.fromDict(data);
|
|
508
|
-
} catch (err) {
|
|
509
|
-
throw new NpsCodecError(
|
|
510
|
-
`Tier-2 MsgPack decode failed for 0x${frameType.toString(16).padStart(2, "0")}: ${String(err)}`
|
|
511
|
-
);
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
};
|
|
515
|
-
var NpsFrameCodec = class {
|
|
516
|
-
_registry;
|
|
517
|
-
_maxPayload;
|
|
518
|
-
_json = new Tier1JsonCodec();
|
|
519
|
-
_msgpack = new Tier2MsgPackCodec();
|
|
520
|
-
constructor(registry, options = {}) {
|
|
521
|
-
this._registry = registry;
|
|
522
|
-
this._maxPayload = options.maxPayload ?? DEFAULT_MAX_PAYLOAD;
|
|
523
|
-
}
|
|
524
|
-
// ── Encode ────────────────────────────────────────────────────────────────
|
|
525
|
-
encode(frame, options = {}) {
|
|
526
|
-
const tier = options.overrideTier ?? frame.preferredTier;
|
|
527
|
-
const tierCodec = this._selectCodec(tier);
|
|
528
|
-
let payload;
|
|
529
|
-
try {
|
|
530
|
-
payload = tierCodec.encode(frame);
|
|
531
|
-
} catch (err) {
|
|
532
|
-
if (err instanceof NpsCodecError) throw err;
|
|
533
|
-
throw new NpsCodecError(`Encode failed for 0x${frame.frameType.toString(16)}.`);
|
|
534
|
-
}
|
|
535
|
-
if (payload.length > this._maxPayload) {
|
|
536
|
-
throw new NpsCodecError(
|
|
537
|
-
`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.`
|
|
538
|
-
);
|
|
539
|
-
}
|
|
540
|
-
const useExt = payload.length > DEFAULT_MAX_PAYLOAD;
|
|
541
|
-
let flags = this._buildFlags(frame, tier);
|
|
542
|
-
if (useExt) flags |= FrameFlags.EXT;
|
|
543
|
-
const header = new FrameHeader(frame.frameType, flags, payload.length);
|
|
544
|
-
const headerBytes = header.toBytes();
|
|
545
|
-
const wire = new Uint8Array(headerBytes.length + payload.length);
|
|
546
|
-
wire.set(headerBytes, 0);
|
|
547
|
-
wire.set(payload, headerBytes.length);
|
|
548
|
-
return wire;
|
|
549
|
-
}
|
|
550
|
-
// ── Decode ────────────────────────────────────────────────────────────────
|
|
551
|
-
decode(wire) {
|
|
552
|
-
const header = FrameHeader.parse(wire);
|
|
553
|
-
const payload = wire.slice(header.headerSize, header.headerSize + header.payloadLength);
|
|
554
|
-
const codec = this._selectCodec(header.encodingTier);
|
|
555
|
-
return codec.decode(header.frameType, payload, this._registry);
|
|
556
|
-
}
|
|
557
|
-
static peekHeader(wire) {
|
|
558
|
-
return FrameHeader.parse(wire);
|
|
559
|
-
}
|
|
560
|
-
// ── Private ───────────────────────────────────────────────────────────────
|
|
561
|
-
_buildFlags(frame, tier) {
|
|
562
|
-
let flags = tier === 0 /* JSON */ ? FrameFlags.TIER1_JSON : FrameFlags.TIER2_MSGPACK;
|
|
563
|
-
const isStreamFrame = "isLast" in frame;
|
|
564
|
-
const isFinal = !isStreamFrame || frame.isLast;
|
|
565
|
-
if (isFinal) flags |= FrameFlags.FINAL;
|
|
566
|
-
return flags;
|
|
567
|
-
}
|
|
568
|
-
_selectCodec(tier) {
|
|
569
|
-
if (tier === 0 /* JSON */) return this._json;
|
|
570
|
-
if (tier === 1 /* MSGPACK */) return this._msgpack;
|
|
571
|
-
throw new NpsCodecError(`Unsupported encoding tier: 0x${tier.toString(16).padStart(2, "0")}.`);
|
|
572
|
-
}
|
|
573
|
-
};
|
|
574
|
-
|
|
575
|
-
// src/nwp/client.ts
|
|
576
|
-
init_frames();
|
|
577
|
-
|
|
578
|
-
// src/core/registry.ts
|
|
579
|
-
init_exceptions();
|
|
580
|
-
var FrameRegistry = class {
|
|
581
|
-
_map = /* @__PURE__ */ new Map();
|
|
582
|
-
register(frameType, cls) {
|
|
583
|
-
this._map.set(frameType, cls);
|
|
584
|
-
}
|
|
585
|
-
resolve(frameType) {
|
|
586
|
-
const cls = this._map.get(frameType);
|
|
587
|
-
if (cls === void 0) {
|
|
588
|
-
throw new NpsFrameError(
|
|
589
|
-
`No frame class registered for type 0x${frameType.toString(16).padStart(2, "0")}.`
|
|
590
|
-
);
|
|
591
|
-
}
|
|
592
|
-
return cls;
|
|
593
|
-
}
|
|
594
|
-
};
|
|
595
|
-
|
|
596
|
-
// src/ncp/registry.ts
|
|
597
|
-
init_frames();
|
|
598
|
-
init_frames2();
|
|
599
|
-
function registerNcpFrames(registry) {
|
|
600
|
-
registry.register(1 /* ANCHOR */, AnchorFrame);
|
|
601
|
-
registry.register(2 /* DIFF */, DiffFrame);
|
|
602
|
-
registry.register(3 /* STREAM */, StreamFrame);
|
|
603
|
-
registry.register(4 /* CAPS */, CapsFrame);
|
|
604
|
-
registry.register(6 /* HELLO */, HelloFrame);
|
|
605
|
-
registry.register(254 /* ERROR */, ErrorFrame);
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
// src/nwp/client.ts
|
|
609
|
-
init_frames2();
|
|
610
|
-
var CONTENT_TYPE = "application/x-nps-frame";
|
|
611
|
-
var NwpClient = class {
|
|
612
|
-
_baseUrl;
|
|
613
|
-
_codec;
|
|
614
|
-
_tier;
|
|
615
|
-
constructor(baseUrl, options = {}) {
|
|
616
|
-
this._baseUrl = baseUrl.replace(/\/$/, "");
|
|
617
|
-
this._tier = options.defaultTier ?? 1 /* MSGPACK */;
|
|
618
|
-
const registry = options.registry ?? (() => {
|
|
619
|
-
const r = new FrameRegistry();
|
|
620
|
-
registerNcpFrames(r);
|
|
621
|
-
registerNwpFrames(r);
|
|
622
|
-
return r;
|
|
623
|
-
})();
|
|
624
|
-
const codecOpts = options.maxPayload !== void 0 ? { maxPayload: options.maxPayload } : {};
|
|
625
|
-
this._codec = new NpsFrameCodec(registry, codecOpts);
|
|
626
|
-
}
|
|
627
|
-
async sendAnchor(frame) {
|
|
628
|
-
const wire = this._codec.encode(frame, { overrideTier: this._tier });
|
|
629
|
-
const res = await fetch(`${this._baseUrl}/anchor`, {
|
|
630
|
-
method: "POST",
|
|
631
|
-
body: wire,
|
|
632
|
-
headers: { "Content-Type": CONTENT_TYPE, "Accept": CONTENT_TYPE }
|
|
633
|
-
});
|
|
634
|
-
if (!res.ok) throw new Error(`NWP /anchor failed: HTTP ${res.status}`);
|
|
635
|
-
}
|
|
636
|
-
async query(frame) {
|
|
637
|
-
const wire = this._codec.encode(frame, { overrideTier: this._tier });
|
|
638
|
-
const res = await fetch(`${this._baseUrl}/query`, {
|
|
639
|
-
method: "POST",
|
|
640
|
-
body: wire,
|
|
641
|
-
headers: { "Content-Type": CONTENT_TYPE, "Accept": CONTENT_TYPE }
|
|
642
|
-
});
|
|
643
|
-
if (!res.ok) throw new Error(`NWP /query failed: HTTP ${res.status}`);
|
|
644
|
-
const buf = new Uint8Array(await res.arrayBuffer());
|
|
645
|
-
const result = this._codec.decode(buf);
|
|
646
|
-
if (!(result instanceof CapsFrame)) {
|
|
647
|
-
throw new TypeError(`Expected CapsFrame from /query, got ${result.constructor.name}.`);
|
|
648
|
-
}
|
|
649
|
-
return result;
|
|
650
|
-
}
|
|
651
|
-
async *stream(frame) {
|
|
652
|
-
const wire = this._codec.encode(frame, { overrideTier: this._tier });
|
|
653
|
-
const res = await fetch(`${this._baseUrl}/stream`, {
|
|
654
|
-
method: "POST",
|
|
655
|
-
body: wire,
|
|
656
|
-
headers: { "Content-Type": CONTENT_TYPE, "Accept": CONTENT_TYPE }
|
|
657
|
-
});
|
|
658
|
-
if (!res.ok) throw new Error(`NWP /stream failed: HTTP ${res.status}`);
|
|
659
|
-
if (res.body === null) return;
|
|
660
|
-
const { StreamFrame: SF } = await Promise.resolve().then(() => (init_frames2(), frames_exports));
|
|
661
|
-
for await (const chunk of res.body) {
|
|
662
|
-
const bytes = chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk);
|
|
663
|
-
if (bytes.length === 0) continue;
|
|
664
|
-
const result = this._codec.decode(bytes);
|
|
665
|
-
if (!(result instanceof SF)) {
|
|
666
|
-
throw new TypeError(`Expected StreamFrame from /stream, got ${result.constructor.name}.`);
|
|
667
|
-
}
|
|
668
|
-
yield result;
|
|
669
|
-
if (result.isLast) break;
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
async invoke(frame) {
|
|
673
|
-
const wire = this._codec.encode(frame, { overrideTier: this._tier });
|
|
674
|
-
const res = await fetch(`${this._baseUrl}/invoke`, {
|
|
675
|
-
method: "POST",
|
|
676
|
-
body: wire,
|
|
677
|
-
headers: { "Content-Type": CONTENT_TYPE, "Accept": CONTENT_TYPE }
|
|
678
|
-
});
|
|
679
|
-
if (!res.ok) throw new Error(`NWP /invoke failed: HTTP ${res.status}`);
|
|
680
|
-
if (frame.async_) {
|
|
681
|
-
return asyncActionResponseFromDict(await res.json());
|
|
682
|
-
}
|
|
683
|
-
const contentType = res.headers.get("content-type") ?? "";
|
|
684
|
-
if (contentType.includes(CONTENT_TYPE)) {
|
|
685
|
-
const buf = new Uint8Array(await res.arrayBuffer());
|
|
686
|
-
return this._codec.decode(buf);
|
|
687
|
-
}
|
|
688
|
-
return res.json();
|
|
689
|
-
}
|
|
690
|
-
};
|
|
691
|
-
|
|
692
|
-
export { ActionFrame, NwpClient, QueryFrame, asyncActionResponseFromDict, registerNwpFrames };
|
|
693
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
// Copyright 2026 INNO LOTUS PTY LTD
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
export * from "./frames.js";
|
|
4
|
+
export * from "./registry.js";
|
|
5
|
+
export * from "./client.js";
|
|
694
6
|
//# sourceMappingURL=index.js.map
|