ueberdb2 4.1.26 → 4.1.27
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/databases/mysql_db.cjs +1 -1
- package/dist/index.cjs +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var h=(i,t,e)=>t in i?c(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var l=(i,t,e)=>(h(i,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";var c=Object.defineProperty;var h=(i,t,e)=>t in i?c(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var l=(i,t,e)=>(h(i,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("../lib/AbstractDatabase.cjs");require("crypto");require("../node_modules/events/events.cjs");require("../node_modules/buffer/index.cjs");const u=require("util"),A=class extends E{constructor(t){super();l(this,"_mysqlSettings");l(this,"_pool");this.logger=console,this._mysqlSettings={charset:"utf8mb4",...t},this.settings={engine:"InnoDB",bulkLimit:100,json:!0,queryTimeout:6e4},this._pool=null}get isAsync(){return!0}async _query(t){try{return await new Promise((e,r)=>{t={timeout:this.settings.queryTimeout,...t},this._pool&&this._pool.query(t,(s,...n)=>s!=null?r(s):e(n))})}catch(e){throw this.logger.error(`${e.fatal?"Fatal ":""}MySQL error: ${e.stack||e}`),e}}async init(){this._pool=(void 0)(this._mysqlSettings);const{database:t,charset:e}=this._mysqlSettings,r=`CREATE TABLE IF NOT EXISTS \`store\` ( \`key\` VARCHAR( 100 ) NOT NULL COLLATE utf8mb4_bin, \`value\` LONGTEXT COLLATE utf8mb4_bin NOT NULL , PRIMARY KEY ( \`key\` ) ) ENGINE=${this.settings.engine} CHARSET=utf8mb4 COLLATE=utf8mb4_bin;`,s="ALTER TABLE store MODIFY `key` VARCHAR(100) COLLATE utf8mb4_bin;";await this._query({sql:r});const n=`SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${t}'`;let[a]=await this._query({sql:n});a=JSON.parse(JSON.stringify(a)),a[0].DEFAULT_CHARACTER_SET_NAME!==e&&(this.logger.error(`Database is not configured with charset ${e} -- This may lead to crashes when certain characters are pasted in pads`),this.logger.log(a[0],e)),a[0].DEFAULT_COLLATION_NAME.indexOf(e)===-1&&(this.logger.error(`Database is not configured with collation name that includes ${e} -- This may lead to crashes when certain characters are pasted in pads`),this.logger.log(a[0],e,a[0].DEFAULT_COLLATION_NAME));const o=`SELECT CCSA.character_set_name AS character_set_name FROM information_schema.\`TABLES\` T,information_schema.\`COLLATION_CHARACTER_SET_APPLICABILITY\` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = '${t}' AND T.table_name = 'store'`;[a]=await this._query({sql:o}),a[0]||this.logger.warn("Data has no character_set_name value -- This may lead to crashes when certain characters are pasted in pads"),a[0]&&a[0].character_set_name!==e&&(this.logger.error(`table is not configured with charset ${e} -- This may lead to crashes when certain characters are pasted in pads`),this.logger.log(a[0],e)),await this.get("MYSQL_MIGRATION_LEVEL")!=="1"&&(await this._query({sql:s}),await this.set("MYSQL_MIGRATION_LEVEL","1"))}async get(t){const[e]=await this._query({sql:"SELECT `value` FROM `store` WHERE `key` = ? AND BINARY `key` = ?",values:[t,t]});return e.length===1?e[0].value:null}async findKeys(t,e){let r="SELECT `key` FROM `store` WHERE `key` LIKE ?";const s=[];t=t.replace(/\*/g,"%"),s.push(t),e!=null&&(e=e.replace(/\*/g,"%"),r+=" AND `key` NOT LIKE ?",s.push(e));const[n]=await this._query({sql:r,values:s});return n.map(a=>a.key)}async set(t,e){if(t.length>100)throw new Error("Your Key can only be 100 chars");await this._query({sql:"REPLACE INTO `store` VALUES (?,?)",values:[t,e]})}async remove(t){await this._query({sql:"DELETE FROM `store` WHERE `key` = ? AND BINARY `key` = ?",values:[t,t]})}async doBulk(t){const e=[],r=[];for(const s of t)switch(s.type){case"set":e.push([s.key,s.value]);break;case"remove":r.push(s.key);break;default:throw new Error(`unknown op type: ${s.type}`)}await Promise.all([e.length?this._query({sql:"REPLACE INTO `store` VALUES ?;",values:[e]}):null,r.length?this._query({sql:"DELETE FROM `store` WHERE `key` IN (?) AND BINARY `key` IN (?);",values:[r,r]}):null])}async close(){await u.promisify(this._pool.end.bind(this._pool))()}};exports.Database=A;
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var h=Object.defineProperty;var b=(t,e,l)=>e in t?h(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l;var n=(t,e,l)=>(b(t,typeof e!="symbol"?e+"":e,l),l);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./lib/CacheAndBufferLayer.cjs"),d=require("./lib/logging.cjs"),f=require("util"),s={init:()=>{},flush:()=>{},get:()=>{},remove:()=>{},findKeys:()=>{},close:()=>{},getSub:()=>{},setSub:()=>{}},g=["close","findKeys","flush","get","getSub","init","remove","set","setSub"];for(const t of g)s[t]=f.callbackify(r.Database.prototype[t]);const u=(t,e)=>l=>{if(t&&t(l),e&&e(l),l!=null&&t==null&&e==null)throw l},a=class{constructor(t,e,l,i=null){n(this,"type");n(this,"dbModule");n(this,"dbSettings");n(this,"wrapperSettings");n(this,"logger");n(this,"db");n(this,"metrics");t||(t="sqlite",e=null,l=null),this.type=t,this.dbSettings=e,this.wrapperSettings=l,this.logger=d.normalizeLogger(i)}async init(t=null){this.dbModule=await import(`./databases/${this.type}_db`);const e=new this.dbModule.Database(this.dbSettings);return e.logger=this.logger,this.db=new r.Database(e,this.wrapperSettings,this.logger),this.metrics=this.db.metrics,t!=null?s.init.call(this.db):this.db.init()}doShutdown(t=null){return this.flush(t)}flush(t=null){return!s||!s.flush===void 0?null:t!=null?s.flush.call(this.db,t):this.db.flush()}get(t,e=null){return e!=null?s.get.call(this.db,t,e):this.db.get(t)}findKeys(t,e,l=null){return l!=null?s.findKeys.call(this.db,t,e,l):this.db.findKeys(t,e)}remove(t,e=null,l=null){return e!=null?s.remove.call(this.db,t,u(e,l)):this.db.remove(t)}set(t,e,l=null,i=null){return l!=null?s.get.call(this.db,t,e,u(l,i)):this.db.set(t,e)}getSub(t,e,l=null){return l!=null?s.getSub.call(this.db,t,e,l):this.db.getSub(t,e)}setSub(t,e,l,i=null,o=null){return i!=null?s.setSub.call(this.db,t,e,l,u(i,o)):this.db.setSub(t,e,l)}close(t=null){return t!=null?s.close.call(this.db,t):this.db.close()}};exports.database=exports.Database;exports.Database=a;
|
package/package.json
CHANGED
|
@@ -64,13 +64,13 @@
|
|
|
64
64
|
"url": "https://github.com/ether/ueberDB.git"
|
|
65
65
|
},
|
|
66
66
|
"main": "./dist/index.cjs",
|
|
67
|
-
"version": "4.1.
|
|
67
|
+
"version": "4.1.27",
|
|
68
68
|
"bugs": {
|
|
69
69
|
"url": "https://github.com/ether/ueberDB/issues"
|
|
70
70
|
},
|
|
71
71
|
"files": [
|
|
72
72
|
"dist/databases",
|
|
73
|
-
"dist/index.
|
|
73
|
+
"dist/index.cjs",
|
|
74
74
|
"dist/*.d.ts",
|
|
75
75
|
"dist/lib"
|
|
76
76
|
],
|