@spica-devkit/database 0.9.29 → 0.11.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/index.d.ts CHANGED
File without changes
package/dist/index.js CHANGED
@@ -1,10 +1,29 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
3
+ var mongo = require('mongodb');
5
4
  var util = require('util');
6
5
 
7
- let mongodb = globalThis[Symbol.for("kDatabaseDevkit")] = globalThis[Symbol.for("kDatabaseDevkit")] || require("mongodb");
6
+ function _interopNamespaceDefault(e) {
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var mongo__namespace = /*#__PURE__*/_interopNamespaceDefault(mongo);
24
+
25
+ let mongodb = (globalThis[Symbol.for("kDatabaseDevkit")] =
26
+ globalThis[Symbol.for("kDatabaseDevkit")] || mongo__namespace);
8
27
 
9
28
  function emitWarning(path) {
10
29
  process.emitWarning(`Property in the document path '${path}' contains an ObjectId value.\n` +
@@ -13,7 +32,6 @@ function emitWarning(path) {
13
32
  }
14
33
  function checkDocument(document, path = undefined) {
15
34
  if (document instanceof mongodb.ObjectId) {
16
- // Check if the path is alike 0._id or _id or $set._id
17
35
  if (/^(\d\._id|_id|\$.*?\._id)$/.test(path)) {
18
36
  return;
19
37
  }
@@ -45,7 +63,8 @@ const objectId = util.deprecate((id) => {
45
63
  const ObjectId = mongodb.ObjectId;
46
64
 
47
65
  process.once("SIGTERM", () => {
48
- close(false, () => process.exit());
66
+ const closeRes = close(false);
67
+ closeRes instanceof Promise ? closeRes.then(() => process.exit()) : process.exit();
49
68
  });
50
69
  let connection = globalThis[Symbol.for("kDatabaseDevkitConn")];
51
70
  function ignoreWarnings() {
@@ -62,18 +81,13 @@ function checkEnvironment() {
62
81
  }
63
82
  }
64
83
  async function connect() {
65
- if (!connected()) {
84
+ if (!connection) {
66
85
  connection = new mongodb.MongoClient(process.env.__INTERNAL__SPICA__MONGOURL__, {
67
86
  replicaSet: process.env.__INTERNAL__SPICA__MONGOREPL__,
68
- appname: `Functions on ${process.env.RUNTIME || "unknown"} runtime.`,
69
- useNewUrlParser: true,
70
- // @ts-ignore
71
- useUnifiedTopology: true
87
+ appName: `Functions on ${process.env.RUNTIME || "unknown"} runtime.`
72
88
  });
73
89
  }
74
- if (!connection.isConnected()) {
75
- await connection.connect();
76
- }
90
+ await connection.connect();
77
91
  return connection;
78
92
  }
79
93
  async function database() {
@@ -88,7 +102,11 @@ async function database() {
88
102
  const collection = db.collection;
89
103
  db.collection = (...args) => {
90
104
  const coll = collection.call(db, ...args);
91
- coll.watch = util.deprecate(coll.watch, `It is not advised to use 'watch' under spica/functions environment. I hope that you know what you are doing.`);
105
+ const watch = coll.watch;
106
+ coll.watch = (...args) => {
107
+ process.emitWarning("DeprecationWarning: It is not advised to use 'watch' under spica/functions environment. I hope that you know what you are doing.");
108
+ return watch.bind(coll)(...args);
109
+ };
92
110
  const findById = coll.findOne;
93
111
  coll["findById"] = (id, ...args) => {
94
112
  const objectId = new ObjectId(id);
@@ -162,20 +180,21 @@ function validateDocs(doc) {
162
180
  Array.isArray(doc) ? checkDocuments(doc) : checkDocument(doc);
163
181
  }
164
182
  }
165
- function close(force, cb) {
183
+ function close(force) {
166
184
  if (connection) {
167
- globalThis[Symbol.for("kDatabaseDevkitConn")] = undefined;
168
- return connection.close(force, cb);
185
+ const closed = connection.close(force);
186
+ connection = globalThis[Symbol.for("kDatabaseDevkitConn")] = undefined;
187
+ return closed;
169
188
  }
170
- return typeof cb == "function" ? cb() : Promise.resolve();
189
+ return Promise.resolve();
171
190
  }
172
- function connected() {
173
- return connection && connection.isConnected();
191
+ function isConnected() {
192
+ return !!connection;
174
193
  }
175
194
 
176
195
  exports.ObjectId = ObjectId;
177
196
  exports.close = close;
178
- exports.connected = connected;
179
197
  exports.database = database;
198
+ exports.isConnected = isConnected;
180
199
  exports.objectId = objectId;
181
200
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../publish/src/mongo.js","../publish/src/check.js","../publish/src/objectid.js","../publish/src/database.js"],"sourcesContent":["let mongodb = globalThis[Symbol.for(\"kDatabaseDevkit\")] = globalThis[Symbol.for(\"kDatabaseDevkit\")] || require(\"mongodb\");\n;\nexport { mongodb };\n//# sourceMappingURL=mongo.js.map","import { mongodb } from \"./mongo\";\nfunction emitWarning(path) {\n process.emitWarning(`Property in the document path '${path}' contains an ObjectId value.\\n` +\n `This may lead to some inconsistencies within the system.\\n` +\n `You may want to cast it to string before using it.`);\n}\nexport function checkDocument(document, path = undefined) {\n if (document instanceof mongodb.ObjectId) {\n // Check if the path is alike 0._id or _id or $set._id\n if (/^(\\d\\._id|_id|\\$.*?\\._id)$/.test(path)) {\n return;\n }\n emitWarning(path);\n }\n else if (Array.isArray(document)) {\n for (const [index, subDocument] of document.entries()) {\n const subPath = [path, index].filter(r => r != undefined).join(\".\");\n checkDocument(subDocument, subPath);\n }\n }\n else if (typeof document == \"object\") {\n for (const key in document) {\n const subDocument = document[key];\n const subPath = [path, key].filter(r => r != undefined).join(\".\");\n checkDocument(subDocument, subPath);\n }\n }\n}\nexport function checkDocuments(documents) {\n for (const [index, document] of documents.entries()) {\n checkDocument(document, String(index));\n }\n}\n//# sourceMappingURL=check.js.map","import * as util from \"util\";\nimport { mongodb } from \"./mongo\";\nexport const objectId = util.deprecate((id) => {\n return new mongodb.ObjectId(id);\n}, \"objectId is deprecated, please replace it with ObjectId class.\");\nexport const ObjectId = mongodb.ObjectId;\n//# sourceMappingURL=objectid.js.map","import * as util from \"util\";\nimport { checkDocument, checkDocuments } from \"./check\";\nimport { mongodb } from \"./mongo\";\nimport { ObjectId } from \"./objectid\";\nprocess.once(\"SIGTERM\", () => {\n close(false, () => process.exit());\n});\nlet connection = globalThis[Symbol.for(\"kDatabaseDevkitConn\")];\nfunction ignoreWarnings() {\n return \"NO_DEVKIT_DATABASE_WARNING\" in process.env;\n}\nfunction checkEnvironment() {\n if (!process.env.RUNTIME) {\n process.emitWarning(`Seems like you are not under spica/functions environment.` +\n `This module is only designed to work with spica/functions.`);\n }\n const { __INTERNAL__SPICA__MONGOURL__: url, __INTERNAL__SPICA__MONGODBNAME__: dbName } = process.env;\n if (!url || !dbName) {\n throw new Error(`The <__INTERNAL__SPICA__MONGOURL__> or <__INTERNAL__SPICA__MONGODBNAME__> variables was not given.`);\n }\n}\nasync function connect() {\n if (!connected()) {\n connection = new mongodb.MongoClient(process.env.__INTERNAL__SPICA__MONGOURL__, {\n replicaSet: process.env.__INTERNAL__SPICA__MONGOREPL__,\n appname: `Functions on ${process.env.RUNTIME || \"unknown\"} runtime.`,\n useNewUrlParser: true,\n // @ts-ignore\n useUnifiedTopology: true\n });\n }\n if (!connection.isConnected()) {\n await connection.connect();\n }\n return connection;\n}\nexport async function database() {\n checkEnvironment();\n const connection = (globalThis[Symbol.for(\"kDatabaseDevkitConn\")] = await connect());\n if (!ignoreWarnings() && \"TIMEOUT\" in process.env) {\n process.emitWarning(`As the structure of the data in the database is subject to change in any future release, we encourage you not to interact with the database directly.\\n` +\n `As an alternative, we recommend you to interact with the APIs through an API Key to do the same. \\n` +\n `Set NO_DEVKIT_DATABASE_WARNING environment variable to ignore this warning.`, \"FootgunWarning\");\n }\n const db = connection.db(process.env.__INTERNAL__SPICA__MONGODBNAME__);\n const collection = db.collection;\n db.collection = (...args) => {\n const coll = collection.call(db, ...args);\n coll.watch = util.deprecate(coll.watch, `It is not advised to use 'watch' under spica/functions environment. I hope that you know what you are doing.`);\n const findById = coll.findOne;\n coll[\"findById\"] = (id, ...args) => {\n const objectId = new ObjectId(id);\n return findById.bind(coll)({ _id: objectId }, ...args);\n };\n const findOne = coll.findOne;\n coll.findOne = (filter, ...args) => {\n validateDocs(filter);\n return findOne.bind(coll)(filter, ...args);\n };\n const find = coll.find;\n coll.find = (filter, ...args) => {\n validateDocs(filter);\n return find.bind(coll)(filter, ...args);\n };\n const findOneAndUpdate = coll.findOneAndUpdate;\n coll.findOneAndUpdate = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return findOneAndUpdate.bind(coll)(filter, update, ...args);\n };\n const findOneAndReplace = coll.findOneAndReplace;\n coll.findOneAndReplace = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return findOneAndReplace.bind(coll)(filter, update, ...args);\n };\n const findOneAndDelete = coll.findOneAndDelete;\n coll.findOneAndDelete = (filter, ...args) => {\n validateDocs(filter);\n return findOneAndDelete.bind(coll)(filter, ...args);\n };\n const insertOne = coll.insertOne;\n coll.insertOne = (doc, ...args) => {\n validateDocs(doc);\n return insertOne.bind(coll)(doc, ...args);\n };\n const insertMany = coll.insertMany;\n coll.insertMany = (docs, ...args) => {\n validateDocs(docs);\n return insertMany.bind(coll)(docs, ...args);\n };\n const updateOne = coll.updateOne;\n coll.updateOne = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return updateOne.bind(coll)(filter, update, ...args);\n };\n const updateMany = coll.updateMany;\n coll.updateMany = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return updateMany.bind(coll)(filter, update, ...args);\n };\n const deleteOne = coll.deleteOne;\n coll.deleteOne = (filter, ...args) => {\n validateDocs(filter);\n return deleteOne.bind(coll)(filter, ...args);\n };\n const deleteMany = coll.deleteMany;\n coll.deleteMany = (filter, ...args) => {\n validateDocs(filter);\n return deleteMany.bind(coll)(filter, ...args);\n };\n return coll;\n };\n return db;\n}\nfunction validateDocs(doc) {\n if (!ignoreWarnings()) {\n Array.isArray(doc) ? checkDocuments(doc) : checkDocument(doc);\n }\n}\nexport function close(force, cb) {\n if (connection) {\n globalThis[Symbol.for(\"kDatabaseDevkitConn\")] = undefined;\n return connection.close(force, cb);\n }\n return typeof cb == \"function\" ? cb() : Promise.resolve();\n}\nexport function connected() {\n return connection && connection.isConnected();\n}\n//# sourceMappingURL=database.js.map"],"names":["util.deprecate"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../../../../../../apps/api/src/function/packages/database/src/mongo.ts","../../../../../../../../../../../../../apps/api/src/function/packages/database/src/check.ts","../../../../../../../../../../../../../apps/api/src/function/packages/database/src/objectid.ts","../../../../../../../../../../../../../apps/api/src/function/packages/database/src/database.ts"],"sourcesContent":[null,null,null,null],"names":["mongo"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,6 +1,8 @@
1
- import { deprecate } from 'util';
1
+ import * as mongo from 'mongodb';
2
+ import util from 'util';
2
3
 
3
- let mongodb = globalThis[Symbol.for("kDatabaseDevkit")] = globalThis[Symbol.for("kDatabaseDevkit")] || require("mongodb");
4
+ let mongodb = (globalThis[Symbol.for("kDatabaseDevkit")] =
5
+ globalThis[Symbol.for("kDatabaseDevkit")] || mongo);
4
6
 
5
7
  function emitWarning(path) {
6
8
  process.emitWarning(`Property in the document path '${path}' contains an ObjectId value.\n` +
@@ -9,7 +11,6 @@ function emitWarning(path) {
9
11
  }
10
12
  function checkDocument(document, path = undefined) {
11
13
  if (document instanceof mongodb.ObjectId) {
12
- // Check if the path is alike 0._id or _id or $set._id
13
14
  if (/^(\d\._id|_id|\$.*?\._id)$/.test(path)) {
14
15
  return;
15
16
  }
@@ -35,13 +36,14 @@ function checkDocuments(documents) {
35
36
  }
36
37
  }
37
38
 
38
- const objectId = deprecate((id) => {
39
+ const objectId = util.deprecate((id) => {
39
40
  return new mongodb.ObjectId(id);
40
41
  }, "objectId is deprecated, please replace it with ObjectId class.");
41
42
  const ObjectId = mongodb.ObjectId;
42
43
 
43
44
  process.once("SIGTERM", () => {
44
- close(false, () => process.exit());
45
+ const closeRes = close(false);
46
+ closeRes instanceof Promise ? closeRes.then(() => process.exit()) : process.exit();
45
47
  });
46
48
  let connection = globalThis[Symbol.for("kDatabaseDevkitConn")];
47
49
  function ignoreWarnings() {
@@ -58,18 +60,13 @@ function checkEnvironment() {
58
60
  }
59
61
  }
60
62
  async function connect() {
61
- if (!connected()) {
63
+ if (!connection) {
62
64
  connection = new mongodb.MongoClient(process.env.__INTERNAL__SPICA__MONGOURL__, {
63
65
  replicaSet: process.env.__INTERNAL__SPICA__MONGOREPL__,
64
- appname: `Functions on ${process.env.RUNTIME || "unknown"} runtime.`,
65
- useNewUrlParser: true,
66
- // @ts-ignore
67
- useUnifiedTopology: true
66
+ appName: `Functions on ${process.env.RUNTIME || "unknown"} runtime.`
68
67
  });
69
68
  }
70
- if (!connection.isConnected()) {
71
- await connection.connect();
72
- }
69
+ await connection.connect();
73
70
  return connection;
74
71
  }
75
72
  async function database() {
@@ -84,7 +81,11 @@ async function database() {
84
81
  const collection = db.collection;
85
82
  db.collection = (...args) => {
86
83
  const coll = collection.call(db, ...args);
87
- coll.watch = deprecate(coll.watch, `It is not advised to use 'watch' under spica/functions environment. I hope that you know what you are doing.`);
84
+ const watch = coll.watch;
85
+ coll.watch = (...args) => {
86
+ process.emitWarning("DeprecationWarning: It is not advised to use 'watch' under spica/functions environment. I hope that you know what you are doing.");
87
+ return watch.bind(coll)(...args);
88
+ };
88
89
  const findById = coll.findOne;
89
90
  coll["findById"] = (id, ...args) => {
90
91
  const objectId = new ObjectId(id);
@@ -158,16 +159,17 @@ function validateDocs(doc) {
158
159
  Array.isArray(doc) ? checkDocuments(doc) : checkDocument(doc);
159
160
  }
160
161
  }
161
- function close(force, cb) {
162
+ function close(force) {
162
163
  if (connection) {
163
- globalThis[Symbol.for("kDatabaseDevkitConn")] = undefined;
164
- return connection.close(force, cb);
164
+ const closed = connection.close(force);
165
+ connection = globalThis[Symbol.for("kDatabaseDevkitConn")] = undefined;
166
+ return closed;
165
167
  }
166
- return typeof cb == "function" ? cb() : Promise.resolve();
168
+ return Promise.resolve();
167
169
  }
168
- function connected() {
169
- return connection && connection.isConnected();
170
+ function isConnected() {
171
+ return !!connection;
170
172
  }
171
173
 
172
- export { ObjectId, close, connected, database, objectId };
174
+ export { ObjectId, close, database, isConnected, objectId };
173
175
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../publish/src/mongo.js","../publish/src/check.js","../publish/src/objectid.js","../publish/src/database.js"],"sourcesContent":["let mongodb = globalThis[Symbol.for(\"kDatabaseDevkit\")] = globalThis[Symbol.for(\"kDatabaseDevkit\")] || require(\"mongodb\");\n;\nexport { mongodb };\n//# sourceMappingURL=mongo.js.map","import { mongodb } from \"./mongo\";\nfunction emitWarning(path) {\n process.emitWarning(`Property in the document path '${path}' contains an ObjectId value.\\n` +\n `This may lead to some inconsistencies within the system.\\n` +\n `You may want to cast it to string before using it.`);\n}\nexport function checkDocument(document, path = undefined) {\n if (document instanceof mongodb.ObjectId) {\n // Check if the path is alike 0._id or _id or $set._id\n if (/^(\\d\\._id|_id|\\$.*?\\._id)$/.test(path)) {\n return;\n }\n emitWarning(path);\n }\n else if (Array.isArray(document)) {\n for (const [index, subDocument] of document.entries()) {\n const subPath = [path, index].filter(r => r != undefined).join(\".\");\n checkDocument(subDocument, subPath);\n }\n }\n else if (typeof document == \"object\") {\n for (const key in document) {\n const subDocument = document[key];\n const subPath = [path, key].filter(r => r != undefined).join(\".\");\n checkDocument(subDocument, subPath);\n }\n }\n}\nexport function checkDocuments(documents) {\n for (const [index, document] of documents.entries()) {\n checkDocument(document, String(index));\n }\n}\n//# sourceMappingURL=check.js.map","import * as util from \"util\";\nimport { mongodb } from \"./mongo\";\nexport const objectId = util.deprecate((id) => {\n return new mongodb.ObjectId(id);\n}, \"objectId is deprecated, please replace it with ObjectId class.\");\nexport const ObjectId = mongodb.ObjectId;\n//# sourceMappingURL=objectid.js.map","import * as util from \"util\";\nimport { checkDocument, checkDocuments } from \"./check\";\nimport { mongodb } from \"./mongo\";\nimport { ObjectId } from \"./objectid\";\nprocess.once(\"SIGTERM\", () => {\n close(false, () => process.exit());\n});\nlet connection = globalThis[Symbol.for(\"kDatabaseDevkitConn\")];\nfunction ignoreWarnings() {\n return \"NO_DEVKIT_DATABASE_WARNING\" in process.env;\n}\nfunction checkEnvironment() {\n if (!process.env.RUNTIME) {\n process.emitWarning(`Seems like you are not under spica/functions environment.` +\n `This module is only designed to work with spica/functions.`);\n }\n const { __INTERNAL__SPICA__MONGOURL__: url, __INTERNAL__SPICA__MONGODBNAME__: dbName } = process.env;\n if (!url || !dbName) {\n throw new Error(`The <__INTERNAL__SPICA__MONGOURL__> or <__INTERNAL__SPICA__MONGODBNAME__> variables was not given.`);\n }\n}\nasync function connect() {\n if (!connected()) {\n connection = new mongodb.MongoClient(process.env.__INTERNAL__SPICA__MONGOURL__, {\n replicaSet: process.env.__INTERNAL__SPICA__MONGOREPL__,\n appname: `Functions on ${process.env.RUNTIME || \"unknown\"} runtime.`,\n useNewUrlParser: true,\n // @ts-ignore\n useUnifiedTopology: true\n });\n }\n if (!connection.isConnected()) {\n await connection.connect();\n }\n return connection;\n}\nexport async function database() {\n checkEnvironment();\n const connection = (globalThis[Symbol.for(\"kDatabaseDevkitConn\")] = await connect());\n if (!ignoreWarnings() && \"TIMEOUT\" in process.env) {\n process.emitWarning(`As the structure of the data in the database is subject to change in any future release, we encourage you not to interact with the database directly.\\n` +\n `As an alternative, we recommend you to interact with the APIs through an API Key to do the same. \\n` +\n `Set NO_DEVKIT_DATABASE_WARNING environment variable to ignore this warning.`, \"FootgunWarning\");\n }\n const db = connection.db(process.env.__INTERNAL__SPICA__MONGODBNAME__);\n const collection = db.collection;\n db.collection = (...args) => {\n const coll = collection.call(db, ...args);\n coll.watch = util.deprecate(coll.watch, `It is not advised to use 'watch' under spica/functions environment. I hope that you know what you are doing.`);\n const findById = coll.findOne;\n coll[\"findById\"] = (id, ...args) => {\n const objectId = new ObjectId(id);\n return findById.bind(coll)({ _id: objectId }, ...args);\n };\n const findOne = coll.findOne;\n coll.findOne = (filter, ...args) => {\n validateDocs(filter);\n return findOne.bind(coll)(filter, ...args);\n };\n const find = coll.find;\n coll.find = (filter, ...args) => {\n validateDocs(filter);\n return find.bind(coll)(filter, ...args);\n };\n const findOneAndUpdate = coll.findOneAndUpdate;\n coll.findOneAndUpdate = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return findOneAndUpdate.bind(coll)(filter, update, ...args);\n };\n const findOneAndReplace = coll.findOneAndReplace;\n coll.findOneAndReplace = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return findOneAndReplace.bind(coll)(filter, update, ...args);\n };\n const findOneAndDelete = coll.findOneAndDelete;\n coll.findOneAndDelete = (filter, ...args) => {\n validateDocs(filter);\n return findOneAndDelete.bind(coll)(filter, ...args);\n };\n const insertOne = coll.insertOne;\n coll.insertOne = (doc, ...args) => {\n validateDocs(doc);\n return insertOne.bind(coll)(doc, ...args);\n };\n const insertMany = coll.insertMany;\n coll.insertMany = (docs, ...args) => {\n validateDocs(docs);\n return insertMany.bind(coll)(docs, ...args);\n };\n const updateOne = coll.updateOne;\n coll.updateOne = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return updateOne.bind(coll)(filter, update, ...args);\n };\n const updateMany = coll.updateMany;\n coll.updateMany = (filter, update, ...args) => {\n validateDocs(filter);\n validateDocs(update);\n return updateMany.bind(coll)(filter, update, ...args);\n };\n const deleteOne = coll.deleteOne;\n coll.deleteOne = (filter, ...args) => {\n validateDocs(filter);\n return deleteOne.bind(coll)(filter, ...args);\n };\n const deleteMany = coll.deleteMany;\n coll.deleteMany = (filter, ...args) => {\n validateDocs(filter);\n return deleteMany.bind(coll)(filter, ...args);\n };\n return coll;\n };\n return db;\n}\nfunction validateDocs(doc) {\n if (!ignoreWarnings()) {\n Array.isArray(doc) ? checkDocuments(doc) : checkDocument(doc);\n }\n}\nexport function close(force, cb) {\n if (connection) {\n globalThis[Symbol.for(\"kDatabaseDevkitConn\")] = undefined;\n return connection.close(force, cb);\n }\n return typeof cb == \"function\" ? cb() : Promise.resolve();\n}\nexport function connected() {\n return connection && connection.isConnected();\n}\n//# sourceMappingURL=database.js.map"],"names":["util.deprecate"],"mappings":";;AAAA,IAAI,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;;ACCzH,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,+BAA+B,EAAE,IAAI,CAAC,+BAA+B,CAAC;AAC/F,QAAQ,CAAC,0DAA0D,CAAC;AACpE,QAAQ,CAAC,kDAAkD,CAAC,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAE;AAC1D,IAAI,IAAI,QAAQ,YAAY,OAAO,CAAC,QAAQ,EAAE;AAC9C;AACA,QAAQ,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrD,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAK;AACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACtC,QAAQ,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;AAC/D,YAAY,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChF,YAAY,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAChD,SAAS;AACT,KAAK;AACL,SAAS,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;AAC1C,QAAQ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACpC,YAAY,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,YAAY,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E,YAAY,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAChD,SAAS;AACT,KAAK;AACL,CAAC;AACM,SAAS,cAAc,CAAC,SAAS,EAAE;AAC1C,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;AACzD,QAAQ,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,KAAK;AACL;;AC9BY,MAAC,QAAQ,GAAGA,SAAc,CAAC,CAAC,EAAE,KAAK;AAC/C,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC,EAAE,gEAAgE,EAAE;AACzD,MAAC,QAAQ,GAAG,OAAO,CAAC;;ACDhC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM;AAC9B,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AACH,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC/D,SAAS,cAAc,GAAG;AAC1B,IAAI,OAAO,4BAA4B,IAAI,OAAO,CAAC,GAAG,CAAC;AACvD,CAAC;AACD,SAAS,gBAAgB,GAAG;AAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;AAC9B,QAAQ,OAAO,CAAC,WAAW,CAAC,CAAC,yDAAyD,CAAC;AACvF,YAAY,CAAC,0DAA0D,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,MAAM,EAAE,6BAA6B,EAAE,GAAG,EAAE,gCAAgC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AACzG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,kGAAkG,CAAC,CAAC,CAAC;AAC9H,KAAK;AACL,CAAC;AACD,eAAe,OAAO,GAAG;AACzB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACtB,QAAQ,UAAU,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE;AACxF,YAAY,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B;AAClE,YAAY,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC;AAChF,YAAY,eAAe,EAAE,IAAI;AACjC;AACA,YAAY,kBAAkB,EAAE,IAAI;AACpC,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;AACnC,QAAQ,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC;AACM,eAAe,QAAQ,GAAG;AACjC,IAAI,gBAAgB,EAAE,CAAC;AACvB,IAAI,MAAM,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;AACzF,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE;AACvD,QAAQ,OAAO,CAAC,WAAW,CAAC,CAAC,uJAAuJ,CAAC;AACrL,YAAY,CAAC,mGAAmG,CAAC;AACjH,YAAY,CAAC,2EAA2E,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC7G,KAAK;AACL,IAAI,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAC3E,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AACrC,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,KAAK;AACjC,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,GAAGA,SAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,4GAA4G,CAAC,CAAC,CAAC;AAChK,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;AACtC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,KAAK;AAC5C,YAAY,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9C,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AACnE,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK;AAC5C,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AACvD,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK;AACzC,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AACpD,SAAS,CAAC;AACV,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACvD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK;AAC7D,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACzD,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK;AAC9D,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AACzE,SAAS,CAAC;AACV,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACvD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK;AACrD,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAChE,SAAS,CAAC;AACV,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK;AAC3C,YAAY,YAAY,CAAC,GAAG,CAAC,CAAC;AAC9B,YAAY,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACtD,SAAS,CAAC;AACV,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK;AAC7C,YAAY,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/B,YAAY,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACxD,SAAS,CAAC;AACV,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK;AACtD,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AACjE,SAAS,CAAC;AACV,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK;AACvD,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAClE,SAAS,CAAC;AACV,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK;AAC9C,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AACzD,SAAS,CAAC;AACV,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK;AAC/C,YAAY,YAAY,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1D,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AAC3B,QAAQ,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACtE,KAAK;AACL,CAAC;AACM,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;AACjC,IAAI,IAAI,UAAU,EAAE;AACpB,QAAQ,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,GAAG,SAAS,CAAC;AAClE,QAAQ,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,OAAO,OAAO,EAAE,IAAI,UAAU,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC9D,CAAC;AACM,SAAS,SAAS,GAAG;AAC5B,IAAI,OAAO,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;AAClD;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../../../../../../../../apps/api/src/function/packages/database/src/mongo.ts","../../../../../../../../../../../../../apps/api/src/function/packages/database/src/check.ts","../../../../../../../../../../../../../apps/api/src/function/packages/database/src/objectid.ts","../../../../../../../../../../../../../apps/api/src/function/packages/database/src/database.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
File without changes
@@ -1,4 +1,4 @@
1
1
  import { _mongodb } from "./mongo";
2
2
  export declare function database(): Promise<_mongodb.Db>;
3
- export declare function close(force?: boolean, cb?: (...args: any) => void): Promise<void> | void;
4
- export declare function connected(): boolean;
3
+ export declare function close(force?: boolean): Promise<void> | void;
4
+ export declare function isConnected(): boolean;
File without changes
File without changes
@@ -1,3 +1,3 @@
1
1
  import { _mongodb } from "./mongo";
2
- export declare const objectId: (id?: string | number | _mongodb.ObjectId) => _mongodb.ObjectID;
3
- export declare const ObjectId: typeof _mongodb.ObjectID;
2
+ export declare const objectId: (id?: string | number | _mongodb.ObjectId) => _mongodb.BSON.ObjectId;
3
+ export declare const ObjectId: typeof _mongodb.BSON.ObjectId;
package/package.json CHANGED
@@ -1,18 +1,20 @@
1
1
  {
2
2
  "name": "@spica-devkit/database",
3
3
  "license": "AGPLv3",
4
- "version": "0.9.29",
4
+ "version": "0.11.0",
5
5
  "description": "Database package for Spica functions.",
6
6
  "author": "spica",
7
- "keywords": ["spica", "devkit"],
8
- "main": "dist/index",
7
+ "keywords": [
8
+ "spica",
9
+ "devkit"
10
+ ],
11
+ "main": "dist/index.js",
9
12
  "module": "dist/index.mjs",
10
13
  "sideEffects": false,
11
14
  "types": "dist/index.d.ts",
12
15
  "typings": "dist/index.d.ts",
13
16
  "dependencies": {
14
- "mongodb": "^3.5.4",
15
- "@types/mongodb": "^3.3.16"
17
+ "mongodb": "^6.12.0"
16
18
  },
17
19
  "scripts": {
18
20
  "postinstall": "node ./scripts/postinstall.js"
File without changes
package/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./src/index";
package/index.js DELETED
@@ -1,14 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./src/index"), exports);
14
- //# sourceMappingURL=index.js.map
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../stacks/api/function/packages/database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B"}
package/src/check.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare function checkDocument(document: object, path?: string): void;
2
- export declare function checkDocuments(documents: object[]): void;
package/src/check.js DELETED
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkDocuments = exports.checkDocument = void 0;
4
- const mongo_1 = require("./mongo");
5
- function emitWarning(path) {
6
- process.emitWarning(`Property in the document path '${path}' contains an ObjectId value.\n` +
7
- `This may lead to some inconsistencies within the system.\n` +
8
- `You may want to cast it to string before using it.`);
9
- }
10
- function checkDocument(document, path = undefined) {
11
- if (document instanceof mongo_1.mongodb.ObjectId) {
12
- // Check if the path is alike 0._id or _id or $set._id
13
- if (/^(\d\._id|_id|\$.*?\._id)$/.test(path)) {
14
- return;
15
- }
16
- emitWarning(path);
17
- }
18
- else if (Array.isArray(document)) {
19
- for (const [index, subDocument] of document.entries()) {
20
- const subPath = [path, index].filter(r => r != undefined).join(".");
21
- checkDocument(subDocument, subPath);
22
- }
23
- }
24
- else if (typeof document == "object") {
25
- for (const key in document) {
26
- const subDocument = document[key];
27
- const subPath = [path, key].filter(r => r != undefined).join(".");
28
- checkDocument(subDocument, subPath);
29
- }
30
- }
31
- }
32
- exports.checkDocument = checkDocument;
33
- function checkDocuments(documents) {
34
- for (const [index, document] of documents.entries()) {
35
- checkDocument(document, String(index));
36
- }
37
- }
38
- exports.checkDocuments = checkDocuments;
39
- //# sourceMappingURL=check.js.map
package/src/check.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../../../../../stacks/api/function/packages/database/src/check.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,CAAC,WAAW,CACjB,kCAAkC,IAAI,iCAAiC;QACrE,4DAA4D;QAC5D,oDAAoD,CACvD,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,OAAe,SAAS;IACtE,IAAI,QAAQ,YAAY,eAAO,CAAC,QAAQ,EAAE;QACxC,sDAAsD;QACtD,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO;SACR;QACD,WAAW,CAAC,IAAI,CAAC,CAAC;KACnB;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAClC,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;YACrD,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpE,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;SACrC;KACF;SAAM,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;QACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;YAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClE,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;SACrC;KACF;AACH,CAAC;AAnBD,sCAmBC;AAED,SAAgB,cAAc,CAAC,SAAmB;IAChD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;QACnD,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACxC;AACH,CAAC;AAJD,wCAIC"}
package/src/database.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { _mongodb } from "./mongo";
2
- export declare function database(): Promise<_mongodb.Db>;
3
- export declare function close(force?: boolean, cb?: (...args: any) => void): Promise<void> | void;
4
- export declare function connected(): boolean;
package/src/database.js DELETED
@@ -1,139 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.connected = exports.close = exports.database = void 0;
4
- const util = require("util");
5
- const check_1 = require("./check");
6
- const mongo_1 = require("./mongo");
7
- const objectid_1 = require("./objectid");
8
- process.once("SIGTERM", () => {
9
- close(false, () => process.exit());
10
- });
11
- let connection = globalThis[Symbol.for("kDatabaseDevkitConn")];
12
- function ignoreWarnings() {
13
- return "NO_DEVKIT_DATABASE_WARNING" in process.env;
14
- }
15
- function checkEnvironment() {
16
- if (!process.env.RUNTIME) {
17
- process.emitWarning(`Seems like you are not under spica/functions environment.` +
18
- `This module is only designed to work with spica/functions.`);
19
- }
20
- const { __INTERNAL__SPICA__MONGOURL__: url, __INTERNAL__SPICA__MONGODBNAME__: dbName } = process.env;
21
- if (!url || !dbName) {
22
- throw new Error(`The <__INTERNAL__SPICA__MONGOURL__> or <__INTERNAL__SPICA__MONGODBNAME__> variables was not given.`);
23
- }
24
- }
25
- async function connect() {
26
- if (!connected()) {
27
- connection = new mongo_1.mongodb.MongoClient(process.env.__INTERNAL__SPICA__MONGOURL__, {
28
- replicaSet: process.env.__INTERNAL__SPICA__MONGOREPL__,
29
- appname: `Functions on ${process.env.RUNTIME || "unknown"} runtime.`,
30
- useNewUrlParser: true,
31
- // @ts-ignore
32
- useUnifiedTopology: true
33
- });
34
- }
35
- if (!connection.isConnected()) {
36
- await connection.connect();
37
- }
38
- return connection;
39
- }
40
- async function database() {
41
- checkEnvironment();
42
- const connection = (globalThis[Symbol.for("kDatabaseDevkitConn")] = await connect());
43
- if (!ignoreWarnings() && "TIMEOUT" in process.env) {
44
- process.emitWarning(`As the structure of the data in the database is subject to change in any future release, we encourage you not to interact with the database directly.\n` +
45
- `As an alternative, we recommend you to interact with the APIs through an API Key to do the same. \n` +
46
- `Set NO_DEVKIT_DATABASE_WARNING environment variable to ignore this warning.`, "FootgunWarning");
47
- }
48
- const db = connection.db(process.env.__INTERNAL__SPICA__MONGODBNAME__);
49
- const collection = db.collection;
50
- db.collection = (...args) => {
51
- const coll = collection.call(db, ...args);
52
- coll.watch = util.deprecate(coll.watch, `It is not advised to use 'watch' under spica/functions environment. I hope that you know what you are doing.`);
53
- const findById = coll.findOne;
54
- coll["findById"] = (id, ...args) => {
55
- const objectId = new objectid_1.ObjectId(id);
56
- return findById.bind(coll)({ _id: objectId }, ...args);
57
- };
58
- const findOne = coll.findOne;
59
- coll.findOne = (filter, ...args) => {
60
- validateDocs(filter);
61
- return findOne.bind(coll)(filter, ...args);
62
- };
63
- const find = coll.find;
64
- coll.find = (filter, ...args) => {
65
- validateDocs(filter);
66
- return find.bind(coll)(filter, ...args);
67
- };
68
- const findOneAndUpdate = coll.findOneAndUpdate;
69
- coll.findOneAndUpdate = (filter, update, ...args) => {
70
- validateDocs(filter);
71
- validateDocs(update);
72
- return findOneAndUpdate.bind(coll)(filter, update, ...args);
73
- };
74
- const findOneAndReplace = coll.findOneAndReplace;
75
- coll.findOneAndReplace = (filter, update, ...args) => {
76
- validateDocs(filter);
77
- validateDocs(update);
78
- return findOneAndReplace.bind(coll)(filter, update, ...args);
79
- };
80
- const findOneAndDelete = coll.findOneAndDelete;
81
- coll.findOneAndDelete = (filter, ...args) => {
82
- validateDocs(filter);
83
- return findOneAndDelete.bind(coll)(filter, ...args);
84
- };
85
- const insertOne = coll.insertOne;
86
- coll.insertOne = (doc, ...args) => {
87
- validateDocs(doc);
88
- return insertOne.bind(coll)(doc, ...args);
89
- };
90
- const insertMany = coll.insertMany;
91
- coll.insertMany = (docs, ...args) => {
92
- validateDocs(docs);
93
- return insertMany.bind(coll)(docs, ...args);
94
- };
95
- const updateOne = coll.updateOne;
96
- coll.updateOne = (filter, update, ...args) => {
97
- validateDocs(filter);
98
- validateDocs(update);
99
- return updateOne.bind(coll)(filter, update, ...args);
100
- };
101
- const updateMany = coll.updateMany;
102
- coll.updateMany = (filter, update, ...args) => {
103
- validateDocs(filter);
104
- validateDocs(update);
105
- return updateMany.bind(coll)(filter, update, ...args);
106
- };
107
- const deleteOne = coll.deleteOne;
108
- coll.deleteOne = (filter, ...args) => {
109
- validateDocs(filter);
110
- return deleteOne.bind(coll)(filter, ...args);
111
- };
112
- const deleteMany = coll.deleteMany;
113
- coll.deleteMany = (filter, ...args) => {
114
- validateDocs(filter);
115
- return deleteMany.bind(coll)(filter, ...args);
116
- };
117
- return coll;
118
- };
119
- return db;
120
- }
121
- exports.database = database;
122
- function validateDocs(doc) {
123
- if (!ignoreWarnings()) {
124
- Array.isArray(doc) ? check_1.checkDocuments(doc) : check_1.checkDocument(doc);
125
- }
126
- }
127
- function close(force, cb) {
128
- if (connection) {
129
- globalThis[Symbol.for("kDatabaseDevkitConn")] = undefined;
130
- return connection.close(force, cb);
131
- }
132
- return typeof cb == "function" ? cb() : Promise.resolve();
133
- }
134
- exports.close = close;
135
- function connected() {
136
- return connection && connection.isConnected();
137
- }
138
- exports.connected = connected;
139
- //# sourceMappingURL=database.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../../../stacks/api/function/packages/database/src/database.ts"],"names":[],"mappings":"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"}
package/src/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./database";
2
- export * from "./objectid";
package/src/index.js DELETED
@@ -1,15 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./database"), exports);
14
- __exportStar(require("./objectid"), exports);
15
- //# sourceMappingURL=index.js.map
package/src/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../stacks/api/function/packages/database/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B"}
package/src/mongo.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type * as _mongodb from "mongodb";
2
- declare let mongodb: typeof import("mongodb");
3
- export { mongodb, _mongodb };
package/src/mongo.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mongodb = void 0;
4
- let mongodb = globalThis[Symbol.for("kDatabaseDevkit")] = globalThis[Symbol.for("kDatabaseDevkit")] || require("mongodb");
5
- exports.mongodb = mongodb;
6
- ;
7
- //# sourceMappingURL=mongo.js.map
package/src/mongo.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../../../../../../../../stacks/api/function/packages/database/src/mongo.ts"],"names":[],"mappings":";;;AAEA,IAAI,OAAO,GAA6B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5I,0BAAO;AADqI,CAAC"}
package/src/objectid.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { _mongodb } from "./mongo";
2
- export declare const objectId: (id?: string | number | _mongodb.ObjectId) => _mongodb.ObjectID;
3
- export declare const ObjectId: typeof _mongodb.ObjectID;
package/src/objectid.js DELETED
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectId = exports.objectId = void 0;
4
- const util = require("util");
5
- const mongo_1 = require("./mongo");
6
- exports.objectId = util.deprecate((id) => {
7
- return new mongo_1.mongodb.ObjectId(id);
8
- }, "objectId is deprecated, please replace it with ObjectId class.");
9
- exports.ObjectId = mongo_1.mongodb.ObjectId;
10
- //# sourceMappingURL=objectid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectid.js","sourceRoot":"","sources":["../../../../../../../../../stacks/api/function/packages/database/src/objectid.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,mCAA0C;AAE7B,QAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAwC,EAAE,EAAE;IAClF,OAAO,IAAI,eAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC,EAAE,gEAAgE,CAAC,CAAC;AAExD,QAAA,QAAQ,GAAG,eAAO,CAAC,QAAQ,CAAC"}