@cotal-ai/connector-claude-code 0.7.0 → 0.8.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/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +2 -1
- package/dist/extension.js.map +1 -1
- package/dist/hook.cjs +4061 -4065
- package/dist/mcp.cjs +1201 -1205
- package/package.json +3 -3
package/dist/mcp.cjs
CHANGED
|
@@ -10096,6 +10096,126 @@ var require_mod = __commonJS({
|
|
|
10096
10096
|
}
|
|
10097
10097
|
});
|
|
10098
10098
|
|
|
10099
|
+
// ../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/types.js
|
|
10100
|
+
var require_types2 = __commonJS({
|
|
10101
|
+
"../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/types.js"(exports2) {
|
|
10102
|
+
"use strict";
|
|
10103
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10104
|
+
exports2.RepublishHeaders = exports2.DirectMsgHeaders = exports2.JsHeaders = exports2.AdvisoryKind = void 0;
|
|
10105
|
+
exports2.isOrderedPushConsumerOptions = isOrderedPushConsumerOptions;
|
|
10106
|
+
exports2.isPullConsumer = isPullConsumer;
|
|
10107
|
+
exports2.isPushConsumer = isPushConsumer;
|
|
10108
|
+
exports2.isBoundPushConsumerOptions = isBoundPushConsumerOptions;
|
|
10109
|
+
function isOrderedPushConsumerOptions(v) {
|
|
10110
|
+
if (v && typeof v === "object") {
|
|
10111
|
+
return "name_prefix" in v || "deliver_subject_prefix" in v || "filter_subjects" in v || "filter_subject" in v || "deliver_policy" in v || "opt_start_seq" in v || "opt_start_time" in v || "replay_policy" in v || "inactive_threshold" in v || "headers_only" in v || "deliver_prefix" in v;
|
|
10112
|
+
}
|
|
10113
|
+
return false;
|
|
10114
|
+
}
|
|
10115
|
+
function isPullConsumer(v) {
|
|
10116
|
+
return v.isPullConsumer();
|
|
10117
|
+
}
|
|
10118
|
+
function isPushConsumer(v) {
|
|
10119
|
+
return v.isPushConsumer();
|
|
10120
|
+
}
|
|
10121
|
+
function isBoundPushConsumerOptions(v) {
|
|
10122
|
+
if (v && typeof v === "object") {
|
|
10123
|
+
return "deliver_subject" in v || "deliver_group" in v || "idle_heartbeat" in v;
|
|
10124
|
+
}
|
|
10125
|
+
return false;
|
|
10126
|
+
}
|
|
10127
|
+
exports2.AdvisoryKind = {
|
|
10128
|
+
API: "api_audit",
|
|
10129
|
+
StreamAction: "stream_action",
|
|
10130
|
+
ConsumerAction: "consumer_action",
|
|
10131
|
+
SnapshotCreate: "snapshot_create",
|
|
10132
|
+
SnapshotComplete: "snapshot_complete",
|
|
10133
|
+
RestoreCreate: "restore_create",
|
|
10134
|
+
RestoreComplete: "restore_complete",
|
|
10135
|
+
MaxDeliver: "max_deliver",
|
|
10136
|
+
Terminated: "terminated",
|
|
10137
|
+
Ack: "consumer_ack",
|
|
10138
|
+
StreamLeaderElected: "stream_leader_elected",
|
|
10139
|
+
StreamQuorumLost: "stream_quorum_lost",
|
|
10140
|
+
ConsumerLeaderElected: "consumer_leader_elected",
|
|
10141
|
+
ConsumerQuorumLost: "consumer_quorum_lost"
|
|
10142
|
+
};
|
|
10143
|
+
exports2.JsHeaders = {
|
|
10144
|
+
/**
|
|
10145
|
+
* Set if message is from a stream source - format is `stream seq`
|
|
10146
|
+
*/
|
|
10147
|
+
StreamSourceHdr: "Nats-Stream-Source",
|
|
10148
|
+
/**
|
|
10149
|
+
* Set for heartbeat messages
|
|
10150
|
+
*/
|
|
10151
|
+
LastConsumerSeqHdr: "Nats-Last-Consumer",
|
|
10152
|
+
/**
|
|
10153
|
+
* Set for heartbeat messages
|
|
10154
|
+
*/
|
|
10155
|
+
LastStreamSeqHdr: "Nats-Last-Stream",
|
|
10156
|
+
/**
|
|
10157
|
+
* Set for heartbeat messages if the consumer is stalled, reply subject
|
|
10158
|
+
* will unstall the client when the client responds
|
|
10159
|
+
*/
|
|
10160
|
+
ConsumerStalledHdr: "Nats-Consumer-Stalled",
|
|
10161
|
+
/**
|
|
10162
|
+
* Set for headers_only consumers indicates the number of bytes in the payload
|
|
10163
|
+
*/
|
|
10164
|
+
MessageSizeHdr: "Nats-Msg-Size",
|
|
10165
|
+
// rollup header
|
|
10166
|
+
RollupHdr: "Nats-Rollup",
|
|
10167
|
+
// value for rollup header when rolling up a subject
|
|
10168
|
+
RollupValueSubject: "sub",
|
|
10169
|
+
// value for rollup header when rolling up all subjects
|
|
10170
|
+
RollupValueAll: "all",
|
|
10171
|
+
/**
|
|
10172
|
+
* Set on protocol messages to indicate pull request message count that
|
|
10173
|
+
* was not honored.
|
|
10174
|
+
*/
|
|
10175
|
+
PendingMessagesHdr: "Nats-Pending-Messages",
|
|
10176
|
+
/**
|
|
10177
|
+
* Set on protocol messages to indicate pull request byte count that
|
|
10178
|
+
* was not honored
|
|
10179
|
+
*/
|
|
10180
|
+
PendingBytesHdr: "Nats-Pending-Bytes",
|
|
10181
|
+
/**
|
|
10182
|
+
* Asserts a minimum JetStream API level on a JS API request (ADR-44).
|
|
10183
|
+
*/
|
|
10184
|
+
RequiredApiLevel: "Nats-Required-Api-Level"
|
|
10185
|
+
};
|
|
10186
|
+
exports2.DirectMsgHeaders = {
|
|
10187
|
+
Stream: "Nats-Stream",
|
|
10188
|
+
Sequence: "Nats-Sequence",
|
|
10189
|
+
TimeStamp: "Nats-Time-Stamp",
|
|
10190
|
+
Subject: "Nats-Subject",
|
|
10191
|
+
LastSequence: "Nats-Last-Sequence",
|
|
10192
|
+
NumPending: "Nats-Num-Pending"
|
|
10193
|
+
};
|
|
10194
|
+
exports2.RepublishHeaders = {
|
|
10195
|
+
/**
|
|
10196
|
+
* The source stream of the message
|
|
10197
|
+
*/
|
|
10198
|
+
Stream: "Nats-Stream",
|
|
10199
|
+
/**
|
|
10200
|
+
* The original subject of the message
|
|
10201
|
+
*/
|
|
10202
|
+
Subject: "Nats-Subject",
|
|
10203
|
+
/**
|
|
10204
|
+
* The sequence of the republished message
|
|
10205
|
+
*/
|
|
10206
|
+
Sequence: "Nats-Sequence",
|
|
10207
|
+
/**
|
|
10208
|
+
* The stream sequence id of the last message ingested to the same original subject (or 0 if none or deleted)
|
|
10209
|
+
*/
|
|
10210
|
+
LastSequence: "Nats-Last-Sequence",
|
|
10211
|
+
/**
|
|
10212
|
+
* The size in bytes of the message's body - Only if {@link Republish#headers_only} is set.
|
|
10213
|
+
*/
|
|
10214
|
+
Size: "Nats-Msg-Size"
|
|
10215
|
+
};
|
|
10216
|
+
}
|
|
10217
|
+
});
|
|
10218
|
+
|
|
10099
10219
|
// ../../node_modules/.pnpm/@nats-io+nats-core@3.4.0/node_modules/@nats-io/nats-core/lib/encoders.js
|
|
10100
10220
|
var require_encoders = __commonJS({
|
|
10101
10221
|
"../../node_modules/.pnpm/@nats-io+nats-core@3.4.0/node_modules/@nats-io/nats-core/lib/encoders.js"(exports2) {
|
|
@@ -14912,7 +15032,7 @@ ${stack}`;
|
|
|
14912
15032
|
});
|
|
14913
15033
|
|
|
14914
15034
|
// ../../node_modules/.pnpm/@nats-io+nats-core@3.4.0/node_modules/@nats-io/nats-core/lib/types.js
|
|
14915
|
-
var
|
|
15035
|
+
var require_types3 = __commonJS({
|
|
14916
15036
|
"../../node_modules/.pnpm/@nats-io+nats-core@3.4.0/node_modules/@nats-io/nats-core/lib/types.js"(exports2) {
|
|
14917
15037
|
"use strict";
|
|
14918
15038
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
@@ -14933,7 +15053,7 @@ var require_bench = __commonJS({
|
|
|
14933
15053
|
exports2.throughput = throughput;
|
|
14934
15054
|
exports2.msgThroughput = msgThroughput;
|
|
14935
15055
|
exports2.humanizeBytes = humanizeBytes;
|
|
14936
|
-
var types_1 =
|
|
15056
|
+
var types_1 = require_types3();
|
|
14937
15057
|
var nuid_1 = require_nuid2();
|
|
14938
15058
|
var util_1 = require_util3();
|
|
14939
15059
|
var Metric = class {
|
|
@@ -15895,7 +16015,7 @@ var require_internal_mod = __commonJS({
|
|
|
15895
16015
|
Object.defineProperty(exports2, "parseSemVer", { enumerable: true, get: function() {
|
|
15896
16016
|
return semver_1.parseSemVer;
|
|
15897
16017
|
} });
|
|
15898
|
-
var types_1 =
|
|
16018
|
+
var types_1 = require_types3();
|
|
15899
16019
|
Object.defineProperty(exports2, "Empty", { enumerable: true, get: function() {
|
|
15900
16020
|
return types_1.Empty;
|
|
15901
16021
|
} });
|
|
@@ -15987,747 +16107,105 @@ var require_internal_mod = __commonJS({
|
|
|
15987
16107
|
}
|
|
15988
16108
|
});
|
|
15989
16109
|
|
|
15990
|
-
// ../../node_modules/.pnpm/@nats-io+
|
|
15991
|
-
var
|
|
15992
|
-
"../../node_modules/.pnpm/@nats-io+
|
|
15993
|
-
"use strict";
|
|
15994
|
-
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
15995
|
-
if (k2 === void 0) k2 = k;
|
|
15996
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15997
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15998
|
-
desc = { enumerable: true, get: function() {
|
|
15999
|
-
return m[k];
|
|
16000
|
-
} };
|
|
16001
|
-
}
|
|
16002
|
-
Object.defineProperty(o, k2, desc);
|
|
16003
|
-
}) : (function(o, m, k, k2) {
|
|
16004
|
-
if (k2 === void 0) k2 = k;
|
|
16005
|
-
o[k2] = m[k];
|
|
16006
|
-
}));
|
|
16007
|
-
var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
|
|
16008
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p);
|
|
16009
|
-
};
|
|
16010
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16011
|
-
__exportStar(require_internal_mod(), exports2);
|
|
16012
|
-
}
|
|
16013
|
-
});
|
|
16014
|
-
|
|
16015
|
-
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/version.js
|
|
16016
|
-
var require_version3 = __commonJS({
|
|
16017
|
-
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/version.js"(exports2) {
|
|
16110
|
+
// ../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/jserrors.js
|
|
16111
|
+
var require_jserrors = __commonJS({
|
|
16112
|
+
"../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/jserrors.js"(exports2) {
|
|
16018
16113
|
"use strict";
|
|
16019
16114
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16020
|
-
exports2.
|
|
16021
|
-
exports2.
|
|
16022
|
-
|
|
16023
|
-
|
|
16024
|
-
|
|
16025
|
-
|
|
16026
|
-
|
|
16027
|
-
|
|
16028
|
-
"use strict";
|
|
16029
|
-
var __importDefault = exports2 && exports2.__importDefault || function(mod) {
|
|
16030
|
-
return mod && mod.__esModule ? mod : { "default": mod };
|
|
16115
|
+
exports2.jserrors = exports2.StreamNotFoundError = exports2.ConsumerNotFoundError = exports2.JetStreamApiError = exports2.InvalidNameError = exports2.JetStreamApiCodes = exports2.JetStreamStatus = exports2.JetStreamStatusError = exports2.JetStreamError = exports2.JetStreamNotEnabled = void 0;
|
|
16116
|
+
exports2.isMessageNotFound = isMessageNotFound;
|
|
16117
|
+
var types_1 = require_types2();
|
|
16118
|
+
var JetStreamNotEnabled = class extends Error {
|
|
16119
|
+
constructor(message, opts) {
|
|
16120
|
+
super(message, opts);
|
|
16121
|
+
this.name = "JetStreamNotEnabled";
|
|
16122
|
+
}
|
|
16031
16123
|
};
|
|
16032
|
-
|
|
16033
|
-
|
|
16034
|
-
|
|
16035
|
-
|
|
16036
|
-
|
|
16037
|
-
var node_tls_1 = require("node:tls");
|
|
16038
|
-
var node_path_1 = require("node:path");
|
|
16039
|
-
var node_fs_1 = require("node:fs");
|
|
16040
|
-
var node_dns_1 = __importDefault(require("node:dns"));
|
|
16041
|
-
var version_1 = require_version3();
|
|
16042
|
-
exports2.VERSION = version_1.version;
|
|
16043
|
-
var LANG = "nats.js";
|
|
16044
|
-
var NodeTransport = class {
|
|
16045
|
-
socket;
|
|
16046
|
-
version;
|
|
16047
|
-
lang;
|
|
16048
|
-
yields = [];
|
|
16049
|
-
signal = (0, nats_base_client_1.deferred)();
|
|
16050
|
-
closedNotification = (0, nats_base_client_1.deferred)();
|
|
16051
|
-
options;
|
|
16052
|
-
connected = false;
|
|
16053
|
-
tlsName = "";
|
|
16054
|
-
done = false;
|
|
16055
|
-
closeError;
|
|
16056
|
-
constructor() {
|
|
16057
|
-
this.lang = LANG;
|
|
16058
|
-
this.version = exports2.VERSION;
|
|
16124
|
+
exports2.JetStreamNotEnabled = JetStreamNotEnabled;
|
|
16125
|
+
var JetStreamError = class extends Error {
|
|
16126
|
+
constructor(message, opts) {
|
|
16127
|
+
super(message, opts);
|
|
16128
|
+
this.name = "JetStreamError";
|
|
16059
16129
|
}
|
|
16060
|
-
|
|
16061
|
-
|
|
16062
|
-
|
|
16063
|
-
|
|
16064
|
-
|
|
16065
|
-
|
|
16066
|
-
|
|
16067
|
-
|
|
16068
|
-
} else {
|
|
16069
|
-
this.socket = await this.dial(hp);
|
|
16070
|
-
}
|
|
16071
|
-
if (this.done) {
|
|
16072
|
-
this.socket?.destroy();
|
|
16073
|
-
}
|
|
16074
|
-
const info = await this.peekInfo();
|
|
16075
|
-
(0, nats_base_client_1.checkOptions)(info, options);
|
|
16076
|
-
const { tls_required: tlsRequired, tls_available: tlsAvailable } = info;
|
|
16077
|
-
const desired = tlsAvailable === true && options.tls !== null;
|
|
16078
|
-
if (!handshakeFirst && (tlsRequired || desired)) {
|
|
16079
|
-
this.socket = await this.startTLS();
|
|
16080
|
-
}
|
|
16081
|
-
if (this.done) {
|
|
16082
|
-
this.socket?.destroy();
|
|
16083
|
-
}
|
|
16084
|
-
if (tlsRequired && this.socket.encrypted !== true) {
|
|
16085
|
-
throw nats_base_client_1.errors.InvalidArgumentError.format("tls", "is not available on this server");
|
|
16086
|
-
}
|
|
16087
|
-
this.connected = true;
|
|
16088
|
-
this.setupHandlers();
|
|
16089
|
-
this.signal.resolve();
|
|
16090
|
-
return Promise.resolve();
|
|
16091
|
-
} catch (ex) {
|
|
16092
|
-
let err2 = ex;
|
|
16093
|
-
if (!err2) {
|
|
16094
|
-
err2 = new nats_base_client_1.errors.ConnectionError("error connecting - node provided an undefined error");
|
|
16095
|
-
}
|
|
16096
|
-
const { code } = err2;
|
|
16097
|
-
const perr = code === "ECONNREFUSED" ? new nats_base_client_1.errors.ConnectionError("connection refused", { cause: err2 }) : err2;
|
|
16098
|
-
this.socket?.destroy();
|
|
16099
|
-
throw perr;
|
|
16100
|
-
}
|
|
16130
|
+
};
|
|
16131
|
+
exports2.JetStreamError = JetStreamError;
|
|
16132
|
+
var JetStreamStatusError = class extends JetStreamError {
|
|
16133
|
+
code;
|
|
16134
|
+
constructor(message, code, opts) {
|
|
16135
|
+
super(message, opts);
|
|
16136
|
+
this.code = code;
|
|
16137
|
+
this.name = "JetStreamStatusError";
|
|
16101
16138
|
}
|
|
16102
|
-
|
|
16103
|
-
|
|
16104
|
-
|
|
16105
|
-
|
|
16106
|
-
|
|
16107
|
-
|
|
16108
|
-
|
|
16109
|
-
|
|
16110
|
-
dialError = err2;
|
|
16111
|
-
});
|
|
16112
|
-
socket.on("close", () => {
|
|
16113
|
-
socket.removeAllListeners();
|
|
16114
|
-
d.reject(dialError);
|
|
16115
|
-
});
|
|
16116
|
-
socket.setNoDelay(true);
|
|
16117
|
-
return d;
|
|
16139
|
+
};
|
|
16140
|
+
exports2.JetStreamStatusError = JetStreamStatusError;
|
|
16141
|
+
var JetStreamStatus = class _JetStreamStatus {
|
|
16142
|
+
msg;
|
|
16143
|
+
_description;
|
|
16144
|
+
constructor(msg) {
|
|
16145
|
+
this.msg = msg;
|
|
16146
|
+
this._description = "";
|
|
16118
16147
|
}
|
|
16119
|
-
|
|
16120
|
-
|
|
16148
|
+
static maybeParseStatus(msg) {
|
|
16149
|
+
const status = new _JetStreamStatus(msg);
|
|
16150
|
+
return status.code === 0 ? null : status;
|
|
16121
16151
|
}
|
|
16122
|
-
|
|
16123
|
-
return this.
|
|
16152
|
+
toError() {
|
|
16153
|
+
return new JetStreamStatusError(this.description, this.code);
|
|
16124
16154
|
}
|
|
16125
|
-
|
|
16126
|
-
|
|
16127
|
-
|
|
16128
|
-
|
|
16129
|
-
this.
|
|
16130
|
-
|
|
16131
|
-
|
|
16132
|
-
if (pm !== "") {
|
|
16133
|
-
try {
|
|
16134
|
-
const m = nats_base_client_1.INFO.exec(pm);
|
|
16135
|
-
if (!m) {
|
|
16136
|
-
throw new Error("unexpected response from server");
|
|
16137
|
-
}
|
|
16138
|
-
const info = JSON.parse(m[1]);
|
|
16139
|
-
d.resolve(info);
|
|
16140
|
-
} catch (err2) {
|
|
16141
|
-
d.reject(err2);
|
|
16142
|
-
} finally {
|
|
16143
|
-
this.socket.removeAllListeners();
|
|
16144
|
-
}
|
|
16145
|
-
}
|
|
16146
|
-
});
|
|
16147
|
-
this.socket.on("error", (err2) => {
|
|
16148
|
-
peekError = err2;
|
|
16149
|
-
});
|
|
16150
|
-
this.socket.on("close", () => {
|
|
16151
|
-
this.socket.removeAllListeners();
|
|
16152
|
-
d.reject(peekError);
|
|
16155
|
+
debug() {
|
|
16156
|
+
console.log({
|
|
16157
|
+
subject: this.msg.subject,
|
|
16158
|
+
reply: this.msg.reply,
|
|
16159
|
+
description: this.description,
|
|
16160
|
+
status: this.code,
|
|
16161
|
+
headers: this.msg.headers
|
|
16153
16162
|
});
|
|
16154
|
-
return d;
|
|
16155
16163
|
}
|
|
16156
|
-
|
|
16157
|
-
|
|
16158
|
-
return Promise.resolve();
|
|
16159
|
-
}
|
|
16160
|
-
const d = (0, nats_base_client_1.deferred)();
|
|
16161
|
-
try {
|
|
16162
|
-
fn = (0, node_path_1.resolve)(fn);
|
|
16163
|
-
if (!(0, node_fs_1.existsSync)(fn)) {
|
|
16164
|
-
d.reject(new Error(`${fn} doesn't exist`));
|
|
16165
|
-
}
|
|
16166
|
-
(0, node_fs_1.readFile)(fn, (err2, data) => {
|
|
16167
|
-
if (err2) {
|
|
16168
|
-
return d.reject(err2);
|
|
16169
|
-
}
|
|
16170
|
-
d.resolve(data);
|
|
16171
|
-
});
|
|
16172
|
-
} catch (err2) {
|
|
16173
|
-
d.reject(err2);
|
|
16174
|
-
}
|
|
16175
|
-
return d;
|
|
16164
|
+
get code() {
|
|
16165
|
+
return this.msg.headers?.code || 0;
|
|
16176
16166
|
}
|
|
16177
|
-
|
|
16178
|
-
|
|
16179
|
-
|
|
16180
|
-
|
|
16181
|
-
|
|
16182
|
-
const data = await this.loadFile(certFile);
|
|
16183
|
-
if (data) {
|
|
16184
|
-
tlsOpts.cert = data;
|
|
16185
|
-
}
|
|
16186
|
-
} else if (cert) {
|
|
16187
|
-
tlsOpts.cert = cert;
|
|
16188
|
-
}
|
|
16189
|
-
if (keyFile) {
|
|
16190
|
-
const data = await this.loadFile(keyFile);
|
|
16191
|
-
if (data) {
|
|
16192
|
-
tlsOpts.key = data;
|
|
16193
|
-
}
|
|
16194
|
-
} else if (key) {
|
|
16195
|
-
tlsOpts.key = key;
|
|
16196
|
-
}
|
|
16197
|
-
if (caFile) {
|
|
16198
|
-
const data = await this.loadFile(caFile);
|
|
16199
|
-
if (data) {
|
|
16200
|
-
tlsOpts.ca = [data];
|
|
16201
|
-
}
|
|
16202
|
-
} else if (ca) {
|
|
16203
|
-
tlsOpts.ca = ca;
|
|
16167
|
+
get description() {
|
|
16168
|
+
if (this._description === "") {
|
|
16169
|
+
this._description = this.msg.headers?.description?.toLowerCase() || "";
|
|
16170
|
+
if (this._description === "") {
|
|
16171
|
+
this._description = this.code === 503 ? "no responders" : "unknown";
|
|
16204
16172
|
}
|
|
16205
|
-
return Promise.resolve(tlsOpts);
|
|
16206
|
-
} catch (err2) {
|
|
16207
|
-
return Promise.reject(err2);
|
|
16208
16173
|
}
|
|
16174
|
+
return this._description;
|
|
16209
16175
|
}
|
|
16210
|
-
|
|
16211
|
-
|
|
16212
|
-
|
|
16213
|
-
|
|
16214
|
-
|
|
16215
|
-
|
|
16216
|
-
|
|
16217
|
-
|
|
16218
|
-
|
|
16219
|
-
|
|
16220
|
-
|
|
16221
|
-
|
|
16222
|
-
|
|
16223
|
-
} catch (err2) {
|
|
16224
|
-
return Promise.reject(new nats_base_client_1.errors.ConnectionError(err2.message, { cause: err2 }));
|
|
16225
|
-
}
|
|
16226
|
-
}
|
|
16227
|
-
const d = (0, nats_base_client_1.deferred)();
|
|
16228
|
-
try {
|
|
16229
|
-
const tlsSocket = (0, node_tls_1.connect)(hp.port, hp.hostname, tlsOpts, () => {
|
|
16230
|
-
tlsSocket.removeAllListeners();
|
|
16231
|
-
d.resolve(tlsSocket);
|
|
16232
|
-
});
|
|
16233
|
-
tlsSocket.on("error", (err2) => {
|
|
16234
|
-
tlsError = err2;
|
|
16235
|
-
});
|
|
16236
|
-
tlsSocket.on("secureConnect", () => {
|
|
16237
|
-
if (tlsOpts.rejectUnauthorized === false) {
|
|
16238
|
-
return;
|
|
16239
|
-
}
|
|
16240
|
-
if (!tlsSocket.authorized) {
|
|
16241
|
-
throw tlsSocket.authorizationError;
|
|
16242
|
-
}
|
|
16243
|
-
});
|
|
16244
|
-
tlsSocket.on("close", () => {
|
|
16245
|
-
d.reject(tlsError);
|
|
16246
|
-
tlsSocket.removeAllListeners();
|
|
16247
|
-
});
|
|
16248
|
-
tlsSocket.setNoDelay(true);
|
|
16249
|
-
} catch (err2) {
|
|
16250
|
-
d.reject(new nats_base_client_1.errors.ConnectionError(err2.message, { cause: err2 }));
|
|
16176
|
+
isIdleHeartbeat() {
|
|
16177
|
+
return this.code === 100 && this.description === "idle heartbeat";
|
|
16178
|
+
}
|
|
16179
|
+
isFlowControlRequest() {
|
|
16180
|
+
return this.code === 100 && this.description === "flowcontrol request";
|
|
16181
|
+
}
|
|
16182
|
+
parseHeartbeat() {
|
|
16183
|
+
if (this.isIdleHeartbeat()) {
|
|
16184
|
+
return {
|
|
16185
|
+
type: "heartbeat",
|
|
16186
|
+
lastConsumerSequence: parseInt(this.msg.headers?.get("Nats-Last-Consumer") || "0"),
|
|
16187
|
+
lastStreamSequence: parseInt(this.msg.headers?.get("Nats-Last-Stream") || "0")
|
|
16188
|
+
};
|
|
16251
16189
|
}
|
|
16252
|
-
return
|
|
16190
|
+
return null;
|
|
16253
16191
|
}
|
|
16254
|
-
|
|
16255
|
-
|
|
16256
|
-
|
|
16257
|
-
|
|
16258
|
-
|
|
16259
|
-
|
|
16192
|
+
isRequestTimeout() {
|
|
16193
|
+
return this.code === 408 && this.description === "request timeout";
|
|
16194
|
+
}
|
|
16195
|
+
parseDiscard() {
|
|
16196
|
+
const discard = {
|
|
16197
|
+
msgsLeft: 0,
|
|
16198
|
+
bytesLeft: 0
|
|
16260
16199
|
};
|
|
16261
|
-
|
|
16262
|
-
|
|
16263
|
-
|
|
16264
|
-
tlsOpts = (0, nats_base_client_1.extend)(tlsOpts, this.options.tls, certOpts);
|
|
16265
|
-
} catch (err2) {
|
|
16266
|
-
return Promise.reject(new nats_base_client_1.errors.ConnectionError(err2.message, {
|
|
16267
|
-
cause: err2
|
|
16268
|
-
}));
|
|
16269
|
-
}
|
|
16200
|
+
const msgsLeft = this.msg.headers?.get(types_1.JsHeaders.PendingMessagesHdr);
|
|
16201
|
+
if (msgsLeft) {
|
|
16202
|
+
discard.msgsLeft = parseInt(msgsLeft);
|
|
16270
16203
|
}
|
|
16271
|
-
const
|
|
16272
|
-
|
|
16273
|
-
|
|
16274
|
-
tlsSocket.removeAllListeners();
|
|
16275
|
-
d.resolve(tlsSocket);
|
|
16276
|
-
});
|
|
16277
|
-
tlsSocket.on("error", (err2) => {
|
|
16278
|
-
tlsError = err2;
|
|
16279
|
-
});
|
|
16280
|
-
tlsSocket.on("secureConnect", () => {
|
|
16281
|
-
if (tlsOpts.rejectUnauthorized === false) {
|
|
16282
|
-
return;
|
|
16283
|
-
}
|
|
16284
|
-
if (!tlsSocket.authorized) {
|
|
16285
|
-
throw tlsSocket.authorizationError;
|
|
16286
|
-
}
|
|
16287
|
-
});
|
|
16288
|
-
tlsSocket.on("close", () => {
|
|
16289
|
-
d.reject(tlsError);
|
|
16290
|
-
tlsSocket.removeAllListeners();
|
|
16291
|
-
});
|
|
16292
|
-
} catch (err2) {
|
|
16293
|
-
d.reject(new nats_base_client_1.errors.ConnectionError(err2.message, { cause: err2 }));
|
|
16204
|
+
const bytesLeft = this.msg.headers?.get(types_1.JsHeaders.PendingBytesHdr);
|
|
16205
|
+
if (bytesLeft) {
|
|
16206
|
+
discard.bytesLeft = parseInt(bytesLeft);
|
|
16294
16207
|
}
|
|
16295
|
-
return
|
|
16296
|
-
}
|
|
16297
|
-
setupHandlers() {
|
|
16298
|
-
let connError;
|
|
16299
|
-
this.socket.on("data", (frame) => {
|
|
16300
|
-
this.yields.push(frame);
|
|
16301
|
-
return this.signal.resolve();
|
|
16302
|
-
});
|
|
16303
|
-
this.socket.on("error", (err2) => {
|
|
16304
|
-
connError = err2;
|
|
16305
|
-
});
|
|
16306
|
-
this.socket.on("end", () => {
|
|
16307
|
-
if (this.socket?.destroyed) {
|
|
16308
|
-
return;
|
|
16309
|
-
}
|
|
16310
|
-
this.socket?.write(new Uint8Array(0), () => {
|
|
16311
|
-
this.socket?.end();
|
|
16312
|
-
});
|
|
16313
|
-
});
|
|
16314
|
-
this.socket.on("close", () => {
|
|
16315
|
-
this._closed(connError, false);
|
|
16316
|
-
});
|
|
16317
|
-
}
|
|
16318
|
-
[Symbol.asyncIterator]() {
|
|
16319
|
-
return this.iterate();
|
|
16320
|
-
}
|
|
16321
|
-
async *iterate() {
|
|
16322
|
-
while (true) {
|
|
16323
|
-
if (this.yields.length === 0) {
|
|
16324
|
-
await this.signal;
|
|
16325
|
-
}
|
|
16326
|
-
const yields = this.yields;
|
|
16327
|
-
this.yields = [];
|
|
16328
|
-
for (let i = 0; i < yields.length; i++) {
|
|
16329
|
-
if (this.options.debug) {
|
|
16330
|
-
console.info(`> ${(0, nats_base_client_1.render)(yields[i])}`);
|
|
16331
|
-
}
|
|
16332
|
-
yield yields[i];
|
|
16333
|
-
}
|
|
16334
|
-
if (this.done) {
|
|
16335
|
-
break;
|
|
16336
|
-
} else if (this.yields.length === 0) {
|
|
16337
|
-
yields.length = 0;
|
|
16338
|
-
this.yields = yields;
|
|
16339
|
-
this.signal = (0, nats_base_client_1.deferred)();
|
|
16340
|
-
}
|
|
16341
|
-
}
|
|
16342
|
-
}
|
|
16343
|
-
discard() {
|
|
16344
|
-
this.done = true;
|
|
16345
|
-
if (this.socket) {
|
|
16346
|
-
try {
|
|
16347
|
-
this.socket.removeAllListeners();
|
|
16348
|
-
this.socket.destroy();
|
|
16349
|
-
} catch {
|
|
16350
|
-
}
|
|
16351
|
-
}
|
|
16352
|
-
}
|
|
16353
|
-
disconnect() {
|
|
16354
|
-
this._closed(void 0, true).then().catch();
|
|
16355
|
-
}
|
|
16356
|
-
isEncrypted() {
|
|
16357
|
-
return this.socket instanceof node_tls_1.TLSSocket;
|
|
16358
|
-
}
|
|
16359
|
-
_send(frame) {
|
|
16360
|
-
if (this.isClosed || this.socket === void 0) {
|
|
16361
|
-
return Promise.resolve();
|
|
16362
|
-
}
|
|
16363
|
-
if (this.options.debug) {
|
|
16364
|
-
console.info(`< ${(0, nats_base_client_1.render)(frame)}`);
|
|
16365
|
-
}
|
|
16366
|
-
const d = (0, nats_base_client_1.deferred)();
|
|
16367
|
-
try {
|
|
16368
|
-
this.socket.write(frame, (err2) => {
|
|
16369
|
-
if (err2) {
|
|
16370
|
-
if (this.options.debug) {
|
|
16371
|
-
console.error(`!!! ${(0, nats_base_client_1.render)(frame)}: ${err2}`);
|
|
16372
|
-
}
|
|
16373
|
-
return d.reject(err2);
|
|
16374
|
-
}
|
|
16375
|
-
return d.resolve();
|
|
16376
|
-
});
|
|
16377
|
-
} catch (err2) {
|
|
16378
|
-
if (this.options.debug) {
|
|
16379
|
-
console.error(`!!! ${(0, nats_base_client_1.render)(frame)}: ${err2}`);
|
|
16380
|
-
}
|
|
16381
|
-
d.reject(err2);
|
|
16382
|
-
}
|
|
16383
|
-
return d;
|
|
16384
|
-
}
|
|
16385
|
-
send(frame) {
|
|
16386
|
-
const p = this._send(frame);
|
|
16387
|
-
p.catch((_err) => {
|
|
16388
|
-
});
|
|
16389
|
-
}
|
|
16390
|
-
async _closed(err2, internal = true) {
|
|
16391
|
-
if (!this.connected)
|
|
16392
|
-
return;
|
|
16393
|
-
if (this.done) {
|
|
16394
|
-
this.socket?.destroy();
|
|
16395
|
-
return;
|
|
16396
|
-
}
|
|
16397
|
-
this.closeError = err2;
|
|
16398
|
-
if (!err2 && this.socket && internal) {
|
|
16399
|
-
try {
|
|
16400
|
-
await this._send(new TextEncoder().encode(""));
|
|
16401
|
-
} catch (err3) {
|
|
16402
|
-
if (this.options.debug) {
|
|
16403
|
-
console.log("transport close terminated with an error", err3);
|
|
16404
|
-
}
|
|
16405
|
-
}
|
|
16406
|
-
}
|
|
16407
|
-
try {
|
|
16408
|
-
if (this.socket) {
|
|
16409
|
-
this.socket.removeAllListeners();
|
|
16410
|
-
this.socket?.destroy();
|
|
16411
|
-
this.socket = void 0;
|
|
16412
|
-
}
|
|
16413
|
-
} catch (err3) {
|
|
16414
|
-
console.log(err3);
|
|
16415
|
-
}
|
|
16416
|
-
this.done = true;
|
|
16417
|
-
this.closedNotification.resolve(this.closeError);
|
|
16418
|
-
}
|
|
16419
|
-
closed() {
|
|
16420
|
-
return this.closedNotification;
|
|
16421
|
-
}
|
|
16422
|
-
};
|
|
16423
|
-
exports2.NodeTransport = NodeTransport;
|
|
16424
|
-
function nodeResolveHost(s) {
|
|
16425
|
-
const ips = (0, nats_base_client_1.deferred)();
|
|
16426
|
-
node_dns_1.default.lookup(
|
|
16427
|
-
s,
|
|
16428
|
-
{ all: true },
|
|
16429
|
-
//@ts-ignore: callback changes shape when all is true
|
|
16430
|
-
(err2, address) => {
|
|
16431
|
-
if (err2) {
|
|
16432
|
-
ips.reject(err2);
|
|
16433
|
-
return;
|
|
16434
|
-
}
|
|
16435
|
-
const buf = [];
|
|
16436
|
-
for (const r of address) {
|
|
16437
|
-
buf.push(r.address);
|
|
16438
|
-
}
|
|
16439
|
-
if (buf.length === 0) {
|
|
16440
|
-
buf.push(s);
|
|
16441
|
-
}
|
|
16442
|
-
ips.resolve(buf);
|
|
16443
|
-
}
|
|
16444
|
-
);
|
|
16445
|
-
return ips;
|
|
16446
|
-
}
|
|
16447
|
-
}
|
|
16448
|
-
});
|
|
16449
|
-
|
|
16450
|
-
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/connect.js
|
|
16451
|
-
var require_connect = __commonJS({
|
|
16452
|
-
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/connect.js"(exports2) {
|
|
16453
|
-
"use strict";
|
|
16454
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16455
|
-
exports2.connect = connect7;
|
|
16456
|
-
var node_transport_1 = require_node_transport();
|
|
16457
|
-
var nats_base_client_1 = require_nats_base_client();
|
|
16458
|
-
var nats_base_client_2 = require_nats_base_client();
|
|
16459
|
-
function connect7(opts = {}) {
|
|
16460
|
-
if ((0, nats_base_client_2.hasWsProtocol)(opts)) {
|
|
16461
|
-
return Promise.reject(nats_base_client_2.errors.InvalidArgumentError.format(`servers`, `node client doesn't support websockets, use the 'wsconnect' function instead`));
|
|
16462
|
-
}
|
|
16463
|
-
(0, nats_base_client_1.setTransportFactory)({
|
|
16464
|
-
factory: () => {
|
|
16465
|
-
return new node_transport_1.NodeTransport();
|
|
16466
|
-
},
|
|
16467
|
-
dnsResolveFn: node_transport_1.nodeResolveHost
|
|
16468
|
-
});
|
|
16469
|
-
return nats_base_client_1.NatsConnectionImpl.connect(opts);
|
|
16470
|
-
}
|
|
16471
|
-
}
|
|
16472
|
-
});
|
|
16473
|
-
|
|
16474
|
-
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/mod.js
|
|
16475
|
-
var require_mod3 = __commonJS({
|
|
16476
|
-
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/mod.js"(exports2) {
|
|
16477
|
-
"use strict";
|
|
16478
|
-
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
16479
|
-
if (k2 === void 0) k2 = k;
|
|
16480
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16481
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16482
|
-
desc = { enumerable: true, get: function() {
|
|
16483
|
-
return m[k];
|
|
16484
|
-
} };
|
|
16485
|
-
}
|
|
16486
|
-
Object.defineProperty(o, k2, desc);
|
|
16487
|
-
}) : (function(o, m, k, k2) {
|
|
16488
|
-
if (k2 === void 0) k2 = k;
|
|
16489
|
-
o[k2] = m[k];
|
|
16490
|
-
}));
|
|
16491
|
-
var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
|
|
16492
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p);
|
|
16493
|
-
};
|
|
16494
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16495
|
-
exports2.connect = void 0;
|
|
16496
|
-
var connect_1 = require_connect();
|
|
16497
|
-
Object.defineProperty(exports2, "connect", { enumerable: true, get: function() {
|
|
16498
|
-
return connect_1.connect;
|
|
16499
|
-
} });
|
|
16500
|
-
__exportStar(require_nats_base_client(), exports2);
|
|
16501
|
-
}
|
|
16502
|
-
});
|
|
16503
|
-
|
|
16504
|
-
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/index.js
|
|
16505
|
-
var require_transport_node = __commonJS({
|
|
16506
|
-
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/index.js"(exports2, module2) {
|
|
16507
|
-
"use strict";
|
|
16508
|
-
module2.exports = require_mod3();
|
|
16509
|
-
}
|
|
16510
|
-
});
|
|
16511
|
-
|
|
16512
|
-
// ../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/types.js
|
|
16513
|
-
var require_types3 = __commonJS({
|
|
16514
|
-
"../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/types.js"(exports2) {
|
|
16515
|
-
"use strict";
|
|
16516
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16517
|
-
exports2.RepublishHeaders = exports2.DirectMsgHeaders = exports2.JsHeaders = exports2.AdvisoryKind = void 0;
|
|
16518
|
-
exports2.isOrderedPushConsumerOptions = isOrderedPushConsumerOptions;
|
|
16519
|
-
exports2.isPullConsumer = isPullConsumer;
|
|
16520
|
-
exports2.isPushConsumer = isPushConsumer;
|
|
16521
|
-
exports2.isBoundPushConsumerOptions = isBoundPushConsumerOptions;
|
|
16522
|
-
function isOrderedPushConsumerOptions(v) {
|
|
16523
|
-
if (v && typeof v === "object") {
|
|
16524
|
-
return "name_prefix" in v || "deliver_subject_prefix" in v || "filter_subjects" in v || "filter_subject" in v || "deliver_policy" in v || "opt_start_seq" in v || "opt_start_time" in v || "replay_policy" in v || "inactive_threshold" in v || "headers_only" in v || "deliver_prefix" in v;
|
|
16525
|
-
}
|
|
16526
|
-
return false;
|
|
16527
|
-
}
|
|
16528
|
-
function isPullConsumer(v) {
|
|
16529
|
-
return v.isPullConsumer();
|
|
16530
|
-
}
|
|
16531
|
-
function isPushConsumer(v) {
|
|
16532
|
-
return v.isPushConsumer();
|
|
16533
|
-
}
|
|
16534
|
-
function isBoundPushConsumerOptions(v) {
|
|
16535
|
-
if (v && typeof v === "object") {
|
|
16536
|
-
return "deliver_subject" in v || "deliver_group" in v || "idle_heartbeat" in v;
|
|
16537
|
-
}
|
|
16538
|
-
return false;
|
|
16539
|
-
}
|
|
16540
|
-
exports2.AdvisoryKind = {
|
|
16541
|
-
API: "api_audit",
|
|
16542
|
-
StreamAction: "stream_action",
|
|
16543
|
-
ConsumerAction: "consumer_action",
|
|
16544
|
-
SnapshotCreate: "snapshot_create",
|
|
16545
|
-
SnapshotComplete: "snapshot_complete",
|
|
16546
|
-
RestoreCreate: "restore_create",
|
|
16547
|
-
RestoreComplete: "restore_complete",
|
|
16548
|
-
MaxDeliver: "max_deliver",
|
|
16549
|
-
Terminated: "terminated",
|
|
16550
|
-
Ack: "consumer_ack",
|
|
16551
|
-
StreamLeaderElected: "stream_leader_elected",
|
|
16552
|
-
StreamQuorumLost: "stream_quorum_lost",
|
|
16553
|
-
ConsumerLeaderElected: "consumer_leader_elected",
|
|
16554
|
-
ConsumerQuorumLost: "consumer_quorum_lost"
|
|
16555
|
-
};
|
|
16556
|
-
exports2.JsHeaders = {
|
|
16557
|
-
/**
|
|
16558
|
-
* Set if message is from a stream source - format is `stream seq`
|
|
16559
|
-
*/
|
|
16560
|
-
StreamSourceHdr: "Nats-Stream-Source",
|
|
16561
|
-
/**
|
|
16562
|
-
* Set for heartbeat messages
|
|
16563
|
-
*/
|
|
16564
|
-
LastConsumerSeqHdr: "Nats-Last-Consumer",
|
|
16565
|
-
/**
|
|
16566
|
-
* Set for heartbeat messages
|
|
16567
|
-
*/
|
|
16568
|
-
LastStreamSeqHdr: "Nats-Last-Stream",
|
|
16569
|
-
/**
|
|
16570
|
-
* Set for heartbeat messages if the consumer is stalled, reply subject
|
|
16571
|
-
* will unstall the client when the client responds
|
|
16572
|
-
*/
|
|
16573
|
-
ConsumerStalledHdr: "Nats-Consumer-Stalled",
|
|
16574
|
-
/**
|
|
16575
|
-
* Set for headers_only consumers indicates the number of bytes in the payload
|
|
16576
|
-
*/
|
|
16577
|
-
MessageSizeHdr: "Nats-Msg-Size",
|
|
16578
|
-
// rollup header
|
|
16579
|
-
RollupHdr: "Nats-Rollup",
|
|
16580
|
-
// value for rollup header when rolling up a subject
|
|
16581
|
-
RollupValueSubject: "sub",
|
|
16582
|
-
// value for rollup header when rolling up all subjects
|
|
16583
|
-
RollupValueAll: "all",
|
|
16584
|
-
/**
|
|
16585
|
-
* Set on protocol messages to indicate pull request message count that
|
|
16586
|
-
* was not honored.
|
|
16587
|
-
*/
|
|
16588
|
-
PendingMessagesHdr: "Nats-Pending-Messages",
|
|
16589
|
-
/**
|
|
16590
|
-
* Set on protocol messages to indicate pull request byte count that
|
|
16591
|
-
* was not honored
|
|
16592
|
-
*/
|
|
16593
|
-
PendingBytesHdr: "Nats-Pending-Bytes",
|
|
16594
|
-
/**
|
|
16595
|
-
* Asserts a minimum JetStream API level on a JS API request (ADR-44).
|
|
16596
|
-
*/
|
|
16597
|
-
RequiredApiLevel: "Nats-Required-Api-Level"
|
|
16598
|
-
};
|
|
16599
|
-
exports2.DirectMsgHeaders = {
|
|
16600
|
-
Stream: "Nats-Stream",
|
|
16601
|
-
Sequence: "Nats-Sequence",
|
|
16602
|
-
TimeStamp: "Nats-Time-Stamp",
|
|
16603
|
-
Subject: "Nats-Subject",
|
|
16604
|
-
LastSequence: "Nats-Last-Sequence",
|
|
16605
|
-
NumPending: "Nats-Num-Pending"
|
|
16606
|
-
};
|
|
16607
|
-
exports2.RepublishHeaders = {
|
|
16608
|
-
/**
|
|
16609
|
-
* The source stream of the message
|
|
16610
|
-
*/
|
|
16611
|
-
Stream: "Nats-Stream",
|
|
16612
|
-
/**
|
|
16613
|
-
* The original subject of the message
|
|
16614
|
-
*/
|
|
16615
|
-
Subject: "Nats-Subject",
|
|
16616
|
-
/**
|
|
16617
|
-
* The sequence of the republished message
|
|
16618
|
-
*/
|
|
16619
|
-
Sequence: "Nats-Sequence",
|
|
16620
|
-
/**
|
|
16621
|
-
* The stream sequence id of the last message ingested to the same original subject (or 0 if none or deleted)
|
|
16622
|
-
*/
|
|
16623
|
-
LastSequence: "Nats-Last-Sequence",
|
|
16624
|
-
/**
|
|
16625
|
-
* The size in bytes of the message's body - Only if {@link Republish#headers_only} is set.
|
|
16626
|
-
*/
|
|
16627
|
-
Size: "Nats-Msg-Size"
|
|
16628
|
-
};
|
|
16629
|
-
}
|
|
16630
|
-
});
|
|
16631
|
-
|
|
16632
|
-
// ../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/jserrors.js
|
|
16633
|
-
var require_jserrors = __commonJS({
|
|
16634
|
-
"../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/jserrors.js"(exports2) {
|
|
16635
|
-
"use strict";
|
|
16636
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16637
|
-
exports2.jserrors = exports2.StreamNotFoundError = exports2.ConsumerNotFoundError = exports2.JetStreamApiError = exports2.InvalidNameError = exports2.JetStreamApiCodes = exports2.JetStreamStatus = exports2.JetStreamStatusError = exports2.JetStreamError = exports2.JetStreamNotEnabled = void 0;
|
|
16638
|
-
exports2.isMessageNotFound = isMessageNotFound;
|
|
16639
|
-
var types_1 = require_types3();
|
|
16640
|
-
var JetStreamNotEnabled = class extends Error {
|
|
16641
|
-
constructor(message, opts) {
|
|
16642
|
-
super(message, opts);
|
|
16643
|
-
this.name = "JetStreamNotEnabled";
|
|
16644
|
-
}
|
|
16645
|
-
};
|
|
16646
|
-
exports2.JetStreamNotEnabled = JetStreamNotEnabled;
|
|
16647
|
-
var JetStreamError = class extends Error {
|
|
16648
|
-
constructor(message, opts) {
|
|
16649
|
-
super(message, opts);
|
|
16650
|
-
this.name = "JetStreamError";
|
|
16651
|
-
}
|
|
16652
|
-
};
|
|
16653
|
-
exports2.JetStreamError = JetStreamError;
|
|
16654
|
-
var JetStreamStatusError = class extends JetStreamError {
|
|
16655
|
-
code;
|
|
16656
|
-
constructor(message, code, opts) {
|
|
16657
|
-
super(message, opts);
|
|
16658
|
-
this.code = code;
|
|
16659
|
-
this.name = "JetStreamStatusError";
|
|
16660
|
-
}
|
|
16661
|
-
};
|
|
16662
|
-
exports2.JetStreamStatusError = JetStreamStatusError;
|
|
16663
|
-
var JetStreamStatus = class _JetStreamStatus {
|
|
16664
|
-
msg;
|
|
16665
|
-
_description;
|
|
16666
|
-
constructor(msg) {
|
|
16667
|
-
this.msg = msg;
|
|
16668
|
-
this._description = "";
|
|
16669
|
-
}
|
|
16670
|
-
static maybeParseStatus(msg) {
|
|
16671
|
-
const status = new _JetStreamStatus(msg);
|
|
16672
|
-
return status.code === 0 ? null : status;
|
|
16673
|
-
}
|
|
16674
|
-
toError() {
|
|
16675
|
-
return new JetStreamStatusError(this.description, this.code);
|
|
16676
|
-
}
|
|
16677
|
-
debug() {
|
|
16678
|
-
console.log({
|
|
16679
|
-
subject: this.msg.subject,
|
|
16680
|
-
reply: this.msg.reply,
|
|
16681
|
-
description: this.description,
|
|
16682
|
-
status: this.code,
|
|
16683
|
-
headers: this.msg.headers
|
|
16684
|
-
});
|
|
16685
|
-
}
|
|
16686
|
-
get code() {
|
|
16687
|
-
return this.msg.headers?.code || 0;
|
|
16688
|
-
}
|
|
16689
|
-
get description() {
|
|
16690
|
-
if (this._description === "") {
|
|
16691
|
-
this._description = this.msg.headers?.description?.toLowerCase() || "";
|
|
16692
|
-
if (this._description === "") {
|
|
16693
|
-
this._description = this.code === 503 ? "no responders" : "unknown";
|
|
16694
|
-
}
|
|
16695
|
-
}
|
|
16696
|
-
return this._description;
|
|
16697
|
-
}
|
|
16698
|
-
isIdleHeartbeat() {
|
|
16699
|
-
return this.code === 100 && this.description === "idle heartbeat";
|
|
16700
|
-
}
|
|
16701
|
-
isFlowControlRequest() {
|
|
16702
|
-
return this.code === 100 && this.description === "flowcontrol request";
|
|
16703
|
-
}
|
|
16704
|
-
parseHeartbeat() {
|
|
16705
|
-
if (this.isIdleHeartbeat()) {
|
|
16706
|
-
return {
|
|
16707
|
-
type: "heartbeat",
|
|
16708
|
-
lastConsumerSequence: parseInt(this.msg.headers?.get("Nats-Last-Consumer") || "0"),
|
|
16709
|
-
lastStreamSequence: parseInt(this.msg.headers?.get("Nats-Last-Stream") || "0")
|
|
16710
|
-
};
|
|
16711
|
-
}
|
|
16712
|
-
return null;
|
|
16713
|
-
}
|
|
16714
|
-
isRequestTimeout() {
|
|
16715
|
-
return this.code === 408 && this.description === "request timeout";
|
|
16716
|
-
}
|
|
16717
|
-
parseDiscard() {
|
|
16718
|
-
const discard = {
|
|
16719
|
-
msgsLeft: 0,
|
|
16720
|
-
bytesLeft: 0
|
|
16721
|
-
};
|
|
16722
|
-
const msgsLeft = this.msg.headers?.get(types_1.JsHeaders.PendingMessagesHdr);
|
|
16723
|
-
if (msgsLeft) {
|
|
16724
|
-
discard.msgsLeft = parseInt(msgsLeft);
|
|
16725
|
-
}
|
|
16726
|
-
const bytesLeft = this.msg.headers?.get(types_1.JsHeaders.PendingBytesHdr);
|
|
16727
|
-
if (bytesLeft) {
|
|
16728
|
-
discard.bytesLeft = parseInt(bytesLeft);
|
|
16729
|
-
}
|
|
16730
|
-
return discard;
|
|
16208
|
+
return discard;
|
|
16731
16209
|
}
|
|
16732
16210
|
isBadRequest() {
|
|
16733
16211
|
return this.code === 400;
|
|
@@ -16850,7 +16328,7 @@ var require_jsbaseclient_api = __commonJS({
|
|
|
16850
16328
|
exports2.parseJsResponse = parseJsResponse;
|
|
16851
16329
|
exports2.defaultJsOptions = defaultJsOptions;
|
|
16852
16330
|
var internal_1 = require_internal_mod();
|
|
16853
|
-
var types_1 =
|
|
16331
|
+
var types_1 = require_types2();
|
|
16854
16332
|
var jserrors_1 = require_jserrors();
|
|
16855
16333
|
var defaultPrefix = "$JS.API";
|
|
16856
16334
|
var defaultTimeout = 5e3;
|
|
@@ -17111,7 +16589,7 @@ var require_jsutil = __commonJS({
|
|
|
17111
16589
|
});
|
|
17112
16590
|
|
|
17113
16591
|
// ../../node_modules/.pnpm/@nats-io+nats-core@3.4.0/node_modules/@nats-io/nats-core/lib/mod.js
|
|
17114
|
-
var
|
|
16592
|
+
var require_mod3 = __commonJS({
|
|
17115
16593
|
"../../node_modules/.pnpm/@nats-io+nats-core@3.4.0/node_modules/@nats-io/nats-core/lib/mod.js"(exports2) {
|
|
17116
16594
|
"use strict";
|
|
17117
16595
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
@@ -17247,7 +16725,7 @@ var require_jsapi_types = __commonJS({
|
|
|
17247
16725
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17248
16726
|
exports2.PubHeaders = exports2.PriorityPolicy = exports2.ConsumerApiAction = exports2.PersistMode = exports2.StoreCompression = exports2.ReplayPolicy = exports2.AckPolicy = exports2.DeliverPolicy = exports2.StorageType = exports2.DiscardPolicy = exports2.RetentionPolicy = void 0;
|
|
17249
16727
|
exports2.defaultConsumer = defaultConsumer;
|
|
17250
|
-
var nats_core_1 =
|
|
16728
|
+
var nats_core_1 = require_mod3();
|
|
17251
16729
|
exports2.RetentionPolicy = {
|
|
17252
16730
|
/**
|
|
17253
16731
|
* Retain messages until the limits are reached, then trigger the discard policy.
|
|
@@ -18557,7 +18035,7 @@ var require_pushconsumer = __commonJS({
|
|
|
18557
18035
|
exports2.PushConsumerImpl = exports2.PushConsumerMessagesImpl = void 0;
|
|
18558
18036
|
var jsmsg_1 = require_jsmsg();
|
|
18559
18037
|
var jsapi_types_1 = require_jsapi_types();
|
|
18560
|
-
var types_1 =
|
|
18038
|
+
var types_1 = require_types2();
|
|
18561
18039
|
var internal_1 = require_internal_mod();
|
|
18562
18040
|
var jserrors_1 = require_jserrors();
|
|
18563
18041
|
var PushConsumerMessagesImpl = class extends internal_1.QueuedIteratorImpl {
|
|
@@ -18909,7 +18387,7 @@ var require_jsmstream_api = __commonJS({
|
|
|
18909
18387
|
var jsbaseclient_api_1 = require_jsbaseclient_api();
|
|
18910
18388
|
var jslister_1 = require_jslister();
|
|
18911
18389
|
var jsutil_1 = require_jsutil();
|
|
18912
|
-
var types_1 =
|
|
18390
|
+
var types_1 = require_types2();
|
|
18913
18391
|
var jsapi_types_1 = require_jsapi_types();
|
|
18914
18392
|
var consumer_1 = require_consumer();
|
|
18915
18393
|
var jsmconsumer_api_1 = require_jsmconsumer_api();
|
|
@@ -19431,7 +18909,7 @@ var require_jsm_direct = __commonJS({
|
|
|
19431
18909
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
19432
18910
|
exports2.DirectConsumer = exports2.DirectMsgImpl = exports2.DirectStreamAPIImpl = void 0;
|
|
19433
18911
|
var jsbaseclient_api_1 = require_jsbaseclient_api();
|
|
19434
|
-
var types_1 =
|
|
18912
|
+
var types_1 = require_types2();
|
|
19435
18913
|
var internal_1 = require_internal_mod();
|
|
19436
18914
|
var jsutil_1 = require_jsutil();
|
|
19437
18915
|
var jserrors_1 = require_jserrors();
|
|
@@ -20194,327 +19672,849 @@ var require_jsclient = __commonJS({
|
|
|
20194
19672
|
throw err2;
|
|
20195
19673
|
});
|
|
20196
19674
|
}
|
|
20197
|
-
route(err2, m) {
|
|
20198
|
-
if (err2) {
|
|
20199
|
-
this.close(err2);
|
|
20200
|
-
return;
|
|
20201
|
-
}
|
|
20202
|
-
let data;
|
|
20203
|
-
try {
|
|
20204
|
-
data = (0, jsbaseclient_api_1.parseJsResponse)(m);
|
|
20205
|
-
} catch (err3) {
|
|
20206
|
-
this.close(err3);
|
|
20207
|
-
return;
|
|
20208
|
-
}
|
|
20209
|
-
if ("batch" in data && typeof data.batch === "string") {
|
|
20210
|
-
const ack = data;
|
|
20211
|
-
const e = this.pending.get(m.subject);
|
|
20212
|
-
if (e && (e.op === FastIngestOp.Final || e.op === FastIngestOp.EOB)) {
|
|
20213
|
-
e.deferred.resolve(ack);
|
|
20214
|
-
this.pending.delete(m.subject);
|
|
19675
|
+
route(err2, m) {
|
|
19676
|
+
if (err2) {
|
|
19677
|
+
this.close(err2);
|
|
19678
|
+
return;
|
|
19679
|
+
}
|
|
19680
|
+
let data;
|
|
19681
|
+
try {
|
|
19682
|
+
data = (0, jsbaseclient_api_1.parseJsResponse)(m);
|
|
19683
|
+
} catch (err3) {
|
|
19684
|
+
this.close(err3);
|
|
19685
|
+
return;
|
|
19686
|
+
}
|
|
19687
|
+
if ("batch" in data && typeof data.batch === "string") {
|
|
19688
|
+
const ack = data;
|
|
19689
|
+
const e = this.pending.get(m.subject);
|
|
19690
|
+
if (e && (e.op === FastIngestOp.Final || e.op === FastIngestOp.EOB)) {
|
|
19691
|
+
e.deferred.resolve(ack);
|
|
19692
|
+
this.pending.delete(m.subject);
|
|
19693
|
+
}
|
|
19694
|
+
for (const [, entry] of this.pending) {
|
|
19695
|
+
if (entry.op === FastIngestOp.Append || entry.op === FastIngestOp.Ping) {
|
|
19696
|
+
entry.deferred.resolve({ batchSeq: entry.seq, ackSeq: this.acked });
|
|
19697
|
+
} else {
|
|
19698
|
+
entry.deferred.reject(new Error(BATCH_CLOSED));
|
|
19699
|
+
}
|
|
19700
|
+
}
|
|
19701
|
+
this.pending.clear();
|
|
19702
|
+
this.resolveStart();
|
|
19703
|
+
this.closedDeferred.resolve(ack);
|
|
19704
|
+
this.closed = true;
|
|
19705
|
+
this.gapIter?.stop();
|
|
19706
|
+
this.sub.unsubscribe();
|
|
19707
|
+
return;
|
|
19708
|
+
}
|
|
19709
|
+
const typed = data;
|
|
19710
|
+
if (typed.type === "gap") {
|
|
19711
|
+
if (this.gapIter) {
|
|
19712
|
+
const g = data;
|
|
19713
|
+
this.gapIter.push({ lastSeq: g.last_seq, seq: g.seq });
|
|
19714
|
+
}
|
|
19715
|
+
return;
|
|
19716
|
+
}
|
|
19717
|
+
const fa = data;
|
|
19718
|
+
if (typeof fa.msgs === "number")
|
|
19719
|
+
this.ackInterval = fa.msgs;
|
|
19720
|
+
if (typeof fa.seq === "number" && fa.seq > this.acked) {
|
|
19721
|
+
this.acked = fa.seq;
|
|
19722
|
+
}
|
|
19723
|
+
this.resolveStart();
|
|
19724
|
+
const exact = this.pending.get(m.subject);
|
|
19725
|
+
if (exact && (exact.op === FastIngestOp.Append || exact.op === FastIngestOp.Ping)) {
|
|
19726
|
+
exact.deferred.resolve({ batchSeq: exact.seq, ackSeq: this.acked });
|
|
19727
|
+
this.pending.delete(m.subject);
|
|
19728
|
+
}
|
|
19729
|
+
for (const [rs, e] of this.pending) {
|
|
19730
|
+
if (e.op === FastIngestOp.Append && e.seq - this.acked < this.ackInterval * this.maxOutstandingAcks) {
|
|
19731
|
+
e.deferred.resolve({ batchSeq: e.seq, ackSeq: this.acked });
|
|
19732
|
+
this.pending.delete(rs);
|
|
19733
|
+
}
|
|
19734
|
+
}
|
|
19735
|
+
}
|
|
19736
|
+
resolveStart() {
|
|
19737
|
+
this.startDeferred.resolve();
|
|
19738
|
+
}
|
|
19739
|
+
close(err2) {
|
|
19740
|
+
this.closed = true;
|
|
19741
|
+
this.closeErr = err2;
|
|
19742
|
+
for (const [, e] of this.pending)
|
|
19743
|
+
e.deferred.reject(err2);
|
|
19744
|
+
this.pending.clear();
|
|
19745
|
+
this.startDeferred.reject(err2);
|
|
19746
|
+
this.closedDeferred.reject(err2);
|
|
19747
|
+
this.gapIter?.stop();
|
|
19748
|
+
this.sub.unsubscribe();
|
|
19749
|
+
}
|
|
19750
|
+
add(subj, payload, opts) {
|
|
19751
|
+
if (this.closed)
|
|
19752
|
+
return Promise.reject(new Error(BATCH_CLOSED));
|
|
19753
|
+
const mySeq = ++this.seq;
|
|
19754
|
+
const rs = this.replyFor(FastIngestOp.Append, mySeq);
|
|
19755
|
+
const headers = opts ? buildPublishHeaders(opts) : void 0;
|
|
19756
|
+
this.nc.publish(subj, payload, { reply: rs, headers });
|
|
19757
|
+
if (mySeq - this.acked < this.ackInterval * this.maxOutstandingAcks) {
|
|
19758
|
+
return Promise.resolve({ batchSeq: mySeq, ackSeq: this.acked });
|
|
19759
|
+
}
|
|
19760
|
+
const d = (0, internal_1.deferred)();
|
|
19761
|
+
this.pending.set(rs, { seq: mySeq, op: FastIngestOp.Append, deferred: d });
|
|
19762
|
+
return this.deadlineOrClose(d, opts?.timeout ?? this.defaultTimeout);
|
|
19763
|
+
}
|
|
19764
|
+
last(subj, payload, opts) {
|
|
19765
|
+
if (this.closed)
|
|
19766
|
+
return Promise.reject(new Error(BATCH_CLOSED));
|
|
19767
|
+
const mySeq = ++this.seq;
|
|
19768
|
+
const rs = this.replyFor(FastIngestOp.Final, mySeq);
|
|
19769
|
+
const d = (0, internal_1.deferred)();
|
|
19770
|
+
this.pending.set(rs, { seq: mySeq, op: FastIngestOp.Final, deferred: d });
|
|
19771
|
+
const headers = opts ? buildPublishHeaders(opts) : void 0;
|
|
19772
|
+
this.nc.publish(subj, payload, { reply: rs, headers });
|
|
19773
|
+
return this.deadlineOrClose(d, opts?.timeout ?? this.defaultTimeout);
|
|
19774
|
+
}
|
|
19775
|
+
end(opts) {
|
|
19776
|
+
if (this.closed)
|
|
19777
|
+
return Promise.reject(new Error(BATCH_CLOSED));
|
|
19778
|
+
const mySeq = ++this.seq;
|
|
19779
|
+
const rs = this.replyFor(FastIngestOp.EOB, mySeq);
|
|
19780
|
+
const d = (0, internal_1.deferred)();
|
|
19781
|
+
this.pending.set(rs, { seq: mySeq, op: FastIngestOp.EOB, deferred: d });
|
|
19782
|
+
const headers = opts ? buildPublishHeaders(opts) : void 0;
|
|
19783
|
+
this.nc.publish(this.batchSubj, internal_1.Empty, { reply: rs, headers });
|
|
19784
|
+
return this.deadlineOrClose(d, opts?.timeout ?? this.defaultTimeout);
|
|
19785
|
+
}
|
|
19786
|
+
ping(timeout = this.defaultTimeout) {
|
|
19787
|
+
if (this.closed)
|
|
19788
|
+
return Promise.reject(new Error(BATCH_CLOSED));
|
|
19789
|
+
const rs = this.replyFor(FastIngestOp.Ping, this.seq);
|
|
19790
|
+
const existing = this.pending.get(rs);
|
|
19791
|
+
if (existing && existing.op === FastIngestOp.Ping) {
|
|
19792
|
+
return (0, internal_1.deadline)(existing.deferred, timeout);
|
|
19793
|
+
}
|
|
19794
|
+
const d = (0, internal_1.deferred)();
|
|
19795
|
+
this.pending.set(rs, { seq: this.seq, op: FastIngestOp.Ping, deferred: d });
|
|
19796
|
+
this.nc.publish(this.batchSubj, internal_1.Empty, { reply: rs });
|
|
19797
|
+
return this.deadlineOrClose(d, timeout);
|
|
19798
|
+
}
|
|
19799
|
+
done() {
|
|
19800
|
+
return this.closedDeferred;
|
|
19801
|
+
}
|
|
19802
|
+
gaps() {
|
|
19803
|
+
if (!this.gapIter) {
|
|
19804
|
+
this.gapIter = new internal_1.QueuedIteratorImpl();
|
|
19805
|
+
}
|
|
19806
|
+
return this.gapIter;
|
|
19807
|
+
}
|
|
19808
|
+
};
|
|
19809
|
+
}
|
|
19810
|
+
});
|
|
19811
|
+
|
|
19812
|
+
// ../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/internal_mod.js
|
|
19813
|
+
var require_internal_mod2 = __commonJS({
|
|
19814
|
+
"../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/internal_mod.js"(exports2) {
|
|
19815
|
+
"use strict";
|
|
19816
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
19817
|
+
exports2.validateStreamName = exports2.jserrors = exports2.JetStreamStatusError = exports2.JetStreamStatus = exports2.JetStreamError = exports2.JetStreamApiError = exports2.JetStreamApiCodes = exports2.isMessageNotFound = exports2.ListerImpl = exports2.StoreCompression = exports2.StorageType = exports2.RetentionPolicy = exports2.ReplayPolicy = exports2.PubHeaders = exports2.PersistMode = exports2.DiscardPolicy = exports2.DeliverPolicy = exports2.AckPolicy = exports2.DirectMsgImpl = exports2.BaseApiClientImpl = exports2.toJetStreamClient = exports2.startFastIngest = exports2.jetstreamManager = exports2.JetStreamClientImpl = exports2.jetstream = exports2.RepublishHeaders = exports2.JsHeaders = exports2.isPushConsumer = exports2.isPullConsumer = exports2.isOrderedPushConsumerOptions = exports2.isBoundPushConsumerOptions = exports2.DirectMsgHeaders = exports2.AdvisoryKind = void 0;
|
|
19818
|
+
var types_1 = require_types2();
|
|
19819
|
+
Object.defineProperty(exports2, "AdvisoryKind", { enumerable: true, get: function() {
|
|
19820
|
+
return types_1.AdvisoryKind;
|
|
19821
|
+
} });
|
|
19822
|
+
Object.defineProperty(exports2, "DirectMsgHeaders", { enumerable: true, get: function() {
|
|
19823
|
+
return types_1.DirectMsgHeaders;
|
|
19824
|
+
} });
|
|
19825
|
+
Object.defineProperty(exports2, "isBoundPushConsumerOptions", { enumerable: true, get: function() {
|
|
19826
|
+
return types_1.isBoundPushConsumerOptions;
|
|
19827
|
+
} });
|
|
19828
|
+
Object.defineProperty(exports2, "isOrderedPushConsumerOptions", { enumerable: true, get: function() {
|
|
19829
|
+
return types_1.isOrderedPushConsumerOptions;
|
|
19830
|
+
} });
|
|
19831
|
+
Object.defineProperty(exports2, "isPullConsumer", { enumerable: true, get: function() {
|
|
19832
|
+
return types_1.isPullConsumer;
|
|
19833
|
+
} });
|
|
19834
|
+
Object.defineProperty(exports2, "isPushConsumer", { enumerable: true, get: function() {
|
|
19835
|
+
return types_1.isPushConsumer;
|
|
19836
|
+
} });
|
|
19837
|
+
Object.defineProperty(exports2, "JsHeaders", { enumerable: true, get: function() {
|
|
19838
|
+
return types_1.JsHeaders;
|
|
19839
|
+
} });
|
|
19840
|
+
Object.defineProperty(exports2, "RepublishHeaders", { enumerable: true, get: function() {
|
|
19841
|
+
return types_1.RepublishHeaders;
|
|
19842
|
+
} });
|
|
19843
|
+
var jsclient_1 = require_jsclient();
|
|
19844
|
+
Object.defineProperty(exports2, "jetstream", { enumerable: true, get: function() {
|
|
19845
|
+
return jsclient_1.jetstream;
|
|
19846
|
+
} });
|
|
19847
|
+
Object.defineProperty(exports2, "JetStreamClientImpl", { enumerable: true, get: function() {
|
|
19848
|
+
return jsclient_1.JetStreamClientImpl;
|
|
19849
|
+
} });
|
|
19850
|
+
Object.defineProperty(exports2, "jetstreamManager", { enumerable: true, get: function() {
|
|
19851
|
+
return jsclient_1.jetstreamManager;
|
|
19852
|
+
} });
|
|
19853
|
+
Object.defineProperty(exports2, "startFastIngest", { enumerable: true, get: function() {
|
|
19854
|
+
return jsclient_1.startFastIngest;
|
|
19855
|
+
} });
|
|
19856
|
+
Object.defineProperty(exports2, "toJetStreamClient", { enumerable: true, get: function() {
|
|
19857
|
+
return jsclient_1.toJetStreamClient;
|
|
19858
|
+
} });
|
|
19859
|
+
var jsbaseclient_api_1 = require_jsbaseclient_api();
|
|
19860
|
+
Object.defineProperty(exports2, "BaseApiClientImpl", { enumerable: true, get: function() {
|
|
19861
|
+
return jsbaseclient_api_1.BaseApiClientImpl;
|
|
19862
|
+
} });
|
|
19863
|
+
var jsm_direct_1 = require_jsm_direct();
|
|
19864
|
+
Object.defineProperty(exports2, "DirectMsgImpl", { enumerable: true, get: function() {
|
|
19865
|
+
return jsm_direct_1.DirectMsgImpl;
|
|
19866
|
+
} });
|
|
19867
|
+
var jsapi_types_1 = require_jsapi_types();
|
|
19868
|
+
Object.defineProperty(exports2, "AckPolicy", { enumerable: true, get: function() {
|
|
19869
|
+
return jsapi_types_1.AckPolicy;
|
|
19870
|
+
} });
|
|
19871
|
+
Object.defineProperty(exports2, "DeliverPolicy", { enumerable: true, get: function() {
|
|
19872
|
+
return jsapi_types_1.DeliverPolicy;
|
|
19873
|
+
} });
|
|
19874
|
+
Object.defineProperty(exports2, "DiscardPolicy", { enumerable: true, get: function() {
|
|
19875
|
+
return jsapi_types_1.DiscardPolicy;
|
|
19876
|
+
} });
|
|
19877
|
+
Object.defineProperty(exports2, "PersistMode", { enumerable: true, get: function() {
|
|
19878
|
+
return jsapi_types_1.PersistMode;
|
|
19879
|
+
} });
|
|
19880
|
+
Object.defineProperty(exports2, "PubHeaders", { enumerable: true, get: function() {
|
|
19881
|
+
return jsapi_types_1.PubHeaders;
|
|
19882
|
+
} });
|
|
19883
|
+
Object.defineProperty(exports2, "ReplayPolicy", { enumerable: true, get: function() {
|
|
19884
|
+
return jsapi_types_1.ReplayPolicy;
|
|
19885
|
+
} });
|
|
19886
|
+
Object.defineProperty(exports2, "RetentionPolicy", { enumerable: true, get: function() {
|
|
19887
|
+
return jsapi_types_1.RetentionPolicy;
|
|
19888
|
+
} });
|
|
19889
|
+
Object.defineProperty(exports2, "StorageType", { enumerable: true, get: function() {
|
|
19890
|
+
return jsapi_types_1.StorageType;
|
|
19891
|
+
} });
|
|
19892
|
+
Object.defineProperty(exports2, "StoreCompression", { enumerable: true, get: function() {
|
|
19893
|
+
return jsapi_types_1.StoreCompression;
|
|
19894
|
+
} });
|
|
19895
|
+
var jslister_1 = require_jslister();
|
|
19896
|
+
Object.defineProperty(exports2, "ListerImpl", { enumerable: true, get: function() {
|
|
19897
|
+
return jslister_1.ListerImpl;
|
|
19898
|
+
} });
|
|
19899
|
+
var jserrors_1 = require_jserrors();
|
|
19900
|
+
Object.defineProperty(exports2, "isMessageNotFound", { enumerable: true, get: function() {
|
|
19901
|
+
return jserrors_1.isMessageNotFound;
|
|
19902
|
+
} });
|
|
19903
|
+
Object.defineProperty(exports2, "JetStreamApiCodes", { enumerable: true, get: function() {
|
|
19904
|
+
return jserrors_1.JetStreamApiCodes;
|
|
19905
|
+
} });
|
|
19906
|
+
Object.defineProperty(exports2, "JetStreamApiError", { enumerable: true, get: function() {
|
|
19907
|
+
return jserrors_1.JetStreamApiError;
|
|
19908
|
+
} });
|
|
19909
|
+
Object.defineProperty(exports2, "JetStreamError", { enumerable: true, get: function() {
|
|
19910
|
+
return jserrors_1.JetStreamError;
|
|
19911
|
+
} });
|
|
19912
|
+
Object.defineProperty(exports2, "JetStreamStatus", { enumerable: true, get: function() {
|
|
19913
|
+
return jserrors_1.JetStreamStatus;
|
|
19914
|
+
} });
|
|
19915
|
+
Object.defineProperty(exports2, "JetStreamStatusError", { enumerable: true, get: function() {
|
|
19916
|
+
return jserrors_1.JetStreamStatusError;
|
|
19917
|
+
} });
|
|
19918
|
+
Object.defineProperty(exports2, "jserrors", { enumerable: true, get: function() {
|
|
19919
|
+
return jserrors_1.jserrors;
|
|
19920
|
+
} });
|
|
19921
|
+
var jsutil_1 = require_jsutil();
|
|
19922
|
+
Object.defineProperty(exports2, "validateStreamName", { enumerable: true, get: function() {
|
|
19923
|
+
return jsutil_1.validateStreamName;
|
|
19924
|
+
} });
|
|
19925
|
+
}
|
|
19926
|
+
});
|
|
19927
|
+
|
|
19928
|
+
// ../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/mod.js
|
|
19929
|
+
var require_mod4 = __commonJS({
|
|
19930
|
+
"../../node_modules/.pnpm/@nats-io+jetstream@3.4.0/node_modules/@nats-io/jetstream/lib/mod.js"(exports2) {
|
|
19931
|
+
"use strict";
|
|
19932
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
19933
|
+
exports2.StoreCompression = exports2.StorageType = exports2.RetentionPolicy = exports2.RepublishHeaders = exports2.ReplayPolicy = exports2.PubHeaders = exports2.PersistMode = exports2.JsHeaders = exports2.JetStreamError = exports2.JetStreamApiError = exports2.JetStreamApiCodes = exports2.isPushConsumer = exports2.isPullConsumer = exports2.DiscardPolicy = exports2.DirectMsgHeaders = exports2.DeliverPolicy = exports2.AdvisoryKind = exports2.AckPolicy = exports2.jetstreamManager = exports2.jetstream = void 0;
|
|
19934
|
+
var internal_mod_1 = require_internal_mod2();
|
|
19935
|
+
Object.defineProperty(exports2, "jetstream", { enumerable: true, get: function() {
|
|
19936
|
+
return internal_mod_1.jetstream;
|
|
19937
|
+
} });
|
|
19938
|
+
Object.defineProperty(exports2, "jetstreamManager", { enumerable: true, get: function() {
|
|
19939
|
+
return internal_mod_1.jetstreamManager;
|
|
19940
|
+
} });
|
|
19941
|
+
var internal_mod_2 = require_internal_mod2();
|
|
19942
|
+
Object.defineProperty(exports2, "AckPolicy", { enumerable: true, get: function() {
|
|
19943
|
+
return internal_mod_2.AckPolicy;
|
|
19944
|
+
} });
|
|
19945
|
+
Object.defineProperty(exports2, "AdvisoryKind", { enumerable: true, get: function() {
|
|
19946
|
+
return internal_mod_2.AdvisoryKind;
|
|
19947
|
+
} });
|
|
19948
|
+
Object.defineProperty(exports2, "DeliverPolicy", { enumerable: true, get: function() {
|
|
19949
|
+
return internal_mod_2.DeliverPolicy;
|
|
19950
|
+
} });
|
|
19951
|
+
Object.defineProperty(exports2, "DirectMsgHeaders", { enumerable: true, get: function() {
|
|
19952
|
+
return internal_mod_2.DirectMsgHeaders;
|
|
19953
|
+
} });
|
|
19954
|
+
Object.defineProperty(exports2, "DiscardPolicy", { enumerable: true, get: function() {
|
|
19955
|
+
return internal_mod_2.DiscardPolicy;
|
|
19956
|
+
} });
|
|
19957
|
+
Object.defineProperty(exports2, "isPullConsumer", { enumerable: true, get: function() {
|
|
19958
|
+
return internal_mod_2.isPullConsumer;
|
|
19959
|
+
} });
|
|
19960
|
+
Object.defineProperty(exports2, "isPushConsumer", { enumerable: true, get: function() {
|
|
19961
|
+
return internal_mod_2.isPushConsumer;
|
|
19962
|
+
} });
|
|
19963
|
+
Object.defineProperty(exports2, "JetStreamApiCodes", { enumerable: true, get: function() {
|
|
19964
|
+
return internal_mod_2.JetStreamApiCodes;
|
|
19965
|
+
} });
|
|
19966
|
+
Object.defineProperty(exports2, "JetStreamApiError", { enumerable: true, get: function() {
|
|
19967
|
+
return internal_mod_2.JetStreamApiError;
|
|
19968
|
+
} });
|
|
19969
|
+
Object.defineProperty(exports2, "JetStreamError", { enumerable: true, get: function() {
|
|
19970
|
+
return internal_mod_2.JetStreamError;
|
|
19971
|
+
} });
|
|
19972
|
+
Object.defineProperty(exports2, "JsHeaders", { enumerable: true, get: function() {
|
|
19973
|
+
return internal_mod_2.JsHeaders;
|
|
19974
|
+
} });
|
|
19975
|
+
Object.defineProperty(exports2, "PersistMode", { enumerable: true, get: function() {
|
|
19976
|
+
return internal_mod_2.PersistMode;
|
|
19977
|
+
} });
|
|
19978
|
+
Object.defineProperty(exports2, "PubHeaders", { enumerable: true, get: function() {
|
|
19979
|
+
return internal_mod_2.PubHeaders;
|
|
19980
|
+
} });
|
|
19981
|
+
Object.defineProperty(exports2, "ReplayPolicy", { enumerable: true, get: function() {
|
|
19982
|
+
return internal_mod_2.ReplayPolicy;
|
|
19983
|
+
} });
|
|
19984
|
+
Object.defineProperty(exports2, "RepublishHeaders", { enumerable: true, get: function() {
|
|
19985
|
+
return internal_mod_2.RepublishHeaders;
|
|
19986
|
+
} });
|
|
19987
|
+
Object.defineProperty(exports2, "RetentionPolicy", { enumerable: true, get: function() {
|
|
19988
|
+
return internal_mod_2.RetentionPolicy;
|
|
19989
|
+
} });
|
|
19990
|
+
Object.defineProperty(exports2, "StorageType", { enumerable: true, get: function() {
|
|
19991
|
+
return internal_mod_2.StorageType;
|
|
19992
|
+
} });
|
|
19993
|
+
Object.defineProperty(exports2, "StoreCompression", { enumerable: true, get: function() {
|
|
19994
|
+
return internal_mod_2.StoreCompression;
|
|
19995
|
+
} });
|
|
19996
|
+
}
|
|
19997
|
+
});
|
|
19998
|
+
|
|
19999
|
+
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/nats-base-client.js
|
|
20000
|
+
var require_nats_base_client = __commonJS({
|
|
20001
|
+
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/nats-base-client.js"(exports2) {
|
|
20002
|
+
"use strict";
|
|
20003
|
+
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
20004
|
+
if (k2 === void 0) k2 = k;
|
|
20005
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20006
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20007
|
+
desc = { enumerable: true, get: function() {
|
|
20008
|
+
return m[k];
|
|
20009
|
+
} };
|
|
20010
|
+
}
|
|
20011
|
+
Object.defineProperty(o, k2, desc);
|
|
20012
|
+
}) : (function(o, m, k, k2) {
|
|
20013
|
+
if (k2 === void 0) k2 = k;
|
|
20014
|
+
o[k2] = m[k];
|
|
20015
|
+
}));
|
|
20016
|
+
var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
|
|
20017
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p);
|
|
20018
|
+
};
|
|
20019
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
20020
|
+
__exportStar(require_internal_mod(), exports2);
|
|
20021
|
+
}
|
|
20022
|
+
});
|
|
20023
|
+
|
|
20024
|
+
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/version.js
|
|
20025
|
+
var require_version3 = __commonJS({
|
|
20026
|
+
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/version.js"(exports2) {
|
|
20027
|
+
"use strict";
|
|
20028
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
20029
|
+
exports2.version = void 0;
|
|
20030
|
+
exports2.version = "3.4.0";
|
|
20031
|
+
}
|
|
20032
|
+
});
|
|
20033
|
+
|
|
20034
|
+
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/node_transport.js
|
|
20035
|
+
var require_node_transport = __commonJS({
|
|
20036
|
+
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/node_transport.js"(exports2) {
|
|
20037
|
+
"use strict";
|
|
20038
|
+
var __importDefault = exports2 && exports2.__importDefault || function(mod) {
|
|
20039
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
20040
|
+
};
|
|
20041
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
20042
|
+
exports2.NodeTransport = exports2.VERSION = void 0;
|
|
20043
|
+
exports2.nodeResolveHost = nodeResolveHost;
|
|
20044
|
+
var nats_base_client_1 = require_nats_base_client();
|
|
20045
|
+
var node_net_1 = require("node:net");
|
|
20046
|
+
var node_tls_1 = require("node:tls");
|
|
20047
|
+
var node_path_1 = require("node:path");
|
|
20048
|
+
var node_fs_1 = require("node:fs");
|
|
20049
|
+
var node_dns_1 = __importDefault(require("node:dns"));
|
|
20050
|
+
var version_1 = require_version3();
|
|
20051
|
+
exports2.VERSION = version_1.version;
|
|
20052
|
+
var LANG = "nats.js";
|
|
20053
|
+
var NodeTransport = class {
|
|
20054
|
+
socket;
|
|
20055
|
+
version;
|
|
20056
|
+
lang;
|
|
20057
|
+
yields = [];
|
|
20058
|
+
signal = (0, nats_base_client_1.deferred)();
|
|
20059
|
+
closedNotification = (0, nats_base_client_1.deferred)();
|
|
20060
|
+
options;
|
|
20061
|
+
connected = false;
|
|
20062
|
+
tlsName = "";
|
|
20063
|
+
done = false;
|
|
20064
|
+
closeError;
|
|
20065
|
+
constructor() {
|
|
20066
|
+
this.lang = LANG;
|
|
20067
|
+
this.version = exports2.VERSION;
|
|
20068
|
+
}
|
|
20069
|
+
async connect(hp, options) {
|
|
20070
|
+
this.tlsName = hp.tlsName;
|
|
20071
|
+
this.options = options;
|
|
20072
|
+
const { tls } = this.options;
|
|
20073
|
+
const { handshakeFirst } = tls || {};
|
|
20074
|
+
try {
|
|
20075
|
+
if (handshakeFirst === true) {
|
|
20076
|
+
this.socket = await this.tlsFirst(hp);
|
|
20077
|
+
} else {
|
|
20078
|
+
this.socket = await this.dial(hp);
|
|
20079
|
+
}
|
|
20080
|
+
if (this.done) {
|
|
20081
|
+
this.socket?.destroy();
|
|
20082
|
+
}
|
|
20083
|
+
const info = await this.peekInfo();
|
|
20084
|
+
(0, nats_base_client_1.checkOptions)(info, options);
|
|
20085
|
+
const { tls_required: tlsRequired, tls_available: tlsAvailable } = info;
|
|
20086
|
+
const desired = tlsAvailable === true && options.tls !== null;
|
|
20087
|
+
if (!handshakeFirst && (tlsRequired || desired)) {
|
|
20088
|
+
this.socket = await this.startTLS();
|
|
20089
|
+
}
|
|
20090
|
+
if (this.done) {
|
|
20091
|
+
this.socket?.destroy();
|
|
20092
|
+
}
|
|
20093
|
+
if (tlsRequired && this.socket.encrypted !== true) {
|
|
20094
|
+
throw nats_base_client_1.errors.InvalidArgumentError.format("tls", "is not available on this server");
|
|
20095
|
+
}
|
|
20096
|
+
this.connected = true;
|
|
20097
|
+
this.setupHandlers();
|
|
20098
|
+
this.signal.resolve();
|
|
20099
|
+
return Promise.resolve();
|
|
20100
|
+
} catch (ex) {
|
|
20101
|
+
let err2 = ex;
|
|
20102
|
+
if (!err2) {
|
|
20103
|
+
err2 = new nats_base_client_1.errors.ConnectionError("error connecting - node provided an undefined error");
|
|
20104
|
+
}
|
|
20105
|
+
const { code } = err2;
|
|
20106
|
+
const perr = code === "ECONNREFUSED" ? new nats_base_client_1.errors.ConnectionError("connection refused", { cause: err2 }) : err2;
|
|
20107
|
+
this.socket?.destroy();
|
|
20108
|
+
throw perr;
|
|
20109
|
+
}
|
|
20110
|
+
}
|
|
20111
|
+
dial(hp) {
|
|
20112
|
+
const d = (0, nats_base_client_1.deferred)();
|
|
20113
|
+
let dialError;
|
|
20114
|
+
const socket = (0, node_net_1.createConnection)(hp.port, hp.hostname, () => {
|
|
20115
|
+
d.resolve(socket);
|
|
20116
|
+
socket.removeAllListeners();
|
|
20117
|
+
});
|
|
20118
|
+
socket.on("error", (err2) => {
|
|
20119
|
+
dialError = err2;
|
|
20120
|
+
});
|
|
20121
|
+
socket.on("close", () => {
|
|
20122
|
+
socket.removeAllListeners();
|
|
20123
|
+
d.reject(dialError);
|
|
20124
|
+
});
|
|
20125
|
+
socket.setNoDelay(true);
|
|
20126
|
+
return d;
|
|
20127
|
+
}
|
|
20128
|
+
get isClosed() {
|
|
20129
|
+
return this.done;
|
|
20130
|
+
}
|
|
20131
|
+
close(err2) {
|
|
20132
|
+
return this._closed(err2, false);
|
|
20133
|
+
}
|
|
20134
|
+
peekInfo() {
|
|
20135
|
+
const d = (0, nats_base_client_1.deferred)();
|
|
20136
|
+
let peekError;
|
|
20137
|
+
this.socket.on("data", (frame) => {
|
|
20138
|
+
this.yields.push(frame);
|
|
20139
|
+
const t = nats_base_client_1.DataBuffer.concat(...this.yields);
|
|
20140
|
+
const pm = (0, nats_base_client_1.extractProtocolMessage)(t);
|
|
20141
|
+
if (pm !== "") {
|
|
20142
|
+
try {
|
|
20143
|
+
const m = nats_base_client_1.INFO.exec(pm);
|
|
20144
|
+
if (!m) {
|
|
20145
|
+
throw new Error("unexpected response from server");
|
|
20146
|
+
}
|
|
20147
|
+
const info = JSON.parse(m[1]);
|
|
20148
|
+
d.resolve(info);
|
|
20149
|
+
} catch (err2) {
|
|
20150
|
+
d.reject(err2);
|
|
20151
|
+
} finally {
|
|
20152
|
+
this.socket.removeAllListeners();
|
|
20153
|
+
}
|
|
20154
|
+
}
|
|
20155
|
+
});
|
|
20156
|
+
this.socket.on("error", (err2) => {
|
|
20157
|
+
peekError = err2;
|
|
20158
|
+
});
|
|
20159
|
+
this.socket.on("close", () => {
|
|
20160
|
+
this.socket.removeAllListeners();
|
|
20161
|
+
d.reject(peekError);
|
|
20162
|
+
});
|
|
20163
|
+
return d;
|
|
20164
|
+
}
|
|
20165
|
+
loadFile(fn) {
|
|
20166
|
+
if (!fn) {
|
|
20167
|
+
return Promise.resolve();
|
|
20168
|
+
}
|
|
20169
|
+
const d = (0, nats_base_client_1.deferred)();
|
|
20170
|
+
try {
|
|
20171
|
+
fn = (0, node_path_1.resolve)(fn);
|
|
20172
|
+
if (!(0, node_fs_1.existsSync)(fn)) {
|
|
20173
|
+
d.reject(new Error(`${fn} doesn't exist`));
|
|
20174
|
+
}
|
|
20175
|
+
(0, node_fs_1.readFile)(fn, (err2, data) => {
|
|
20176
|
+
if (err2) {
|
|
20177
|
+
return d.reject(err2);
|
|
20178
|
+
}
|
|
20179
|
+
d.resolve(data);
|
|
20180
|
+
});
|
|
20181
|
+
} catch (err2) {
|
|
20182
|
+
d.reject(err2);
|
|
20183
|
+
}
|
|
20184
|
+
return d;
|
|
20185
|
+
}
|
|
20186
|
+
async loadClientCerts() {
|
|
20187
|
+
const tlsOpts = {};
|
|
20188
|
+
const { certFile, cert, caFile, ca, keyFile, key } = this.options.tls;
|
|
20189
|
+
try {
|
|
20190
|
+
if (certFile) {
|
|
20191
|
+
const data = await this.loadFile(certFile);
|
|
20192
|
+
if (data) {
|
|
20193
|
+
tlsOpts.cert = data;
|
|
20194
|
+
}
|
|
20195
|
+
} else if (cert) {
|
|
20196
|
+
tlsOpts.cert = cert;
|
|
20197
|
+
}
|
|
20198
|
+
if (keyFile) {
|
|
20199
|
+
const data = await this.loadFile(keyFile);
|
|
20200
|
+
if (data) {
|
|
20201
|
+
tlsOpts.key = data;
|
|
20202
|
+
}
|
|
20203
|
+
} else if (key) {
|
|
20204
|
+
tlsOpts.key = key;
|
|
20205
|
+
}
|
|
20206
|
+
if (caFile) {
|
|
20207
|
+
const data = await this.loadFile(caFile);
|
|
20208
|
+
if (data) {
|
|
20209
|
+
tlsOpts.ca = [data];
|
|
20210
|
+
}
|
|
20211
|
+
} else if (ca) {
|
|
20212
|
+
tlsOpts.ca = ca;
|
|
20213
|
+
}
|
|
20214
|
+
return Promise.resolve(tlsOpts);
|
|
20215
|
+
} catch (err2) {
|
|
20216
|
+
return Promise.reject(err2);
|
|
20217
|
+
}
|
|
20218
|
+
}
|
|
20219
|
+
async tlsFirst(hp) {
|
|
20220
|
+
let tlsError;
|
|
20221
|
+
let tlsOpts = {
|
|
20222
|
+
servername: this.tlsName,
|
|
20223
|
+
rejectUnauthorized: true
|
|
20224
|
+
};
|
|
20225
|
+
if (this.socket) {
|
|
20226
|
+
tlsOpts.socket = this.socket;
|
|
20227
|
+
}
|
|
20228
|
+
if (typeof this.options.tls === "object") {
|
|
20229
|
+
try {
|
|
20230
|
+
const certOpts = await this.loadClientCerts() || {};
|
|
20231
|
+
tlsOpts = (0, nats_base_client_1.extend)(tlsOpts, this.options.tls, certOpts);
|
|
20232
|
+
} catch (err2) {
|
|
20233
|
+
return Promise.reject(new nats_base_client_1.errors.ConnectionError(err2.message, { cause: err2 }));
|
|
20234
|
+
}
|
|
20235
|
+
}
|
|
20236
|
+
const d = (0, nats_base_client_1.deferred)();
|
|
20237
|
+
try {
|
|
20238
|
+
const tlsSocket = (0, node_tls_1.connect)(hp.port, hp.hostname, tlsOpts, () => {
|
|
20239
|
+
tlsSocket.removeAllListeners();
|
|
20240
|
+
d.resolve(tlsSocket);
|
|
20241
|
+
});
|
|
20242
|
+
tlsSocket.on("error", (err2) => {
|
|
20243
|
+
tlsError = err2;
|
|
20244
|
+
});
|
|
20245
|
+
tlsSocket.on("secureConnect", () => {
|
|
20246
|
+
if (tlsOpts.rejectUnauthorized === false) {
|
|
20247
|
+
return;
|
|
20248
|
+
}
|
|
20249
|
+
if (!tlsSocket.authorized) {
|
|
20250
|
+
throw tlsSocket.authorizationError;
|
|
20251
|
+
}
|
|
20252
|
+
});
|
|
20253
|
+
tlsSocket.on("close", () => {
|
|
20254
|
+
d.reject(tlsError);
|
|
20255
|
+
tlsSocket.removeAllListeners();
|
|
20256
|
+
});
|
|
20257
|
+
tlsSocket.setNoDelay(true);
|
|
20258
|
+
} catch (err2) {
|
|
20259
|
+
d.reject(new nats_base_client_1.errors.ConnectionError(err2.message, { cause: err2 }));
|
|
20260
|
+
}
|
|
20261
|
+
return d;
|
|
20262
|
+
}
|
|
20263
|
+
async startTLS() {
|
|
20264
|
+
let tlsError;
|
|
20265
|
+
let tlsOpts = {
|
|
20266
|
+
socket: this.socket,
|
|
20267
|
+
servername: this.tlsName,
|
|
20268
|
+
rejectUnauthorized: true
|
|
20269
|
+
};
|
|
20270
|
+
if (typeof this.options.tls === "object") {
|
|
20271
|
+
try {
|
|
20272
|
+
const certOpts = await this.loadClientCerts() || {};
|
|
20273
|
+
tlsOpts = (0, nats_base_client_1.extend)(tlsOpts, this.options.tls, certOpts);
|
|
20274
|
+
} catch (err2) {
|
|
20275
|
+
return Promise.reject(new nats_base_client_1.errors.ConnectionError(err2.message, {
|
|
20276
|
+
cause: err2
|
|
20277
|
+
}));
|
|
20278
|
+
}
|
|
20279
|
+
}
|
|
20280
|
+
const d = (0, nats_base_client_1.deferred)();
|
|
20281
|
+
try {
|
|
20282
|
+
const tlsSocket = (0, node_tls_1.connect)(tlsOpts, () => {
|
|
20283
|
+
tlsSocket.removeAllListeners();
|
|
20284
|
+
d.resolve(tlsSocket);
|
|
20285
|
+
});
|
|
20286
|
+
tlsSocket.on("error", (err2) => {
|
|
20287
|
+
tlsError = err2;
|
|
20288
|
+
});
|
|
20289
|
+
tlsSocket.on("secureConnect", () => {
|
|
20290
|
+
if (tlsOpts.rejectUnauthorized === false) {
|
|
20291
|
+
return;
|
|
20292
|
+
}
|
|
20293
|
+
if (!tlsSocket.authorized) {
|
|
20294
|
+
throw tlsSocket.authorizationError;
|
|
20295
|
+
}
|
|
20296
|
+
});
|
|
20297
|
+
tlsSocket.on("close", () => {
|
|
20298
|
+
d.reject(tlsError);
|
|
20299
|
+
tlsSocket.removeAllListeners();
|
|
20300
|
+
});
|
|
20301
|
+
} catch (err2) {
|
|
20302
|
+
d.reject(new nats_base_client_1.errors.ConnectionError(err2.message, { cause: err2 }));
|
|
20303
|
+
}
|
|
20304
|
+
return d;
|
|
20305
|
+
}
|
|
20306
|
+
setupHandlers() {
|
|
20307
|
+
let connError;
|
|
20308
|
+
this.socket.on("data", (frame) => {
|
|
20309
|
+
this.yields.push(frame);
|
|
20310
|
+
return this.signal.resolve();
|
|
20311
|
+
});
|
|
20312
|
+
this.socket.on("error", (err2) => {
|
|
20313
|
+
connError = err2;
|
|
20314
|
+
});
|
|
20315
|
+
this.socket.on("end", () => {
|
|
20316
|
+
if (this.socket?.destroyed) {
|
|
20317
|
+
return;
|
|
20318
|
+
}
|
|
20319
|
+
this.socket?.write(new Uint8Array(0), () => {
|
|
20320
|
+
this.socket?.end();
|
|
20321
|
+
});
|
|
20322
|
+
});
|
|
20323
|
+
this.socket.on("close", () => {
|
|
20324
|
+
this._closed(connError, false);
|
|
20325
|
+
});
|
|
20326
|
+
}
|
|
20327
|
+
[Symbol.asyncIterator]() {
|
|
20328
|
+
return this.iterate();
|
|
20329
|
+
}
|
|
20330
|
+
async *iterate() {
|
|
20331
|
+
while (true) {
|
|
20332
|
+
if (this.yields.length === 0) {
|
|
20333
|
+
await this.signal;
|
|
20215
20334
|
}
|
|
20216
|
-
|
|
20217
|
-
|
|
20218
|
-
|
|
20219
|
-
|
|
20220
|
-
|
|
20335
|
+
const yields = this.yields;
|
|
20336
|
+
this.yields = [];
|
|
20337
|
+
for (let i = 0; i < yields.length; i++) {
|
|
20338
|
+
if (this.options.debug) {
|
|
20339
|
+
console.info(`> ${(0, nats_base_client_1.render)(yields[i])}`);
|
|
20221
20340
|
}
|
|
20341
|
+
yield yields[i];
|
|
20222
20342
|
}
|
|
20223
|
-
this.
|
|
20224
|
-
|
|
20225
|
-
this.
|
|
20226
|
-
|
|
20227
|
-
|
|
20228
|
-
|
|
20229
|
-
return;
|
|
20230
|
-
}
|
|
20231
|
-
const typed = data;
|
|
20232
|
-
if (typed.type === "gap") {
|
|
20233
|
-
if (this.gapIter) {
|
|
20234
|
-
const g = data;
|
|
20235
|
-
this.gapIter.push({ lastSeq: g.last_seq, seq: g.seq });
|
|
20343
|
+
if (this.done) {
|
|
20344
|
+
break;
|
|
20345
|
+
} else if (this.yields.length === 0) {
|
|
20346
|
+
yields.length = 0;
|
|
20347
|
+
this.yields = yields;
|
|
20348
|
+
this.signal = (0, nats_base_client_1.deferred)();
|
|
20236
20349
|
}
|
|
20237
|
-
return;
|
|
20238
|
-
}
|
|
20239
|
-
const fa = data;
|
|
20240
|
-
if (typeof fa.msgs === "number")
|
|
20241
|
-
this.ackInterval = fa.msgs;
|
|
20242
|
-
if (typeof fa.seq === "number" && fa.seq > this.acked) {
|
|
20243
|
-
this.acked = fa.seq;
|
|
20244
|
-
}
|
|
20245
|
-
this.resolveStart();
|
|
20246
|
-
const exact = this.pending.get(m.subject);
|
|
20247
|
-
if (exact && (exact.op === FastIngestOp.Append || exact.op === FastIngestOp.Ping)) {
|
|
20248
|
-
exact.deferred.resolve({ batchSeq: exact.seq, ackSeq: this.acked });
|
|
20249
|
-
this.pending.delete(m.subject);
|
|
20250
20350
|
}
|
|
20251
|
-
|
|
20252
|
-
|
|
20253
|
-
|
|
20254
|
-
|
|
20351
|
+
}
|
|
20352
|
+
discard() {
|
|
20353
|
+
this.done = true;
|
|
20354
|
+
if (this.socket) {
|
|
20355
|
+
try {
|
|
20356
|
+
this.socket.removeAllListeners();
|
|
20357
|
+
this.socket.destroy();
|
|
20358
|
+
} catch {
|
|
20255
20359
|
}
|
|
20256
20360
|
}
|
|
20257
20361
|
}
|
|
20258
|
-
|
|
20259
|
-
this.
|
|
20362
|
+
disconnect() {
|
|
20363
|
+
this._closed(void 0, true).then().catch();
|
|
20260
20364
|
}
|
|
20261
|
-
|
|
20262
|
-
this.
|
|
20263
|
-
this.closeErr = err2;
|
|
20264
|
-
for (const [, e] of this.pending)
|
|
20265
|
-
e.deferred.reject(err2);
|
|
20266
|
-
this.pending.clear();
|
|
20267
|
-
this.startDeferred.reject(err2);
|
|
20268
|
-
this.closedDeferred.reject(err2);
|
|
20269
|
-
this.gapIter?.stop();
|
|
20270
|
-
this.sub.unsubscribe();
|
|
20365
|
+
isEncrypted() {
|
|
20366
|
+
return this.socket instanceof node_tls_1.TLSSocket;
|
|
20271
20367
|
}
|
|
20272
|
-
|
|
20273
|
-
if (this.
|
|
20274
|
-
return Promise.
|
|
20275
|
-
const mySeq = ++this.seq;
|
|
20276
|
-
const rs = this.replyFor(FastIngestOp.Append, mySeq);
|
|
20277
|
-
const headers = opts ? buildPublishHeaders(opts) : void 0;
|
|
20278
|
-
this.nc.publish(subj, payload, { reply: rs, headers });
|
|
20279
|
-
if (mySeq - this.acked < this.ackInterval * this.maxOutstandingAcks) {
|
|
20280
|
-
return Promise.resolve({ batchSeq: mySeq, ackSeq: this.acked });
|
|
20368
|
+
_send(frame) {
|
|
20369
|
+
if (this.isClosed || this.socket === void 0) {
|
|
20370
|
+
return Promise.resolve();
|
|
20281
20371
|
}
|
|
20282
|
-
|
|
20283
|
-
|
|
20284
|
-
return this.deadlineOrClose(d, opts?.timeout ?? this.defaultTimeout);
|
|
20285
|
-
}
|
|
20286
|
-
last(subj, payload, opts) {
|
|
20287
|
-
if (this.closed)
|
|
20288
|
-
return Promise.reject(new Error(BATCH_CLOSED));
|
|
20289
|
-
const mySeq = ++this.seq;
|
|
20290
|
-
const rs = this.replyFor(FastIngestOp.Final, mySeq);
|
|
20291
|
-
const d = (0, internal_1.deferred)();
|
|
20292
|
-
this.pending.set(rs, { seq: mySeq, op: FastIngestOp.Final, deferred: d });
|
|
20293
|
-
const headers = opts ? buildPublishHeaders(opts) : void 0;
|
|
20294
|
-
this.nc.publish(subj, payload, { reply: rs, headers });
|
|
20295
|
-
return this.deadlineOrClose(d, opts?.timeout ?? this.defaultTimeout);
|
|
20296
|
-
}
|
|
20297
|
-
end(opts) {
|
|
20298
|
-
if (this.closed)
|
|
20299
|
-
return Promise.reject(new Error(BATCH_CLOSED));
|
|
20300
|
-
const mySeq = ++this.seq;
|
|
20301
|
-
const rs = this.replyFor(FastIngestOp.EOB, mySeq);
|
|
20302
|
-
const d = (0, internal_1.deferred)();
|
|
20303
|
-
this.pending.set(rs, { seq: mySeq, op: FastIngestOp.EOB, deferred: d });
|
|
20304
|
-
const headers = opts ? buildPublishHeaders(opts) : void 0;
|
|
20305
|
-
this.nc.publish(this.batchSubj, internal_1.Empty, { reply: rs, headers });
|
|
20306
|
-
return this.deadlineOrClose(d, opts?.timeout ?? this.defaultTimeout);
|
|
20307
|
-
}
|
|
20308
|
-
ping(timeout = this.defaultTimeout) {
|
|
20309
|
-
if (this.closed)
|
|
20310
|
-
return Promise.reject(new Error(BATCH_CLOSED));
|
|
20311
|
-
const rs = this.replyFor(FastIngestOp.Ping, this.seq);
|
|
20312
|
-
const existing = this.pending.get(rs);
|
|
20313
|
-
if (existing && existing.op === FastIngestOp.Ping) {
|
|
20314
|
-
return (0, internal_1.deadline)(existing.deferred, timeout);
|
|
20372
|
+
if (this.options.debug) {
|
|
20373
|
+
console.info(`< ${(0, nats_base_client_1.render)(frame)}`);
|
|
20315
20374
|
}
|
|
20316
|
-
const d = (0,
|
|
20317
|
-
|
|
20318
|
-
|
|
20319
|
-
|
|
20375
|
+
const d = (0, nats_base_client_1.deferred)();
|
|
20376
|
+
try {
|
|
20377
|
+
this.socket.write(frame, (err2) => {
|
|
20378
|
+
if (err2) {
|
|
20379
|
+
if (this.options.debug) {
|
|
20380
|
+
console.error(`!!! ${(0, nats_base_client_1.render)(frame)}: ${err2}`);
|
|
20381
|
+
}
|
|
20382
|
+
return d.reject(err2);
|
|
20383
|
+
}
|
|
20384
|
+
return d.resolve();
|
|
20385
|
+
});
|
|
20386
|
+
} catch (err2) {
|
|
20387
|
+
if (this.options.debug) {
|
|
20388
|
+
console.error(`!!! ${(0, nats_base_client_1.render)(frame)}: ${err2}`);
|
|
20389
|
+
}
|
|
20390
|
+
d.reject(err2);
|
|
20391
|
+
}
|
|
20392
|
+
return d;
|
|
20320
20393
|
}
|
|
20321
|
-
|
|
20322
|
-
|
|
20394
|
+
send(frame) {
|
|
20395
|
+
const p = this._send(frame);
|
|
20396
|
+
p.catch((_err) => {
|
|
20397
|
+
});
|
|
20323
20398
|
}
|
|
20324
|
-
|
|
20325
|
-
if (!this.
|
|
20326
|
-
|
|
20399
|
+
async _closed(err2, internal = true) {
|
|
20400
|
+
if (!this.connected)
|
|
20401
|
+
return;
|
|
20402
|
+
if (this.done) {
|
|
20403
|
+
this.socket?.destroy();
|
|
20404
|
+
return;
|
|
20327
20405
|
}
|
|
20328
|
-
|
|
20406
|
+
this.closeError = err2;
|
|
20407
|
+
if (!err2 && this.socket && internal) {
|
|
20408
|
+
try {
|
|
20409
|
+
await this._send(new TextEncoder().encode(""));
|
|
20410
|
+
} catch (err3) {
|
|
20411
|
+
if (this.options.debug) {
|
|
20412
|
+
console.log("transport close terminated with an error", err3);
|
|
20413
|
+
}
|
|
20414
|
+
}
|
|
20415
|
+
}
|
|
20416
|
+
try {
|
|
20417
|
+
if (this.socket) {
|
|
20418
|
+
this.socket.removeAllListeners();
|
|
20419
|
+
this.socket?.destroy();
|
|
20420
|
+
this.socket = void 0;
|
|
20421
|
+
}
|
|
20422
|
+
} catch (err3) {
|
|
20423
|
+
console.log(err3);
|
|
20424
|
+
}
|
|
20425
|
+
this.done = true;
|
|
20426
|
+
this.closedNotification.resolve(this.closeError);
|
|
20427
|
+
}
|
|
20428
|
+
closed() {
|
|
20429
|
+
return this.closedNotification;
|
|
20329
20430
|
}
|
|
20330
20431
|
};
|
|
20432
|
+
exports2.NodeTransport = NodeTransport;
|
|
20433
|
+
function nodeResolveHost(s) {
|
|
20434
|
+
const ips = (0, nats_base_client_1.deferred)();
|
|
20435
|
+
node_dns_1.default.lookup(
|
|
20436
|
+
s,
|
|
20437
|
+
{ all: true },
|
|
20438
|
+
//@ts-ignore: callback changes shape when all is true
|
|
20439
|
+
(err2, address) => {
|
|
20440
|
+
if (err2) {
|
|
20441
|
+
ips.reject(err2);
|
|
20442
|
+
return;
|
|
20443
|
+
}
|
|
20444
|
+
const buf = [];
|
|
20445
|
+
for (const r of address) {
|
|
20446
|
+
buf.push(r.address);
|
|
20447
|
+
}
|
|
20448
|
+
if (buf.length === 0) {
|
|
20449
|
+
buf.push(s);
|
|
20450
|
+
}
|
|
20451
|
+
ips.resolve(buf);
|
|
20452
|
+
}
|
|
20453
|
+
);
|
|
20454
|
+
return ips;
|
|
20455
|
+
}
|
|
20331
20456
|
}
|
|
20332
20457
|
});
|
|
20333
20458
|
|
|
20334
|
-
// ../../node_modules/.pnpm/@nats-io+
|
|
20335
|
-
var
|
|
20336
|
-
"../../node_modules/.pnpm/@nats-io+
|
|
20459
|
+
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/connect.js
|
|
20460
|
+
var require_connect = __commonJS({
|
|
20461
|
+
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/connect.js"(exports2) {
|
|
20337
20462
|
"use strict";
|
|
20338
20463
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
20339
|
-
exports2.
|
|
20340
|
-
var
|
|
20341
|
-
|
|
20342
|
-
|
|
20343
|
-
|
|
20344
|
-
|
|
20345
|
-
|
|
20346
|
-
|
|
20347
|
-
|
|
20348
|
-
|
|
20349
|
-
|
|
20350
|
-
|
|
20351
|
-
|
|
20352
|
-
|
|
20353
|
-
|
|
20354
|
-
|
|
20355
|
-
} });
|
|
20356
|
-
Object.defineProperty(exports2, "isPushConsumer", { enumerable: true, get: function() {
|
|
20357
|
-
return types_1.isPushConsumer;
|
|
20358
|
-
} });
|
|
20359
|
-
Object.defineProperty(exports2, "JsHeaders", { enumerable: true, get: function() {
|
|
20360
|
-
return types_1.JsHeaders;
|
|
20361
|
-
} });
|
|
20362
|
-
Object.defineProperty(exports2, "RepublishHeaders", { enumerable: true, get: function() {
|
|
20363
|
-
return types_1.RepublishHeaders;
|
|
20364
|
-
} });
|
|
20365
|
-
var jsclient_1 = require_jsclient();
|
|
20366
|
-
Object.defineProperty(exports2, "jetstream", { enumerable: true, get: function() {
|
|
20367
|
-
return jsclient_1.jetstream;
|
|
20368
|
-
} });
|
|
20369
|
-
Object.defineProperty(exports2, "JetStreamClientImpl", { enumerable: true, get: function() {
|
|
20370
|
-
return jsclient_1.JetStreamClientImpl;
|
|
20371
|
-
} });
|
|
20372
|
-
Object.defineProperty(exports2, "jetstreamManager", { enumerable: true, get: function() {
|
|
20373
|
-
return jsclient_1.jetstreamManager;
|
|
20374
|
-
} });
|
|
20375
|
-
Object.defineProperty(exports2, "startFastIngest", { enumerable: true, get: function() {
|
|
20376
|
-
return jsclient_1.startFastIngest;
|
|
20377
|
-
} });
|
|
20378
|
-
Object.defineProperty(exports2, "toJetStreamClient", { enumerable: true, get: function() {
|
|
20379
|
-
return jsclient_1.toJetStreamClient;
|
|
20380
|
-
} });
|
|
20381
|
-
var jsbaseclient_api_1 = require_jsbaseclient_api();
|
|
20382
|
-
Object.defineProperty(exports2, "BaseApiClientImpl", { enumerable: true, get: function() {
|
|
20383
|
-
return jsbaseclient_api_1.BaseApiClientImpl;
|
|
20384
|
-
} });
|
|
20385
|
-
var jsm_direct_1 = require_jsm_direct();
|
|
20386
|
-
Object.defineProperty(exports2, "DirectMsgImpl", { enumerable: true, get: function() {
|
|
20387
|
-
return jsm_direct_1.DirectMsgImpl;
|
|
20388
|
-
} });
|
|
20389
|
-
var jsapi_types_1 = require_jsapi_types();
|
|
20390
|
-
Object.defineProperty(exports2, "AckPolicy", { enumerable: true, get: function() {
|
|
20391
|
-
return jsapi_types_1.AckPolicy;
|
|
20392
|
-
} });
|
|
20393
|
-
Object.defineProperty(exports2, "DeliverPolicy", { enumerable: true, get: function() {
|
|
20394
|
-
return jsapi_types_1.DeliverPolicy;
|
|
20395
|
-
} });
|
|
20396
|
-
Object.defineProperty(exports2, "DiscardPolicy", { enumerable: true, get: function() {
|
|
20397
|
-
return jsapi_types_1.DiscardPolicy;
|
|
20398
|
-
} });
|
|
20399
|
-
Object.defineProperty(exports2, "PersistMode", { enumerable: true, get: function() {
|
|
20400
|
-
return jsapi_types_1.PersistMode;
|
|
20401
|
-
} });
|
|
20402
|
-
Object.defineProperty(exports2, "PubHeaders", { enumerable: true, get: function() {
|
|
20403
|
-
return jsapi_types_1.PubHeaders;
|
|
20404
|
-
} });
|
|
20405
|
-
Object.defineProperty(exports2, "ReplayPolicy", { enumerable: true, get: function() {
|
|
20406
|
-
return jsapi_types_1.ReplayPolicy;
|
|
20407
|
-
} });
|
|
20408
|
-
Object.defineProperty(exports2, "RetentionPolicy", { enumerable: true, get: function() {
|
|
20409
|
-
return jsapi_types_1.RetentionPolicy;
|
|
20410
|
-
} });
|
|
20411
|
-
Object.defineProperty(exports2, "StorageType", { enumerable: true, get: function() {
|
|
20412
|
-
return jsapi_types_1.StorageType;
|
|
20413
|
-
} });
|
|
20414
|
-
Object.defineProperty(exports2, "StoreCompression", { enumerable: true, get: function() {
|
|
20415
|
-
return jsapi_types_1.StoreCompression;
|
|
20416
|
-
} });
|
|
20417
|
-
var jslister_1 = require_jslister();
|
|
20418
|
-
Object.defineProperty(exports2, "ListerImpl", { enumerable: true, get: function() {
|
|
20419
|
-
return jslister_1.ListerImpl;
|
|
20420
|
-
} });
|
|
20421
|
-
var jserrors_1 = require_jserrors();
|
|
20422
|
-
Object.defineProperty(exports2, "isMessageNotFound", { enumerable: true, get: function() {
|
|
20423
|
-
return jserrors_1.isMessageNotFound;
|
|
20424
|
-
} });
|
|
20425
|
-
Object.defineProperty(exports2, "JetStreamApiCodes", { enumerable: true, get: function() {
|
|
20426
|
-
return jserrors_1.JetStreamApiCodes;
|
|
20427
|
-
} });
|
|
20428
|
-
Object.defineProperty(exports2, "JetStreamApiError", { enumerable: true, get: function() {
|
|
20429
|
-
return jserrors_1.JetStreamApiError;
|
|
20430
|
-
} });
|
|
20431
|
-
Object.defineProperty(exports2, "JetStreamError", { enumerable: true, get: function() {
|
|
20432
|
-
return jserrors_1.JetStreamError;
|
|
20433
|
-
} });
|
|
20434
|
-
Object.defineProperty(exports2, "JetStreamStatus", { enumerable: true, get: function() {
|
|
20435
|
-
return jserrors_1.JetStreamStatus;
|
|
20436
|
-
} });
|
|
20437
|
-
Object.defineProperty(exports2, "JetStreamStatusError", { enumerable: true, get: function() {
|
|
20438
|
-
return jserrors_1.JetStreamStatusError;
|
|
20439
|
-
} });
|
|
20440
|
-
Object.defineProperty(exports2, "jserrors", { enumerable: true, get: function() {
|
|
20441
|
-
return jserrors_1.jserrors;
|
|
20442
|
-
} });
|
|
20443
|
-
var jsutil_1 = require_jsutil();
|
|
20444
|
-
Object.defineProperty(exports2, "validateStreamName", { enumerable: true, get: function() {
|
|
20445
|
-
return jsutil_1.validateStreamName;
|
|
20446
|
-
} });
|
|
20464
|
+
exports2.connect = connect7;
|
|
20465
|
+
var node_transport_1 = require_node_transport();
|
|
20466
|
+
var nats_base_client_1 = require_nats_base_client();
|
|
20467
|
+
var nats_base_client_2 = require_nats_base_client();
|
|
20468
|
+
function connect7(opts = {}) {
|
|
20469
|
+
if ((0, nats_base_client_2.hasWsProtocol)(opts)) {
|
|
20470
|
+
return Promise.reject(nats_base_client_2.errors.InvalidArgumentError.format(`servers`, `node client doesn't support websockets, use the 'wsconnect' function instead`));
|
|
20471
|
+
}
|
|
20472
|
+
(0, nats_base_client_1.setTransportFactory)({
|
|
20473
|
+
factory: () => {
|
|
20474
|
+
return new node_transport_1.NodeTransport();
|
|
20475
|
+
},
|
|
20476
|
+
dnsResolveFn: node_transport_1.nodeResolveHost
|
|
20477
|
+
});
|
|
20478
|
+
return nats_base_client_1.NatsConnectionImpl.connect(opts);
|
|
20479
|
+
}
|
|
20447
20480
|
}
|
|
20448
20481
|
});
|
|
20449
20482
|
|
|
20450
|
-
// ../../node_modules/.pnpm/@nats-io+
|
|
20483
|
+
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/mod.js
|
|
20451
20484
|
var require_mod5 = __commonJS({
|
|
20452
|
-
"../../node_modules/.pnpm/@nats-io+
|
|
20485
|
+
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/lib/mod.js"(exports2) {
|
|
20453
20486
|
"use strict";
|
|
20487
|
+
var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
20488
|
+
if (k2 === void 0) k2 = k;
|
|
20489
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20490
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20491
|
+
desc = { enumerable: true, get: function() {
|
|
20492
|
+
return m[k];
|
|
20493
|
+
} };
|
|
20494
|
+
}
|
|
20495
|
+
Object.defineProperty(o, k2, desc);
|
|
20496
|
+
}) : (function(o, m, k, k2) {
|
|
20497
|
+
if (k2 === void 0) k2 = k;
|
|
20498
|
+
o[k2] = m[k];
|
|
20499
|
+
}));
|
|
20500
|
+
var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
|
|
20501
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p);
|
|
20502
|
+
};
|
|
20454
20503
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
20455
|
-
exports2.
|
|
20456
|
-
var
|
|
20457
|
-
Object.defineProperty(exports2, "
|
|
20458
|
-
return
|
|
20459
|
-
} });
|
|
20460
|
-
Object.defineProperty(exports2, "jetstreamManager", { enumerable: true, get: function() {
|
|
20461
|
-
return internal_mod_1.jetstreamManager;
|
|
20462
|
-
} });
|
|
20463
|
-
var internal_mod_2 = require_internal_mod2();
|
|
20464
|
-
Object.defineProperty(exports2, "AckPolicy", { enumerable: true, get: function() {
|
|
20465
|
-
return internal_mod_2.AckPolicy;
|
|
20466
|
-
} });
|
|
20467
|
-
Object.defineProperty(exports2, "AdvisoryKind", { enumerable: true, get: function() {
|
|
20468
|
-
return internal_mod_2.AdvisoryKind;
|
|
20469
|
-
} });
|
|
20470
|
-
Object.defineProperty(exports2, "DeliverPolicy", { enumerable: true, get: function() {
|
|
20471
|
-
return internal_mod_2.DeliverPolicy;
|
|
20472
|
-
} });
|
|
20473
|
-
Object.defineProperty(exports2, "DirectMsgHeaders", { enumerable: true, get: function() {
|
|
20474
|
-
return internal_mod_2.DirectMsgHeaders;
|
|
20475
|
-
} });
|
|
20476
|
-
Object.defineProperty(exports2, "DiscardPolicy", { enumerable: true, get: function() {
|
|
20477
|
-
return internal_mod_2.DiscardPolicy;
|
|
20478
|
-
} });
|
|
20479
|
-
Object.defineProperty(exports2, "isPullConsumer", { enumerable: true, get: function() {
|
|
20480
|
-
return internal_mod_2.isPullConsumer;
|
|
20481
|
-
} });
|
|
20482
|
-
Object.defineProperty(exports2, "isPushConsumer", { enumerable: true, get: function() {
|
|
20483
|
-
return internal_mod_2.isPushConsumer;
|
|
20484
|
-
} });
|
|
20485
|
-
Object.defineProperty(exports2, "JetStreamApiCodes", { enumerable: true, get: function() {
|
|
20486
|
-
return internal_mod_2.JetStreamApiCodes;
|
|
20487
|
-
} });
|
|
20488
|
-
Object.defineProperty(exports2, "JetStreamApiError", { enumerable: true, get: function() {
|
|
20489
|
-
return internal_mod_2.JetStreamApiError;
|
|
20490
|
-
} });
|
|
20491
|
-
Object.defineProperty(exports2, "JetStreamError", { enumerable: true, get: function() {
|
|
20492
|
-
return internal_mod_2.JetStreamError;
|
|
20493
|
-
} });
|
|
20494
|
-
Object.defineProperty(exports2, "JsHeaders", { enumerable: true, get: function() {
|
|
20495
|
-
return internal_mod_2.JsHeaders;
|
|
20496
|
-
} });
|
|
20497
|
-
Object.defineProperty(exports2, "PersistMode", { enumerable: true, get: function() {
|
|
20498
|
-
return internal_mod_2.PersistMode;
|
|
20499
|
-
} });
|
|
20500
|
-
Object.defineProperty(exports2, "PubHeaders", { enumerable: true, get: function() {
|
|
20501
|
-
return internal_mod_2.PubHeaders;
|
|
20502
|
-
} });
|
|
20503
|
-
Object.defineProperty(exports2, "ReplayPolicy", { enumerable: true, get: function() {
|
|
20504
|
-
return internal_mod_2.ReplayPolicy;
|
|
20505
|
-
} });
|
|
20506
|
-
Object.defineProperty(exports2, "RepublishHeaders", { enumerable: true, get: function() {
|
|
20507
|
-
return internal_mod_2.RepublishHeaders;
|
|
20508
|
-
} });
|
|
20509
|
-
Object.defineProperty(exports2, "RetentionPolicy", { enumerable: true, get: function() {
|
|
20510
|
-
return internal_mod_2.RetentionPolicy;
|
|
20511
|
-
} });
|
|
20512
|
-
Object.defineProperty(exports2, "StorageType", { enumerable: true, get: function() {
|
|
20513
|
-
return internal_mod_2.StorageType;
|
|
20514
|
-
} });
|
|
20515
|
-
Object.defineProperty(exports2, "StoreCompression", { enumerable: true, get: function() {
|
|
20516
|
-
return internal_mod_2.StoreCompression;
|
|
20504
|
+
exports2.connect = void 0;
|
|
20505
|
+
var connect_1 = require_connect();
|
|
20506
|
+
Object.defineProperty(exports2, "connect", { enumerable: true, get: function() {
|
|
20507
|
+
return connect_1.connect;
|
|
20517
20508
|
} });
|
|
20509
|
+
__exportStar(require_nats_base_client(), exports2);
|
|
20510
|
+
}
|
|
20511
|
+
});
|
|
20512
|
+
|
|
20513
|
+
// ../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/index.js
|
|
20514
|
+
var require_transport_node = __commonJS({
|
|
20515
|
+
"../../node_modules/.pnpm/@nats-io+transport-node@3.4.0/node_modules/@nats-io/transport-node/index.js"(exports2, module2) {
|
|
20516
|
+
"use strict";
|
|
20517
|
+
module2.exports = require_mod5();
|
|
20518
20518
|
}
|
|
20519
20519
|
});
|
|
20520
20520
|
|
|
@@ -47524,13 +47524,8 @@ var BASE_LIMITS = {
|
|
|
47524
47524
|
var DATA_LIMITS = { ...BASE_LIMITS, mem_storage: -1, disk_storage: -1 };
|
|
47525
47525
|
var SYS_LIMITS = { ...BASE_LIMITS, mem_storage: 0, disk_storage: 0 };
|
|
47526
47526
|
|
|
47527
|
-
// ../../packages/core/dist/endpoint.js
|
|
47528
|
-
var import_node_events = require("node:events");
|
|
47529
|
-
var import_node_crypto = require("node:crypto");
|
|
47530
|
-
var import_transport_node4 = __toESM(require_transport_node(), 1);
|
|
47531
|
-
|
|
47532
47527
|
// ../../packages/core/dist/streams.js
|
|
47533
|
-
var import_jetstream = __toESM(
|
|
47528
|
+
var import_jetstream = __toESM(require_mod4(), 1);
|
|
47534
47529
|
var import_transport_node = __toESM(require_transport_node(), 1);
|
|
47535
47530
|
var import_kv = __toESM(require_mod6(), 1);
|
|
47536
47531
|
var MAX_MSGS_PER_SUBJECT = 1e3;
|
|
@@ -47636,12 +47631,50 @@ function fanoutDurableConfig(space, opts = {}) {
|
|
|
47636
47631
|
};
|
|
47637
47632
|
}
|
|
47638
47633
|
|
|
47639
|
-
// ../../packages/core/dist/
|
|
47640
|
-
var
|
|
47641
|
-
var
|
|
47634
|
+
// ../../packages/core/dist/channels.js
|
|
47635
|
+
var import_kv2 = __toESM(require_mod6(), 1);
|
|
47636
|
+
var import_transport_node2 = __toESM(require_transport_node(), 1);
|
|
47637
|
+
function parseDuration(s) {
|
|
47638
|
+
const m = /^(\d+)(s|m|h|d)$/.exec(s.trim());
|
|
47639
|
+
if (!m)
|
|
47640
|
+
throw new Error(`invalid duration "${s}" \u2014 expected <number><s|m|h|d>, e.g. "24h"`);
|
|
47641
|
+
const n = Number(m[1]);
|
|
47642
|
+
const unit = { s: 1e3, m: 6e4, h: 36e5, d: 864e5 }[m[2]];
|
|
47643
|
+
return n * unit;
|
|
47644
|
+
}
|
|
47645
|
+
function effectiveReplay(cfg, defaults) {
|
|
47646
|
+
return cfg?.replay ?? defaults?.replay ?? true;
|
|
47647
|
+
}
|
|
47648
|
+
function effectiveReplayWindowMs(cfg, defaults) {
|
|
47649
|
+
const w = cfg?.replayWindow ?? defaults?.replayWindow;
|
|
47650
|
+
return w === void 0 ? void 0 : parseDuration(w);
|
|
47651
|
+
}
|
|
47652
|
+
function effectiveDeliveryClass(cfg, defaults) {
|
|
47653
|
+
return cfg?.deliveryClass ?? defaults?.deliveryClass ?? "durable";
|
|
47654
|
+
}
|
|
47655
|
+
async function openChannelRegistry(nc, space, opts = {}) {
|
|
47656
|
+
const kvm = new import_kv2.Kvm(nc);
|
|
47657
|
+
return opts.create ? kvm.create(channelBucket(space)) : kvm.open(channelBucket(space));
|
|
47658
|
+
}
|
|
47659
|
+
async function readChannelConfig(kv, channel) {
|
|
47660
|
+
return decode3(kv, channel);
|
|
47661
|
+
}
|
|
47662
|
+
async function readChannelDefaults(kv) {
|
|
47663
|
+
return decode3(kv, CHANNEL_DEFAULTS_KEY);
|
|
47664
|
+
}
|
|
47665
|
+
async function decode3(kv, key) {
|
|
47666
|
+
const e = await kv.get(key);
|
|
47667
|
+
if (!e || e.operation === "DEL" || e.operation === "PURGE")
|
|
47668
|
+
return void 0;
|
|
47669
|
+
try {
|
|
47670
|
+
return e.json();
|
|
47671
|
+
} catch {
|
|
47672
|
+
return void 0;
|
|
47673
|
+
}
|
|
47674
|
+
}
|
|
47642
47675
|
|
|
47643
47676
|
// ../../packages/core/dist/members.js
|
|
47644
|
-
var
|
|
47677
|
+
var import_kv3 = __toESM(require_mod6(), 1);
|
|
47645
47678
|
var StaleMembershipWrite = class extends Error {
|
|
47646
47679
|
constructor(channel, owner, attempted, current) {
|
|
47647
47680
|
super(`stale membership write for ${channel}/${owner}: generation ${attempted} < current ${current}`);
|
|
@@ -47649,7 +47682,7 @@ var StaleMembershipWrite = class extends Error {
|
|
|
47649
47682
|
}
|
|
47650
47683
|
};
|
|
47651
47684
|
async function openMembersRegistry(nc, space, opts = {}) {
|
|
47652
|
-
const kvm = new
|
|
47685
|
+
const kvm = new import_kv3.Kvm(nc);
|
|
47653
47686
|
return opts.create ? kvm.create(membersBucket(space)) : kvm.open(membersBucket(space));
|
|
47654
47687
|
}
|
|
47655
47688
|
async function readMember(kv, channel, owner) {
|
|
@@ -47749,9 +47782,9 @@ function durableEligible(rec, seq) {
|
|
|
47749
47782
|
}
|
|
47750
47783
|
|
|
47751
47784
|
// ../../packages/core/dist/acls.js
|
|
47752
|
-
var
|
|
47785
|
+
var import_kv4 = __toESM(require_mod6(), 1);
|
|
47753
47786
|
async function openAclRegistry(nc, space, opts = {}) {
|
|
47754
|
-
const kvm = new
|
|
47787
|
+
const kvm = new import_kv4.Kvm(nc);
|
|
47755
47788
|
return opts.create ? kvm.create(aclBucket(space)) : kvm.open(aclBucket(space));
|
|
47756
47789
|
}
|
|
47757
47790
|
async function readAcl(kv, owner) {
|
|
@@ -47795,56 +47828,135 @@ async function commitAcl(kv, owner, allowSubscribe) {
|
|
|
47795
47828
|
throw new Error(`acl CAS exhausted retries for ${owner}`);
|
|
47796
47829
|
}
|
|
47797
47830
|
|
|
47831
|
+
// ../../packages/core/dist/membership-feed.js
|
|
47832
|
+
var import_transport_node3 = __toESM(require_transport_node(), 1);
|
|
47833
|
+
var import_kv5 = __toESM(require_mod6(), 1);
|
|
47834
|
+
|
|
47798
47835
|
// ../../packages/core/dist/lease.js
|
|
47799
|
-
var
|
|
47800
|
-
var
|
|
47836
|
+
var import_kv6 = __toESM(require_mod6(), 1);
|
|
47837
|
+
var import_transport_node4 = __toESM(require_transport_node(), 1);
|
|
47801
47838
|
async function openDeliveryRegistry(nc, space) {
|
|
47802
|
-
return new
|
|
47839
|
+
return new import_kv6.Kvm(nc).open(deliveryBucket(space));
|
|
47803
47840
|
}
|
|
47804
47841
|
|
|
47805
|
-
// ../../packages/core/dist/
|
|
47806
|
-
var
|
|
47807
|
-
|
|
47808
|
-
|
|
47809
|
-
|
|
47810
|
-
|
|
47811
|
-
throw new Error(`invalid duration "${s}" \u2014 expected <number><s|m|h|d>, e.g. "24h"`);
|
|
47812
|
-
const n = Number(m[1]);
|
|
47813
|
-
const unit = { s: 1e3, m: 6e4, h: 36e5, d: 864e5 }[m[2]];
|
|
47814
|
-
return n * unit;
|
|
47815
|
-
}
|
|
47816
|
-
function effectiveReplay(cfg, defaults) {
|
|
47817
|
-
return cfg?.replay ?? defaults?.replay ?? true;
|
|
47818
|
-
}
|
|
47819
|
-
function effectiveReplayWindowMs(cfg, defaults) {
|
|
47820
|
-
const w = cfg?.replayWindow ?? defaults?.replayWindow;
|
|
47821
|
-
return w === void 0 ? void 0 : parseDuration(w);
|
|
47822
|
-
}
|
|
47823
|
-
function effectiveDeliveryClass(cfg, defaults) {
|
|
47824
|
-
return cfg?.deliveryClass ?? defaults?.deliveryClass ?? "durable";
|
|
47825
|
-
}
|
|
47826
|
-
async function openChannelRegistry(nc, space, opts = {}) {
|
|
47827
|
-
const kvm = new import_kv5.Kvm(nc);
|
|
47828
|
-
return opts.create ? kvm.create(channelBucket(space)) : kvm.open(channelBucket(space));
|
|
47829
|
-
}
|
|
47830
|
-
async function readChannelConfig(kv, channel) {
|
|
47831
|
-
return decode3(kv, channel);
|
|
47832
|
-
}
|
|
47833
|
-
async function readChannelDefaults(kv) {
|
|
47834
|
-
return decode3(kv, CHANNEL_DEFAULTS_KEY);
|
|
47842
|
+
// ../../packages/core/dist/agent-file.js
|
|
47843
|
+
var import_node_fs = require("node:fs");
|
|
47844
|
+
function unquote(v) {
|
|
47845
|
+
if (v.startsWith('"') && v.endsWith('"') || v.startsWith("'") && v.endsWith("'"))
|
|
47846
|
+
return v.slice(1, -1);
|
|
47847
|
+
return v;
|
|
47835
47848
|
}
|
|
47836
|
-
|
|
47837
|
-
const
|
|
47838
|
-
|
|
47839
|
-
|
|
47840
|
-
|
|
47841
|
-
|
|
47842
|
-
|
|
47843
|
-
|
|
47849
|
+
function parseFrontmatter(src) {
|
|
47850
|
+
const out = {};
|
|
47851
|
+
for (const raw of src.split("\n")) {
|
|
47852
|
+
const line = raw.trim();
|
|
47853
|
+
if (!line || line.startsWith("#"))
|
|
47854
|
+
continue;
|
|
47855
|
+
const colon = line.indexOf(":");
|
|
47856
|
+
if (colon < 1)
|
|
47857
|
+
throw new Error(`agent file: unparseable frontmatter line "${raw}"`);
|
|
47858
|
+
const key = line.slice(0, colon).trim();
|
|
47859
|
+
const val = line.slice(colon + 1).trim();
|
|
47860
|
+
if (val.startsWith("[")) {
|
|
47861
|
+
if (!val.endsWith("]"))
|
|
47862
|
+
throw new Error(`agent file: unterminated list for "${key}"`);
|
|
47863
|
+
out[key] = val.slice(1, -1).split(",").map((s) => unquote(s.trim())).filter(Boolean);
|
|
47864
|
+
} else {
|
|
47865
|
+
out[key] = unquote(val);
|
|
47866
|
+
}
|
|
47844
47867
|
}
|
|
47868
|
+
return out;
|
|
47869
|
+
}
|
|
47870
|
+
function loadAgentFile(path) {
|
|
47871
|
+
const src = (0, import_node_fs.readFileSync)(path, "utf8");
|
|
47872
|
+
const m = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/.exec(src);
|
|
47873
|
+
if (!m)
|
|
47874
|
+
throw new Error(`agent file ${path}: missing "---" frontmatter block`);
|
|
47875
|
+
const fm = parseFrontmatter(m[1]);
|
|
47876
|
+
const persona = m[2].trim();
|
|
47877
|
+
const str = (k) => {
|
|
47878
|
+
const v = fm[k];
|
|
47879
|
+
if (Array.isArray(v))
|
|
47880
|
+
throw new Error(`agent file ${path}: "${k}" must be a scalar`);
|
|
47881
|
+
return v;
|
|
47882
|
+
};
|
|
47883
|
+
const list = (k) => {
|
|
47884
|
+
const v = fm[k];
|
|
47885
|
+
if (v === void 0)
|
|
47886
|
+
return void 0;
|
|
47887
|
+
return Array.isArray(v) ? v : [v];
|
|
47888
|
+
};
|
|
47889
|
+
const name = str("name");
|
|
47890
|
+
if (!name)
|
|
47891
|
+
throw new Error(`agent file ${path}: "name" is required`);
|
|
47892
|
+
assertValidName(name);
|
|
47893
|
+
const kind = str("kind");
|
|
47894
|
+
if (kind && kind !== "agent" && kind !== "endpoint")
|
|
47895
|
+
throw new Error(`agent file ${path}: "kind" must be "agent" or "endpoint"`);
|
|
47896
|
+
for (const old of ["channels", "publish"])
|
|
47897
|
+
if (old in fm)
|
|
47898
|
+
throw new Error(`agent file ${path}: "${old}" was renamed \u2014 use "subscribe"/"allowSubscribe" (read) and "allowPublish" (post)`);
|
|
47899
|
+
const subscribe = list("subscribe");
|
|
47900
|
+
const allowSubscribe = list("allowSubscribe");
|
|
47901
|
+
const allowPublish = list("allowPublish");
|
|
47902
|
+
const quiet = list("quiet");
|
|
47903
|
+
const muted = list("muted");
|
|
47904
|
+
for (const ch of [...subscribe ?? [], ...allowSubscribe ?? [], ...allowPublish ?? []])
|
|
47905
|
+
try {
|
|
47906
|
+
assertValidChannel(ch);
|
|
47907
|
+
} catch (e) {
|
|
47908
|
+
throw new Error(`agent file ${path}: ${e.message}`);
|
|
47909
|
+
}
|
|
47910
|
+
const effSubscribe = subscribe?.length ? subscribe : ["general"];
|
|
47911
|
+
const effAllow = allowSubscribe?.length ? allowSubscribe : effSubscribe;
|
|
47912
|
+
for (const ch of effSubscribe)
|
|
47913
|
+
if (!channelInAllow(effAllow, ch))
|
|
47914
|
+
throw new Error(`agent file ${path}: subscribe channel "${ch}" is not within allowSubscribe [${effAllow.join(", ")}]`);
|
|
47915
|
+
const both = (quiet ?? []).filter((c) => (muted ?? []).includes(c));
|
|
47916
|
+
if (both.length)
|
|
47917
|
+
throw new Error(`agent file ${path}: channel(s) [${both.join(", ")}] are in both quiet and muted \u2014 pick one`);
|
|
47918
|
+
for (const [field, chans] of [["quiet", quiet], ["muted", muted]])
|
|
47919
|
+
for (const ch of chans ?? []) {
|
|
47920
|
+
try {
|
|
47921
|
+
assertValidChannel(ch);
|
|
47922
|
+
} catch (e) {
|
|
47923
|
+
throw new Error(`agent file ${path}: ${e.message}`);
|
|
47924
|
+
}
|
|
47925
|
+
if (!isConcreteChannel(ch))
|
|
47926
|
+
throw new Error(`agent file ${path}: ${field} channel "${ch}" must be a concrete channel (no wildcard)`);
|
|
47927
|
+
if (!channelInAllow(effAllow, ch))
|
|
47928
|
+
throw new Error(`agent file ${path}: ${field} channel "${ch}" is not within your read ACL / allowSubscribe [${effAllow.join(", ")}]`);
|
|
47929
|
+
}
|
|
47930
|
+
const known = /* @__PURE__ */ new Set(["name", "role", "kind", "description", "tags", "subscribe", "allowSubscribe", "allowPublish", "quiet", "muted", "model", "capabilities", "owner"]);
|
|
47931
|
+
const meta3 = {};
|
|
47932
|
+
for (const [k, v] of Object.entries(fm))
|
|
47933
|
+
if (!known.has(k) && typeof v === "string")
|
|
47934
|
+
meta3[k] = v;
|
|
47935
|
+
return {
|
|
47936
|
+
name,
|
|
47937
|
+
role: str("role"),
|
|
47938
|
+
kind,
|
|
47939
|
+
description: str("description"),
|
|
47940
|
+
tags: list("tags"),
|
|
47941
|
+
subscribe,
|
|
47942
|
+
allowSubscribe,
|
|
47943
|
+
allowPublish,
|
|
47944
|
+
quiet,
|
|
47945
|
+
muted,
|
|
47946
|
+
model: str("model"),
|
|
47947
|
+
capabilities: list("capabilities"),
|
|
47948
|
+
owner: str("owner"),
|
|
47949
|
+
meta: Object.keys(meta3).length ? meta3 : void 0,
|
|
47950
|
+
persona: persona || void 0
|
|
47951
|
+
};
|
|
47845
47952
|
}
|
|
47846
47953
|
|
|
47847
47954
|
// ../../packages/core/dist/endpoint.js
|
|
47955
|
+
var import_node_events = require("node:events");
|
|
47956
|
+
var import_node_crypto = require("node:crypto");
|
|
47957
|
+
var import_transport_node5 = __toESM(require_transport_node(), 1);
|
|
47958
|
+
var import_jetstream2 = __toESM(require_mod4(), 1);
|
|
47959
|
+
var import_kv7 = __toESM(require_mod6(), 1);
|
|
47848
47960
|
var DEFAULT_SERVER = "nats://127.0.0.1:4222";
|
|
47849
47961
|
var READER_MAX_REDELIVERIES = 10;
|
|
47850
47962
|
var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
@@ -47993,7 +48105,7 @@ var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
|
47993
48105
|
* idempotent (durables bind by name, JetStream dedups by msgID, KV opens are idempotent). */
|
|
47994
48106
|
async connectAndBind() {
|
|
47995
48107
|
this.clearConnectionScoped();
|
|
47996
|
-
this.nc = await (0,
|
|
48108
|
+
this.nc = await (0, import_transport_node5.connect)({
|
|
47997
48109
|
servers: this.servers,
|
|
47998
48110
|
name: `cotal:${this.card.name}`,
|
|
47999
48111
|
// Per-identity inbox namespace (the "Private Inbox" pattern). nats.js routes ALL
|
|
@@ -48007,7 +48119,7 @@ var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
|
48007
48119
|
this.watchStatus();
|
|
48008
48120
|
this.js = (0, import_jetstream2.jetstream)(this.nc);
|
|
48009
48121
|
if (this.doWatch || this.doRegister) {
|
|
48010
|
-
const kvm = new
|
|
48122
|
+
const kvm = new import_kv7.Kvm(this.nc);
|
|
48011
48123
|
this.kv = this.creds ? await kvm.open(presenceBucket(this.space)) : await kvm.create(presenceBucket(this.space), { ttl: this.ttlMs });
|
|
48012
48124
|
}
|
|
48013
48125
|
if (this.doWatch) {
|
|
@@ -48554,7 +48666,7 @@ var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
|
48554
48666
|
async membershipRegistry() {
|
|
48555
48667
|
if (!this.nc)
|
|
48556
48668
|
throw new Error("endpoint not started");
|
|
48557
|
-
this.membershipKv ??= await new
|
|
48669
|
+
this.membershipKv ??= await new import_kv7.Kvm(this.nc).open(membershipBucket(this.space));
|
|
48558
48670
|
return this.membershipKv;
|
|
48559
48671
|
}
|
|
48560
48672
|
/**
|
|
@@ -48650,7 +48762,7 @@ var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
|
48650
48762
|
for await (const s of this.nc.status()) {
|
|
48651
48763
|
if (s.type !== "error")
|
|
48652
48764
|
continue;
|
|
48653
|
-
if (s.error instanceof
|
|
48765
|
+
if (s.error instanceof import_transport_node5.PermissionViolationError && this.confirmingChatSubs.has(s.error.subject))
|
|
48654
48766
|
continue;
|
|
48655
48767
|
this.emit("error", describeStatusError(s.error));
|
|
48656
48768
|
}
|
|
@@ -48923,7 +49035,7 @@ var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
|
48923
49035
|
filter_subject: subject,
|
|
48924
49036
|
ack_policy: import_jetstream2.AckPolicy.None,
|
|
48925
49037
|
mem_storage: true,
|
|
48926
|
-
inactive_threshold: (0,
|
|
49038
|
+
inactive_threshold: (0, import_transport_node5.nanos)(3e4),
|
|
48927
49039
|
deliver_policy: import_jetstream2.DeliverPolicy.StartSequence,
|
|
48928
49040
|
opt_start_seq: fromSeqExcl + 1
|
|
48929
49041
|
});
|
|
@@ -49323,7 +49435,7 @@ var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
|
49323
49435
|
* distinct from a responder that errored. nats.js surfaces it as NoRespondersError, or a RequestError
|
|
49324
49436
|
* whose `isNoResponders()` is true. */
|
|
49325
49437
|
isNoResponders(e) {
|
|
49326
|
-
return e instanceof
|
|
49438
|
+
return e instanceof import_transport_node5.NoRespondersError || e instanceof import_transport_node5.RequestError && e.isNoResponders();
|
|
49327
49439
|
}
|
|
49328
49440
|
/** Agent-side: this session's CURRENT durable memberships (channel + join generation) from the
|
|
49329
49441
|
* manager — the agent holds no read on the privileged members KV. `undefined` ⇒ NO control responder
|
|
@@ -49666,7 +49778,7 @@ var CotalEndpoint = class extends import_node_events.EventEmitter {
|
|
|
49666
49778
|
filter_subject: subject,
|
|
49667
49779
|
ack_policy: import_jetstream2.AckPolicy.None,
|
|
49668
49780
|
mem_storage: true,
|
|
49669
|
-
inactive_threshold: (0,
|
|
49781
|
+
inactive_threshold: (0, import_transport_node5.nanos)(3e4),
|
|
49670
49782
|
..."time" in start ? { deliver_policy: import_jetstream2.DeliverPolicy.StartTime, opt_start_time: start.time.toISOString() } : { deliver_policy: import_jetstream2.DeliverPolicy.StartSequence, opt_start_seq: start.seq }
|
|
49671
49783
|
});
|
|
49672
49784
|
try {
|
|
@@ -49956,143 +50068,27 @@ function authOpts(a) {
|
|
|
49956
50068
|
if (a.creds) {
|
|
49957
50069
|
if (a.token || a.user || a.pass)
|
|
49958
50070
|
throw new Error("creds are mutually exclusive with token/user/pass auth");
|
|
49959
|
-
return { authenticator: (0,
|
|
50071
|
+
return { authenticator: (0, import_transport_node5.credsAuthenticator)(new TextEncoder().encode(a.creds)), tls };
|
|
49960
50072
|
}
|
|
49961
50073
|
return { token: a.token, user: a.user, pass: a.pass, tls };
|
|
49962
50074
|
}
|
|
49963
50075
|
function describeStatusError(err2) {
|
|
49964
|
-
if (err2 instanceof
|
|
50076
|
+
if (err2 instanceof import_transport_node5.PermissionViolationError) {
|
|
49965
50077
|
return new Error(`NATS permission denied: cannot ${err2.operation} "${err2.subject}" \u2014 check this endpoint's ACLs (a denied peer looks "absent" rather than blocked)`, { cause: err2 });
|
|
49966
50078
|
}
|
|
49967
50079
|
return err2;
|
|
49968
50080
|
}
|
|
49969
50081
|
function isPermissionDenied(e) {
|
|
49970
|
-
if (e instanceof
|
|
50082
|
+
if (e instanceof import_transport_node5.PermissionViolationError)
|
|
49971
50083
|
return true;
|
|
49972
|
-
if (e?.cause instanceof
|
|
50084
|
+
if (e?.cause instanceof import_transport_node5.PermissionViolationError)
|
|
49973
50085
|
return true;
|
|
49974
50086
|
return /permissions?\s+violation/i.test(String(e?.message ?? ""));
|
|
49975
50087
|
}
|
|
49976
50088
|
|
|
49977
|
-
// ../../packages/core/dist/membership-feed.js
|
|
49978
|
-
var import_transport_node5 = __toESM(require_transport_node(), 1);
|
|
49979
|
-
var import_kv7 = __toESM(require_mod6(), 1);
|
|
49980
|
-
|
|
49981
|
-
// ../../packages/core/dist/agent-file.js
|
|
49982
|
-
var import_node_fs = require("node:fs");
|
|
49983
|
-
function unquote(v) {
|
|
49984
|
-
if (v.startsWith('"') && v.endsWith('"') || v.startsWith("'") && v.endsWith("'"))
|
|
49985
|
-
return v.slice(1, -1);
|
|
49986
|
-
return v;
|
|
49987
|
-
}
|
|
49988
|
-
function parseFrontmatter(src) {
|
|
49989
|
-
const out = {};
|
|
49990
|
-
for (const raw of src.split("\n")) {
|
|
49991
|
-
const line = raw.trim();
|
|
49992
|
-
if (!line || line.startsWith("#"))
|
|
49993
|
-
continue;
|
|
49994
|
-
const colon = line.indexOf(":");
|
|
49995
|
-
if (colon < 1)
|
|
49996
|
-
throw new Error(`agent file: unparseable frontmatter line "${raw}"`);
|
|
49997
|
-
const key = line.slice(0, colon).trim();
|
|
49998
|
-
const val = line.slice(colon + 1).trim();
|
|
49999
|
-
if (val.startsWith("[")) {
|
|
50000
|
-
if (!val.endsWith("]"))
|
|
50001
|
-
throw new Error(`agent file: unterminated list for "${key}"`);
|
|
50002
|
-
out[key] = val.slice(1, -1).split(",").map((s) => unquote(s.trim())).filter(Boolean);
|
|
50003
|
-
} else {
|
|
50004
|
-
out[key] = unquote(val);
|
|
50005
|
-
}
|
|
50006
|
-
}
|
|
50007
|
-
return out;
|
|
50008
|
-
}
|
|
50009
|
-
function loadAgentFile(path) {
|
|
50010
|
-
const src = (0, import_node_fs.readFileSync)(path, "utf8");
|
|
50011
|
-
const m = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/.exec(src);
|
|
50012
|
-
if (!m)
|
|
50013
|
-
throw new Error(`agent file ${path}: missing "---" frontmatter block`);
|
|
50014
|
-
const fm = parseFrontmatter(m[1]);
|
|
50015
|
-
const persona = m[2].trim();
|
|
50016
|
-
const str = (k) => {
|
|
50017
|
-
const v = fm[k];
|
|
50018
|
-
if (Array.isArray(v))
|
|
50019
|
-
throw new Error(`agent file ${path}: "${k}" must be a scalar`);
|
|
50020
|
-
return v;
|
|
50021
|
-
};
|
|
50022
|
-
const list = (k) => {
|
|
50023
|
-
const v = fm[k];
|
|
50024
|
-
if (v === void 0)
|
|
50025
|
-
return void 0;
|
|
50026
|
-
return Array.isArray(v) ? v : [v];
|
|
50027
|
-
};
|
|
50028
|
-
const name = str("name");
|
|
50029
|
-
if (!name)
|
|
50030
|
-
throw new Error(`agent file ${path}: "name" is required`);
|
|
50031
|
-
assertValidName(name);
|
|
50032
|
-
const kind = str("kind");
|
|
50033
|
-
if (kind && kind !== "agent" && kind !== "endpoint")
|
|
50034
|
-
throw new Error(`agent file ${path}: "kind" must be "agent" or "endpoint"`);
|
|
50035
|
-
for (const old of ["channels", "publish"])
|
|
50036
|
-
if (old in fm)
|
|
50037
|
-
throw new Error(`agent file ${path}: "${old}" was renamed \u2014 use "subscribe"/"allowSubscribe" (read) and "allowPublish" (post)`);
|
|
50038
|
-
const subscribe = list("subscribe");
|
|
50039
|
-
const allowSubscribe = list("allowSubscribe");
|
|
50040
|
-
const allowPublish = list("allowPublish");
|
|
50041
|
-
const quiet = list("quiet");
|
|
50042
|
-
const muted = list("muted");
|
|
50043
|
-
for (const ch of [...subscribe ?? [], ...allowSubscribe ?? [], ...allowPublish ?? []])
|
|
50044
|
-
try {
|
|
50045
|
-
assertValidChannel(ch);
|
|
50046
|
-
} catch (e) {
|
|
50047
|
-
throw new Error(`agent file ${path}: ${e.message}`);
|
|
50048
|
-
}
|
|
50049
|
-
const effSubscribe = subscribe?.length ? subscribe : ["general"];
|
|
50050
|
-
const effAllow = allowSubscribe?.length ? allowSubscribe : effSubscribe;
|
|
50051
|
-
for (const ch of effSubscribe)
|
|
50052
|
-
if (!channelInAllow(effAllow, ch))
|
|
50053
|
-
throw new Error(`agent file ${path}: subscribe channel "${ch}" is not within allowSubscribe [${effAllow.join(", ")}]`);
|
|
50054
|
-
const both = (quiet ?? []).filter((c) => (muted ?? []).includes(c));
|
|
50055
|
-
if (both.length)
|
|
50056
|
-
throw new Error(`agent file ${path}: channel(s) [${both.join(", ")}] are in both quiet and muted \u2014 pick one`);
|
|
50057
|
-
for (const [field, chans] of [["quiet", quiet], ["muted", muted]])
|
|
50058
|
-
for (const ch of chans ?? []) {
|
|
50059
|
-
try {
|
|
50060
|
-
assertValidChannel(ch);
|
|
50061
|
-
} catch (e) {
|
|
50062
|
-
throw new Error(`agent file ${path}: ${e.message}`);
|
|
50063
|
-
}
|
|
50064
|
-
if (!isConcreteChannel(ch))
|
|
50065
|
-
throw new Error(`agent file ${path}: ${field} channel "${ch}" must be a concrete channel (no wildcard)`);
|
|
50066
|
-
if (!channelInAllow(effAllow, ch))
|
|
50067
|
-
throw new Error(`agent file ${path}: ${field} channel "${ch}" is not within your read ACL / allowSubscribe [${effAllow.join(", ")}]`);
|
|
50068
|
-
}
|
|
50069
|
-
const known = /* @__PURE__ */ new Set(["name", "role", "kind", "description", "tags", "subscribe", "allowSubscribe", "allowPublish", "quiet", "muted", "model", "capabilities", "owner"]);
|
|
50070
|
-
const meta3 = {};
|
|
50071
|
-
for (const [k, v] of Object.entries(fm))
|
|
50072
|
-
if (!known.has(k) && typeof v === "string")
|
|
50073
|
-
meta3[k] = v;
|
|
50074
|
-
return {
|
|
50075
|
-
name,
|
|
50076
|
-
role: str("role"),
|
|
50077
|
-
kind,
|
|
50078
|
-
description: str("description"),
|
|
50079
|
-
tags: list("tags"),
|
|
50080
|
-
subscribe,
|
|
50081
|
-
allowSubscribe,
|
|
50082
|
-
allowPublish,
|
|
50083
|
-
quiet,
|
|
50084
|
-
muted,
|
|
50085
|
-
model: str("model"),
|
|
50086
|
-
capabilities: list("capabilities"),
|
|
50087
|
-
owner: str("owner"),
|
|
50088
|
-
meta: Object.keys(meta3).length ? meta3 : void 0,
|
|
50089
|
-
persona: persona || void 0
|
|
50090
|
-
};
|
|
50091
|
-
}
|
|
50092
|
-
|
|
50093
50089
|
// ../../packages/core/dist/spaces.js
|
|
50094
50090
|
var import_transport_node6 = __toESM(require_transport_node(), 1);
|
|
50095
|
-
var import_jetstream3 = __toESM(
|
|
50091
|
+
var import_jetstream3 = __toESM(require_mod4(), 1);
|
|
50096
50092
|
var import_kv8 = __toESM(require_mod6(), 1);
|
|
50097
50093
|
|
|
50098
50094
|
// ../../packages/core/dist/registry.js
|