edinburgh 0.3.0 → 0.4.1

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.
@@ -1,7 +1,7 @@
1
- import { DataPack } from "./datapack.js";
2
- import * as olmdb from "olmdb";
3
- import { DatabaseError } from "olmdb";
4
- import { Model } from "./models.js";
1
+ import DataPack from "./datapack.js";
2
+ import { DatabaseError } from "olmdb/lowlevel";
3
+ import { Model, FieldConfig } from "./models.js";
4
+ import { PrimaryIndex, BaseIndex, IndexRangeIterator } from "./indexes.js";
5
5
  /**
6
6
  * @internal Abstract base class for all type wrappers in the Edinburgh ORM system.
7
7
  *
@@ -49,6 +49,7 @@ export declare abstract class TypeWrapper<const T> {
49
49
  toString(): string;
50
50
  clone(value: T): T;
51
51
  equals(value1: T, value2: T): boolean;
52
+ getLinkedModel(): (typeof Model<unknown>) | undefined;
52
53
  }
53
54
  export interface TypeWrapper<T> {
54
55
  /**
@@ -79,12 +80,26 @@ export declare class SetType<T> extends TypeWrapper<Set<T>> {
79
80
  });
80
81
  serialize(value: Set<T>, pack: DataPack): void;
81
82
  deserialize(pack: DataPack): Set<T>;
82
- getError(value: Set<T>): olmdb.DatabaseError | undefined;
83
+ getError(value: Set<T>): DatabaseError | undefined;
83
84
  serializeType(pack: DataPack): void;
84
85
  static deserializeType(pack: DataPack, featureFlags: number): SetType<any>;
85
86
  default(): Set<T>;
86
87
  clone(value: Set<T>): Set<T>;
87
88
  equals(a: Set<T>, b: Set<T>): boolean;
89
+ toString(): string;
90
+ getLinkedModel(): ((abstract new (initial?: Partial<Omit<unknown, "constructor">>) => Model<unknown>) & {
91
+ _primary: PrimaryIndex<any, any>;
92
+ _secondaries?: BaseIndex<any, readonly (keyof any & string)[]>[];
93
+ tableName: string;
94
+ override?: boolean;
95
+ fields: Record<string | symbol | number, FieldConfig<unknown>>;
96
+ migrate?(record: Record<string, any>): void;
97
+ _delayedInit(cleared?: boolean): Promise<void>;
98
+ findAll<T_1 extends typeof Model<unknown>>(this: T_1, opts?: {
99
+ reverse?: boolean;
100
+ }): IndexRangeIterator<T_1>;
101
+ replaceInto<T_1 extends typeof Model<any>>(this: T_1, obj: Partial<Omit<InstanceType<T_1>, "constructor">>): InstanceType<T_1>;
102
+ }) | undefined;
88
103
  }
89
104
  /**
90
105
  * @internal Type wrapper for model relationships (foreign keys).
@@ -92,7 +107,7 @@ export declare class SetType<T> extends TypeWrapper<Set<T>> {
92
107
  */
