@activeledger/activequery 2.15.7 → 4.3.3
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/es/index.d.ts +5 -17
- package/es/index.d.ts.map +1 -1
- package/es/index.js +13 -20
- package/es/index.js.map +1 -1
- package/lib/index.d.ts +5 -17
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +14 -22
- package/lib/index.js.map +1 -1
- package/package.json +5 -5
- package/es/sql.d.ts +0 -13
- package/es/sql.d.ts.map +0 -1
- package/es/sql.js +0 -110
- package/es/sql.js.map +0 -1
- package/lib/sql.d.ts +0 -13
- package/lib/sql.d.ts.map +0 -1
- package/lib/sql.js +0 -114
- package/lib/sql.js.map +0 -1
package/es/index.d.ts
CHANGED
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
import { ActiveDefinitions } from "@activeledger/activedefinitions";
|
|
2
|
-
export declare class QueryEngine {
|
|
3
|
-
private db;
|
|
4
|
-
private isContract;
|
|
5
|
-
private limit;
|
|
6
|
-
private warning;
|
|
7
|
-
constructor(db: any, isContract?: boolean, limit?: number);
|
|
8
|
-
sql(sql: string): Promise<ActiveDefinitions.IState>;
|
|
9
|
-
mango(query: any): Promise<ActiveDefinitions.IState>;
|
|
10
|
-
getLastWarning(): QueryWarning | undefined;
|
|
11
|
-
}
|
|
12
1
|
export declare class EventEngine {
|
|
13
2
|
private db;
|
|
14
3
|
private contract;
|
|
4
|
+
private umid;
|
|
15
5
|
private phase;
|
|
16
|
-
|
|
6
|
+
private counter;
|
|
7
|
+
private emitted;
|
|
8
|
+
constructor(db: any, contract: string, umid: string);
|
|
17
9
|
emit(name: string, data: any): void;
|
|
10
|
+
getEvents(): any[];
|
|
18
11
|
setPhase(name: string): void;
|
|
19
12
|
}
|
|
20
|
-
interface QueryWarning {
|
|
21
|
-
query: string;
|
|
22
|
-
message: string;
|
|
23
|
-
}
|
|
24
|
-
export {};
|
|
25
13
|
//# sourceMappingURL=index.d.ts.map
|
package/es/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,qBAAa,WAAW;IAiCV,OAAO,CAAC,EAAE;IAAO,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,IAAI;IA3BnE,OAAO,CAAC,KAAK,CAAU;IAOvB,OAAO,CAAC,OAAO,CAAK;IAYpB,OAAO,CAAC,OAAO,CAAa;gBAQR,EAAE,EAAE,GAAG,EAAU,QAAQ,EAAE,MAAM,EAAU,IAAI,EAAE,MAAM;IASpE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAyBnC,SAAS,IAAI,GAAG,EAAE;IASlB,QAAQ,CAAC,IAAI,EAAE,MAAM;CAG7B"}
|
package/es/index.js
CHANGED
|
@@ -1,39 +1,32 @@
|
|
|
1
|
-
export class QueryEngine {
|
|
2
|
-
constructor(db, isContract = true, limit = 0) {
|
|
3
|
-
this.db = db;
|
|
4
|
-
this.isContract = isContract;
|
|
5
|
-
this.limit = limit;
|
|
6
|
-
}
|
|
7
|
-
sql(sql) {
|
|
8
|
-
return this.mango("");
|
|
9
|
-
}
|
|
10
|
-
mango(query) {
|
|
11
|
-
return new Promise((resolve, reject) => {
|
|
12
|
-
return reject("Query Deprecated");
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
getLastWarning() {
|
|
16
|
-
return this.warning ? this.warning : undefined;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
1
|
export class EventEngine {
|
|
20
|
-
|
|
2
|
+
db;
|
|
3
|
+
contract;
|
|
4
|
+
umid;
|
|
5
|
+
phase = "vote";
|
|
6
|
+
counter = 0;
|
|
7
|
+
emitted = [];
|
|
8
|
+
constructor(db, contract, umid) {
|
|
21
9
|
this.db = db;
|
|
22
10
|
this.contract = contract;
|
|
23
|
-
this.
|
|
11
|
+
this.umid = umid;
|
|
24
12
|
}
|
|
25
13
|
emit(name, data) {
|
|
26
14
|
let event = {
|
|
15
|
+
_id: `event:${Date.now()}-${++this.counter},${this.umid}`,
|
|
27
16
|
name: name,
|
|
28
17
|
data: data,
|
|
29
18
|
phase: this.phase,
|
|
30
19
|
contract: this.contract,
|
|
31
20
|
};
|
|
21
|
+
this.emitted.push(event);
|
|
32
22
|
this.db
|
|
33
23
|
.post(event)
|
|
34
24
|
.then(() => { })
|
|
35
25
|
.catch(() => { });
|
|
36
26
|
}
|
|
27
|
+
getEvents() {
|
|
28
|
+
return this.emitted;
|
|
29
|
+
}
|
|
37
30
|
setPhase(name) {
|
|
38
31
|
this.phase = name;
|
|
39
32
|
}
|
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,WAAW;IAiCF;IAAiB;IAA0B;IA3BvD,KAAK,GAAG,MAAM,CAAC;IAOf,OAAO,GAAG,CAAC,CAAC;IAYZ,OAAO,GAAU,EAAE,CAAC;IAQ5B,YAAoB,EAAO,EAAU,QAAgB,EAAU,IAAY;QAAvD,OAAE,GAAF,EAAE,CAAK;QAAU,aAAQ,GAAR,QAAQ,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IASxE,IAAI,CAAC,IAAY,EAAE,IAAS;QAEjC,IAAI,KAAK,GAAQ;YACf,GAAG,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YACzD,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAIzB,IAAI,CAAC,EAAE;aACJ,IAAI,CAAC,KAAK,CAAC;aACX,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACd,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC;IAOM,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAOM,QAAQ,CAAC,IAAY;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
import { ActiveDefinitions } from "@activeledger/activedefinitions";
|
|
2
|
-
export declare class QueryEngine {
|
|
3
|
-
private db;
|
|
4
|
-
private isContract;
|
|
5
|
-
private limit;
|
|
6
|
-
private warning;
|
|
7
|
-
constructor(db: any, isContract?: boolean, limit?: number);
|
|
8
|
-
sql(sql: string): Promise<ActiveDefinitions.IState>;
|
|
9
|
-
mango(query: any): Promise<ActiveDefinitions.IState>;
|
|
10
|
-
getLastWarning(): QueryWarning | undefined;
|
|
11
|
-
}
|
|
12
1
|
export declare class EventEngine {
|
|
13
2
|
private db;
|
|
14
3
|
private contract;
|
|
4
|
+
private umid;
|
|
15
5
|
private phase;
|
|
16
|
-
|
|
6
|
+
private counter;
|
|
7
|
+
private emitted;
|
|
8
|
+
constructor(db: any, contract: string, umid: string);
|
|
17
9
|
emit(name: string, data: any): void;
|
|
10
|
+
getEvents(): any[];
|
|
18
11
|
setPhase(name: string): void;
|
|
19
12
|
}
|
|
20
|
-
interface QueryWarning {
|
|
21
|
-
query: string;
|
|
22
|
-
message: string;
|
|
23
|
-
}
|
|
24
|
-
export {};
|
|
25
13
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,qBAAa,WAAW;IAiCV,OAAO,CAAC,EAAE;IAAO,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,IAAI;IA3BnE,OAAO,CAAC,KAAK,CAAU;IAOvB,OAAO,CAAC,OAAO,CAAK;IAYpB,OAAO,CAAC,OAAO,CAAa;gBAQR,EAAE,EAAE,GAAG,EAAU,QAAQ,EAAE,MAAM,EAAU,IAAI,EAAE,MAAM;IASpE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAyBnC,SAAS,IAAI,GAAG,EAAE;IASlB,QAAQ,CAAC,IAAI,EAAE,MAAM;CAG7B"}
|
package/lib/index.js
CHANGED
|
@@ -1,43 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventEngine =
|
|
4
|
-
class QueryEngine {
|
|
5
|
-
constructor(db, isContract = true, limit = 0) {
|
|
6
|
-
this.db = db;
|
|
7
|
-
this.isContract = isContract;
|
|
8
|
-
this.limit = limit;
|
|
9
|
-
}
|
|
10
|
-
sql(sql) {
|
|
11
|
-
return this.mango("");
|
|
12
|
-
}
|
|
13
|
-
mango(query) {
|
|
14
|
-
return new Promise((resolve, reject) => {
|
|
15
|
-
return reject("Query Deprecated");
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
getLastWarning() {
|
|
19
|
-
return this.warning ? this.warning : undefined;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.QueryEngine = QueryEngine;
|
|
3
|
+
exports.EventEngine = void 0;
|
|
23
4
|
class EventEngine {
|
|
24
|
-
|
|
5
|
+
db;
|
|
6
|
+
contract;
|
|
7
|
+
umid;
|
|
8
|
+
phase = "vote";
|
|
9
|
+
counter = 0;
|
|
10
|
+
emitted = [];
|
|
11
|
+
constructor(db, contract, umid) {
|
|
25
12
|
this.db = db;
|
|
26
13
|
this.contract = contract;
|
|
27
|
-
this.
|
|
14
|
+
this.umid = umid;
|
|
28
15
|
}
|
|
29
16
|
emit(name, data) {
|
|
30
17
|
let event = {
|
|
18
|
+
_id: `event:${Date.now()}-${++this.counter},${this.umid}`,
|
|
31
19
|
name: name,
|
|
32
20
|
data: data,
|
|
33
21
|
phase: this.phase,
|
|
34
22
|
contract: this.contract,
|
|
35
23
|
};
|
|
24
|
+
this.emitted.push(event);
|
|
36
25
|
this.db
|
|
37
26
|
.post(event)
|
|
38
27
|
.then(() => { })
|
|
39
28
|
.catch(() => { });
|
|
40
29
|
}
|
|
30
|
+
getEvents() {
|
|
31
|
+
return this.emitted;
|
|
32
|
+
}
|
|
41
33
|
setPhase(name) {
|
|
42
34
|
this.phase = name;
|
|
43
35
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA8BA,MAAa,WAAW;IAiCF;IAAiB;IAA0B;IA3BvD,KAAK,GAAG,MAAM,CAAC;IAOf,OAAO,GAAG,CAAC,CAAC;IAYZ,OAAO,GAAU,EAAE,CAAC;IAQ5B,YAAoB,EAAO,EAAU,QAAgB,EAAU,IAAY;QAAvD,OAAE,GAAF,EAAE,CAAK;QAAU,aAAQ,GAAR,QAAQ,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IASxE,IAAI,CAAC,IAAY,EAAE,IAAS;QAEjC,IAAI,KAAK,GAAQ;YACf,GAAG,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YACzD,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAIzB,IAAI,CAAC,EAAE;aACJ,IAAI,CAAC,KAAK,CAAC;aACX,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACd,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC;IAOM,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAOM,QAAQ,CAAC,IAAY;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF;AA/ED,kCA+EC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@activeledger/activequery",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.3.3",
|
|
4
4
|
"description": "Wrapper to enable querying of Activeledger data.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blockchain",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"jsnext:main": "./es/index.js",
|
|
43
43
|
"module": "./es/index.js",
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@activeledger/activecrypto": "^
|
|
46
|
-
"@activeledger/activedefinitions": "^
|
|
47
|
-
"@activeledger/activelogger": "^
|
|
45
|
+
"@activeledger/activecrypto": "^4.3.3",
|
|
46
|
+
"@activeledger/activedefinitions": "^4.3.3",
|
|
47
|
+
"@activeledger/activelogger": "^4.3.3"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "a999042fae25fdf0bc5779b9ff2823a05d186e61"
|
|
50
50
|
}
|
package/es/sql.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface IQuery {
|
|
2
|
-
fields?: string[];
|
|
3
|
-
selector: any;
|
|
4
|
-
sort?: any[];
|
|
5
|
-
limit?: number;
|
|
6
|
-
}
|
|
7
|
-
export declare class SQL {
|
|
8
|
-
private query;
|
|
9
|
-
constructor(query: string);
|
|
10
|
-
parse(): IQuery;
|
|
11
|
-
private where;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=sql.d.ts.map
|
package/es/sql.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,qBAAa,GAAG;IAKF,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAO1B,KAAK,IAAI,MAAM;IA0EtB,OAAO,CAAC,KAAK;CAyEd"}
|
package/es/sql.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
export class SQL {
|
|
2
|
-
constructor(query) {
|
|
3
|
-
this.query = query;
|
|
4
|
-
}
|
|
5
|
-
parse() {
|
|
6
|
-
let out = { selector: {} };
|
|
7
|
-
let [select, , where, orderOrLimit, limit] = this.query
|
|
8
|
-
.split(/SELECT|FROM|WHERE|ORDER BY|LIMIT/g)
|
|
9
|
-
.filter(Boolean)
|
|
10
|
-
.map(s => s.trim());
|
|
11
|
-
if (select && select != "*") {
|
|
12
|
-
out.fields = select.split(",").filter(Boolean);
|
|
13
|
-
}
|
|
14
|
-
if (where) {
|
|
15
|
-
let brackets = where.match(new RegExp("\\((?:[^)(]+|\\((?:[^)(]+|\\([^)(]*\\))*\\))*\\)", "g"));
|
|
16
|
-
if (brackets) {
|
|
17
|
-
brackets = brackets
|
|
18
|
-
.filter(Boolean)
|
|
19
|
-
.map((s) => s.trim().replace(/^[\\(](.*)[\\)]$/, "$1"));
|
|
20
|
-
brackets.forEach((conditions) => {
|
|
21
|
-
out.selector = { ...out.selector, ...this.where(conditions) };
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
out.selector = { ...out.selector, ...this.where(where) };
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (orderOrLimit) {
|
|
29
|
-
if (this.query.indexOf("ORDER BY") == -1) {
|
|
30
|
-
limit = orderOrLimit;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
let orders = orderOrLimit.split(",").filter(Boolean);
|
|
34
|
-
out.sort = [];
|
|
35
|
-
orders.forEach((item) => {
|
|
36
|
-
let [order, direction] = item.trim().split(" ");
|
|
37
|
-
if (out.sort)
|
|
38
|
-
out.sort.push({ [order]: (direction || "asc").toLowerCase() });
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (limit) {
|
|
43
|
-
out.limit = parseInt(limit);
|
|
44
|
-
}
|
|
45
|
-
return out;
|
|
46
|
-
}
|
|
47
|
-
where(conditions) {
|
|
48
|
-
let condition = conditions.split("AND").filter(Boolean);
|
|
49
|
-
let out = {};
|
|
50
|
-
condition.forEach(item => {
|
|
51
|
-
let [leftSideOp, op, rightSideOp] = item
|
|
52
|
-
.split(new RegExp("(>=|<=|!=|=|<>|>|<|BETWEEN|EXISTS|NOT IN|IN|LIKE)", "g"))
|
|
53
|
-
.map(s => s.trim().replace(/^['|"](.*)['|"]$/, "$1"));
|
|
54
|
-
if (rightSideOp == "" || rightSideOp == "null") {
|
|
55
|
-
rightSideOp = null;
|
|
56
|
-
}
|
|
57
|
-
switch (op) {
|
|
58
|
-
case "=":
|
|
59
|
-
out[leftSideOp] = rightSideOp;
|
|
60
|
-
break;
|
|
61
|
-
case "!=":
|
|
62
|
-
case "<>":
|
|
63
|
-
out[leftSideOp] = {
|
|
64
|
-
$ne: rightSideOp
|
|
65
|
-
};
|
|
66
|
-
break;
|
|
67
|
-
case "<":
|
|
68
|
-
out[leftSideOp] = {
|
|
69
|
-
$lt: rightSideOp
|
|
70
|
-
};
|
|
71
|
-
break;
|
|
72
|
-
case "<=":
|
|
73
|
-
out[leftSideOp] = {
|
|
74
|
-
$lte: rightSideOp
|
|
75
|
-
};
|
|
76
|
-
break;
|
|
77
|
-
case ">":
|
|
78
|
-
out[leftSideOp] = {
|
|
79
|
-
$gt: rightSideOp
|
|
80
|
-
};
|
|
81
|
-
break;
|
|
82
|
-
case ">=":
|
|
83
|
-
out[leftSideOp] = {
|
|
84
|
-
$gte: rightSideOp
|
|
85
|
-
};
|
|
86
|
-
break;
|
|
87
|
-
case "IN":
|
|
88
|
-
out[leftSideOp] = {
|
|
89
|
-
$in: rightSideOp
|
|
90
|
-
.replace(/[\(\)]/g, "")
|
|
91
|
-
.split(",")
|
|
92
|
-
.map(e => parseInt(e) || e.replace(/^['|"](.*)['|"]$/, "$1"))
|
|
93
|
-
};
|
|
94
|
-
break;
|
|
95
|
-
case "NOT IN":
|
|
96
|
-
out[leftSideOp] = {
|
|
97
|
-
$nin: rightSideOp
|
|
98
|
-
.replace(/[\(\)]/g, "")
|
|
99
|
-
.split(",")
|
|
100
|
-
.map(e => parseInt(e) || e.replace(/^['|"](.*)['|"]$/, "$1"))
|
|
101
|
-
};
|
|
102
|
-
break;
|
|
103
|
-
default:
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
return out;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=sql.js.map
|
package/es/sql.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"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"}
|
package/lib/sql.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface IQuery {
|
|
2
|
-
fields?: string[];
|
|
3
|
-
selector: any;
|
|
4
|
-
sort?: any[];
|
|
5
|
-
limit?: number;
|
|
6
|
-
}
|
|
7
|
-
export declare class SQL {
|
|
8
|
-
private query;
|
|
9
|
-
constructor(query: string);
|
|
10
|
-
parse(): IQuery;
|
|
11
|
-
private where;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=sql.d.ts.map
|
package/lib/sql.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,qBAAa,GAAG;IAKF,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAO1B,KAAK,IAAI,MAAM;IA0EtB,OAAO,CAAC,KAAK;CAyEd"}
|
package/lib/sql.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SQL = void 0;
|
|
4
|
-
class SQL {
|
|
5
|
-
constructor(query) {
|
|
6
|
-
this.query = query;
|
|
7
|
-
}
|
|
8
|
-
parse() {
|
|
9
|
-
let out = { selector: {} };
|
|
10
|
-
let [select, , where, orderOrLimit, limit] = this.query
|
|
11
|
-
.split(/SELECT|FROM|WHERE|ORDER BY|LIMIT/g)
|
|
12
|
-
.filter(Boolean)
|
|
13
|
-
.map(s => s.trim());
|
|
14
|
-
if (select && select != "*") {
|
|
15
|
-
out.fields = select.split(",").filter(Boolean);
|
|
16
|
-
}
|
|
17
|
-
if (where) {
|
|
18
|
-
let brackets = where.match(new RegExp("\\((?:[^)(]+|\\((?:[^)(]+|\\([^)(]*\\))*\\))*\\)", "g"));
|
|
19
|
-
if (brackets) {
|
|
20
|
-
brackets = brackets
|
|
21
|
-
.filter(Boolean)
|
|
22
|
-
.map((s) => s.trim().replace(/^[\\(](.*)[\\)]$/, "$1"));
|
|
23
|
-
brackets.forEach((conditions) => {
|
|
24
|
-
out.selector = { ...out.selector, ...this.where(conditions) };
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
out.selector = { ...out.selector, ...this.where(where) };
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (orderOrLimit) {
|
|
32
|
-
if (this.query.indexOf("ORDER BY") == -1) {
|
|
33
|
-
limit = orderOrLimit;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
let orders = orderOrLimit.split(",").filter(Boolean);
|
|
37
|
-
out.sort = [];
|
|
38
|
-
orders.forEach((item) => {
|
|
39
|
-
let [order, direction] = item.trim().split(" ");
|
|
40
|
-
if (out.sort)
|
|
41
|
-
out.sort.push({ [order]: (direction || "asc").toLowerCase() });
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (limit) {
|
|
46
|
-
out.limit = parseInt(limit);
|
|
47
|
-
}
|
|
48
|
-
return out;
|
|
49
|
-
}
|
|
50
|
-
where(conditions) {
|
|
51
|
-
let condition = conditions.split("AND").filter(Boolean);
|
|
52
|
-
let out = {};
|
|
53
|
-
condition.forEach(item => {
|
|
54
|
-
let [leftSideOp, op, rightSideOp] = item
|
|
55
|
-
.split(new RegExp("(>=|<=|!=|=|<>|>|<|BETWEEN|EXISTS|NOT IN|IN|LIKE)", "g"))
|
|
56
|
-
.map(s => s.trim().replace(/^['|"](.*)['|"]$/, "$1"));
|
|
57
|
-
if (rightSideOp == "" || rightSideOp == "null") {
|
|
58
|
-
rightSideOp = null;
|
|
59
|
-
}
|
|
60
|
-
switch (op) {
|
|
61
|
-
case "=":
|
|
62
|
-
out[leftSideOp] = rightSideOp;
|
|
63
|
-
break;
|
|
64
|
-
case "!=":
|
|
65
|
-
case "<>":
|
|
66
|
-
out[leftSideOp] = {
|
|
67
|
-
$ne: rightSideOp
|
|
68
|
-
};
|
|
69
|
-
break;
|
|
70
|
-
case "<":
|
|
71
|
-
out[leftSideOp] = {
|
|
72
|
-
$lt: rightSideOp
|
|
73
|
-
};
|
|
74
|
-
break;
|
|
75
|
-
case "<=":
|
|
76
|
-
out[leftSideOp] = {
|
|
77
|
-
$lte: rightSideOp
|
|
78
|
-
};
|
|
79
|
-
break;
|
|
80
|
-
case ">":
|
|
81
|
-
out[leftSideOp] = {
|
|
82
|
-
$gt: rightSideOp
|
|
83
|
-
};
|
|
84
|
-
break;
|
|
85
|
-
case ">=":
|
|
86
|
-
out[leftSideOp] = {
|
|
87
|
-
$gte: rightSideOp
|
|
88
|
-
};
|
|
89
|
-
break;
|
|
90
|
-
case "IN":
|
|
91
|
-
out[leftSideOp] = {
|
|
92
|
-
$in: rightSideOp
|
|
93
|
-
.replace(/[\(\)]/g, "")
|
|
94
|
-
.split(",")
|
|
95
|
-
.map(e => parseInt(e) || e.replace(/^['|"](.*)['|"]$/, "$1"))
|
|
96
|
-
};
|
|
97
|
-
break;
|
|
98
|
-
case "NOT IN":
|
|
99
|
-
out[leftSideOp] = {
|
|
100
|
-
$nin: rightSideOp
|
|
101
|
-
.replace(/[\(\)]/g, "")
|
|
102
|
-
.split(",")
|
|
103
|
-
.map(e => parseInt(e) || e.replace(/^['|"](.*)['|"]$/, "$1"))
|
|
104
|
-
};
|
|
105
|
-
break;
|
|
106
|
-
default:
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
return out;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
exports.SQL = SQL;
|
|
114
|
-
//# sourceMappingURL=sql.js.map
|
package/lib/sql.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":";;;AAoCA,MAAa,GAAG;IAKd,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAO9B,KAAK;QACV,IAAI,GAAG,GAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAGnC,IAAI,CAAC,MAAM,EAAE,AAAD,EAAG,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;aACpD,KAAK,CAAC,mCAAmC,CAAC;aAC1C,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAGtB,IAAI,MAAM,IAAI,MAAM,IAAI,GAAG,EAAE;YAE3B,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAChD;QAGD,IAAI,KAAK,EAAE;YAGT,IAAI,QAAQ,GAAI,KAAa,CAAC,KAAK,CACjC,IAAI,MAAM,CAAC,kDAAkD,EAAE,GAAG,CAAC,CACpE,CAAC;YAGF,IAAI,QAAQ,EAAE;gBACZ,QAAQ,GAAG,QAAQ;qBAChB,MAAM,CAAC,OAAO,CAAC;qBACf,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;gBAGlE,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;oBACtC,GAAG,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChE,CAAC,CAAC,CAAC;aACJ;iBAAM;gBAEL,GAAG,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;aAC1D;SACF;QAGD,IAAI,YAAY,EAAE;YAEhB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;gBAExC,KAAK,GAAG,YAAY,CAAC;aACtB;iBAAM;gBAEL,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrD,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;oBAE9B,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAEhD,IAAI,GAAG,CAAC,IAAI;wBACV,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;aACJ;SACF;QAGD,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IASO,KAAK,CAAC,UAAkB;QAE9B,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAGxD,IAAI,GAAG,GAAQ,EAAE,CAAC;QAElB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAEvB,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,CAAC,GAAG,IAAI;iBACrC,KAAK,CACJ,IAAI,MAAM,CAAC,mDAAmD,EAAE,GAAG,CAAC,CACrE;iBACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;YAGxD,IAAI,WAAW,IAAI,EAAE,IAAI,WAAW,IAAI,MAAM,EAAE;gBAC7C,WAAuB,GAAG,IAAI,CAAC;aACjC;YAED,QAAQ,EAAE,EAAE;gBACV,KAAK,GAAG;oBACN,GAAG,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;oBAC9B,MAAM;gBACR,KAAK,IAAI,CAAC;gBACV,KAAK,IAAI;oBACP,GAAG,CAAC,UAAU,CAAC,GAAG;wBAChB,GAAG,EAAE,WAAW;qBACjB,CAAC;oBACF,MAAM;gBACR,KAAK,GAAG;oBACN,GAAG,CAAC,UAAU,CAAC,GAAG;wBAChB,GAAG,EAAE,WAAW;qBACjB,CAAC;oBACF,MAAM;gBACR,KAAK,IAAI;oBACP,GAAG,CAAC,UAAU,CAAC,GAAG;wBAChB,IAAI,EAAE,WAAW;qBAClB,CAAC;oBACF,MAAM;gBACR,KAAK,GAAG;oBACN,GAAG,CAAC,UAAU,CAAC,GAAG;wBAChB,GAAG,EAAE,WAAW;qBACjB,CAAC;oBACF,MAAM;gBACR,KAAK,IAAI;oBACP,GAAG,CAAC,UAAU,CAAC,GAAG;wBAChB,IAAI,EAAE,WAAW;qBAClB,CAAC;oBACF,MAAM;gBACR,KAAK,IAAI;oBACP,GAAG,CAAC,UAAU,CAAC,GAAG;wBAChB,GAAG,EAAE,WAAW;6BACb,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;6BACtB,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;qBAChE,CAAC;oBACF,MAAM;gBACR,KAAK,QAAQ;oBACX,GAAG,CAAC,UAAU,CAAC,GAAG;wBAChB,IAAI,EAAE,WAAW;6BACd,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;6BACtB,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;qBAChE,CAAC;oBACF,MAAM;gBACR;oBACE,MAAM;aACT;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA/JD,kBA+JC"}
|