memx 0.0.7 → 0.1.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/buffers.cjs +50 -0
- package/dist/buffers.cjs.map +6 -0
- package/dist/buffers.d.ts +14 -0
- package/dist/buffers.mjs +25 -0
- package/dist/buffers.mjs.map +6 -0
- package/dist/client.cjs +251 -0
- package/dist/client.cjs.map +6 -0
- package/dist/client.d.ts +76 -0
- package/dist/client.mjs +216 -0
- package/dist/client.mjs.map +6 -0
- package/dist/cluster.cjs +147 -0
- package/dist/cluster.cjs.map +6 -0
- package/dist/cluster.d.ts +60 -0
- package/dist/cluster.mjs +112 -0
- package/dist/cluster.mjs.map +6 -0
- package/dist/connection.cjs +186 -0
- package/dist/connection.cjs.map +6 -0
- package/dist/connection.d.ts +18 -0
- package/dist/connection.mjs +151 -0
- package/dist/connection.mjs.map +6 -0
- package/dist/constants.cjs +140 -0
- package/dist/constants.cjs.map +6 -0
- package/dist/constants.d.ts +87 -0
- package/dist/constants.mjs +107 -0
- package/dist/constants.mjs.map +6 -0
- package/dist/decode.cjs +101 -0
- package/dist/decode.cjs.map +6 -0
- package/dist/decode.d.ts +16 -0
- package/dist/decode.mjs +66 -0
- package/dist/decode.mjs.map +6 -0
- package/dist/encode.cjs +70 -0
- package/dist/encode.cjs.map +6 -0
- package/dist/encode.d.ts +20 -0
- package/dist/encode.mjs +45 -0
- package/dist/encode.mjs.map +6 -0
- package/dist/fake.cjs +183 -0
- package/dist/fake.cjs.map +6 -0
- package/dist/fake.d.ts +53 -0
- package/dist/fake.mjs +157 -0
- package/dist/fake.mjs.map +6 -0
- package/dist/index.cjs +57 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.mjs +15 -1460
- package/dist/index.mjs.map +2 -2
- package/dist/internals.cjs +58 -0
- package/dist/internals.cjs.map +6 -0
- package/dist/internals.d.ts +7 -0
- package/dist/internals.mjs +21 -0
- package/dist/internals.mjs.map +6 -0
- package/dist/server.cjs +468 -0
- package/dist/server.cjs.map +6 -0
- package/dist/server.d.ts +59 -0
- package/dist/server.mjs +443 -0
- package/dist/server.mjs.map +6 -0
- package/dist/types.cjs +19 -0
- package/dist/types.cjs.map +6 -0
- package/dist/types.d.ts +239 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +6 -0
- package/dist/utils.cjs +182 -0
- package/dist/utils.cjs.map +6 -0
- package/dist/utils.d.ts +22 -0
- package/dist/utils.mjs +145 -0
- package/dist/utils.mjs.map +6 -0
- package/package.json +29 -27
- package/src/client.ts +25 -23
- package/src/cluster.ts +6 -3
- package/src/connection.ts +8 -4
- package/src/decode.ts +5 -2
- package/src/encode.ts +5 -2
- package/src/fake.ts +34 -33
- package/src/internals.ts +7 -7
- package/src/server.ts +47 -45
- package/src/utils.ts +7 -4
- package/dist/index.js +0 -1496
- package/dist/index.js.map +0 -6
- package/index.d.ts +0 -710
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// connection.ts
|
|
2
|
+
import assert from "node:assert";
|
|
3
|
+
import net from "node:net";
|
|
4
|
+
import { Encoder } from "./encode.mjs";
|
|
5
|
+
import { Decoder } from "./decode.mjs";
|
|
6
|
+
import { BUFFERS, OPCODE } from "./constants.mjs";
|
|
7
|
+
import { socketFinalizationRegistry } from "./internals.mjs";
|
|
8
|
+
var Deferred = class {
|
|
9
|
+
#resolve;
|
|
10
|
+
#reject;
|
|
11
|
+
#packets = [];
|
|
12
|
+
promise;
|
|
13
|
+
opcode;
|
|
14
|
+
constructor(opcode) {
|
|
15
|
+
this.opcode = opcode;
|
|
16
|
+
this.promise = new Promise((resolve, reject) => {
|
|
17
|
+
this.#resolve = resolve;
|
|
18
|
+
this.#reject = reject;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
append(packet) {
|
|
22
|
+
this.#packets.push(packet);
|
|
23
|
+
}
|
|
24
|
+
resolve(packet) {
|
|
25
|
+
this.#packets.push(packet);
|
|
26
|
+
this.#resolve(this.#packets);
|
|
27
|
+
}
|
|
28
|
+
reject(error) {
|
|
29
|
+
this.#reject(error);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var Connection = class {
|
|
33
|
+
#decoder = new Decoder((packet) => this.#receive(packet));
|
|
34
|
+
#encoder = new Encoder();
|
|
35
|
+
#buffer = Buffer.allocUnsafeSlow(BUFFERS.BUFFER_SIZE);
|
|
36
|
+
#defers = /* @__PURE__ */ new Map();
|
|
37
|
+
#factory;
|
|
38
|
+
#socket;
|
|
39
|
+
#sequence = 0;
|
|
40
|
+
#timeout;
|
|
41
|
+
#host;
|
|
42
|
+
#port;
|
|
43
|
+
constructor(options) {
|
|
44
|
+
assert(options, "No options specified");
|
|
45
|
+
const {
|
|
46
|
+
host,
|
|
47
|
+
port = 11211,
|
|
48
|
+
timeout = 1e3,
|
|
49
|
+
factory = net.connect
|
|
50
|
+
} = options;
|
|
51
|
+
this.#factory = factory;
|
|
52
|
+
assert(host, "No host name specified");
|
|
53
|
+
assert(port > 0 && port < 65536 && Math.floor(port) == port, `Invalid port ${port}`);
|
|
54
|
+
this.#timeout = timeout;
|
|
55
|
+
this.#host = host;
|
|
56
|
+
this.#port = port;
|
|
57
|
+
}
|
|
58
|
+
/* ======================================================================== */
|
|
59
|
+
get connected() {
|
|
60
|
+
return !!this.#socket;
|
|
61
|
+
}
|
|
62
|
+
get host() {
|
|
63
|
+
return this.#host;
|
|
64
|
+
}
|
|
65
|
+
get port() {
|
|
66
|
+
return this.#port;
|
|
67
|
+
}
|
|
68
|
+
get timeout() {
|
|
69
|
+
return this.#timeout;
|
|
70
|
+
}
|
|
71
|
+
/* ======================================================================== */
|
|
72
|
+
#connect() {
|
|
73
|
+
return this.#socket || (this.#socket = new Promise((resolve, reject) => {
|
|
74
|
+
const socket = this.#factory({
|
|
75
|
+
host: this.#host,
|
|
76
|
+
port: this.#port,
|
|
77
|
+
timeout: this.#timeout,
|
|
78
|
+
onread: {
|
|
79
|
+
buffer: this.#buffer,
|
|
80
|
+
callback: (bytes, buffer) => {
|
|
81
|
+
this.#decoder.append(buffer, 0, bytes);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
socket.on("timeout", () => socket.destroy(new Error("Timeout")));
|
|
87
|
+
socket.on("error", reject);
|
|
88
|
+
socket.on("close", () => {
|
|
89
|
+
socketFinalizationRegistry.unregister(this);
|
|
90
|
+
this.#socket = void 0;
|
|
91
|
+
});
|
|
92
|
+
socket.on("connect", () => {
|
|
93
|
+
socketFinalizationRegistry.register(this, socket, this);
|
|
94
|
+
socket.off("error", reject);
|
|
95
|
+
socket.on("error", (error) => {
|
|
96
|
+
for (const deferred of this.#defers.values()) {
|
|
97
|
+
process.nextTick(() => deferred.reject(error));
|
|
98
|
+
}
|
|
99
|
+
this.#defers.clear();
|
|
100
|
+
this.#socket = void 0;
|
|
101
|
+
});
|
|
102
|
+
socket.unref();
|
|
103
|
+
resolve(socket);
|
|
104
|
+
});
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
#receive(packet) {
|
|
108
|
+
const deferred = this.#defers.get(packet.sequence);
|
|
109
|
+
if (deferred) {
|
|
110
|
+
if (deferred.opcode === packet.opcode) {
|
|
111
|
+
if (packet.opcode === OPCODE.STAT && packet.key.length !== 0) {
|
|
112
|
+
return deferred.append(packet);
|
|
113
|
+
}
|
|
114
|
+
return deferred.resolve(packet);
|
|
115
|
+
} else {
|
|
116
|
+
const sent = `0x${deferred.opcode.toString(16).padStart(2, "0")}`;
|
|
117
|
+
const received = `0x${packet.opcode.toString(16).padStart(2, "0")}`;
|
|
118
|
+
return deferred.reject(new Error(`Opcode mismatch (sent=${sent}, received=${received})`));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async send(packet) {
|
|
123
|
+
const sequence = ++this.#sequence;
|
|
124
|
+
const buffer = this.#encoder.encode(packet, sequence);
|
|
125
|
+
const deferred = new Deferred(packet.opcode);
|
|
126
|
+
this.#defers.set(sequence, deferred);
|
|
127
|
+
const socket = await this.#connect();
|
|
128
|
+
socket.write(buffer, (error) => {
|
|
129
|
+
buffer.recycle();
|
|
130
|
+
if (error)
|
|
131
|
+
return deferred.reject(error);
|
|
132
|
+
});
|
|
133
|
+
const timeout = setTimeout(() => deferred.reject(new Error("No response")), this.#timeout);
|
|
134
|
+
return deferred.promise.finally(() => {
|
|
135
|
+
clearTimeout(timeout);
|
|
136
|
+
this.#defers.delete(sequence);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
async destroy() {
|
|
140
|
+
const socket = await this.#socket;
|
|
141
|
+
if (!socket)
|
|
142
|
+
return false;
|
|
143
|
+
return new Promise((resolve, reject) => {
|
|
144
|
+
socket.once("error", reject).once("close", resolve).destroy();
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
export {
|
|
149
|
+
Connection
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=connection.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/connection.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// constants.ts
|
|
21
|
+
var constants_exports = {};
|
|
22
|
+
__export(constants_exports, {
|
|
23
|
+
BUFFERS: () => BUFFERS,
|
|
24
|
+
DATA_TYPE: () => DATA_TYPE,
|
|
25
|
+
EMPTY_BUFFER: () => EMPTY_BUFFER,
|
|
26
|
+
FLAGS: () => FLAGS,
|
|
27
|
+
MAGIC: () => MAGIC,
|
|
28
|
+
OFFSETS: () => OFFSETS,
|
|
29
|
+
OPCODE: () => OPCODE,
|
|
30
|
+
STATUS: () => STATUS,
|
|
31
|
+
VBUCKET: () => VBUCKET
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(constants_exports);
|
|
34
|
+
var EMPTY_BUFFER = Buffer.alloc(0);
|
|
35
|
+
var FLAGS = /* @__PURE__ */ ((FLAGS2) => {
|
|
36
|
+
FLAGS2[FLAGS2["BUFFER"] = 0] = "BUFFER";
|
|
37
|
+
FLAGS2[FLAGS2["BIGINT"] = 3402235904] = "BIGINT";
|
|
38
|
+
FLAGS2[FLAGS2["BOOLEAN"] = 3402235905] = "BOOLEAN";
|
|
39
|
+
FLAGS2[FLAGS2["NUMBER"] = 3402235906] = "NUMBER";
|
|
40
|
+
FLAGS2[FLAGS2["STRING"] = 3402235907] = "STRING";
|
|
41
|
+
FLAGS2[FLAGS2["NULL"] = 3402235918] = "NULL";
|
|
42
|
+
FLAGS2[FLAGS2["JSON"] = 3402235919] = "JSON";
|
|
43
|
+
FLAGS2[FLAGS2["UINT8ARRAY"] = 3402235920] = "UINT8ARRAY";
|
|
44
|
+
FLAGS2[FLAGS2["UINT8CLAMPEDARRAY"] = 3402235921] = "UINT8CLAMPEDARRAY";
|
|
45
|
+
FLAGS2[FLAGS2["UINT16ARRAY"] = 3402235922] = "UINT16ARRAY";
|
|
46
|
+
FLAGS2[FLAGS2["UINT32ARRAY"] = 3402235923] = "UINT32ARRAY";
|
|
47
|
+
FLAGS2[FLAGS2["INT8ARRAY"] = 3402235924] = "INT8ARRAY";
|
|
48
|
+
FLAGS2[FLAGS2["INT16ARRAY"] = 3402235925] = "INT16ARRAY";
|
|
49
|
+
FLAGS2[FLAGS2["INT32ARRAY"] = 3402235926] = "INT32ARRAY";
|
|
50
|
+
FLAGS2[FLAGS2["BIGUINT64ARRAY"] = 3402235927] = "BIGUINT64ARRAY";
|
|
51
|
+
FLAGS2[FLAGS2["BIGINT64ARRAY"] = 3402235928] = "BIGINT64ARRAY";
|
|
52
|
+
FLAGS2[FLAGS2["FLOAT32ARRAY"] = 3402235929] = "FLOAT32ARRAY";
|
|
53
|
+
FLAGS2[FLAGS2["FLOAT64ARRAY"] = 3402235930] = "FLOAT64ARRAY";
|
|
54
|
+
return FLAGS2;
|
|
55
|
+
})(FLAGS || {});
|
|
56
|
+
var BUFFERS = /* @__PURE__ */ ((BUFFERS2) => {
|
|
57
|
+
BUFFERS2[BUFFERS2["POOL_SIZE"] = 64] = "POOL_SIZE";
|
|
58
|
+
BUFFERS2[BUFFERS2["BUFFER_SIZE"] = 8192] = "BUFFER_SIZE";
|
|
59
|
+
BUFFERS2[BUFFERS2["HEADER_SIZE"] = 24] = "HEADER_SIZE";
|
|
60
|
+
BUFFERS2[BUFFERS2["KEY_SIZE"] = 250] = "KEY_SIZE";
|
|
61
|
+
BUFFERS2[BUFFERS2["KEY_TOO_BIG"] = 251] = "KEY_TOO_BIG";
|
|
62
|
+
return BUFFERS2;
|
|
63
|
+
})(BUFFERS || {});
|
|
64
|
+
var OFFSETS = /* @__PURE__ */ ((OFFSETS2) => {
|
|
65
|
+
OFFSETS2[OFFSETS2["MAGIC_$8"] = 0] = "MAGIC_$8";
|
|
66
|
+
OFFSETS2[OFFSETS2["OPCODE_$8"] = 1] = "OPCODE_$8";
|
|
67
|
+
OFFSETS2[OFFSETS2["KEY_LENGTH_$16"] = 2] = "KEY_LENGTH_$16";
|
|
68
|
+
OFFSETS2[OFFSETS2["EXTRAS_LENGTH_$8"] = 4] = "EXTRAS_LENGTH_$8";
|
|
69
|
+
OFFSETS2[OFFSETS2["DATA_TYPE_$8"] = 5] = "DATA_TYPE_$8";
|
|
70
|
+
OFFSETS2[OFFSETS2["STATUS_$16"] = 6] = "STATUS_$16";
|
|
71
|
+
OFFSETS2[OFFSETS2["BODY_LENGTH_$32"] = 8] = "BODY_LENGTH_$32";
|
|
72
|
+
OFFSETS2[OFFSETS2["SEQUENCE_$32"] = 12] = "SEQUENCE_$32";
|
|
73
|
+
OFFSETS2[OFFSETS2["CAS_$64"] = 16] = "CAS_$64";
|
|
74
|
+
OFFSETS2[OFFSETS2["BODY"] = 24] = "BODY";
|
|
75
|
+
return OFFSETS2;
|
|
76
|
+
})(OFFSETS || {});
|
|
77
|
+
var MAGIC = /* @__PURE__ */ ((MAGIC2) => {
|
|
78
|
+
MAGIC2[MAGIC2["REQUEST"] = 128] = "REQUEST";
|
|
79
|
+
MAGIC2[MAGIC2["RESPONSE"] = 129] = "RESPONSE";
|
|
80
|
+
return MAGIC2;
|
|
81
|
+
})(MAGIC || {});
|
|
82
|
+
var STATUS = /* @__PURE__ */ ((STATUS2) => {
|
|
83
|
+
STATUS2[STATUS2["OK"] = 0] = "OK";
|
|
84
|
+
STATUS2[STATUS2["KEY_NOT_FOUND"] = 1] = "KEY_NOT_FOUND";
|
|
85
|
+
STATUS2[STATUS2["KEY_EXISTS"] = 2] = "KEY_EXISTS";
|
|
86
|
+
STATUS2[STATUS2["TOO_LARGE"] = 3] = "TOO_LARGE";
|
|
87
|
+
STATUS2[STATUS2["INVALID_ARGS"] = 4] = "INVALID_ARGS";
|
|
88
|
+
STATUS2[STATUS2["ITEM_NOT_STORED"] = 5] = "ITEM_NOT_STORED";
|
|
89
|
+
STATUS2[STATUS2["NON_NUMERIC_VALUE"] = 6] = "NON_NUMERIC_VALUE";
|
|
90
|
+
STATUS2[STATUS2["WRONG_VBUCKET"] = 7] = "WRONG_VBUCKET";
|
|
91
|
+
STATUS2[STATUS2["AUTH_ERROR"] = 8] = "AUTH_ERROR";
|
|
92
|
+
STATUS2[STATUS2["AUTH_CONTINUE"] = 9] = "AUTH_CONTINUE";
|
|
93
|
+
STATUS2[STATUS2["UNKNOWN_COMMAND"] = 129] = "UNKNOWN_COMMAND";
|
|
94
|
+
STATUS2[STATUS2["OUT_OF_MEMORY"] = 130] = "OUT_OF_MEMORY";
|
|
95
|
+
STATUS2[STATUS2["NOT_SUPPORTED"] = 131] = "NOT_SUPPORTED";
|
|
96
|
+
STATUS2[STATUS2["INTERNAL_ERROR"] = 132] = "INTERNAL_ERROR";
|
|
97
|
+
STATUS2[STATUS2["BUSY"] = 133] = "BUSY";
|
|
98
|
+
STATUS2[STATUS2["TEMPORARY_FAILURE"] = 134] = "TEMPORARY_FAILURE";
|
|
99
|
+
return STATUS2;
|
|
100
|
+
})(STATUS || {});
|
|
101
|
+
var OPCODE = /* @__PURE__ */ ((OPCODE2) => {
|
|
102
|
+
OPCODE2[OPCODE2["GET"] = 0] = "GET";
|
|
103
|
+
OPCODE2[OPCODE2["SET"] = 1] = "SET";
|
|
104
|
+
OPCODE2[OPCODE2["ADD"] = 2] = "ADD";
|
|
105
|
+
OPCODE2[OPCODE2["REPLACE"] = 3] = "REPLACE";
|
|
106
|
+
OPCODE2[OPCODE2["DELETE"] = 4] = "DELETE";
|
|
107
|
+
OPCODE2[OPCODE2["INCREMENT"] = 5] = "INCREMENT";
|
|
108
|
+
OPCODE2[OPCODE2["DECREMENT"] = 6] = "DECREMENT";
|
|
109
|
+
OPCODE2[OPCODE2["QUIT"] = 7] = "QUIT";
|
|
110
|
+
OPCODE2[OPCODE2["FLUSH"] = 8] = "FLUSH";
|
|
111
|
+
OPCODE2[OPCODE2["NOOP"] = 10] = "NOOP";
|
|
112
|
+
OPCODE2[OPCODE2["VERSION"] = 11] = "VERSION";
|
|
113
|
+
OPCODE2[OPCODE2["APPEND"] = 14] = "APPEND";
|
|
114
|
+
OPCODE2[OPCODE2["PREPEND"] = 15] = "PREPEND";
|
|
115
|
+
OPCODE2[OPCODE2["STAT"] = 16] = "STAT";
|
|
116
|
+
OPCODE2[OPCODE2["TOUCH"] = 28] = "TOUCH";
|
|
117
|
+
OPCODE2[OPCODE2["GAT"] = 29] = "GAT";
|
|
118
|
+
return OPCODE2;
|
|
119
|
+
})(OPCODE || {});
|
|
120
|
+
var DATA_TYPE = /* @__PURE__ */ ((DATA_TYPE2) => {
|
|
121
|
+
DATA_TYPE2[DATA_TYPE2["RAW"] = 0] = "RAW";
|
|
122
|
+
return DATA_TYPE2;
|
|
123
|
+
})(DATA_TYPE || {});
|
|
124
|
+
var VBUCKET = /* @__PURE__ */ ((VBUCKET2) => {
|
|
125
|
+
VBUCKET2[VBUCKET2["NIL"] = 0] = "NIL";
|
|
126
|
+
return VBUCKET2;
|
|
127
|
+
})(VBUCKET || {});
|
|
128
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
129
|
+
0 && (module.exports = {
|
|
130
|
+
BUFFERS,
|
|
131
|
+
DATA_TYPE,
|
|
132
|
+
EMPTY_BUFFER,
|
|
133
|
+
FLAGS,
|
|
134
|
+
MAGIC,
|
|
135
|
+
OFFSETS,
|
|
136
|
+
OPCODE,
|
|
137
|
+
STATUS,
|
|
138
|
+
VBUCKET
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=constants.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/constants.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["FLAGS", "BUFFERS", "OFFSETS", "MAGIC", "STATUS", "OPCODE", "DATA_TYPE", "VBUCKET"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare const EMPTY_BUFFER: Buffer;
|
|
3
|
+
export declare enum FLAGS {
|
|
4
|
+
BUFFER = 0,
|
|
5
|
+
BIGINT = 3402235904,
|
|
6
|
+
BOOLEAN = 3402235905,
|
|
7
|
+
NUMBER = 3402235906,
|
|
8
|
+
STRING = 3402235907,
|
|
9
|
+
NULL = 3402235918,
|
|
10
|
+
JSON = 3402235919,
|
|
11
|
+
UINT8ARRAY = 3402235920,
|
|
12
|
+
UINT8CLAMPEDARRAY = 3402235921,
|
|
13
|
+
UINT16ARRAY = 3402235922,
|
|
14
|
+
UINT32ARRAY = 3402235923,
|
|
15
|
+
INT8ARRAY = 3402235924,
|
|
16
|
+
INT16ARRAY = 3402235925,
|
|
17
|
+
INT32ARRAY = 3402235926,
|
|
18
|
+
BIGUINT64ARRAY = 3402235927,
|
|
19
|
+
BIGINT64ARRAY = 3402235928,
|
|
20
|
+
FLOAT32ARRAY = 3402235929,
|
|
21
|
+
FLOAT64ARRAY = 3402235930
|
|
22
|
+
}
|
|
23
|
+
export declare enum BUFFERS {
|
|
24
|
+
POOL_SIZE = 64,
|
|
25
|
+
BUFFER_SIZE = 8192,
|
|
26
|
+
HEADER_SIZE = 24,
|
|
27
|
+
KEY_SIZE = 250,
|
|
28
|
+
KEY_TOO_BIG = 251
|
|
29
|
+
}
|
|
30
|
+
export declare enum OFFSETS {
|
|
31
|
+
MAGIC_$8 = 0,
|
|
32
|
+
OPCODE_$8 = 1,
|
|
33
|
+
KEY_LENGTH_$16 = 2,
|
|
34
|
+
EXTRAS_LENGTH_$8 = 4,
|
|
35
|
+
DATA_TYPE_$8 = 5,
|
|
36
|
+
STATUS_$16 = 6,
|
|
37
|
+
BODY_LENGTH_$32 = 8,
|
|
38
|
+
SEQUENCE_$32 = 12,
|
|
39
|
+
CAS_$64 = 16,
|
|
40
|
+
BODY = 24
|
|
41
|
+
}
|
|
42
|
+
export declare enum MAGIC {
|
|
43
|
+
REQUEST = 128,
|
|
44
|
+
RESPONSE = 129
|
|
45
|
+
}
|
|
46
|
+
export declare enum STATUS {
|
|
47
|
+
OK = 0,
|
|
48
|
+
KEY_NOT_FOUND = 1,
|
|
49
|
+
KEY_EXISTS = 2,
|
|
50
|
+
TOO_LARGE = 3,
|
|
51
|
+
INVALID_ARGS = 4,
|
|
52
|
+
ITEM_NOT_STORED = 5,
|
|
53
|
+
NON_NUMERIC_VALUE = 6,
|
|
54
|
+
WRONG_VBUCKET = 7,
|
|
55
|
+
AUTH_ERROR = 8,
|
|
56
|
+
AUTH_CONTINUE = 9,
|
|
57
|
+
UNKNOWN_COMMAND = 129,
|
|
58
|
+
OUT_OF_MEMORY = 130,
|
|
59
|
+
NOT_SUPPORTED = 131,
|
|
60
|
+
INTERNAL_ERROR = 132,
|
|
61
|
+
BUSY = 133,
|
|
62
|
+
TEMPORARY_FAILURE = 134
|
|
63
|
+
}
|
|
64
|
+
export declare enum OPCODE {
|
|
65
|
+
GET = 0,
|
|
66
|
+
SET = 1,
|
|
67
|
+
ADD = 2,
|
|
68
|
+
REPLACE = 3,
|
|
69
|
+
DELETE = 4,
|
|
70
|
+
INCREMENT = 5,
|
|
71
|
+
DECREMENT = 6,
|
|
72
|
+
QUIT = 7,
|
|
73
|
+
FLUSH = 8,
|
|
74
|
+
NOOP = 10,
|
|
75
|
+
VERSION = 11,
|
|
76
|
+
APPEND = 14,
|
|
77
|
+
PREPEND = 15,
|
|
78
|
+
STAT = 16,
|
|
79
|
+
TOUCH = 28,
|
|
80
|
+
GAT = 29
|
|
81
|
+
}
|
|
82
|
+
export declare enum DATA_TYPE {
|
|
83
|
+
RAW = 0
|
|
84
|
+
}
|
|
85
|
+
export declare enum VBUCKET {
|
|
86
|
+
NIL = 0
|
|
87
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// constants.ts
|
|
2
|
+
var EMPTY_BUFFER = Buffer.alloc(0);
|
|
3
|
+
var FLAGS = /* @__PURE__ */ ((FLAGS2) => {
|
|
4
|
+
FLAGS2[FLAGS2["BUFFER"] = 0] = "BUFFER";
|
|
5
|
+
FLAGS2[FLAGS2["BIGINT"] = 3402235904] = "BIGINT";
|
|
6
|
+
FLAGS2[FLAGS2["BOOLEAN"] = 3402235905] = "BOOLEAN";
|
|
7
|
+
FLAGS2[FLAGS2["NUMBER"] = 3402235906] = "NUMBER";
|
|
8
|
+
FLAGS2[FLAGS2["STRING"] = 3402235907] = "STRING";
|
|
9
|
+
FLAGS2[FLAGS2["NULL"] = 3402235918] = "NULL";
|
|
10
|
+
FLAGS2[FLAGS2["JSON"] = 3402235919] = "JSON";
|
|
11
|
+
FLAGS2[FLAGS2["UINT8ARRAY"] = 3402235920] = "UINT8ARRAY";
|
|
12
|
+
FLAGS2[FLAGS2["UINT8CLAMPEDARRAY"] = 3402235921] = "UINT8CLAMPEDARRAY";
|
|
13
|
+
FLAGS2[FLAGS2["UINT16ARRAY"] = 3402235922] = "UINT16ARRAY";
|
|
14
|
+
FLAGS2[FLAGS2["UINT32ARRAY"] = 3402235923] = "UINT32ARRAY";
|
|
15
|
+
FLAGS2[FLAGS2["INT8ARRAY"] = 3402235924] = "INT8ARRAY";
|
|
16
|
+
FLAGS2[FLAGS2["INT16ARRAY"] = 3402235925] = "INT16ARRAY";
|
|
17
|
+
FLAGS2[FLAGS2["INT32ARRAY"] = 3402235926] = "INT32ARRAY";
|
|
18
|
+
FLAGS2[FLAGS2["BIGUINT64ARRAY"] = 3402235927] = "BIGUINT64ARRAY";
|
|
19
|
+
FLAGS2[FLAGS2["BIGINT64ARRAY"] = 3402235928] = "BIGINT64ARRAY";
|
|
20
|
+
FLAGS2[FLAGS2["FLOAT32ARRAY"] = 3402235929] = "FLOAT32ARRAY";
|
|
21
|
+
FLAGS2[FLAGS2["FLOAT64ARRAY"] = 3402235930] = "FLOAT64ARRAY";
|
|
22
|
+
return FLAGS2;
|
|
23
|
+
})(FLAGS || {});
|
|
24
|
+
var BUFFERS = /* @__PURE__ */ ((BUFFERS2) => {
|
|
25
|
+
BUFFERS2[BUFFERS2["POOL_SIZE"] = 64] = "POOL_SIZE";
|
|
26
|
+
BUFFERS2[BUFFERS2["BUFFER_SIZE"] = 8192] = "BUFFER_SIZE";
|
|
27
|
+
BUFFERS2[BUFFERS2["HEADER_SIZE"] = 24] = "HEADER_SIZE";
|
|
28
|
+
BUFFERS2[BUFFERS2["KEY_SIZE"] = 250] = "KEY_SIZE";
|
|
29
|
+
BUFFERS2[BUFFERS2["KEY_TOO_BIG"] = 251] = "KEY_TOO_BIG";
|
|
30
|
+
return BUFFERS2;
|
|
31
|
+
})(BUFFERS || {});
|
|
32
|
+
var OFFSETS = /* @__PURE__ */ ((OFFSETS2) => {
|
|
33
|
+
OFFSETS2[OFFSETS2["MAGIC_$8"] = 0] = "MAGIC_$8";
|
|
34
|
+
OFFSETS2[OFFSETS2["OPCODE_$8"] = 1] = "OPCODE_$8";
|
|
35
|
+
OFFSETS2[OFFSETS2["KEY_LENGTH_$16"] = 2] = "KEY_LENGTH_$16";
|
|
36
|
+
OFFSETS2[OFFSETS2["EXTRAS_LENGTH_$8"] = 4] = "EXTRAS_LENGTH_$8";
|
|
37
|
+
OFFSETS2[OFFSETS2["DATA_TYPE_$8"] = 5] = "DATA_TYPE_$8";
|
|
38
|
+
OFFSETS2[OFFSETS2["STATUS_$16"] = 6] = "STATUS_$16";
|
|
39
|
+
OFFSETS2[OFFSETS2["BODY_LENGTH_$32"] = 8] = "BODY_LENGTH_$32";
|
|
40
|
+
OFFSETS2[OFFSETS2["SEQUENCE_$32"] = 12] = "SEQUENCE_$32";
|
|
41
|
+
OFFSETS2[OFFSETS2["CAS_$64"] = 16] = "CAS_$64";
|
|
42
|
+
OFFSETS2[OFFSETS2["BODY"] = 24] = "BODY";
|
|
43
|
+
return OFFSETS2;
|
|
44
|
+
})(OFFSETS || {});
|
|
45
|
+
var MAGIC = /* @__PURE__ */ ((MAGIC2) => {
|
|
46
|
+
MAGIC2[MAGIC2["REQUEST"] = 128] = "REQUEST";
|
|
47
|
+
MAGIC2[MAGIC2["RESPONSE"] = 129] = "RESPONSE";
|
|
48
|
+
return MAGIC2;
|
|
49
|
+
})(MAGIC || {});
|
|
50
|
+
var STATUS = /* @__PURE__ */ ((STATUS2) => {
|
|
51
|
+
STATUS2[STATUS2["OK"] = 0] = "OK";
|
|
52
|
+
STATUS2[STATUS2["KEY_NOT_FOUND"] = 1] = "KEY_NOT_FOUND";
|
|
53
|
+
STATUS2[STATUS2["KEY_EXISTS"] = 2] = "KEY_EXISTS";
|
|
54
|
+
STATUS2[STATUS2["TOO_LARGE"] = 3] = "TOO_LARGE";
|
|
55
|
+
STATUS2[STATUS2["INVALID_ARGS"] = 4] = "INVALID_ARGS";
|
|
56
|
+
STATUS2[STATUS2["ITEM_NOT_STORED"] = 5] = "ITEM_NOT_STORED";
|
|
57
|
+
STATUS2[STATUS2["NON_NUMERIC_VALUE"] = 6] = "NON_NUMERIC_VALUE";
|
|
58
|
+
STATUS2[STATUS2["WRONG_VBUCKET"] = 7] = "WRONG_VBUCKET";
|
|
59
|
+
STATUS2[STATUS2["AUTH_ERROR"] = 8] = "AUTH_ERROR";
|
|
60
|
+
STATUS2[STATUS2["AUTH_CONTINUE"] = 9] = "AUTH_CONTINUE";
|
|
61
|
+
STATUS2[STATUS2["UNKNOWN_COMMAND"] = 129] = "UNKNOWN_COMMAND";
|
|
62
|
+
STATUS2[STATUS2["OUT_OF_MEMORY"] = 130] = "OUT_OF_MEMORY";
|
|
63
|
+
STATUS2[STATUS2["NOT_SUPPORTED"] = 131] = "NOT_SUPPORTED";
|
|
64
|
+
STATUS2[STATUS2["INTERNAL_ERROR"] = 132] = "INTERNAL_ERROR";
|
|
65
|
+
STATUS2[STATUS2["BUSY"] = 133] = "BUSY";
|
|
66
|
+
STATUS2[STATUS2["TEMPORARY_FAILURE"] = 134] = "TEMPORARY_FAILURE";
|
|
67
|
+
return STATUS2;
|
|
68
|
+
})(STATUS || {});
|
|
69
|
+
var OPCODE = /* @__PURE__ */ ((OPCODE2) => {
|
|
70
|
+
OPCODE2[OPCODE2["GET"] = 0] = "GET";
|
|
71
|
+
OPCODE2[OPCODE2["SET"] = 1] = "SET";
|
|
72
|
+
OPCODE2[OPCODE2["ADD"] = 2] = "ADD";
|
|
73
|
+
OPCODE2[OPCODE2["REPLACE"] = 3] = "REPLACE";
|
|
74
|
+
OPCODE2[OPCODE2["DELETE"] = 4] = "DELETE";
|
|
75
|
+
OPCODE2[OPCODE2["INCREMENT"] = 5] = "INCREMENT";
|
|
76
|
+
OPCODE2[OPCODE2["DECREMENT"] = 6] = "DECREMENT";
|
|
77
|
+
OPCODE2[OPCODE2["QUIT"] = 7] = "QUIT";
|
|
78
|
+
OPCODE2[OPCODE2["FLUSH"] = 8] = "FLUSH";
|
|
79
|
+
OPCODE2[OPCODE2["NOOP"] = 10] = "NOOP";
|
|
80
|
+
OPCODE2[OPCODE2["VERSION"] = 11] = "VERSION";
|
|
81
|
+
OPCODE2[OPCODE2["APPEND"] = 14] = "APPEND";
|
|
82
|
+
OPCODE2[OPCODE2["PREPEND"] = 15] = "PREPEND";
|
|
83
|
+
OPCODE2[OPCODE2["STAT"] = 16] = "STAT";
|
|
84
|
+
OPCODE2[OPCODE2["TOUCH"] = 28] = "TOUCH";
|
|
85
|
+
OPCODE2[OPCODE2["GAT"] = 29] = "GAT";
|
|
86
|
+
return OPCODE2;
|
|
87
|
+
})(OPCODE || {});
|
|
88
|
+
var DATA_TYPE = /* @__PURE__ */ ((DATA_TYPE2) => {
|
|
89
|
+
DATA_TYPE2[DATA_TYPE2["RAW"] = 0] = "RAW";
|
|
90
|
+
return DATA_TYPE2;
|
|
91
|
+
})(DATA_TYPE || {});
|
|
92
|
+
var VBUCKET = /* @__PURE__ */ ((VBUCKET2) => {
|
|
93
|
+
VBUCKET2[VBUCKET2["NIL"] = 0] = "NIL";
|
|
94
|
+
return VBUCKET2;
|
|
95
|
+
})(VBUCKET || {});
|
|
96
|
+
export {
|
|
97
|
+
BUFFERS,
|
|
98
|
+
DATA_TYPE,
|
|
99
|
+
EMPTY_BUFFER,
|
|
100
|
+
FLAGS,
|
|
101
|
+
MAGIC,
|
|
102
|
+
OFFSETS,
|
|
103
|
+
OPCODE,
|
|
104
|
+
STATUS,
|
|
105
|
+
VBUCKET
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/constants.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["FLAGS", "BUFFERS", "OFFSETS", "MAGIC", "STATUS", "OPCODE", "DATA_TYPE", "VBUCKET"]
|
|
6
|
+
}
|
package/dist/decode.cjs
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// decode.ts
|
|
31
|
+
var decode_exports = {};
|
|
32
|
+
__export(decode_exports, {
|
|
33
|
+
Decoder: () => Decoder
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(decode_exports);
|
|
36
|
+
var import_node_assert = __toESM(require("node:assert"));
|
|
37
|
+
var import_constants = require("./constants.cjs");
|
|
38
|
+
var import_buffers = require("./buffers.cjs");
|
|
39
|
+
var Decoder = class {
|
|
40
|
+
#consumer;
|
|
41
|
+
#header = Buffer.allocUnsafeSlow(24);
|
|
42
|
+
#body;
|
|
43
|
+
#pos = 0;
|
|
44
|
+
constructor(consumer) {
|
|
45
|
+
this.#consumer = consumer;
|
|
46
|
+
}
|
|
47
|
+
append(buffer, start, end) {
|
|
48
|
+
const header = this.#header;
|
|
49
|
+
while (start < end) {
|
|
50
|
+
if (this.#pos < 24) {
|
|
51
|
+
const copied = buffer.copy(header, this.#pos, start, end);
|
|
52
|
+
this.#pos += copied;
|
|
53
|
+
start += copied;
|
|
54
|
+
}
|
|
55
|
+
if (this.#pos < 24)
|
|
56
|
+
return;
|
|
57
|
+
let extras = import_constants.EMPTY_BUFFER;
|
|
58
|
+
let key = import_constants.EMPTY_BUFFER;
|
|
59
|
+
let value = import_constants.EMPTY_BUFFER;
|
|
60
|
+
let recycle = () => void 0;
|
|
61
|
+
const bodyLength = header.readUInt32BE(import_constants.OFFSETS.BODY_LENGTH_$32);
|
|
62
|
+
if (bodyLength) {
|
|
63
|
+
const body = this.#body || (this.#body = (0, import_buffers.allocateBuffer)(bodyLength));
|
|
64
|
+
const copied = buffer.copy(body, this.#pos - 24, start, end);
|
|
65
|
+
this.#pos += copied;
|
|
66
|
+
start += copied;
|
|
67
|
+
if (this.#pos - 24 < body.length)
|
|
68
|
+
return;
|
|
69
|
+
const keyLength = header.readUInt16BE(import_constants.OFFSETS.KEY_LENGTH_$16);
|
|
70
|
+
const extrasLength = header.readUInt8(import_constants.OFFSETS.EXTRAS_LENGTH_$8);
|
|
71
|
+
const valueLength = bodyLength - keyLength - extrasLength;
|
|
72
|
+
key = keyLength ? body.subarray(extrasLength, extrasLength + keyLength) : import_constants.EMPTY_BUFFER;
|
|
73
|
+
value = valueLength ? body.subarray(extrasLength + keyLength) : import_constants.EMPTY_BUFFER;
|
|
74
|
+
extras = extrasLength ? body.subarray(0, extrasLength) : import_constants.EMPTY_BUFFER;
|
|
75
|
+
recycle = () => void body.recycle();
|
|
76
|
+
}
|
|
77
|
+
const packet = {
|
|
78
|
+
opcode: header.readUInt8(import_constants.OFFSETS.OPCODE_$8),
|
|
79
|
+
status: header.readUInt16BE(import_constants.OFFSETS.STATUS_$16),
|
|
80
|
+
sequence: header.readUInt32BE(import_constants.OFFSETS.SEQUENCE_$32),
|
|
81
|
+
cas: header.readBigUInt64BE(import_constants.OFFSETS.CAS_$64),
|
|
82
|
+
extras,
|
|
83
|
+
key,
|
|
84
|
+
value,
|
|
85
|
+
recycle
|
|
86
|
+
};
|
|
87
|
+
const magic = header.readUInt8(import_constants.OFFSETS.MAGIC_$8);
|
|
88
|
+
const dataType = header.readUInt8(import_constants.OFFSETS.DATA_TYPE_$8);
|
|
89
|
+
import_node_assert.default.equal(magic, import_constants.MAGIC.RESPONSE, "Invalid magic in header");
|
|
90
|
+
import_node_assert.default.equal(dataType, import_constants.DATA_TYPE.RAW, "Invalid data type in header");
|
|
91
|
+
this.#pos = 0;
|
|
92
|
+
this.#body = void 0;
|
|
93
|
+
this.#consumer(packet);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
98
|
+
0 && (module.exports = {
|
|
99
|
+
Decoder
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=decode.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/decode.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAmB;AAEnB,uBAAwD;AACxD,qBAA+B;AA0BxB,IAAM,UAAN,MAAc;AAAA,EACnB;AAAA,EACA,UAAU,OAAO,gBAAgB,EAAE;AAAA,EACnC;AAAA,EACA,OAAO;AAAA,EAEP,YAAY,UAA+C;AACzD,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,OAAO,QAAgB,OAAe,KAAmB;AACvD,UAAM,SAAS,KAAK;AAEpB,WAAO,QAAQ,KAAK;AAClB,UAAI,KAAK,OAAO,IAAI;AAClB,cAAM,SAAS,OAAO,KAAK,QAAQ,KAAK,MAAM,OAAO,GAAG;AACxD,aAAK,QAAQ;AACb,iBAAS;AAAA,MACX;AAEA,UAAI,KAAK,OAAO;AAAI;AAEpB,UAAI,SAAS;AACb,UAAI,MAAM;AACV,UAAI,QAAQ;AACZ,UAAI,UAAU,MAAM;AAEpB,YAAM,aAAa,OAAO,aAAa,yBAAQ,eAAe;AAC9D,UAAI,YAAY;AACd,cAAM,OAAO,KAAK,UAAU,KAAK,YAAQ,+BAAe,UAAU;AAElE,cAAM,SAAS,OAAO,KAAK,MAAM,KAAK,OAAO,IAAI,OAAO,GAAG;AAC3D,aAAK,QAAQ;AACb,iBAAS;AAET,YAAI,KAAK,OAAO,KAAK,KAAK;AAAQ;AAElC,cAAM,YAAY,OAAO,aAAa,yBAAQ,cAAc;AAC5D,cAAM,eAAe,OAAO,UAAU,yBAAQ,gBAAgB;AAC9D,cAAM,cAAc,aAAa,YAAY;AAE7C,cAAM,YAAY,KAAK,SAAS,cAAc,eAAe,SAAS,IAAI;AAC1E,gBAAQ,cAAc,KAAK,SAAS,eAAe,SAAS,IAAI;AAChE,iBAAS,eAAe,KAAK,SAAS,GAAG,YAAY,IAAI;AACzD,kBAAU,MAAM,KAAK,KAAK,QAAQ;AAAA,MACpC;AAEA,YAAM,SAA4B;AAAA,QAChC,QAAQ,OAAO,UAAU,yBAAQ,SAAS;AAAA,QAC1C,QAAQ,OAAO,aAAa,yBAAQ,UAAU;AAAA,QAC9C,UAAU,OAAO,aAAa,yBAAQ,YAAY;AAAA,QAClD,KAAK,OAAO,gBAAgB,yBAAQ,OAAO;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,YAAM,QAAQ,OAAO,UAAU,yBAAQ,QAAQ;AAC/C,YAAM,WAAW,OAAO,UAAU,yBAAQ,YAAY;AACtD,yBAAAA,QAAO,MAAM,OAAO,uBAAM,UAAU,yBAAyB;AAC7D,yBAAAA,QAAO,MAAM,UAAU,2BAAU,KAAK,6BAA6B;AAEnE,WAAK,OAAO;AACZ,WAAK,QAAQ;AACb,WAAK,UAAU,MAAM;AAAA,IACvB;AAAA,EACF;AACF;",
|
|
5
|
+
"names": ["assert"]
|
|
6
|
+
}
|
package/dist/decode.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export interface RawIncomingPacket {
|
|
3
|
+
readonly opcode: number;
|
|
4
|
+
readonly status: number;
|
|
5
|
+
readonly sequence: number;
|
|
6
|
+
readonly cas: bigint;
|
|
7
|
+
readonly extras: Buffer;
|
|
8
|
+
readonly key: Buffer;
|
|
9
|
+
readonly value: Buffer;
|
|
10
|
+
recycle: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare class Decoder {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(consumer: (packet: RawIncomingPacket) => void);
|
|
15
|
+
append(buffer: Buffer, start: number, end: number): void;
|
|
16
|
+
}
|