93
108
  export declare class LinkType<T extends typeof Model<unknown>> extends TypeWrapper<InstanceType<T>> {
94
109
  kind: string;
95
- TargetModel: T;
110
+ tableName: string;
96
111
  /**
97
112
  * Create a new LinkType.
98
113
  * @param TargetModel - The model class this link points to.
@@ -100,9 +115,11 @@ export declare class LinkType<T extends typeof Model<unknown>> extends TypeWrapp
100
115
  constructor(TargetModel: T);
101
116
  serialize(model: InstanceType<T>, pack: DataPack): void;
102
117
  deserialize(pack: DataPack): any;
103
- getError(value: InstanceType<T>): olmdb.DatabaseError | undefined;
118
+ getError(value: InstanceType<T>): DatabaseError | undefined;
104
119
  serializeType(pack: DataPack): void;
105
120
  static deserializeType(pack: DataPack, featureFlags: number): LinkType<any>;
121
+ toString(): string;
122
+ getLinkedModel(): T;
106
123
  }
107
124
  /** Type wrapper instance for the string type. */
108
125
  export declare const string: TypeWrapper<string>;
@@ -1,8 +1,7 @@
1
- import { DataPack } from "./datapack.js";
2
- import * as olmdb from "olmdb";
3
- import { DatabaseError } from "olmdb";
4
- import { modelRegistry, getMockModel } from "./models.js";
5
- import { assert, addErrorPath } from "./utils.js";
1
+ import DataPack from "./datapack.js";
2
+ import { DatabaseError } from "olmdb/lowlevel";
3
+ import { modelRegistry, currentTxn } from "./models.js";
4
+ import { assert, addErrorPath, dbGet } from "./utils.js";
6
5
  /**
7
6
  * @internal Abstract base class for all type wrappers in the Edinburgh ORM system.
8
7
  *
@@ -39,6 +38,9 @@ export class TypeWrapper {
39
38
  equals(value1, value2) {
40
39
  return value1 === value2;
41
40
  }
41
+ getLinkedModel() {
42
+ return;
43
+ }
42
44
  }
43
45
  class StringType extends TypeWrapper {
44
46
  kind = 'string';
@@ -160,6 +162,9 @@ class ArrayType extends TypeWrapper {
160
162
  const inner = deserializeType(pack, featureFlags);
161
163
  return new ArrayType(inner);
162
164
  }
165
+ default() {
166
+ return [];
167
+ }
163
168
  clone(value) {
164
169
  return value.map(this.inner.clone.bind(this.inner));
165
170
  }
@@ -172,6 +177,10 @@ class ArrayType extends TypeWrapper {
172
177
  }
173
178
  return true;
174
179
  }
180
+ toString() { return `array<${this.inner}>`; }
181
+ getLinkedModel() {
182
+ return this.inner.getLinkedModel();
183
+ }
175
184
  }
176
185
  /**
177
186
  * @internal Type wrapper for array values with optional length constraints.
@@ -249,6 +258,10 @@ export class SetType extends TypeWrapper {
249
258
  }
250
259
  return true;
251
260
  }
261
+ toString() { return `set<${this.inner}>`; }
262
+ getLinkedModel() {
263
+ return this.inner.getLinkedModel();
264
+ }
252
265
  }
253
266
  /**
254
267
  * @internal Type wrapper for union/discriminated union types.
@@ -319,6 +332,19 @@ class OrType extends TypeWrapper {
319
332
  const cb = this._getChoiceIndex(b);
320
333
  return ca === cb && this.choices[ca].equals(a, b);
321
334
  }
335
+ toString() { return `or<${this.choices.join('|')}>`; }
336
+ getLinkedModel() {
337
+ let model;
338
+ for (const choice of this.choices) {
339
+ const m = choice.getLinkedModel();
340
+ if (m) {
341
+ if (model && model !== m)
342
+ throw new DatabaseError(`Union type has multiple linked models, unsupported by getLinkedModel()`, 'INVALID_TYPE');
343
+ model = m;
344
+ }
345
+ }
346
+ return model;
347
+ }
322
348
  }
323
349
  /**
324
350
  * @internal Type wrapper for literal values (constants).
@@ -357,6 +383,7 @@ class LiteralType extends TypeWrapper {
357
383
  const value = json === "" ? undefined : JSON.parse(json);
358
384
  return new LiteralType(value);
359
385
  }
386
+ toString() { return `literal<${JSON.stringify(this.value)}>`; }
360
387
  default() {
361
388
  return this.value;
362
389
  }
@@ -388,7 +415,7 @@ class IdentifierType extends TypeWrapper {
388
415
  let id;
389
416
  do {
390
417
  id = DataPack.generateIdentifier();
391
- } while (olmdb.get(new DataPack().write(model.constructor._primary._cachedIndexId).writeIdentifier(id).toUint8Array()));
418
+ } while (dbGet(model._txn.id, new DataPack().write(model.constructor._primary._indexId).writeIdentifier(id).toUint8Array()));
392
419
  return id;
393
420
  }
394
421
  }
@@ -398,28 +425,28 @@ class IdentifierType extends TypeWrapper {
398
425
  */
399
426
  export class LinkType extends TypeWrapper {
400
427
  kind = 'link';
401
- TargetModel;
428
+ tableName;
402
429
  /**
403
430
  * Create a new LinkType.
404
431
  * @param TargetModel - The model class this link points to.
405
432
  */
406
433
  constructor(TargetModel) {
407
434
  super();
408
- this.TargetModel = getMockModel(TargetModel);
435
+ this.tableName = TargetModel.tableName || TargetModel.name;
409
436
  }
410
437
  serialize(model, pack) {
411
- pack.write(model._getCreatePrimaryKey());
438
+ pack.write(model.getPrimaryKey());
412
439
  }
413
440
  deserialize(pack) {
414
- return this.TargetModel._primary.getLazy(pack.readUint8Array());
441
+ return modelRegistry[this.tableName]._primary._get(currentTxn(), pack.readUint8Array(), false);
415
442
  }
416
443
  getError(value) {
417
- if (!(value instanceof this.TargetModel)) {
418
- return new DatabaseError(`Expected instance of ${this.TargetModel.tableName}, got ${typeof value}`, 'VALUE_ERROR');
444
+ if (!(value instanceof modelRegistry[this.tableName])) {
445
+ return new DatabaseError(`Expected instance of ${this.tableName}, got ${typeof value}`, 'VALUE_ERROR');
419
446
  }
420
447
  }
421
448
  serializeType(pack) {
422
- pack.write(this.TargetModel.tableName);
449
+ pack.write(this.tableName);
423
450
  }
424
451
  static deserializeType(pack, featureFlags) {
425
452
  const tableName = pack.readString();
@@ -428,6 +455,10 @@ export class LinkType extends TypeWrapper {
428
455
  throw new DatabaseError(`Could not deserialize undefined model ${tableName}`, 'DESERIALIZATION_ERROR');
429
456
  return new LinkType(targetModel);
430
457
  }
458
+ toString() { return `link<${this.tableName}>`; }
459
+ getLinkedModel() {
460
+ return modelRegistry[this.tableName];
461
+ }
431
462
  }
432
463
  /** Type wrapper instance for the string type. */
433
464
  export const string = new StringType();
@@ -560,13 +591,14 @@ export function serializeType(arg, pack) {
560
591
  const TYPE_WRAPPERS = {
561
592
  string: string,
562
593
  number: number,
594
+ dateTime: dateTime,
595
+ boolean: boolean,
563
596
  array: ArrayType,
597
+ set: SetType,
564
598
  or: OrType,
565
599
  literal: LiteralType,
566
- boolean: boolean,
567
600
  id: identifier,
568
601
  link: LinkType,
569
- set: SetType
570
602
  };
571
603
  /**
572
604
  * Deserialize a type wrapper from a Pack.
@@ -577,6 +609,8 @@ const TYPE_WRAPPERS = {
577
609
  export function deserializeType(pack, featureFlags) {
578
610
  const kind = pack.readString();
579
611
  const TypeWrapper = TYPE_WRAPPERS[kind];
612
+ if (!TypeWrapper)
613
+ throw new DatabaseError(`Unknown field type in database: ${kind}`, 'CONSISTENCY_ERROR');
580
614
  if ('deserializeType' in TypeWrapper) {
581
615
  return TypeWrapper.deserializeType(pack, featureFlags);
582
616
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@
5
5
  * @throws {Error} If condition is false.
6
6
  */
7
7
  export declare function assert(cond: any, message?: string): asserts cond;
8
+ export declare function toBuffer(data: Uint8Array): ArrayBufferLike;
9
+ export declare function hashBytes(data: Uint8Array): number;
10
+ export declare function dbGet(txnId: number, key: Uint8Array): Uint8Array | undefined;
11
+ export declare function dbPut(txnId: number, key: Uint8Array, value: Uint8Array): void;
12
+ export declare function dbDel(txnId: number, key: Uint8Array): void;
8
13
  /**
9
14
  * Regular expression for parsing error messages with paths.
10
15
  */
@@ -16,15 +21,6 @@ export declare const ERROR_AT: RegExp;
16
21
  * @returns The modified DatabaseError.
17
22
  */
18
23
  export declare function addErrorPath<T>(error: T, path: string | number): T;
19
- export declare let logLevel: number;
20
- /**
21
- * Global log level for debugging output.
22
- * 0 = no logging, 1 = model-level logs, 2 = update logs, 3 = read logs.
23
- */
24
- export declare function setLogLevel(level: number): void;
24
+ export declare const logLevel: number;
25
25
  /** @internal Symbol used to access the underlying model from a proxy */
26
26
  export declare const TARGET_SYMBOL: unique symbol;
27
- export declare const delayedInits: Set<{
28
- _delayedInit: () => boolean;
29
- }>;
30
- export declare function tryDelayedInits(): void;
@@ -1,3 +1,4 @@
1
+ import * as lowlevel from "olmdb/lowlevel";
1
2
  /**
2
3
  * Assert function for runtime checks with TypeScript assertion support.
3
4
  * @param cond - Condition to check.
@@ -9,6 +10,28 @@ export function assert(cond, message) {
9
10
  throw new Error(message || "Assertion failed");
10
11
  }
11
12
  }
13
+ export function toBuffer(data) {
14
+ const b = data.buffer;
15
+ return b.byteLength === data.byteLength ? b : b.slice(data.byteOffset, data.byteOffset + data.byteLength);
16
+ }
17
+ export function hashBytes(data) {
18
+ let a = 0x811C9DC5, b = 0x811C9DC5;
19
+ for (const ch of data) {
20
+ a = Math.imul(a ^ ch, 0x517CC1B7) >>> 0;
21
+ b = Math.imul(b ^ ch, 0x27220A95) >>> 0;
22
+ }
23
+ return a + ((b & 0x1FFFFF) * 0x100000000);
24
+ }
25
+ export function dbGet(txnId, key) {
26
+ const result = lowlevel.get(txnId, toBuffer(key));
27
+ return result ? new Uint8Array(result) : undefined;
28
+ }
29
+ export function dbPut(txnId, key, value) {
30
+ lowlevel.put(txnId, toBuffer(key), toBuffer(value));
31
+ }
32
+ export function dbDel(txnId, key) {
33
+ lowlevel.del(txnId, toBuffer(key));
34
+ }
12
35
  /**
13
36
  * Regular expression for parsing error messages with paths.
14
37
  */
@@ -26,36 +49,7 @@ export function addErrorPath(error, path) {
26
49
  }
27
50
  return error;
28
51
  }
29
- // Get initial log level from environment variable
30
- export let logLevel = parseInt(process.env.EDINBURGH_LOG_LEVEL || "0") || 0;
31
- /**
32
- * Global log level for debugging output.
33
- * 0 = no logging, 1 = model-level logs, 2 = update logs, 3 = read logs.
34
- */
35
- export function setLogLevel(level) {
36
- logLevel = level;
37
- }
38
- export const delayedInits = new Set();
39
- let tryingDelayedInits = false;
40
- export function tryDelayedInits() {
41
- if (tryingDelayedInits)
42
- return;
43
- tryingDelayedInits = true;
44
- let progress = true;
45
- while (progress) {
46
- progress = false;
47
- for (const target of delayedInits) {
48
- try {
49
- if (target._delayedInit()) {
50
- delayedInits.delete(target);
51
- progress = true;
52
- }
53
- }
54
- catch (e) {
55
- console.error("Error during delayed init:", e);
56
- }
57
- }
58
- }
59
- tryingDelayedInits = false;
60
- }
52
+ // Get log level from environment variable
53
+ // 0: no logging (default), 1: model-level logs, 2: add update logs, 3: add read logs
54
+ export const logLevel = parseInt(process.env.EDINBURGH_LOG_LEVEL || "0") || 0;
61
55
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,IAAS,EAAE,OAAgB;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC;IACnD,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAI,KAAQ,EAAE,IAAqB;IAC3D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,OAAO,IAAI,EAAE,CAAC;IACrF,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACrC,QAAQ,GAAG,KAAK,CAAC;AACrB,CAAC;AAKD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiC,CAAC;AACrE,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,MAAM,UAAU,eAAe;IAC3B,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,OAAM,QAAQ,EAAE,CAAC;QACb,QAAQ,GAAG,KAAK,CAAC;QACjB,KAAI,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACD,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;oBACxB,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC5B,QAAQ,GAAG,IAAI,CAAC;gBACpB,CAAC;YACL,CAAC;YAAC,OAAM,CAAC,EAAE,CAAC;gBACR,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;IACL,CAAC;IACD,kBAAkB,GAAG,KAAK,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,IAAS,EAAE,OAAgB;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC;IACnD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAgB;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,OAAO,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAgB;IACtC,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC;IACnC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAe;IAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAe,EAAE,KAAiB;IACnE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAe;IAChD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAI,KAAQ,EAAE,IAAqB;IAC3D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,OAAO,IAAI,EAAE,CAAC;IACrF,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,0CAA0C;AAC1C,qFAAqF;AACrF,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edinburgh",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "author": "Frank van Viegen",
5
5
  "devDependencies": {
6
6
  "@types/bun": "^1.2.16",
@@ -22,6 +22,9 @@
22
22
  }
23
23
  },
24
24
  "description": "Very fast object persistence for TypeScript, supporting optimistic transactions, lazy loading and indexes.",
25
+ "bin": {
26
+ "migrate-edinburgh": "./build/src/migrate-cli.js"
27
+ },
25
28
  "files": [
26
29
  "src",
27
30
  "build/src"
@@ -51,8 +54,6 @@
51
54
  ],
52
55
  "type": "module",
53
56
  "dependencies": {
54
- "edinburgh": "^0.1.3",
55
- "olmdb": "^0.2.19",
56
- "warpsocket": "^0.5.0"
57
+ "olmdb": "^0.4.1"
57
58
  }
58
59
  }