badmfck-api-server 4.0.87 → 4.0.89

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.
@@ -97,7 +97,7 @@ async function Initializer(services) {
97
97
  }
98
98
  exports.Initializer = Initializer;
99
99
  class APIService extends BaseService_1.BaseService {
100
- version = "4.0.81";
100
+ version = "4.0.88";
101
101
  options;
102
102
  monitor = null;
103
103
  started = new Date();
@@ -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
- 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>;
@@ -240,10 +240,29 @@ class DBService extends BaseService_1.BaseService {
240
240
  return errorResult;
241
241
  };
242
242
  }
243
- escape(id, value) {
244
- const adapter = this.getAdapter(id);
245
- if (!adapter || "errno" in adapter)
246
- return value;
243
+ static escape(id, value) {
244
+ const adapter = DBService.allInstances.find(i => i.options.id === id)?.adapter;
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.87",
3
+ "version": "4.0.89",
4
4
  "description": "Simple API http server based on express",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",