badmfck-api-server 4.0.88 → 4.0.90

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.
@@ -127,7 +127,7 @@ export declare class DBService extends BaseService {
127
127
  adapter: IDBAdapter | null;
128
128
  constructor(options: IDBSericeOptions);
129
129
  init(): Promise<void>;
130
- static escape(id: string, value: string): string;
130
+ static escape(id: string, value: any): string;
131
131
  getAdapter(dbid?: string | null): IDBAdapter | IDBError;
132
132
  reportQuery(result: IDBResult, req: IDBQuery): Promise<void>;
133
133
  finishService(): Promise<void>;
@@ -242,8 +242,27 @@ class DBService extends BaseService_1.BaseService {
242
242
  }
243
243
  static escape(id, value) {
244
244
  const adapter = DBService.allInstances.find(i => i.options.id === id)?.adapter;
245
- if (!adapter || "errno" in adapter)
246
- return value;
245
+ if (!adapter || "errno" in adapter) {
246
+ if (value === null || value === undefined)
247
+ return 'NULL';
248
+ const stringValue = typeof value === 'object' ? JSON.stringify(value) : String(value);
249
+ return "'" + stringValue.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, (char) => {
250
+ switch (char) {
251
+ case "\0": return "\\0";
252
+ case "\x08": return "\\b";
253
+ case "\x09": return "\\t";
254
+ case "\x1a": return "\\z";
255
+ case "\n": return "\\n";
256
+ case "\r": return "\\r";
257
+ case "\"":
258
+ case "'":
259
+ case "\\":
260
+ case "%":
261
+ return "\\" + char;
262
+ default: return char;
263
+ }
264
+ }) + "'";
265
+ }
247
266
  return adapter.escape(value);
248
267
  }
249
268
  getAdapter(dbid) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "badmfck-api-server",
3
- "version": "4.0.88",
3
+ "version": "4.0.90",
4
4
  "description": "Simple API http server based on express",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",