@prosopo/database 3.15.19 → 3.15.20
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/.turbo/turbo-build$colon$cjs.log +20 -17
- package/.turbo/turbo-build$colon$tsc.log +16 -16
- package/.turbo/turbo-build.log +21 -18
- package/CHANGELOG.md +17 -0
- package/dist/_virtual/_rolldown/runtime.js +3 -0
- package/dist/base/index.js +1 -4
- package/dist/base/mongo.js +133 -137
- package/dist/base/mongoMemory.js +21 -21
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/cjs/base/index.cjs +4 -6
- package/dist/cjs/base/mongo.cjs +140 -143
- package/dist/cjs/base/mongoMemory.cjs +22 -22
- package/dist/cjs/databases/captcha.cjs +213 -256
- package/dist/cjs/databases/centralDbStreamer.cjs +148 -170
- package/dist/cjs/databases/client.cjs +46 -62
- package/dist/cjs/databases/index.cjs +19 -19
- package/dist/cjs/databases/provider.cjs +1827 -2251
- package/dist/cjs/index.cjs +25 -23
- package/dist/cjs/mongooseOptions.cjs +59 -58
- package/dist/cjs/redisCache.cjs +432 -474
- package/dist/databases/captcha.js +210 -253
- package/dist/databases/centralDbStreamer.js +147 -169
- package/dist/databases/client.js +44 -60
- package/dist/databases/index.js +10 -14
- package/dist/databases/provider.d.ts +4 -4
- package/dist/databases/provider.d.ts.map +1 -1
- package/dist/databases/provider.js +1823 -2247
- package/dist/databases/provider.js.map +1 -1
- package/dist/index.js +9 -18
- package/dist/mongooseOptions.js +59 -59
- package/dist/redisCache.js +432 -474
- package/package.json +14 -14
package/dist/cjs/base/mongo.cjs
CHANGED
|
@@ -1,144 +1,141 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
mongoose.set("strictQuery", false);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
await this.connection?.close();
|
|
142
|
-
}
|
|
143
|
-
}
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_mongooseOptions = require("../mongooseOptions.cjs");
|
|
3
|
+
let node_url = require("node:url");
|
|
4
|
+
let _prosopo_common = require("@prosopo/common");
|
|
5
|
+
let _prosopo_logger = require("@prosopo/logger");
|
|
6
|
+
let mongoose = require("mongoose");
|
|
7
|
+
mongoose = require_runtime.__toESM(mongoose, 1);
|
|
8
|
+
//#region src/base/mongo.ts
|
|
9
|
+
mongoose.default.set("strictQuery", false);
|
|
10
|
+
var DEFAULT_ENDPOINT = "mongodb://127.0.0.1:27017";
|
|
11
|
+
/**
|
|
12
|
+
* Returns a generic Mongo database layer
|
|
13
|
+
* @param {string} url The database endpoint
|
|
14
|
+
* @param {string} dbname The database name
|
|
15
|
+
* @return {MongoDatabase} Database layer
|
|
16
|
+
*/
|
|
17
|
+
var MongoDatabase = class {
|
|
18
|
+
constructor(url, dbname, authSource, logger) {
|
|
19
|
+
this.connected = false;
|
|
20
|
+
const parsedUrl = new URL(url || DEFAULT_ENDPOINT);
|
|
21
|
+
if (dbname) parsedUrl.pathname = dbname;
|
|
22
|
+
if (authSource) parsedUrl.searchParams.set("authSource", authSource);
|
|
23
|
+
this._url = parsedUrl.toString();
|
|
24
|
+
this.safeURL = this.url.replace(/\w+:\w+/, "<Credentials>");
|
|
25
|
+
this.dbname = dbname || parsedUrl.pathname.replace("/", "");
|
|
26
|
+
this.logger = logger || (0, _prosopo_logger.getLogger)("info", "database:mongo");
|
|
27
|
+
}
|
|
28
|
+
get url() {
|
|
29
|
+
return this._url;
|
|
30
|
+
}
|
|
31
|
+
getConnection() {
|
|
32
|
+
if (!this.connection) throw new _prosopo_common.ProsopoDBError("DATABASE.CONNECTION_UNDEFINED", {
|
|
33
|
+
context: { failedFuncName: this.getConnection.name },
|
|
34
|
+
logger: this.logger
|
|
35
|
+
});
|
|
36
|
+
return this.connection;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @description Connect to the database and set the various tables
|
|
40
|
+
*/
|
|
41
|
+
async connect() {
|
|
42
|
+
this.logger.debug(() => ({
|
|
43
|
+
data: { mongoUrl: this.safeURL },
|
|
44
|
+
msg: "Connecting to database"
|
|
45
|
+
}));
|
|
46
|
+
try {
|
|
47
|
+
if (this.connected) {
|
|
48
|
+
this.logger.debug(() => ({
|
|
49
|
+
data: { mongoUrl: this.safeURL },
|
|
50
|
+
msg: "Database connection already open"
|
|
51
|
+
}));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (this.connecting) {
|
|
55
|
+
this.logger.debug(() => ({
|
|
56
|
+
data: { mongoUrl: this.safeURL },
|
|
57
|
+
msg: "Database connection in progress, waiting for it to finish"
|
|
58
|
+
}));
|
|
59
|
+
return this.connecting;
|
|
60
|
+
}
|
|
61
|
+
this.connecting = new Promise((resolve, reject) => {
|
|
62
|
+
const appName = (0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href);
|
|
63
|
+
const connection = mongoose.default.createConnection(this.url, require_mongooseOptions.getMongoConnectionOptions({
|
|
64
|
+
url: this.url,
|
|
65
|
+
appName,
|
|
66
|
+
dbName: this.dbname,
|
|
67
|
+
maxPoolSize: 50,
|
|
68
|
+
minPoolSize: 5
|
|
69
|
+
}));
|
|
70
|
+
const onConnected = () => {
|
|
71
|
+
this.logger.debug(() => ({
|
|
72
|
+
data: { mongoUrl: this.safeURL },
|
|
73
|
+
msg: "Database connection opened"
|
|
74
|
+
}));
|
|
75
|
+
this.connected = true;
|
|
76
|
+
this.connection = connection;
|
|
77
|
+
this.connecting = void 0;
|
|
78
|
+
resolve();
|
|
79
|
+
};
|
|
80
|
+
const onError = (err) => {
|
|
81
|
+
this.logger.error(() => ({
|
|
82
|
+
err,
|
|
83
|
+
data: { mongoUrl: this.safeURL },
|
|
84
|
+
msg: "Database error"
|
|
85
|
+
}));
|
|
86
|
+
this.connected = false;
|
|
87
|
+
this.connecting = void 0;
|
|
88
|
+
reject(err);
|
|
89
|
+
};
|
|
90
|
+
connection.once("open", onConnected);
|
|
91
|
+
connection.once("error", onError);
|
|
92
|
+
connection.on("disconnected", () => {
|
|
93
|
+
this.connected = false;
|
|
94
|
+
this.logger.debug(() => ({
|
|
95
|
+
data: { mongoUrl: this.safeURL },
|
|
96
|
+
msg: "Database disconnected"
|
|
97
|
+
}));
|
|
98
|
+
});
|
|
99
|
+
connection.on("reconnected", () => {
|
|
100
|
+
this.connected = true;
|
|
101
|
+
this.logger.debug(() => ({
|
|
102
|
+
data: { mongoUrl: this.safeURL },
|
|
103
|
+
msg: "Database reconnected"
|
|
104
|
+
}));
|
|
105
|
+
});
|
|
106
|
+
connection.on("close", () => {
|
|
107
|
+
this.connected = false;
|
|
108
|
+
this.logger.debug(() => ({
|
|
109
|
+
data: { mongoUrl: this.safeURL },
|
|
110
|
+
msg: "Database connection closed"
|
|
111
|
+
}));
|
|
112
|
+
});
|
|
113
|
+
connection.on("fullsetup", () => {
|
|
114
|
+
this.connected = true;
|
|
115
|
+
this.logger.debug(() => ({
|
|
116
|
+
data: { mongoUrl: this.safeURL },
|
|
117
|
+
msg: "Database connection is fully setup"
|
|
118
|
+
}));
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
return this.connecting;
|
|
122
|
+
} catch (e) {
|
|
123
|
+
this.logger.error(() => ({
|
|
124
|
+
err: e,
|
|
125
|
+
data: { mongoUrl: this.safeURL },
|
|
126
|
+
msg: "Database connection error"
|
|
127
|
+
}));
|
|
128
|
+
throw e;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/** Close connection to the database */
|
|
132
|
+
async close() {
|
|
133
|
+
this.logger.debug(() => ({
|
|
134
|
+
data: { mongoUrl: this.safeURL },
|
|
135
|
+
msg: "Closing connection"
|
|
136
|
+
}));
|
|
137
|
+
await this.connection?.close();
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
//#endregion
|
|
144
141
|
exports.MongoDatabase = MongoDatabase;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
const require_mongo = require("./mongo.cjs");
|
|
2
|
+
let mongodb_memory_server = require("mongodb-memory-server");
|
|
3
|
+
//#region src/base/mongoMemory.ts
|
|
4
|
+
var MongoMemoryDatabase = class extends require_mongo.MongoDatabase {
|
|
5
|
+
constructor(_url, dbname, logger, authSource) {
|
|
6
|
+
super("", dbname, authSource, logger);
|
|
7
|
+
this._url = "";
|
|
8
|
+
}
|
|
9
|
+
async connect() {
|
|
10
|
+
if (!this.mongod) {
|
|
11
|
+
this.mongod = await mongodb_memory_server.MongoMemoryServer.create();
|
|
12
|
+
this._url = this.mongod.getUri();
|
|
13
|
+
}
|
|
14
|
+
await super.connect();
|
|
15
|
+
}
|
|
16
|
+
async close() {
|
|
17
|
+
await super.close();
|
|
18
|
+
await this.mongod?.stop();
|
|
19
|
+
this.mongod = void 0;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
23
|
exports.MongoMemoryDatabase = MongoMemoryDatabase;
|