mdbxmou 0.2.2 → 0.2.5

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/lib/types.d.ts ADDED
@@ -0,0 +1,260 @@
1
+ /// <reference types="node" />
2
+
3
+ export type MDBXKey = Buffer | string | number | bigint;
4
+ export type MDBXValue = Buffer | string;
5
+
6
+ export type MDBXCursorMode =
7
+ | number
8
+ | "first"
9
+ | "last"
10
+ | "next"
11
+ | "prev"
12
+ | "keyLesser"
13
+ | "keyLesserThan"
14
+ | "key_lesser_than"
15
+ | "keyLesserOrEqual"
16
+ | "key_lesser_or_equal"
17
+ | "keyEqual"
18
+ | "key_equal"
19
+ | "keyGreaterOrEqual"
20
+ | "key_greater_or_equal"
21
+ | "keyGreater"
22
+ | "keyGreaterThan"
23
+ | "key_greater_than"
24
+ | "multiExactKeyValueLesserThan"
25
+ | "multi_exactkey_value_lesser_than"
26
+ | "multiExactKeyValueLesserOrEqual"
27
+ | "multi_exactkey_value_lesser_or_equal"
28
+ | "multiExactKeyValueEqual"
29
+ | "multi_exactkey_value_equal"
30
+ | "multiExactKeyValueGreaterOrEqual"
31
+ | "multi_exactkey_value_greater_or_equal"
32
+ | "multiExactKeyValueGreater"
33
+ | "multi_exactkey_value_greater";
34
+
35
+ export interface MDBXEnvGeometryFixed {
36
+ fixedSize: number;
37
+ }
38
+
39
+ export interface MDBXEnvGeometryDynamic {
40
+ dynamicSize: [number, number];
41
+ }
42
+
43
+ export interface MDBXEnvGeometryCustom {
44
+ sizeNow?: number;
45
+ sizeUpper?: number;
46
+ growthStep?: number;
47
+ shrinkThreshold?: number;
48
+ pageSize?: number;
49
+ }
50
+
51
+ export type MDBXEnvGeometry =
52
+ | MDBXEnvGeometryFixed
53
+ | MDBXEnvGeometryDynamic
54
+ | MDBXEnvGeometryCustom;
55
+
56
+ export interface MDBXEnvOpenOptions {
57
+ path: string;
58
+ flags?: number;
59
+ keyFlag?: number;
60
+ valueFlag?: number;
61
+ maxDbi?: number;
62
+ mode?: number;
63
+ geometry?: MDBXEnvGeometry;
64
+ }
65
+
66
+ export interface MDBXDbiStat {
67
+ pageSize: number;
68
+ depth: number;
69
+ branchPages: number;
70
+ leafPages: number;
71
+ overflowPages: number;
72
+ entries: number;
73
+ modTxnId: number;
74
+ }
75
+
76
+ export interface MDBX_Dbi<K extends MDBXKey = MDBXKey, V extends MDBXValue = MDBXValue> {
77
+ readonly id: bigint;
78
+ readonly dbMode: number;
79
+ readonly keyMode: number;
80
+ readonly valueMode: number;
81
+ readonly keyFlag: number;
82
+ readonly valueFlag: number;
83
+
84
+ put(txn: MDBX_Txn, key: K, value: MDBXValue): void;
85
+ get(txn: MDBX_Txn, key: K): V | undefined;
86
+ del(txn: MDBX_Txn, key: K): boolean;
87
+ has(txn: MDBX_Txn, key: K): boolean;
88
+
89
+ forEach(txn: MDBX_Txn, cb: (key: K, value: V, index: number) => boolean | void): number;
90
+ forEach(
91
+ txn: MDBX_Txn,
92
+ fromKey: K,
93
+ cb: (key: K, value: V, index: number) => boolean | void
94
+ ): number;
95
+ forEach(
96
+ txn: MDBX_Txn,
97
+ fromKey: K,
98
+ cursorMode: MDBXCursorMode,
99
+ cb: (key: K, value: V, index: number) => boolean | void
100
+ ): number;
101
+
102
+ stat(txn: MDBX_Txn): MDBXDbiStat;
103
+ keys(txn: MDBX_Txn): K[];
104
+ keysFrom(txn: MDBX_Txn, fromKey: K, limit?: number, cursorMode?: MDBXCursorMode): K[];
105
+ drop(txn: MDBX_Txn, deleteDb?: boolean): void;
106
+ }
107
+
108
+ export interface MDBX_Txn {
109
+ commit(): void;
110
+ abort(): void;
111
+
112
+ openMap(keyMode: number | bigint): MDBX_Dbi;
113
+ openMap(name: string): MDBX_Dbi;
114
+ openMap(name: string, keyMode: number | bigint): MDBX_Dbi;
115
+
116
+ createMap(keyMode: number | bigint): MDBX_Dbi;
117
+ createMap(name: string): MDBX_Dbi;
118
+ createMap(keyMode: number | bigint, valueMode: number): MDBX_Dbi;
119
+ createMap(name: string, keyMode: number | bigint): MDBX_Dbi;
120
+ createMap(name: string, keyMode: number | bigint, valueMode: number): MDBX_Dbi;
121
+
122
+ isActive(): boolean;
123
+ isTopLevel(): boolean;
124
+
125
+ startTransaction?: () => MDBX_Txn;
126
+ getChildrenCount?: () => number;
127
+ }
128
+
129
+ export interface MDBXQueryItem {
130
+ key: MDBXKey;
131
+ value?: MDBXValue;
132
+ }
133
+
134
+ export interface MDBXQueryRequest {
135
+ dbi: MDBX_Dbi;
136
+ mode?: number;
137
+ queryMode?: number;
138
+ item: MDBXQueryItem[];
139
+ }
140
+
141
+ export interface MDBXQueryResultItem {
142
+ key: MDBXKey;
143
+ value?: MDBXValue | null;
144
+ found?: boolean;
145
+ }
146
+
147
+ export type MDBXQueryResult = MDBXQueryResultItem[] | MDBXQueryResultItem[][];
148
+
149
+ export interface MDBXKeysRequestObject {
150
+ dbi: MDBX_Dbi;
151
+ from?: MDBXKey;
152
+ limit?: number;
153
+ cursorMode?: MDBXCursorMode;
154
+ }
155
+
156
+ export type MDBXKeysRequest = MDBX_Dbi | MDBXKeysRequestObject;
157
+ export type MDBXKeysResult = MDBXKey[] | MDBXKey[][];
158
+
159
+ export declare class MDBX_Env {
160
+ constructor();
161
+
162
+ open(options: MDBXEnvOpenOptions): Promise<void>;
163
+ openSync(options: MDBXEnvOpenOptions): void;
164
+
165
+ close(): Promise<void>;
166
+ closeSync(): void;
167
+
168
+ copyTo(path: string, flags?: number): Promise<void>;
169
+ copyToSync(path: string, flags?: number): void;
170
+
171
+ version(): string;
172
+
173
+ startRead(): MDBX_Txn;
174
+ startWrite(): MDBX_Txn;
175
+
176
+ query(request: MDBXQueryRequest | MDBXQueryRequest[], txnMode?: number): Promise<MDBXQueryResult>;
177
+ keys(request: MDBXKeysRequest | MDBXKeysRequest[], txnMode?: number): Promise<MDBXKeysResult>;
178
+ }
179
+
180
+ export interface MDBX_Param {
181
+ readonly envFlag: {
182
+ readonly validation: number;
183
+ readonly rdonly: number;
184
+ readonly exclusive: number;
185
+ readonly accede: number;
186
+ readonly writemap: number;
187
+ readonly nostickythreads: number;
188
+ readonly nordahead: number;
189
+ readonly nomeminit: number;
190
+ readonly liforeclaim: number;
191
+ readonly nometasync: number;
192
+ readonly safeNosync: number;
193
+ readonly utterlyNosync: number;
194
+ };
195
+
196
+ readonly txnMode: {
197
+ readonly ro: number;
198
+ };
199
+
200
+ readonly keyMode: {
201
+ readonly reverse: number;
202
+ readonly ordinal: number;
203
+ };
204
+
205
+ readonly keyFlag: {
206
+ readonly string: number;
207
+ readonly number: number;
208
+ readonly bigint: number;
209
+ };
210
+
211
+ readonly valueMode: {
212
+ readonly multi: number;
213
+ readonly multiReverse: number;
214
+ readonly multiSamelength: number;
215
+ readonly multiOrdinal: number;
216
+ readonly multiReverseSamelength: number;
217
+ };
218
+
219
+ readonly valueFlag: {
220
+ readonly string: number;
221
+ };
222
+
223
+ readonly dbMode: {
224
+ readonly create: number;
225
+ readonly accede: number;
226
+ };
227
+
228
+ readonly queryMode: {
229
+ readonly upsert: number;
230
+ readonly update: number;
231
+ readonly insertUnique: number;
232
+ readonly get: number;
233
+ readonly del: number;
234
+ };
235
+
236
+ readonly cursorMode: {
237
+ readonly first: number;
238
+ readonly last: number;
239
+ readonly next: number;
240
+ readonly prev: number;
241
+ readonly keyLesserThan: number;
242
+ readonly keyLesserOrEqual: number;
243
+ readonly keyEqual: number;
244
+ readonly keyGreaterOrEqual: number;
245
+ readonly keyGreaterThan: number;
246
+ readonly multiExactKeyValueLesserThan: number;
247
+ readonly multiExactKeyValueLesserOrEqual: number;
248
+ readonly multiExactKeyValueEqual: number;
249
+ readonly multiExactKeyValueGreaterOrEqual: number;
250
+ readonly multiExactKeyValueGreater: number;
251
+ };
252
+ }
253
+
254
+ export declare const MDBX_Param: MDBX_Param;
255
+
256
+ export interface MDBX_Native {
257
+ MDBX_Env: typeof MDBX_Env;
258
+ MDBX_Param: MDBX_Param;
259
+ }
260
+
package/package.json CHANGED
@@ -1,5 +1,39 @@
1
1
  {
2
2
  "main": "lib/nativemou.js",
3
+ "types": "./lib/index.d.mts",
4
+ "exports": {
5
+ ".": {
6
+ "import": {
7
+ "types": "./lib/index.d.mts",
8
+ "default": "./lib/index.mjs"
9
+ },
10
+ "require": {
11
+ "types": "./lib/nativemou.d.cts",
12
+ "default": "./lib/nativemou.js"
13
+ }
14
+ },
15
+ "./async": {
16
+ "import": {
17
+ "types": "./lib/async.d.mts",
18
+ "default": "./lib/async.mjs"
19
+ },
20
+ "require": {
21
+ "types": "./lib/async.d.cts",
22
+ "default": "./lib/mdbx_evn_async.js"
23
+ }
24
+ },
25
+ "./nativemou": {
26
+ "import": {
27
+ "types": "./lib/nativemou.d.mts",
28
+ "default": "./lib/nativemou.js"
29
+ },
30
+ "require": {
31
+ "types": "./lib/nativemou.d.cts",
32
+ "default": "./lib/nativemou.js"
33
+ }
34
+ },
35
+ "./package.json": "./package.json"
36
+ },
3
37
  "files": [
4
38
  "lib/**/*",
5
39
  "src/**/*",
@@ -14,18 +48,24 @@
14
48
  "cmake-js": "^7.3.1",
15
49
  "node-addon-api": "^8.5.0"
16
50
  },
51
+ "devDependencies": {
52
+ "@types/node": "^22.10.2",
53
+ "typescript": "^5.6.3"
54
+ },
17
55
  "scripts": {
18
56
  "e3": "node ./test/e3.js",
19
57
  "e33": "node ./test/e33.js",
20
58
  "e4": "node ./test/e4.js",
59
+ "e4async": "node ./test/e4async.mjs",
21
60
  "e5": "node ./test/e5.js",
61
+ "test:types": "node ./test/types/run.mjs",
22
62
  "build": "node build.js",
23
63
  "build-dev": "node build-dev.js",
24
64
  "install": "node build.js"
25
65
  },
26
66
  "gypfile": true,
27
67
  "name": "mdbxmou",
28
- "version": "0.2.2",
68
+ "version": "0.2.5",
29
69
  "description": "Node bindings for mdbx",
30
70
  "repository": {
31
71
  "type": "git",