cry-db 2.1.26 → 2.1.29

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/base.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { MongoClient, ObjectId, Timestamp } from "mongodb";
2
2
  import { Log } from "cry-helpers";
3
- import { Id, IdOrEntity } from "./types";
3
+ import { Id, IdOrEntity } from "./types.js";
4
4
  export declare const log: Log;
5
5
  interface DbInfo {
6
6
  name: string;
@@ -43,3 +43,4 @@ export declare class Base {
43
43
  static _toId(id: IdOrEntity): Id;
44
44
  }
45
45
  export {};
46
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS5C,eAAO,MAAM,GAAG,KAAqB,CAAA;AAErC,UAAU,MAAM;IAAG,IAAI,EAAE,MAAM,CAAA;CAAE;AAWjC,qBAAa,IAAI;IAEb,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;gBAEX,GAAG,CAAC,EAAE,MAAM;IASxB,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,GAAI,EAAE;IAIhC,MAAM,CAAC,KAAK,IAAK,QAAQ;IAIzB,KAAK,IAAI,QAAQ;IAKjB,WAAW,IAAK,OAAO;IAIvB;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAI,QAAQ;IAOjC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG;QAAE,CAAC,EAAC,MAAM,CAAC;QAAC,CAAC,EAAC,MAAM,CAAA;KAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAAG,SAAqB,GAAG,SAAS;IAYjJ;;OAEG;IACG,YAAY,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAKxC;;MAEE;IACI,gBAAgB,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtC,cAAc,IAAK,OAAO,CAAC,OAAO,CAAC;IAYnC,IAAI,IAAI,OAAO,CAAC,OAAO,GAAC,SAAS,CAAC;cAUxB,OAAO,IAAK,OAAO,CAAC,WAAW,CAAC;IAU1C,KAAK;IAUX,iBAAiB;IACjB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,EAAE;CAWnC"}
package/dist/base.js CHANGED
@@ -1,36 +1,37 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Base = exports.log = void 0;
4
- const mongodb_1 = require("mongodb");
5
- const cry_helpers_1 = require("cry-helpers");
1
+ import { MongoClient, ObjectId, Timestamp } from "mongodb";
2
+ import { Log } from "cry-helpers";
6
3
  function myDir() {
7
4
  let dirs = process.cwd().replace(/\\/, "/").split("/");
8
5
  let dir = dirs[dirs.length - 1];
9
6
  return dir;
10
7
  }
11
- exports.log = new cry_helpers_1.Log(['MONGO']);
8
+ export const log = new Log(['MONGO']);
12
9
  const DEFAULT_APPNAME = "crymongo";
13
10
  const CONNECTION_OPTIONS = {
14
11
  useNewUrlParser: true,
15
12
  useUnifiedTopology: true,
16
13
  appname: DEFAULT_APPNAME,
17
14
  };
18
- class Base {
15
+ export class Base {
16
+ url;
17
+ client;
18
+ _isOnReplica;
19
+ appname;
19
20
  constructor(url) {
20
- this.url = url || process.env.MONGO_URL || "mongodb://127.0.0.1:27017";
21
- this.appname = process.env.APPNAME || myDir() || DEFAULT_APPNAME;
21
+ this.url = url || process.env["MONGO_URL"] || "mongodb://127.0.0.1:27017";
22
+ this.appname = process.env["APPNAME"] || myDir() || DEFAULT_APPNAME;
22
23
  this.client = null; // MongoClient(this.url, { useNewUrlParser: true, useUnifiedTopology: true }) // see also retry
23
24
  this._isOnReplica = undefined;
24
- exports.log.debug(`new Base for ${this.appname}:`, this.url);
25
+ log.debug(`new Base for ${this.appname}:`, this.url);
25
26
  }
26
27
  static toId(id) {
27
28
  return this._toId(id);
28
29
  }
29
30
  static newid() {
30
- return new mongodb_1.ObjectId();
31
+ return new ObjectId();
31
32
  }
32
33
  newId() {
33
- return new mongodb_1.ObjectId();
34
+ return new ObjectId();
34
35
  }
35
36
  isConnected() {
36
37
  return (!!this.client);
@@ -41,30 +42,30 @@ class Base {
41
42
  */
42
43
  static objectid(o) {
43
44
  if (!o)
44
- return new mongodb_1.ObjectId();
45
- if (o instanceof mongodb_1.ObjectId)
45
+ return new ObjectId();
46
+ if (o instanceof ObjectId)
46
47
  return o;
47
48
  if (typeof o === "string")
48
- mongodb_1.ObjectId.createFromHexString(o);
49
- return new mongodb_1.ObjectId(o);
49
+ ObjectId.createFromHexString(o);
50
+ return new ObjectId(o);
50
51
  }
51
52
  static timestamp(t = undefined) {
52
- if (t instanceof mongodb_1.Timestamp)
53
+ if (t instanceof Timestamp)
53
54
  return t;
54
55
  if (typeof t === "object" && t.hasOwnProperty("t"))
55
- return new mongodb_1.Timestamp(t);
56
+ return new Timestamp(t);
56
57
  if (typeof t === "object" && t.hasOwnProperty("high"))
57
- return new mongodb_1.Timestamp({ i: t.low, t: t.high });
58
+ return new Timestamp({ i: t.low, t: t.high });
58
59
  if (t === null || t === undefined)
59
- return new mongodb_1.Timestamp({ i: new Date().valueOf() % 1000, t: new Date().valueOf() / 1000 });
60
+ return new Timestamp({ i: new Date().valueOf() % 1000, t: new Date().valueOf() / 1000 });
60
61
  if (t instanceof Date)
61
- return new mongodb_1.Timestamp({ i: t.valueOf() % 1000, t: t.valueOf() / 1000 });
62
+ return new Timestamp({ i: t.valueOf() % 1000, t: t.valueOf() / 1000 });
62
63
  if (typeof t === "string")
63
- return mongodb_1.Timestamp.fromString(t, 10);
64
+ return Timestamp.fromString(t, 10);
64
65
  if (typeof t === "number" && Number.isInteger(t))
65
- return mongodb_1.Timestamp.fromInt(t);
66
+ return Timestamp.fromInt(t);
66
67
  if (typeof t === "number")
67
- return mongodb_1.Timestamp.fromNumber(t);
68
+ return Timestamp.fromNumber(t);
68
69
  throw new Error(`cannot convert timestamp: ${t}`);
69
70
  }
70
71
  /**
@@ -108,20 +109,22 @@ class Base {
108
109
  async connect() {
109
110
  if (this.client)
110
111
  return this.client;
111
- exports.log.debug(`Mongo connecting app ${this.appname}: `, this.url);
112
- this.client = new mongodb_1.MongoClient(this.url, { ...CONNECTION_OPTIONS, appName: this.appname });
112
+ log.debug(`Mongo connecting app ${this.appname}: `, this.url);
113
+ this.client = new MongoClient(this.url, { ...CONNECTION_OPTIONS, appName: this.appname });
113
114
  this.client = await this.client.connect();
114
- exports.log.info("mongo connected to ", this.url);
115
+ if (this.client)
116
+ log.error("Mongo base - client not created at connection");
117
+ log.info("mongo connected to ", this.url);
115
118
  return this.client;
116
119
  }
117
120
  async close() {
118
121
  if (this.client)
119
122
  try {
120
123
  await this.client.close();
121
- exports.log.info("connection closed");
124
+ log.info("connection closed");
122
125
  }
123
126
  catch (err) {
124
- exports.log.error(`Error closing client ${err.message}`);
127
+ log.error(`Error closing client ${err.message}`);
125
128
  this.client = null;
126
129
  }
127
130
  }
@@ -131,18 +134,16 @@ class Base {
131
134
  return id;
132
135
  if (typeof id === "number")
133
136
  return id;
134
- if (id instanceof mongodb_1.ObjectId)
137
+ if (id instanceof ObjectId)
135
138
  return id;
136
139
  if (typeof id === "string" && id.match(/^[0-9a-f]{24,24}$/i))
137
- return mongodb_1.ObjectId.createFromHexString(id);
140
+ return ObjectId.createFromHexString(id);
138
141
  if (typeof id === "object" && id._id)
139
142
  return Base.toId(id._id);
140
143
  if (typeof id === "object" && id._bsontype.match(/ObjectID/i))
141
- return mongodb_1.ObjectId.createFromHexString(id.toString());
144
+ return ObjectId.createFromHexString(id.toString());
142
145
  //console.log("_toId fall throu")
143
146
  //console.dir(id)
144
147
  return id.toString();
145
148
  }
146
149
  }
147
- exports.Base = Base;
148
- //# sourceMappingURL=base.js.map
package/dist/db.d.ts CHANGED
@@ -1,13 +1,9 @@
1
- import { Base, log } from "./base";
1
+ import { Base, log } from "./base.js";
2
2
  import { CreateIndexesOptions, IndexSpecification, MongoClient, Document } from "mongodb";
3
- import { Entity, Id } from "./types";
4
3
  export { log };
5
4
  export declare class Db extends Base {
6
5
  protected db: string;
7
6
  constructor(db?: string, url?: string);
8
- static newid(): import("bson").ObjectID;
9
- static toId(id: Id | Entity): Id;
10
- static objectid(o: Id): import("bson").ObjectID;
11
7
  /**
12
8
  * Sets a new mongo database
13
9
  * @param {string} newdb - name of mongo database
@@ -38,3 +34,4 @@ export declare class Db extends Base {
38
34
  [id: string]: Object;
39
35
  }>;
40
36
  }
37
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAG,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1F,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,qBAAa,EAAG,SAAQ,IAAI;IAExB,SAAS,CAAC,EAAE,EAAE,MAAM,CAAM;gBAEd,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAMrC;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAC,MAAM;IAKlB,KAAK;cAMoB,OAAO,IAAK,OAAO,CAAC,WAAW,CAAC;IAQzD;;;OAGG;IACG,cAAc,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAWpC,OAAO,CAAC,UAAU,EAAC,MAAM;IAKzB,WAAW,CAAC,UAAU,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,GAAI,oBAAuB;IAO3G;;;;OAIG;IACG,QAAQ,CAAC,eAAe,GAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAW,EAAE,kBAAkB,GAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAO;IAkBxG;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE;QAAE,CAAC,UAAU,EAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE;;;CAgBpE"}
package/dist/db.js CHANGED
@@ -1,32 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Db = exports.log = void 0;
4
- const base_1 = require("./base");
5
- Object.defineProperty(exports, "log", { enumerable: true, get: function () { return base_1.log; } });
6
- class Db extends base_1.Base {
1
+ import { Base, log } from "./base.js";
2
+ export { log };
3
+ export class Db extends Base {
4
+ db = "";
7
5
  constructor(db, url) {
8
6
  super(url);
9
- this.db = "";
10
7
  if (db)
11
8
  this.db = db;
12
- else if (process.env.MONGO_DB)
13
- this.db = process.env.MONGO_DB;
14
- }
15
- static newid() {
16
- return base_1.Base.newid();
17
- }
18
- static toId(id) {
19
- return base_1.Base.toId(id);
20
- }
21
- static objectid(o) {
22
- return base_1.Base.objectid(o);
9
+ else if (process.env["MONGO_DB"])
10
+ this.db = process.env["MONGO_DB"];
23
11
  }
24
12
  /**
25
13
  * Sets a new mongo database
26
14
  * @param {string} newdb - name of mongo database
27
15
  */
28
16
  setDb(newdb) {
29
- base_1.log.debug('Mongo switch db:', newdb);
17
+ log.debug('Mongo switch db:', newdb);
30
18
  this.db = newdb;
31
19
  }
32
20
  getDb() {
@@ -42,10 +30,10 @@ class Db extends base_1.Base {
42
30
  * @returns {Promise<string[]>} - array of collection
43
31
  */
44
32
  async getCollections() {
45
- base_1.log.debug('getCollections called');
33
+ log.debug('getCollections called');
46
34
  let conn = await this.connect();
47
35
  let ret = (await conn.db(this.db).collections()).map((c) => c.s.namespace.collection);
48
- base_1.log.debug('getCollections returns', ret);
36
+ log.debug('getCollections returns', ret);
49
37
  return ret;
50
38
  }
51
39
  async indexes(collection) {
@@ -71,7 +59,7 @@ class Db extends base_1.Base {
71
59
  colls = colls.filter(c => onlyCollections.includes(c));
72
60
  if (excludeCollections)
73
61
  colls = colls.filter(c => !excludeCollections.includes(c));
74
- base_1.log.debug("backupDb collections", colls);
62
+ log.debug("backupDb collections", colls);
75
63
  let backup = {};
76
64
  for await (let col of colls) {
77
65
  backup[col] = await conn.db(this.db).collection(col).find({}).toArray();
@@ -83,20 +71,18 @@ class Db extends base_1.Base {
83
71
  * @param {Object} backupSet - a object, keys are collection names, values are arrays of entities
84
72
  */
85
73
  async restoreDb(backupSet) {
86
- base_1.log.debug('restorDb called');
74
+ log.debug('restorDb called');
87
75
  let conn = (await this.connect()).db(this.db);
88
76
  let restored = {};
89
- for await (let colName of Object.keys(backupSet)) {
77
+ for await (let colName of Object.keys(backupSet).filter(a => !!a)) {
90
78
  let c = conn.collection(colName);
91
79
  await c.deleteMany({});
92
- if (backupSet[colName].length) {
80
+ if (backupSet[colName]?.length) {
93
81
  restored[colName] = (await (c.insertMany(backupSet[colName]))).insertedCount;
94
82
  }
95
83
  }
96
- base_1.log.debug('restorDb returns', restored);
84
+ log.debug('restorDb returns', restored);
97
85
  return restored;
98
86
  }
99
87
  }
100
- exports.Db = Db;
101
- module.exports = { Db, log: base_1.log };
102
- //# sourceMappingURL=db.js.map
88
+ module.exports = { Db, log };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { Base } from './base';
2
- import Mongo from './mongo';
3
- import { Repo } from './repo';
4
- import { Db } from './db';
5
- import * as Types from './types';
1
+ import { Base } from './base.js';
2
+ import Mongo from './mongo.js';
3
+ import { Repo } from './repo.js';
4
+ import { Db } from './db.js';
5
+ import * as Types from './types.js';
6
6
  export { Types, Base, Mongo, Repo, Db, };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAO,YAAY,CAAC;AAErC,OAAO,EACH,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,EAAE,GACL,CAAA"}
package/dist/index.js CHANGED
@@ -1,36 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.Db = exports.Repo = exports.Mongo = exports.Base = exports.Types = void 0;
26
- const base_1 = require("./base");
27
- Object.defineProperty(exports, "Base", { enumerable: true, get: function () { return base_1.Base; } });
28
- const mongo_1 = __importDefault(require("./mongo"));
29
- exports.Mongo = mongo_1.default;
30
- const repo_1 = require("./repo");
31
- Object.defineProperty(exports, "Repo", { enumerable: true, get: function () { return repo_1.Repo; } });
32
- const db_1 = require("./db");
33
- Object.defineProperty(exports, "Db", { enumerable: true, get: function () { return db_1.Db; } });
34
- const Types = __importStar(require("./types"));
35
- exports.Types = Types;
36
- //# sourceMappingURL=index.js.map
1
+ import { Base } from './base.js';
2
+ import Mongo from './mongo.js';
3
+ import { Repo } from './repo.js';
4
+ import { Db } from './db.js';
5
+ import * as Types from './types.js';
6
+ export { Types, Base, Mongo, Repo, Db, };
package/dist/mongo.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import MongoDb, { AggregateOptions, MongoClient, Timestamp } from 'mongodb';
2
- import { Db } from './db';
3
- import { AuditRecord, BatchSpec, Entity, GetAfterSpec, GetNewerSpec, Id, IdOrEntity, InsertSpec, MongoEmittedEvents, Projection, QueryOpts, QuerySpec, UpdateSpec, UpsertOptions } from './types';
2
+ import { Db } from './db.js';
3
+ import { AuditRecord, BatchSpec, Entity, GetAfterSpec, GetNewerSpec, Id, IdOrEntity, InsertSpec, MongoEmittedEvents, Projection, QueryOpts, QuerySpec, UpdateSpec, UpsertOptions } from './types.js';
4
4
  declare type DebugObject = {
5
5
  operation: string;
6
6
  } & Record<any, any>;
@@ -18,9 +18,6 @@ export default class Mongo extends Db {
18
18
  private audit;
19
19
  private syncSupport;
20
20
  constructor(db?: string, url?: string);
21
- static newid(): MongoDb.ObjectId;
22
- static toId(id: Id | Entity): Id;
23
- static objectid(o: Id): MongoDb.ObjectId;
24
21
  on<U extends keyof MongoEmittedEvents>(evt: U, listener: MongoEmittedEvents[U]): void;
25
22
  off<U extends keyof MongoEmittedEvents>(evt: U, listener: MongoEmittedEvents[U]): void;
26
23
  once<U extends keyof MongoEmittedEvents>(evt: U, listener: MongoEmittedEvents[U]): void;
@@ -109,8 +106,10 @@ export default class Mongo extends Db {
109
106
  private _makePublication;
110
107
  private emit;
111
108
  private _writeAuditRecord;
109
+ private _sessionOpt;
112
110
  private _processUpdateObject;
113
111
  private _processHashedKeys;
114
112
  private _processReturnedObject;
115
113
  }
116
114
  export {};
115
+ //# sourceMappingURL=mongo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../src/mongo.ts"],"names":[],"mappings":"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"}