Comparing version 2.3.1-1 to 2.4.0
@@ -0,1 +1,2 @@ | ||
import { ApiError } from "./types"; | ||
export declare enum ErrorCode { | ||
@@ -50,2 +51,3 @@ ApiError = "BAD API", | ||
chainedError?: Error; | ||
api_error?: ApiError; | ||
/** | ||
@@ -64,2 +66,4 @@ * @param {String} message | ||
isProtocolError(): boolean; | ||
isJetStreamError(): boolean; | ||
jsError(): ApiError | null; | ||
} |
@@ -110,4 +110,10 @@ "use strict"; | ||
} | ||
isJetStreamError() { | ||
return this.api_error !== undefined; | ||
} | ||
jsError() { | ||
return this.api_error ? this.api_error : null; | ||
} | ||
} | ||
exports.NatsError = NatsError; | ||
//# sourceMappingURL=error.js.map |
@@ -8,2 +8,3 @@ export { NatsConnectionImpl } from "./nats"; | ||
export { toJsMsg } from "./jsmsg"; | ||
export type { JetStreamSubscriptionInfoable } from "./jsclient"; | ||
export { DebugEvents, Empty, Events, JsHeaders } from "./types"; | ||
@@ -17,3 +18,3 @@ export { MsgImpl } from "./msg"; | ||
export type { Deferred, Timeout } from "./util"; | ||
export { deferred, delay, extend, extractProtocolMessage, render, timeout, } from "./util"; | ||
export { collect, deferred, delay, extend, extractProtocolMessage, render, timeout, } from "./util"; | ||
export type { MsgHdrs } from "./headers"; | ||
@@ -20,0 +21,0 @@ export { canonicalMIMEHeaderKey, headers, Match, MsgHdrsImpl, } from "./headers"; |
@@ -13,4 +13,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Kind = exports.QueuedIteratorImpl = exports.StringCodec = exports.JSONCodec = exports.nkeyAuthenticator = exports.jwtAuthenticator = exports.credsAuthenticator = exports.Request = exports.checkUnsupportedOption = exports.checkOptions = exports.DataBuffer = exports.MuxSubscription = exports.Heartbeat = exports.MsgHdrsImpl = exports.Match = exports.headers = exports.canonicalMIMEHeaderKey = exports.timeout = exports.render = exports.extractProtocolMessage = exports.extend = exports.delay = exports.deferred = exports.ProtocolHandler = exports.INFO = exports.createInbox = exports.Connect = exports.setTransportFactory = exports.Subscriptions = exports.SubscriptionImpl = exports.MsgImpl = exports.JsHeaders = exports.Events = exports.Empty = exports.DebugEvents = exports.toJsMsg = exports.consumerOpts = exports.StorageType = exports.RetentionPolicy = exports.ReplayPolicy = exports.DiscardPolicy = exports.DeliverPolicy = exports.AdvisoryKind = exports.AckPolicy = exports.NatsError = exports.isNatsError = exports.ErrorCode = exports.nuid = exports.Nuid = exports.NatsConnectionImpl = void 0; | ||
exports.NoopKvCodecs = exports.defaultBucketOpts = exports.Bucket = exports.Base64KeyCodec = exports.nanos = exports.millis = exports.isHeartbeatMsg = exports.isFlowControlMsg = exports.checkJsError = exports.TypedSubscription = exports.parseIP = exports.isIP = exports.TE = exports.TD = exports.Metric = exports.Bench = exports.writeAll = exports.readAll = exports.MAX_SIZE = exports.DenoBuffer = exports.State = exports.Parser = void 0; | ||
exports.QueuedIteratorImpl = exports.StringCodec = exports.JSONCodec = exports.nkeyAuthenticator = exports.jwtAuthenticator = exports.credsAuthenticator = exports.Request = exports.checkUnsupportedOption = exports.checkOptions = exports.DataBuffer = exports.MuxSubscription = exports.Heartbeat = exports.MsgHdrsImpl = exports.Match = exports.headers = exports.canonicalMIMEHeaderKey = exports.timeout = exports.render = exports.extractProtocolMessage = exports.extend = exports.delay = exports.deferred = exports.collect = exports.ProtocolHandler = exports.INFO = exports.createInbox = exports.Connect = exports.setTransportFactory = exports.Subscriptions = exports.SubscriptionImpl = exports.MsgImpl = exports.JsHeaders = exports.Events = exports.Empty = exports.DebugEvents = exports.toJsMsg = exports.consumerOpts = exports.StorageType = exports.RetentionPolicy = exports.ReplayPolicy = exports.DiscardPolicy = exports.DeliverPolicy = exports.AdvisoryKind = exports.AckPolicy = exports.NatsError = exports.isNatsError = exports.ErrorCode = exports.nuid = exports.Nuid = exports.NatsConnectionImpl = void 0; | ||
exports.NoopKvCodecs = exports.defaultBucketOpts = exports.Bucket = exports.Base64KeyCodec = exports.nanos = exports.millis = exports.isHeartbeatMsg = exports.isFlowControlMsg = exports.checkJsError = exports.TypedSubscription = exports.parseIP = exports.isIP = exports.TE = exports.TD = exports.Metric = exports.Bench = exports.writeAll = exports.readAll = exports.MAX_SIZE = exports.DenoBuffer = exports.State = exports.Parser = exports.Kind = void 0; | ||
var nats_1 = require("./nats"); | ||
@@ -56,2 +56,3 @@ Object.defineProperty(exports, "NatsConnectionImpl", { enumerable: true, get: function () { return nats_1.NatsConnectionImpl; } }); | ||
var util_1 = require("./util"); | ||
Object.defineProperty(exports, "collect", { enumerable: true, get: function () { return util_1.collect; } }); | ||
Object.defineProperty(exports, "deferred", { enumerable: true, get: function () { return util_1.deferred; } }); | ||
@@ -58,0 +59,0 @@ Object.defineProperty(exports, "delay", { enumerable: true, get: function () { return util_1.delay; } }); |
@@ -91,2 +91,3 @@ "use strict"; | ||
if (err !== null) { | ||
err.api_error = r.error; | ||
throw err; | ||
@@ -93,0 +94,0 @@ } |
import type { ConsumerOptsBuilder, Views } from "./types"; | ||
import { ConsumerAPI, ConsumerOpts, JetStreamClient, JetStreamOptions, JetStreamPublishOptions, JetStreamPullSubscription, JetStreamSubscription, JsMsg, NatsConnection, PubAck, PullOptions } from "./types"; | ||
import { ConsumerAPI, ConsumerInfo, ConsumerOpts, JetStreamClient, JetStreamOptions, JetStreamPublishOptions, JetStreamPullSubscription, JetStreamSubscription, JsMsg, NatsConnection, PubAck, PullOptions } from "./types"; | ||
import { BaseApiClient } from "./jsbaseclient_api"; | ||
@@ -25,2 +25,3 @@ import { TypedSubscriptionOptions } from "./typedsub"; | ||
api: BaseApiClient; | ||
last: ConsumerInfo; | ||
attached: boolean; | ||
@@ -27,0 +28,0 @@ deliver: string; |
@@ -321,2 +321,3 @@ "use strict"; | ||
} | ||
jsi.last = info; | ||
jsi.config = info.config; | ||
@@ -382,2 +383,3 @@ jsi.attached = true; | ||
jsi.config = ci.config; | ||
jsi.last = ci; | ||
}); | ||
@@ -488,3 +490,5 @@ } | ||
const subj = `${jinfo.api.prefix}.CONSUMER.INFO.${jinfo.stream}.${name}`; | ||
return yield jinfo.api._request(subj); | ||
const ci = yield jinfo.api._request(subj); | ||
jinfo.last = ci; | ||
return ci; | ||
}); | ||
@@ -491,0 +495,0 @@ } |
@@ -53,3 +53,3 @@ import { ConsumerConfig, ConsumerInfo, JetStreamClient, JetStreamManager, JsMsg, KV, KvCodec, KvCodecs, KvEntry, KvOptions, KvPutOptions, KvRemove, KvStatus, NatsConnection, PurgeOpts, PurgeResponse, StoredMsg } from "./types"; | ||
}): Promise<QueuedIterator<KvEntry>>; | ||
keys(k?: string): Promise<string[]>; | ||
keys(k?: string): Promise<QueuedIterator<string>>; | ||
purgeBucket(opts?: PurgeOpts): Promise<PurgeResponse>; | ||
@@ -56,0 +56,0 @@ destroy(): Promise<boolean>; |
@@ -247,3 +247,3 @@ "use strict"; | ||
const key = this.decodeKey(jm.subject.substring(this.prefixLen)); | ||
const e = { | ||
return { | ||
bucket: this.bucket, | ||
@@ -255,7 +255,4 @@ key: key, | ||
operation: ((_a = jm.headers) === null || _a === void 0 ? void 0 : _a.get(exports.kvOperationHdr)) || "PUT", | ||
delta: jm.info.pending, | ||
}; | ||
if (k !== ">") { | ||
e.delta = jm.info.pending; | ||
} | ||
return e; | ||
} | ||
@@ -310,2 +307,3 @@ create(k, data) { | ||
_deleteOrPurge(k, op) { | ||
var e_1, _a; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
@@ -315,19 +313,24 @@ if (!this.hasWildcards(k)) { | ||
} | ||
const keys = yield this.keys(k); | ||
if (keys.length === 0) { | ||
return; | ||
} | ||
const d = (0, util_1.deferred)(); | ||
const iter = yield this.keys(k); | ||
const buf = []; | ||
for (const k of keys) { | ||
buf.push(this._doDeleteOrPurge(k, op)); | ||
try { | ||
for (var iter_1 = __asyncValues(iter), iter_1_1; iter_1_1 = yield iter_1.next(), !iter_1_1.done;) { | ||
const k = iter_1_1.value; | ||
buf.push(this._doDeleteOrPurge(k, op)); | ||
if (buf.length === 100) { | ||
yield Promise.all(buf); | ||
buf.length = 0; | ||
} | ||
} | ||
} | ||
Promise.all(buf) | ||
.then(() => { | ||
d.resolve(); | ||
}) | ||
.catch((err) => { | ||
d.reject(err); | ||
}); | ||
return d; | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (iter_1_1 && !iter_1_1.done && (_a = iter_1.return)) yield _a.call(iter_1); | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
} | ||
if (buf.length > 0) { | ||
yield Promise.all(buf); | ||
} | ||
}); | ||
@@ -443,2 +446,3 @@ } | ||
const sub = yield this.js.subscribe(subj, copts); | ||
qi._data = sub; | ||
qi.iterClosed.then(() => { | ||
@@ -457,4 +461,3 @@ sub.unsubscribe(); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const d = (0, util_1.deferred)(); | ||
const keys = []; | ||
const keys = new queued_iterator_1.QueuedIteratorImpl(); | ||
const cc = this._buildCC(k, false, { headers_only: true }); | ||
@@ -466,3 +469,3 @@ const subj = cc.filter_subject; | ||
(() => __awaiter(this, void 0, void 0, function* () { | ||
var e_1, _a; | ||
var e_2, _a; | ||
var _b; | ||
@@ -482,3 +485,3 @@ try { | ||
} | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
catch (e_2_1) { e_2 = { error: e_2_1 }; } | ||
finally { | ||
@@ -488,18 +491,16 @@ try { | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
finally { if (e_2) throw e_2.error; } | ||
} | ||
}))() | ||
.then(() => { | ||
d.resolve(keys); | ||
keys.stop(); | ||
}) | ||
.catch((err) => { | ||
d.reject(err); | ||
keys.stop(err); | ||
}); | ||
this.jsm.streams.getMessage(this.stream, { | ||
"last_by_subj": subj, | ||
}).catch(() => { | ||
// we don't have a value for this | ||
const si = sub; | ||
if (si.info.last.num_pending === 0) { | ||
sub.unsubscribe(); | ||
}); | ||
return d; | ||
} | ||
return keys; | ||
}); | ||
@@ -506,0 +507,0 @@ } |
@@ -260,5 +260,5 @@ "use strict"; | ||
catch (err) { | ||
const ne = err; | ||
let ne = err; | ||
if (ne.code === error_1.ErrorCode.NoResponders) { | ||
throw error_1.NatsError.errorForCode(error_1.ErrorCode.JetStreamNotEnabled); | ||
ne.code = error_1.ErrorCode.JetStreamNotEnabled; | ||
} | ||
@@ -265,0 +265,0 @@ throw ne; |
@@ -57,2 +57,3 @@ import { Deferred } from "./util"; | ||
ctx?: unknown; | ||
_data?: unknown; | ||
private err?; | ||
@@ -59,0 +60,0 @@ constructor(); |
@@ -372,2 +372,3 @@ import { NatsError } from "./error"; | ||
description: string; | ||
err_code?: number; | ||
} | ||
@@ -679,3 +680,3 @@ export interface ApiResponse { | ||
status(): Promise<KvStatus>; | ||
keys(k?: string): Promise<string[]>; | ||
keys(k?: string): Promise<QueuedIterator<string>>; | ||
} | ||
@@ -682,0 +683,0 @@ export interface KV extends RoKV { |
@@ -0,1 +1,2 @@ | ||
import { QueuedIterator } from "./queued_iterator"; | ||
export declare const CR_LF = "\r\n"; | ||
@@ -32,2 +33,3 @@ export declare const CR_LF_LEN: number; | ||
export declare function shuffle<T>(a: T[]): T[]; | ||
export declare function collect<T>(iter: QueuedIterator<T>): Promise<T[]>; | ||
export declare class Perf { | ||
@@ -34,0 +36,0 @@ timers: Map<string, number>; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __asyncValues = (this && this.__asyncValues) || function (o) { | ||
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); | ||
var m = o[Symbol.asyncIterator], i; | ||
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); | ||
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } | ||
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Perf = exports.shuffle = exports.deferred = exports.delay = exports.timeout = exports.render = exports.extend = exports.extractProtocolMessage = exports.protoLen = exports.isUint8Array = exports.LF = exports.CR = exports.CRLF = exports.CR_LF_LEN = exports.CR_LF = void 0; | ||
exports.Perf = exports.collect = exports.shuffle = exports.deferred = exports.delay = exports.timeout = exports.render = exports.extend = exports.extractProtocolMessage = exports.protoLen = exports.isUint8Array = exports.LF = exports.CR = exports.CRLF = exports.CR_LF_LEN = exports.CR_LF = void 0; | ||
/* | ||
@@ -115,2 +131,24 @@ * Copyright 2018-2021 The NATS Authors | ||
exports.shuffle = shuffle; | ||
function collect(iter) { | ||
var iter_1, iter_1_1; | ||
var e_1, _a; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const buf = []; | ||
try { | ||
for (iter_1 = __asyncValues(iter); iter_1_1 = yield iter_1.next(), !iter_1_1.done;) { | ||
const v = iter_1_1.value; | ||
buf.push(v); | ||
} | ||
} | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (iter_1_1 && !iter_1_1.done && (_a = iter_1.return)) yield _a.call(iter_1); | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
} | ||
return buf; | ||
}); | ||
} | ||
exports.collect = collect; | ||
class Perf { | ||
@@ -117,0 +155,0 @@ constructor() { |
@@ -46,3 +46,3 @@ "use strict"; | ||
const dns = require("dns"); | ||
const VERSION = "2.3.1-1"; | ||
const VERSION = "2.4.0"; | ||
const LANG = "nats.js"; | ||
@@ -49,0 +49,0 @@ class NodeTransport { |
{ | ||
"name": "nats", | ||
"version": "2.3.1-1", | ||
"version": "2.4.0", | ||
"description": "Node.js client for NATS, a lightweight, high-performance cloud native messaging system", | ||
@@ -43,3 +43,3 @@ "keywords": [ | ||
"clean": "shx rm -Rf ./lib/* ./nats-base-client ./.deps", | ||
"clone-nbc": "shx mkdir -p ./.deps && cd ./.deps && git clone --branch main https://github.com/nats-io/nats.deno.git", | ||
"clone-nbc": "shx mkdir -p ./.deps && cd ./.deps && git clone --branch v1.4.0 https://github.com/nats-io/nats.deno.git", | ||
"fmt": "deno fmt ./src/ ./examples/ ./test/", | ||
@@ -46,0 +46,0 @@ "prepack": "npm run clone-nbc && npm run cjs && npm run check-package && npm run build", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
607634
9729
0