@znt/sdk-nodejs 1.0.0
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/README.md +445 -0
- package/dist/client.d.ts +48 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +277 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +304 -0
- package/dist/config.js.map +1 -0
- package/dist/connection.d.ts +32 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +275 -0
- package/dist/connection.js.map +1 -0
- package/dist/daemon.d.ts +48 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +309 -0
- package/dist/daemon.js.map +1 -0
- package/dist/errors.d.ts +52 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +79 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +340 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { JsonObject, RequestOptions } from "./types.js";
|
|
2
|
+
export interface ZntConnectionOptions {
|
|
3
|
+
endpoint?: string;
|
|
4
|
+
connectTimeoutMs?: number;
|
|
5
|
+
requestTimeoutMs?: number;
|
|
6
|
+
maxRequestBytes?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function resolveDefaultEndpoint(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform, home?: string): string;
|
|
9
|
+
export declare class ZntConnection {
|
|
10
|
+
readonly endpoint: string;
|
|
11
|
+
readonly connectTimeoutMs: number;
|
|
12
|
+
readonly requestTimeoutMs: number;
|
|
13
|
+
readonly maxRequestBytes: number;
|
|
14
|
+
private socket;
|
|
15
|
+
private connectingSocket;
|
|
16
|
+
private connecting;
|
|
17
|
+
private buffer;
|
|
18
|
+
private nextRequestId;
|
|
19
|
+
private readonly pending;
|
|
20
|
+
constructor(options?: ZntConnectionOptions);
|
|
21
|
+
get connected(): boolean;
|
|
22
|
+
connect(): Promise<void>;
|
|
23
|
+
call<TResult>(method: string, params?: JsonObject, options?: RequestOptions): Promise<TResult>;
|
|
24
|
+
disconnect(): void;
|
|
25
|
+
private allocateRequestId;
|
|
26
|
+
private handleData;
|
|
27
|
+
private handleResponse;
|
|
28
|
+
private failProtocol;
|
|
29
|
+
private rejectAll;
|
|
30
|
+
private cleanupPending;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,UAAU,EAEV,cAAc,EAIf,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAWD,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAkB,GACvB,MAAM,CAQR;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,OAAO,GAAE,oBAAyB;IAO9C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8ExB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsE5G,UAAU,IAAI,IAAI;IAWlB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,cAAc;CAQvB"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { createConnection } from "node:net";
|
|
4
|
+
import { ZntAbortError, ZntProtocolError, ZntRpcError, ZntTimeoutError, ZntTransportError, } from "./errors.js";
|
|
5
|
+
const DEFAULT_CONNECT_TIMEOUT_MS = 5_000;
|
|
6
|
+
const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
|
|
7
|
+
const DEFAULT_MAX_REQUEST_BYTES = 10 * 1024 * 1024;
|
|
8
|
+
export function resolveDefaultEndpoint(env = process.env, platform = process.platform, home = homedir()) {
|
|
9
|
+
if (env.ZNT_ENDPOINT) {
|
|
10
|
+
return env.ZNT_ENDPOINT;
|
|
11
|
+
}
|
|
12
|
+
if (platform === "win32") {
|
|
13
|
+
return String.raw `\\.\pipe\znt-core`;
|
|
14
|
+
}
|
|
15
|
+
return join(home, ".znt", "znt.sock");
|
|
16
|
+
}
|
|
17
|
+
export class ZntConnection {
|
|
18
|
+
endpoint;
|
|
19
|
+
connectTimeoutMs;
|
|
20
|
+
requestTimeoutMs;
|
|
21
|
+
maxRequestBytes;
|
|
22
|
+
socket;
|
|
23
|
+
connectingSocket;
|
|
24
|
+
connecting;
|
|
25
|
+
buffer = "";
|
|
26
|
+
nextRequestId = 1;
|
|
27
|
+
pending = new Map();
|
|
28
|
+
constructor(options = {}) {
|
|
29
|
+
this.endpoint = options.endpoint ?? resolveDefaultEndpoint();
|
|
30
|
+
this.connectTimeoutMs = options.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS;
|
|
31
|
+
this.requestTimeoutMs = options.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
32
|
+
this.maxRequestBytes = options.maxRequestBytes ?? DEFAULT_MAX_REQUEST_BYTES;
|
|
33
|
+
}
|
|
34
|
+
get connected() {
|
|
35
|
+
return Boolean(this.socket && !this.socket.destroyed);
|
|
36
|
+
}
|
|
37
|
+
async connect() {
|
|
38
|
+
if (this.connected) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (this.connecting) {
|
|
42
|
+
return this.connecting;
|
|
43
|
+
}
|
|
44
|
+
const attempt = new Promise((resolve, reject) => {
|
|
45
|
+
const socket = createConnection(this.endpoint);
|
|
46
|
+
this.connectingSocket = socket;
|
|
47
|
+
let settled = false;
|
|
48
|
+
const timer = setTimeout(() => {
|
|
49
|
+
if (!settled) {
|
|
50
|
+
settled = true;
|
|
51
|
+
if (this.connectingSocket === socket) {
|
|
52
|
+
this.connectingSocket = undefined;
|
|
53
|
+
}
|
|
54
|
+
socket.destroy();
|
|
55
|
+
reject(new ZntTransportError(`Timed out connecting to znt-core after ${this.connectTimeoutMs} ms`, this.endpoint));
|
|
56
|
+
}
|
|
57
|
+
}, this.connectTimeoutMs);
|
|
58
|
+
socket.setEncoding("utf8");
|
|
59
|
+
socket.on("data", (chunk) => {
|
|
60
|
+
if (this.socket === socket) {
|
|
61
|
+
this.handleData(chunk);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
socket.on("error", (error) => {
|
|
65
|
+
if (!settled) {
|
|
66
|
+
settled = true;
|
|
67
|
+
if (this.connectingSocket === socket) {
|
|
68
|
+
this.connectingSocket = undefined;
|
|
69
|
+
}
|
|
70
|
+
clearTimeout(timer);
|
|
71
|
+
reject(new ZntTransportError(`Could not connect to znt-core at ${this.endpoint}`, this.endpoint, { cause: error }));
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
socket.on("close", () => {
|
|
75
|
+
if (!settled) {
|
|
76
|
+
settled = true;
|
|
77
|
+
if (this.connectingSocket === socket) {
|
|
78
|
+
this.connectingSocket = undefined;
|
|
79
|
+
}
|
|
80
|
+
clearTimeout(timer);
|
|
81
|
+
reject(new ZntTransportError(`Connection to znt-core at ${this.endpoint} closed before it was ready`, this.endpoint));
|
|
82
|
+
}
|
|
83
|
+
if (this.socket === socket) {
|
|
84
|
+
this.socket = undefined;
|
|
85
|
+
this.buffer = "";
|
|
86
|
+
this.rejectAll(new ZntTransportError(`Connection to znt-core at ${this.endpoint} closed`, this.endpoint));
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
socket.once("connect", () => {
|
|
90
|
+
if (settled) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
settled = true;
|
|
94
|
+
if (this.connectingSocket === socket) {
|
|
95
|
+
this.connectingSocket = undefined;
|
|
96
|
+
}
|
|
97
|
+
clearTimeout(timer);
|
|
98
|
+
this.socket = socket;
|
|
99
|
+
resolve();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
this.connecting = attempt;
|
|
103
|
+
try {
|
|
104
|
+
await attempt;
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
if (this.connecting === attempt) {
|
|
108
|
+
this.connecting = undefined;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async call(method, params = {}, options = {}) {
|
|
113
|
+
if (!method) {
|
|
114
|
+
throw new TypeError("method must be a non-empty string");
|
|
115
|
+
}
|
|
116
|
+
if (!isPlainObject(params)) {
|
|
117
|
+
throw new TypeError("params must be a JSON object");
|
|
118
|
+
}
|
|
119
|
+
if (options.signal?.aborted) {
|
|
120
|
+
throw new ZntAbortError();
|
|
121
|
+
}
|
|
122
|
+
const id = this.allocateRequestId();
|
|
123
|
+
const frame = JSON.stringify({ jsonrpc: "2.0", id, method, params });
|
|
124
|
+
if (Buffer.byteLength(frame, "utf8") > this.maxRequestBytes) {
|
|
125
|
+
throw new ZntProtocolError(`JSON-RPC request exceeds the ${this.maxRequestBytes}-byte znt-core limit`);
|
|
126
|
+
}
|
|
127
|
+
await this.connect();
|
|
128
|
+
if (options.signal?.aborted) {
|
|
129
|
+
throw new ZntAbortError();
|
|
130
|
+
}
|
|
131
|
+
const socket = this.socket;
|
|
132
|
+
if (!socket || socket.destroyed) {
|
|
133
|
+
throw new ZntTransportError(`Connection to znt-core at ${this.endpoint} is not available`, this.endpoint);
|
|
134
|
+
}
|
|
135
|
+
const timeoutMs = options.timeoutMs ?? this.requestTimeoutMs;
|
|
136
|
+
return new Promise((resolve, reject) => {
|
|
137
|
+
const pending = {
|
|
138
|
+
method,
|
|
139
|
+
resolve,
|
|
140
|
+
reject,
|
|
141
|
+
timer: undefined,
|
|
142
|
+
signal: options.signal,
|
|
143
|
+
abortListener: undefined,
|
|
144
|
+
};
|
|
145
|
+
if (timeoutMs > 0) {
|
|
146
|
+
pending.timer = setTimeout(() => {
|
|
147
|
+
this.pending.delete(id);
|
|
148
|
+
this.cleanupPending(pending);
|
|
149
|
+
reject(new ZntTimeoutError(method, timeoutMs));
|
|
150
|
+
}, timeoutMs);
|
|
151
|
+
}
|
|
152
|
+
if (options.signal) {
|
|
153
|
+
pending.abortListener = () => {
|
|
154
|
+
this.pending.delete(id);
|
|
155
|
+
this.cleanupPending(pending);
|
|
156
|
+
reject(new ZntAbortError());
|
|
157
|
+
};
|
|
158
|
+
options.signal.addEventListener("abort", pending.abortListener, { once: true });
|
|
159
|
+
if (options.signal.aborted) {
|
|
160
|
+
pending.abortListener();
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
this.pending.set(id, pending);
|
|
165
|
+
socket.write(`${frame}\n`, "utf8", (error) => {
|
|
166
|
+
if (!error) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (this.pending.delete(id)) {
|
|
170
|
+
this.cleanupPending(pending);
|
|
171
|
+
reject(new ZntTransportError(`Failed to send ${method} to znt-core`, this.endpoint, { cause: error }));
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
disconnect() {
|
|
177
|
+
const socket = this.socket;
|
|
178
|
+
const connectingSocket = this.connectingSocket;
|
|
179
|
+
this.socket = undefined;
|
|
180
|
+
this.connectingSocket = undefined;
|
|
181
|
+
this.buffer = "";
|
|
182
|
+
this.rejectAll(new ZntTransportError(`Connection to znt-core at ${this.endpoint} was closed by the client`, this.endpoint));
|
|
183
|
+
socket?.destroy();
|
|
184
|
+
connectingSocket?.destroy();
|
|
185
|
+
}
|
|
186
|
+
allocateRequestId() {
|
|
187
|
+
for (;;) {
|
|
188
|
+
const id = this.nextRequestId;
|
|
189
|
+
this.nextRequestId = id >= Number.MAX_SAFE_INTEGER ? 1 : id + 1;
|
|
190
|
+
if (!this.pending.has(id)) {
|
|
191
|
+
return id;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
handleData(chunk) {
|
|
196
|
+
this.buffer += chunk;
|
|
197
|
+
for (;;) {
|
|
198
|
+
const newline = this.buffer.indexOf("\n");
|
|
199
|
+
if (newline < 0) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const line = this.buffer.slice(0, newline).trim();
|
|
203
|
+
this.buffer = this.buffer.slice(newline + 1);
|
|
204
|
+
if (!line) {
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
let response;
|
|
208
|
+
try {
|
|
209
|
+
response = JSON.parse(line);
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
this.failProtocol(new ZntProtocolError("znt-core returned malformed JSON", { cause: error }));
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
this.handleResponse(response);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
handleResponse(response) {
|
|
219
|
+
if (!response || response.jsonrpc !== "2.0" || !("id" in response)) {
|
|
220
|
+
this.failProtocol(new ZntProtocolError("znt-core returned an invalid JSON-RPC response"));
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const pending = this.pending.get(response.id);
|
|
224
|
+
if (!pending) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
this.pending.delete(response.id);
|
|
228
|
+
this.cleanupPending(pending);
|
|
229
|
+
if ("error" in response) {
|
|
230
|
+
const failure = response;
|
|
231
|
+
const rpcErrorOptions = {
|
|
232
|
+
code: failure.error.code,
|
|
233
|
+
message: failure.error.message,
|
|
234
|
+
method: pending.method,
|
|
235
|
+
requestId: response.id,
|
|
236
|
+
};
|
|
237
|
+
if (failure.error.data !== undefined) {
|
|
238
|
+
rpcErrorOptions.data = failure.error.data;
|
|
239
|
+
}
|
|
240
|
+
pending.reject(new ZntRpcError(rpcErrorOptions));
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
pending.resolve(response.result);
|
|
244
|
+
}
|
|
245
|
+
failProtocol(error) {
|
|
246
|
+
const socket = this.socket;
|
|
247
|
+
this.socket = undefined;
|
|
248
|
+
this.buffer = "";
|
|
249
|
+
this.rejectAll(error);
|
|
250
|
+
socket?.destroy();
|
|
251
|
+
}
|
|
252
|
+
rejectAll(error) {
|
|
253
|
+
for (const pending of this.pending.values()) {
|
|
254
|
+
this.cleanupPending(pending);
|
|
255
|
+
pending.reject(error);
|
|
256
|
+
}
|
|
257
|
+
this.pending.clear();
|
|
258
|
+
}
|
|
259
|
+
cleanupPending(pending) {
|
|
260
|
+
if (pending.timer) {
|
|
261
|
+
clearTimeout(pending.timer);
|
|
262
|
+
}
|
|
263
|
+
if (pending.signal && pending.abortListener) {
|
|
264
|
+
pending.signal.removeEventListener("abort", pending.abortListener);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
function isPlainObject(value) {
|
|
269
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
const prototype = Object.getPrototypeOf(value);
|
|
273
|
+
return prototype === Object.prototype || prototype === null;
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface ZntDaemonOptions {
|
|
2
|
+
coreBinaryPath?: string;
|
|
3
|
+
configPath?: string;
|
|
4
|
+
daemonCwd?: string;
|
|
5
|
+
daemonStartTimeoutMs?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface StartDaemonOptions extends ZntDaemonOptions {
|
|
8
|
+
endpoint: string;
|
|
9
|
+
probe(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export interface DownloadCoreOptions {
|
|
12
|
+
version?: string;
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
}
|
|
15
|
+
export interface CoreDownloadResult {
|
|
16
|
+
binaryPath: string;
|
|
17
|
+
bytesDownloaded: number;
|
|
18
|
+
configPath: string;
|
|
19
|
+
sha256: string;
|
|
20
|
+
version: string | null;
|
|
21
|
+
}
|
|
22
|
+
export interface ConfigValidationResult {
|
|
23
|
+
valid: true;
|
|
24
|
+
providerChecked: boolean;
|
|
25
|
+
message: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function resolveCoreInstallDirectory(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform, home?: string): string;
|
|
28
|
+
export declare function resolveCoreBinaryPath(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform, home?: string): string;
|
|
29
|
+
export declare function resolveManagedConfigPath(coreBinaryPath?: string, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform, home?: string): string;
|
|
30
|
+
export declare function resolveCoreReleaseAssetKey(platform?: NodeJS.Platform, arch?: string): string;
|
|
31
|
+
export declare function getInstalledCorePath(options?: ZntDaemonOptions): Promise<string>;
|
|
32
|
+
export declare function isManagedCoreConfigured(options?: ZntDaemonOptions): Promise<boolean>;
|
|
33
|
+
export declare function isManagedCoreInstalled(options?: ZntDaemonOptions, expectedVersion?: string): Promise<boolean>;
|
|
34
|
+
export declare function removeManagedCore(options?: ZntDaemonOptions): Promise<boolean>;
|
|
35
|
+
export declare function startManagedDaemon(options: StartDaemonOptions): Promise<void>;
|
|
36
|
+
export declare function downloadManagedCore(options?: DownloadCoreOptions, coreBinaryPath?: string, configuredConfigPath?: string): Promise<CoreDownloadResult>;
|
|
37
|
+
export declare function getDefaultConfig(options?: ZntDaemonOptions): Promise<string>;
|
|
38
|
+
export declare function validateManagedConfig(configPath: string, options?: ZntDaemonOptions & {
|
|
39
|
+
checkProvider?: boolean;
|
|
40
|
+
signal?: AbortSignal;
|
|
41
|
+
}): Promise<ConfigValidationResult>;
|
|
42
|
+
export declare function storeManagedSecret(reference: string, secret: string, options?: ZntDaemonOptions & {
|
|
43
|
+
signal?: AbortSignal;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
export declare function deleteManagedSecret(reference: string, options?: ZntDaemonOptions & {
|
|
46
|
+
signal?: AbortSignal;
|
|
47
|
+
}): Promise<void>;
|
|
48
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|