ys.knife.query.js 0.0.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.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/agg.d.ts +27 -0
  4. package/dist/agg.d.ts.map +1 -0
  5. package/dist/agg.js +59 -0
  6. package/dist/agg.js.map +1 -0
  7. package/dist/api.d.ts +16 -0
  8. package/dist/api.d.ts.map +1 -0
  9. package/dist/api.js +86 -0
  10. package/dist/api.js.map +1 -0
  11. package/dist/constant.d.ts +8 -0
  12. package/dist/constant.d.ts.map +1 -0
  13. package/dist/constant.js +17 -0
  14. package/dist/constant.js.map +1 -0
  15. package/dist/default.d.ts +6 -0
  16. package/dist/default.d.ts.map +1 -0
  17. package/dist/default.js +7 -0
  18. package/dist/default.js.map +1 -0
  19. package/dist/expression.d.ts +8 -0
  20. package/dist/expression.d.ts.map +1 -0
  21. package/dist/expression.js +20 -0
  22. package/dist/expression.js.map +1 -0
  23. package/dist/filter.d.ts +46 -0
  24. package/dist/filter.d.ts.map +1 -0
  25. package/dist/filter.js +131 -0
  26. package/dist/filter.js.map +1 -0
  27. package/dist/index.d.ts +13 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +29 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/limit.d.ts +3 -0
  32. package/dist/limit.d.ts.map +1 -0
  33. package/dist/limit.js +7 -0
  34. package/dist/limit.js.map +1 -0
  35. package/dist/orderby.d.ts +24 -0
  36. package/dist/orderby.d.ts.map +1 -0
  37. package/dist/orderby.js +57 -0
  38. package/dist/orderby.js.map +1 -0
  39. package/dist/pagedlist.d.ts +24 -0
  40. package/dist/pagedlist.d.ts.map +1 -0
  41. package/dist/pagedlist.js +3 -0
  42. package/dist/pagedlist.js.map +1 -0
  43. package/dist/query.d.ts +33 -0
  44. package/dist/query.d.ts.map +1 -0
  45. package/dist/query.js +125 -0
  46. package/dist/query.js.map +1 -0
  47. package/dist/select.d.ts +19 -0
  48. package/dist/select.d.ts.map +1 -0
  49. package/dist/select.js +53 -0
  50. package/dist/select.js.map +1 -0
  51. package/dist/type.d.ts +15 -0
  52. package/dist/type.d.ts.map +1 -0
  53. package/dist/type.js +33 -0
  54. package/dist/type.js.map +1 -0
  55. package/package.json +51 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 yscorecore
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # ys.knife.query.js
package/dist/agg.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { DeepKeys } from "./type";
2
+ export declare enum AggType {
3
+ Sum = "sum()",
4
+ Min = "min()",
5
+ Max = "max()",
6
+ Avg = "avg()",
7
+ Count = "count()",
8
+ DistinctCount = "distinctcount()"
9
+ }
10
+ export declare class AggItem {
11
+ protected type: AggType;
12
+ protected path: string;
13
+ protected name: string | null;
14
+ constructor(path: string, type: AggType, name: string | null);
15
+ toString(): string;
16
+ }
17
+ export declare class AggInfo {
18
+ protected items: AggItem[];
19
+ constructor(...aggItems: AggItem[]);
20
+ append(path: string, type?: AggType, name?: string | null): AggInfo;
21
+ toString(): string;
22
+ }
23
+ export declare class AggInfoOf<T> extends AggInfo {
24
+ append(path: DeepKeys<T>, type?: AggType, name?: string | null): AggInfoOf<T>;
25
+ }
26
+ export declare function agg<T>(path: DeepKeys<T>, type?: AggType, name?: string | null): AggInfoOf<T>;
27
+ //# sourceMappingURL=agg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agg.d.ts","sourceRoot":"","sources":["../src/agg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,oBAAY,OAAO;IACf,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,UAAU;IACb,KAAK,YAAY;IACjB,aAAa,oBAAoB;CACpC;AACD,qBAAa,OAAO;IAChB,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;gBAClB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5D,QAAQ;CAOX;AAED,qBAAa,OAAO;IAChB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAM;gBACpB,GAAG,QAAQ,EAAE,OAAO,EAAE;IAGlC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO;IAItF,QAAQ;CAOX;AACD,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,OAAO;IACrC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,CAAC,CAAC,CAAC;CAInG;AACD,wBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAE/G"}
package/dist/agg.js ADDED
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggInfoOf = exports.AggInfo = exports.AggItem = exports.AggType = void 0;
4
+ exports.agg = agg;
5
+ var AggType;
6
+ (function (AggType) {
7
+ AggType["Sum"] = "sum()";
8
+ AggType["Min"] = "min()";
9
+ AggType["Max"] = "max()";
10
+ AggType["Avg"] = "avg()";
11
+ AggType["Count"] = "count()";
12
+ AggType["DistinctCount"] = "distinctcount()";
13
+ })(AggType || (exports.AggType = AggType = {}));
14
+ class AggItem {
15
+ constructor(path, type, name) {
16
+ this.path = path;
17
+ this.type = type;
18
+ this.name = name;
19
+ }
20
+ toString() {
21
+ if (this.name) {
22
+ return `${this.path}.${this.type}.as(${this.name})`;
23
+ }
24
+ else {
25
+ return `${this.path}.${this.type}`;
26
+ }
27
+ }
28
+ }
29
+ exports.AggItem = AggItem;
30
+ class AggInfo {
31
+ constructor(...aggItems) {
32
+ this.items = [];
33
+ this.items.push(...(aggItems.filter(item => item !== null)));
34
+ }
35
+ append(path, type = AggType.Sum, name = null) {
36
+ this.items.push(new AggItem(path, type, name));
37
+ return this;
38
+ }
39
+ toString() {
40
+ if (this.items.length === 0)
41
+ return '';
42
+ return this.items
43
+ .filter(item => item !== null)
44
+ .map(item => item.toString())
45
+ .join(',');
46
+ }
47
+ }
48
+ exports.AggInfo = AggInfo;
49
+ class AggInfoOf extends AggInfo {
50
+ append(path, type = AggType.Sum, name = null) {
51
+ super.append(path, type, name);
52
+ return this;
53
+ }
54
+ }
55
+ exports.AggInfoOf = AggInfoOf;
56
+ function agg(path, type = AggType.Sum, name = null) {
57
+ return new AggInfoOf().append(path, type, name);
58
+ }
59
+ //# sourceMappingURL=agg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agg.js","sourceRoot":"","sources":["../src/agg.ts"],"names":[],"mappings":";;;AAmDA,kBAEC;AAnDD,IAAY,OAOX;AAPD,WAAY,OAAO;IACf,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,4BAAiB,CAAA;IACjB,4CAAiC,CAAA;AACrC,CAAC,EAPW,OAAO,uBAAP,OAAO,QAOlB;AACD,MAAa,OAAO;IAIhB,YAAY,IAAY,EAAE,IAAa,EAAE,IAAmB;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;IACL,CAAC;CACJ;AAhBD,0BAgBC;AAED,MAAa,OAAO;IAEhB,YAAY,GAAG,QAAmB;QADxB,UAAK,GAAc,EAAE,CAAC;QAE5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,CAAC,IAAY,EAAE,OAAgB,OAAO,CAAC,GAAG,EAAE,OAAsB,IAAI;QACxE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,QAAQ;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AAhBD,0BAgBC;AACD,MAAa,SAAa,SAAQ,OAAO;IACrC,MAAM,CAAC,IAAiB,EAAE,OAAgB,OAAO,CAAC,GAAG,EAAE,OAAsB,IAAI;QAC7E,KAAK,CAAC,MAAM,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AALD,8BAKC;AACD,SAAgB,GAAG,CAAI,IAAiB,EAAE,OAAgB,OAAO,CAAC,GAAG,EAAE,OAAsB,IAAI;IAC7F,OAAO,IAAI,SAAS,EAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACtD,CAAC"}
package/dist/api.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { PagedList, AggResult, BaseReq } from "./pagedlist";
2
+ import { ListReq, PageReq } from "./pagedlist";
3
+ import { FilterInfo } from "./filter";
4
+ import { AggInfo } from "./agg";
5
+ type PageFunc<T> = (req: PageReq) => Promise<PagedList<T>>;
6
+ export interface IdEntity {
7
+ id: string | number;
8
+ }
9
+ export declare function findBy<T>(func: PageFunc<T>, key: keyof T, val: string | number | boolean | bigint): Promise<T | null>;
10
+ export declare function findById<T extends IdEntity>(func: PageFunc<T>, id: number | string): Promise<T | null>;
11
+ export declare function count<T>(func: PageFunc<T>, filter: FilterInfo): Promise<number>;
12
+ export declare function asList<T>(func: PageFunc<T>, listReq: ListReq): Promise<T[]>;
13
+ export declare function all<T>(func: PageFunc<T>, baseReq: BaseReq, maxPageSize?: number): Promise<T[]>;
14
+ export declare function aggValue<T>(func: PageFunc<T>, agg: AggInfo, filter: FilterInfo | null): Promise<AggResult>;
15
+ export {};
16
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAU,UAAU,EAAY,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAG3D,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAW3H;AACD,wBAAsB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAE5G;AACD,wBAAsB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrF;AACD,wBAAsB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAGjF;AACD,wBAAsB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,MAAwB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBrH;AACD,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAQhH"}
package/dist/api.js ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.findBy = findBy;
16
+ exports.findById = findById;
17
+ exports.count = count;
18
+ exports.asList = asList;
19
+ exports.all = all;
20
+ exports.aggValue = aggValue;
21
+ const filter_1 = require("./filter");
22
+ const constant_1 = require("./constant");
23
+ const default_1 = __importDefault(require("./default"));
24
+ function findBy(func, key, val) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const res = yield func({
27
+ limit: 1,
28
+ offset: 0,
29
+ filter: (0, filter_1.filter)(key, filter_1.Operator.Equals, (0, constant_1.con)(val)).toString(),
30
+ });
31
+ if (res.items.length > 0) {
32
+ return res.items[0];
33
+ }
34
+ else {
35
+ return null;
36
+ }
37
+ });
38
+ }
39
+ function findById(func, id) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ return findBy(func, "id", id);
42
+ });
43
+ }
44
+ function count(func, filter) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const res = yield func({
47
+ limit: 0,
48
+ offset: 0,
49
+ filter: filter === null || filter === void 0 ? void 0 : filter.toString(),
50
+ });
51
+ return res.totalCount;
52
+ });
53
+ }
54
+ function asList(func, listReq) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const res = yield func(listReq);
57
+ return res.items;
58
+ });
59
+ }
60
+ function all(func_1, baseReq_1) {
61
+ return __awaiter(this, arguments, void 0, function* (func, baseReq, maxPageSize = default_1.default.maxLimit) {
62
+ let resArray = [];
63
+ let offset = 0;
64
+ while (true) {
65
+ const res = yield func(Object.assign(Object.assign({}, baseReq), { limit: maxPageSize, offset: offset }));
66
+ resArray = resArray.concat(res.items);
67
+ offset += maxPageSize;
68
+ if (res.items.length == 0 || !res.hasNext) {
69
+ break;
70
+ }
71
+ }
72
+ return resArray;
73
+ });
74
+ }
75
+ function aggValue(func, agg, filter) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ const res = yield func({
78
+ limit: 0,
79
+ offset: 0,
80
+ filter: filter === null || filter === void 0 ? void 0 : filter.toString(),
81
+ agg: agg.toString()
82
+ });
83
+ return res.agg;
84
+ });
85
+ }
86
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA,wBAWC;AACD,4BAEC;AACD,sBAOC;AACD,wBAGC;AACD,kBAiBC;AACD,4BAQC;AAjED,qCAAwD;AACxD,yCAAiC;AAEjC,wDAA+B;AAS/B,SAAsB,MAAM,CAAI,IAAiB,EAAE,GAAY,EAAE,GAAuC;;QACpG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,IAAA,eAAM,EAAI,GAAG,EAAE,iBAAQ,CAAC,MAAM,EAAE,IAAA,cAAG,EAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC/D,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CAAA;AACD,SAAsB,QAAQ,CAAqB,IAAiB,EAAE,EAAmB;;QACrF,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;CAAA;AACD,SAAsB,KAAK,CAAI,IAAiB,EAAE,MAAkB;;QAChE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE;SAC7B,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,UAAU,CAAC;IAC1B,CAAC;CAAA;AACD,SAAsB,MAAM,CAAI,IAAiB,EAAE,OAAgB;;QAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC,KAAK,CAAC;IACrB,CAAC;CAAA;AACD,SAAsB,GAAG;yDAAI,IAAiB,EAAE,OAAgB,EAAE,cAAsB,iBAAM,CAAC,QAAQ;QACnG,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,MAAM,IAAI,iCACf,OAAO,KACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,IAChB,CAAC;YACH,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,WAAW,CAAC;YACtB,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CAAA;AACD,SAAsB,QAAQ,CAAI,IAAiB,EAAE,GAAY,EAAE,MAAyB;;QACxF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE;YAC1B,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,GAAgB,CAAC;IAChC,CAAC;CAAA"}
@@ -0,0 +1,8 @@
1
+ export type ValueType = string | number | boolean | bigint | null | (string | null)[] | (number | null)[];
2
+ export declare class Constant {
3
+ constructor(con: ValueType);
4
+ private con;
5
+ toString(): string;
6
+ }
7
+ export declare function con(exp: ValueType): Constant;
8
+ //# sourceMappingURL=constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1G,qBAAa,QAAQ;gBACL,GAAG,EAAE,SAAS;IAG1B,OAAO,CAAC,GAAG,CAAY;IACvB,QAAQ,IAAI,MAAM;CAGrB;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAE5C"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Constant = void 0;
4
+ exports.con = con;
5
+ class Constant {
6
+ constructor(con) {
7
+ this.con = con;
8
+ }
9
+ toString() {
10
+ return JSON.stringify(this.con);
11
+ }
12
+ }
13
+ exports.Constant = Constant;
14
+ function con(exp) {
15
+ return new Constant(exp);
16
+ }
17
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":";;;AAWA,kBAEC;AAZD,MAAa,QAAQ;IACjB,YAAY,GAAc;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACJ;AARD,4BAQC;AAED,SAAgB,GAAG,CAAC,GAAc;IAC9B,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ defaultLimit: number;
3
+ maxLimit: number;
4
+ };
5
+ export default _default;
6
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../src/default.ts"],"names":[],"mappings":";;;;AAAA,wBAGC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ defaultLimit: 10,
5
+ maxLimit: 1000
6
+ };
7
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../src/default.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,IAAI;CACjB,CAAA"}
@@ -0,0 +1,8 @@
1
+ export declare class Expression {
2
+ constructor(exp: string);
3
+ private exp;
4
+ getExp(): string;
5
+ toString(): string;
6
+ }
7
+ export declare function exp(exp: string): Expression;
8
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;gBACP,GAAG,EAAE,MAAM;IAGvB,OAAO,CAAC,GAAG,CAAS;IACb,MAAM,IAAI,MAAM;IAGvB,QAAQ,IAAI,MAAM;CAGrB;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAE3C"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Expression = void 0;
4
+ exports.exp = exp;
5
+ class Expression {
6
+ constructor(exp) {
7
+ this.exp = exp;
8
+ }
9
+ getExp() {
10
+ return this.exp;
11
+ }
12
+ toString() {
13
+ return this.exp;
14
+ }
15
+ }
16
+ exports.Expression = Expression;
17
+ function exp(exp) {
18
+ return new Expression(exp);
19
+ }
20
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":";;;AAaA,kBAEC;AAfD,MAAa,UAAU;IACnB,YAAY,GAAW;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACD,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAXD,gCAWC;AAED,SAAgB,GAAG,CAAC,GAAW;IAC3B,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { DeepKeysOrConstantOrExpression, ConstantOrExpression } from "./type";
2
+ export declare enum Operator {
3
+ Equals = "==",
4
+ NotEquals = "!=",
5
+ GreaterThan = ">",
6
+ LessThanOrEqual = "<=",
7
+ LessThan = "<",
8
+ GreaterThanOrEqual = ">=",
9
+ Between = "between",
10
+ NotBetween = "not between",
11
+ In = "in",
12
+ NotIn = "not in",
13
+ StartsWith = "starts",
14
+ NotStartsWith = "not starts",
15
+ EndsWith = "ends",
16
+ NotEndsWith = "not ends",
17
+ Contains = "contains",
18
+ NotContains = "not contains"
19
+ }
20
+ export declare enum CombinType {
21
+ AndItems = 1,
22
+ OrItems = 2,
23
+ SingleItem = 0
24
+ }
25
+ export declare class FilterInfo {
26
+ static readonly Operator_And = "and";
27
+ static readonly Operator_Or = "or";
28
+ protected left: ConstantOrExpression | null | undefined;
29
+ protected right: ConstantOrExpression | null | undefined;
30
+ protected op: Operator | null | undefined;
31
+ protected combinType: CombinType;
32
+ protected items: FilterInfo[];
33
+ constructor(left: ConstantOrExpression | null, op: Operator | null, right: ConstantOrExpression | null, combinType?: CombinType, items?: FilterInfo[]);
34
+ toString(): string;
35
+ andAlso(other: FilterInfo): FilterInfo;
36
+ orElse(other: FilterInfo): FilterInfo;
37
+ static createOr(...items: FilterInfo[]): FilterInfo;
38
+ static createAnd(...items: FilterInfo[]): FilterInfo;
39
+ }
40
+ export declare class FilterInfoOf<T> extends FilterInfo {
41
+ constructor(left: DeepKeysOrConstantOrExpression<T> | null, op: Operator | null, right: DeepKeysOrConstantOrExpression<T> | null, combinType?: CombinType, items?: FilterInfo[]);
42
+ and(left: DeepKeysOrConstantOrExpression<T>, op: Operator, right: DeepKeysOrConstantOrExpression<T>): FilterInfoOf<T>;
43
+ or(left: DeepKeysOrConstantOrExpression<T>, op: Operator, right: DeepKeysOrConstantOrExpression<T>): FilterInfoOf<T>;
44
+ }
45
+ export declare function filter<T>(left: DeepKeysOrConstantOrExpression<T>, op: Operator, right: DeepKeysOrConstantOrExpression<T>): FilterInfoOf<T>;
46
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAc,MAAM,QAAQ,CAAC;AAC1F,oBAAY,QAAQ;IAChB,MAAM,OAAO;IACb,SAAS,OAAO;IAChB,WAAW,MAAM;IACjB,eAAe,OAAO;IACtB,QAAQ,MAAM;IACd,kBAAkB,OAAO;IACzB,OAAO,YAAY;IACnB,UAAU,gBAAgB;IAC1B,EAAE,OAAO;IACT,KAAK,WAAW;IAChB,UAAU,WAAW;IACrB,aAAa,eAAe;IAC5B,QAAQ,SAAS;IACjB,WAAW,aAAa;IACxB,QAAQ,aAAa;IACrB,WAAW,iBAAiB;CAC/B;AACD,oBAAY,UAAU;IAClB,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,UAAU,IAAI;CACjB;AAED,qBAAa,UAAU;IACnB,MAAM,CAAC,QAAQ,CAAC,YAAY,SAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,WAAW,QAAQ;IAEnC,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC;IACxD,SAAS,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,CAAM;gBAEvB,IAAI,EAAE,oBAAoB,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAAE,UAAU,GAAE,UAAkC,EAAE,KAAK,GAAE,UAAU,EAAO;IAShL,QAAQ,IAAI,MAAM;IAgBX,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAetC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;WAe9B,QAAQ,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU;WAG5C,SAAS,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU;CAI9D;AAGD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU;gBAC/B,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,GAAE,UAAkC,EAAE,KAAK,GAAE,UAAU,EAAO;IAInM,GAAG,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAerH,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;CAe9H;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE1I"}
package/dist/filter.js ADDED
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilterInfoOf = exports.FilterInfo = exports.CombinType = exports.Operator = void 0;
4
+ exports.filter = filter;
5
+ const type_1 = require("./type");
6
+ var Operator;
7
+ (function (Operator) {
8
+ Operator["Equals"] = "==";
9
+ Operator["NotEquals"] = "!=";
10
+ Operator["GreaterThan"] = ">";
11
+ Operator["LessThanOrEqual"] = "<=";
12
+ Operator["LessThan"] = "<";
13
+ Operator["GreaterThanOrEqual"] = ">=";
14
+ Operator["Between"] = "between";
15
+ Operator["NotBetween"] = "not between";
16
+ Operator["In"] = "in";
17
+ Operator["NotIn"] = "not in";
18
+ Operator["StartsWith"] = "starts";
19
+ Operator["NotStartsWith"] = "not starts";
20
+ Operator["EndsWith"] = "ends";
21
+ Operator["NotEndsWith"] = "not ends";
22
+ Operator["Contains"] = "contains";
23
+ Operator["NotContains"] = "not contains";
24
+ })(Operator || (exports.Operator = Operator = {}));
25
+ var CombinType;
26
+ (function (CombinType) {
27
+ CombinType[CombinType["AndItems"] = 1] = "AndItems";
28
+ CombinType[CombinType["OrItems"] = 2] = "OrItems";
29
+ CombinType[CombinType["SingleItem"] = 0] = "SingleItem";
30
+ })(CombinType || (exports.CombinType = CombinType = {}));
31
+ class FilterInfo {
32
+ constructor(left, op, right, combinType = CombinType.SingleItem, items = []) {
33
+ this.items = [];
34
+ this.left = left;
35
+ this.right = right;
36
+ this.op = op;
37
+ this.combinType = combinType;
38
+ this.items = items;
39
+ }
40
+ toString() {
41
+ switch (this.combinType) {
42
+ case CombinType.AndItems:
43
+ return this.items.filter(item => item !== null)
44
+ .map(item => `(${item.toString()})`)
45
+ .join(` ${FilterInfo.Operator_And} `);
46
+ case CombinType.OrItems:
47
+ return this.items.filter(item => item !== null)
48
+ .map(item => `(${item.toString()})`)
49
+ .join(` ${FilterInfo.Operator_Or} `);
50
+ default:
51
+ return `${this.left} ${this.op} ${this.right}`;
52
+ }
53
+ }
54
+ andAlso(other) {
55
+ if (this.combinType == CombinType.AndItems) {
56
+ if (other.combinType == CombinType.AndItems) {
57
+ this.items = this.items.concat(other.items);
58
+ }
59
+ else {
60
+ this.items.push(other);
61
+ }
62
+ return this;
63
+ }
64
+ else {
65
+ return FilterInfo.createAnd(this, other);
66
+ }
67
+ }
68
+ orElse(other) {
69
+ if (this.combinType == CombinType.OrItems) {
70
+ if (other.combinType == CombinType.OrItems) {
71
+ this.items = this.items.concat(other.items);
72
+ }
73
+ else {
74
+ this.items.push(other);
75
+ }
76
+ return this;
77
+ }
78
+ else {
79
+ return FilterInfo.createOr(this, other);
80
+ }
81
+ }
82
+ static createOr(...items) {
83
+ return new FilterInfo(null, null, null, CombinType.OrItems, items);
84
+ }
85
+ static createAnd(...items) {
86
+ return new FilterInfo(null, null, null, CombinType.AndItems, items);
87
+ }
88
+ }
89
+ exports.FilterInfo = FilterInfo;
90
+ FilterInfo.Operator_And = "and";
91
+ FilterInfo.Operator_Or = "or";
92
+ class FilterInfoOf extends FilterInfo {
93
+ constructor(left, op, right, combinType = CombinType.SingleItem, items = []) {
94
+ super((0, type_1.toValueExp)(left), op, (0, type_1.toValueExp)(right), combinType, items);
95
+ }
96
+ and(left, op, right) {
97
+ const other = new FilterInfoOf(left, op, right);
98
+ if (this.combinType == CombinType.AndItems) {
99
+ if (other.combinType == CombinType.AndItems) {
100
+ this.items = this.items.concat(other.items);
101
+ }
102
+ else {
103
+ this.items.push(other);
104
+ }
105
+ return this;
106
+ }
107
+ else {
108
+ return new FilterInfoOf(null, null, null, CombinType.AndItems, [this, other]);
109
+ }
110
+ }
111
+ or(left, op, right) {
112
+ const other = new FilterInfoOf(left, op, right);
113
+ if (this.combinType == CombinType.OrItems) {
114
+ if (other.combinType == CombinType.OrItems) {
115
+ this.items = this.items.concat(other.items);
116
+ }
117
+ else {
118
+ this.items.push(other);
119
+ }
120
+ return this;
121
+ }
122
+ else {
123
+ return new FilterInfoOf(null, null, null, CombinType.OrItems, [this, other]);
124
+ }
125
+ }
126
+ }
127
+ exports.FilterInfoOf = FilterInfoOf;
128
+ function filter(left, op, right) {
129
+ return new FilterInfoOf(left, op, right);
130
+ }
131
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":";;;AAyIA,wBAEC;AA3ID,iCAA0F;AAC1F,IAAY,QAiBX;AAjBD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,4BAAgB,CAAA;IAChB,6BAAiB,CAAA;IACjB,kCAAsB,CAAA;IACtB,0BAAc,CAAA;IACd,qCAAyB,CAAA;IACzB,+BAAmB,CAAA;IACnB,sCAA0B,CAAA;IAC1B,qBAAS,CAAA;IACT,4BAAgB,CAAA;IAChB,iCAAqB,CAAA;IACrB,wCAA4B,CAAA;IAC5B,6BAAiB,CAAA;IACjB,oCAAwB,CAAA;IACxB,iCAAqB,CAAA;IACrB,wCAA4B,CAAA;AAChC,CAAC,EAjBW,QAAQ,wBAAR,QAAQ,QAiBnB;AACD,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,mDAAY,CAAA;IACZ,iDAAW,CAAA;IACX,uDAAc,CAAA;AAClB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,MAAa,UAAU;IAUnB,YAAY,IAAiC,EAAE,EAAmB,EAAE,KAAkC,EAAE,aAAyB,UAAU,CAAC,UAAU,EAAE,QAAsB,EAAE;QAFtK,UAAK,GAAiB,EAAE,CAAC;QAG/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAGD,QAAQ;QACJ,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,UAAU,CAAC,QAAQ;gBACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;qBAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;qBACnC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;YAC9C,KAAK,UAAU,CAAC,OAAO;gBACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;qBAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;qBACnC,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;YAC7C;gBACI,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;IACL,CAAC;IAGM,OAAO,CAAC,KAAiB;QAC5B,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;aACI,CAAC;YACF,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAiB;QAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;aACI,CAAC;YACF,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAmB;QACzC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IACM,MAAM,CAAC,SAAS,CAAC,GAAG,KAAmB;QAC1C,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;;AAtEL,gCAwEC;AAvEmB,uBAAY,GAAG,KAAK,AAAR,CAAS;AACrB,sBAAW,GAAG,IAAI,AAAP,CAAQ;AAyEvC,MAAa,YAAgB,SAAQ,UAAU;IAC3C,YAAY,IAA8C,EAAE,EAAmB,EAAE,KAA+C,EAAE,aAAyB,UAAU,CAAC,UAAU,EAAE,QAAsB,EAAE;QACtM,KAAK,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAA,iBAAU,EAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAEM,GAAG,CAAC,IAAuC,EAAE,EAAY,EAAE,KAAwC;QACtG,MAAM,KAAK,GAAG,IAAI,YAAY,CAAI,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;aACI,CAAC;YACF,OAAO,IAAI,YAAY,CAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IACM,EAAE,CAAC,IAAuC,EAAE,EAAY,EAAE,KAAwC;QACrG,MAAM,KAAK,GAAG,IAAI,YAAY,CAAI,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;aACI,CAAC;YACF,OAAO,IAAI,YAAY,CAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;CACJ;AAnCD,oCAmCC;AAED,SAAgB,MAAM,CAAI,IAAuC,EAAE,EAAY,EAAE,KAAwC;IACrH,OAAO,IAAI,YAAY,CAAI,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,13 @@
1
+ export * from "./agg";
2
+ export * from "./api";
3
+ export * from "./constant";
4
+ export * from "./default";
5
+ export * from "./expression";
6
+ export * from "./filter";
7
+ export * from "./limit";
8
+ export * from "./orderby";
9
+ export * from "./pagedlist";
10
+ export * from "./query";
11
+ export * from "./select";
12
+ export * from "./type";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./agg"), exports);
18
+ __exportStar(require("./api"), exports);
19
+ __exportStar(require("./constant"), exports);
20
+ __exportStar(require("./default"), exports);
21
+ __exportStar(require("./expression"), exports);
22
+ __exportStar(require("./filter"), exports);
23
+ __exportStar(require("./limit"), exports);
24
+ __exportStar(require("./orderby"), exports);
25
+ __exportStar(require("./pagedlist"), exports);
26
+ __exportStar(require("./query"), exports);
27
+ __exportStar(require("./select"), exports);
28
+ __exportStar(require("./type"), exports);
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,wCAAsB;AACtB,6CAA2B;AAC3B,4CAA0B;AAC1B,+CAA6B;AAC7B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB;AACzB,yCAAuB"}
@@ -0,0 +1,3 @@
1
+ export declare class LimitInfo {
2
+ }
3
+ //# sourceMappingURL=limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../src/limit.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;CAErB"}
package/dist/limit.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LimitInfo = void 0;
4
+ class LimitInfo {
5
+ }
6
+ exports.LimitInfo = LimitInfo;
7
+ //# sourceMappingURL=limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit.js","sourceRoot":"","sources":["../src/limit.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;CAErB;AAFD,8BAEC"}
@@ -0,0 +1,24 @@
1
+ import { DeepKeysOrExpression } from "./type";
2
+ import { Expression } from "./expression";
3
+ export declare enum OrderByType {
4
+ Asc = "asc()",
5
+ Desc = "desc()"
6
+ }
7
+ export declare class OrderByItem {
8
+ protected path: Expression;
9
+ protected type: OrderByType;
10
+ constructor(path: Expression, type: OrderByType);
11
+ toString(): string;
12
+ }
13
+ export declare class OrderByInfo {
14
+ items: OrderByItem[];
15
+ constructor(...orderbyItems: OrderByItem[]);
16
+ toString(): string;
17
+ add(path: Expression, type?: OrderByType): OrderByInfo;
18
+ }
19
+ export declare class OrderByInfoOf<T> extends OrderByInfo {
20
+ then(path: DeepKeysOrExpression<T>): OrderByInfoOf<T>;
21
+ thenDesc(path: DeepKeysOrExpression<T>): OrderByInfoOf<T>;
22
+ }
23
+ export declare function orderby<T>(path: DeepKeysOrExpression<T>, type?: OrderByType): OrderByInfoOf<T>;
24
+ //# sourceMappingURL=orderby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderby.d.ts","sourceRoot":"","sources":["../src/orderby.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAS,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oBAAY,WAAW;IACnB,GAAG,UAAU;IACb,IAAI,WAAW;CAClB;AACD,qBAAa,WAAW;IACpB,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;gBAEhB,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW;IAIxC,QAAQ,IAAI,MAAM;CAG5B;AAED,qBAAa,WAAW;IACb,KAAK,EAAE,WAAW,EAAE,CAAM;gBAErB,GAAG,YAAY,EAAE,WAAW,EAAE;IAInC,QAAQ,IAAI,MAAM;IAOlB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,GAAE,WAA6B,GAAG,WAAW;CAIjF;AAED,qBAAa,aAAa,CAAC,CAAC,CAAE,SAAQ,WAAW;IACtC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAIrD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAInE;AACD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,WAA6B,GAAG,aAAa,CAAC,CAAC,CAAC,CAI/G"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderByInfoOf = exports.OrderByInfo = exports.OrderByItem = exports.OrderByType = void 0;
4
+ exports.orderby = orderby;
5
+ const type_1 = require("./type");
6
+ var OrderByType;
7
+ (function (OrderByType) {
8
+ OrderByType["Asc"] = "asc()";
9
+ OrderByType["Desc"] = "desc()";
10
+ })(OrderByType || (exports.OrderByType = OrderByType = {}));
11
+ class OrderByItem {
12
+ constructor(path, type) {
13
+ this.path = path;
14
+ this.type = type;
15
+ }
16
+ toString() {
17
+ return `${this.path}.${this.type.toString()}`;
18
+ }
19
+ }
20
+ exports.OrderByItem = OrderByItem;
21
+ class OrderByInfo {
22
+ constructor(...orderbyItems) {
23
+ this.items = [];
24
+ this.items.push(...(orderbyItems.filter(item => item !== null)));
25
+ }
26
+ toString() {
27
+ if (this.items.length === 0)
28
+ return '';
29
+ return this.items
30
+ .filter(item => item !== null)
31
+ .map(item => item.toString())
32
+ .join(',');
33
+ }
34
+ add(path, type = OrderByType.Asc) {
35
+ this.items.push(new OrderByItem(path, type));
36
+ return this;
37
+ }
38
+ }
39
+ exports.OrderByInfo = OrderByInfo;
40
+ // generic
41
+ class OrderByInfoOf extends OrderByInfo {
42
+ then(path) {
43
+ this.add((0, type_1.toExp)(path), OrderByType.Asc);
44
+ return this;
45
+ }
46
+ thenDesc(path) {
47
+ this.add((0, type_1.toExp)(path), OrderByType.Desc);
48
+ return this;
49
+ }
50
+ }
51
+ exports.OrderByInfoOf = OrderByInfoOf;
52
+ function orderby(path, type = OrderByType.Asc) {
53
+ const info = new OrderByInfoOf();
54
+ info.add((0, type_1.toExp)(path), type);
55
+ return info;
56
+ }
57
+ //# sourceMappingURL=orderby.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderby.js","sourceRoot":"","sources":["../src/orderby.ts"],"names":[],"mappings":";;;AAkDA,0BAIC;AAtDD,iCAAqD;AAGrD,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;AACnB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AACD,MAAa,WAAW;IAIpB,YAAY,IAAgB,EAAE,IAAiB;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACM,QAAQ;QACX,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IAClD,CAAC;CACJ;AAXD,kCAWC;AAED,MAAa,WAAW;IAGpB,YAAY,GAAG,YAA2B;QAFnC,UAAK,GAAkB,EAAE,CAAC;QAG7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEM,QAAQ;QACX,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACM,GAAG,CAAC,IAAgB,EAAE,OAAoB,WAAW,CAAC,GAAG;QAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAlBD,kCAkBC;AACD,UAAU;AACV,MAAa,aAAiB,SAAQ,WAAW;IACtC,IAAI,CAAC,IAA6B;QACrC,IAAI,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,QAAQ,CAAC,IAA6B;QACzC,IAAI,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AATD,sCASC;AACD,SAAgB,OAAO,CAAI,IAA6B,EAAE,OAAoB,WAAW,CAAC,GAAG;IACzF,MAAM,IAAI,GAAG,IAAI,aAAa,EAAK,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface AggResult {
2
+ [key: string]: number | string | null;
3
+ }
4
+ export interface PagedList<T> {
5
+ limit: number;
6
+ offset: number;
7
+ totalCount: number;
8
+ hasNext: boolean;
9
+ agg?: AggResult;
10
+ items: T[];
11
+ }
12
+ export interface BaseReq {
13
+ filter?: string | null;
14
+ orderBy?: string | null;
15
+ select?: string | null;
16
+ }
17
+ export interface ListReq extends BaseReq {
18
+ limit: number;
19
+ offset: number;
20
+ }
21
+ export interface PageReq extends ListReq {
22
+ agg?: string | null;
23
+ }
24
+ //# sourceMappingURL=pagedlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagedlist.d.ts","sourceRoot":"","sources":["../src/pagedlist.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACzC;AACD,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,CAAC,EAAE,CAAC;CACd;AACD,MAAM,WAAW,OAAO;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AACD,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACpC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pagedlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagedlist.js","sourceRoot":"","sources":["../src/pagedlist.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { AggInfo, AggType } from "./agg";
2
+ import { FilterInfo, Operator } from "./filter";
3
+ import { OrderByInfo, OrderByType } from "./orderby";
4
+ import { FieldKeys, SelectInfo } from "./select";
5
+ import { DeepKeys, DeepKeysOrConstantOrExpression, DeepKeysOrExpression } from "./type";
6
+ import { PageReq } from "./pagedlist";
7
+ export declare class QueryBuilder {
8
+ protected _filterInfo?: FilterInfo;
9
+ protected _orderByInfo?: OrderByInfo;
10
+ protected _selectInfo?: SelectInfo;
11
+ protected _aggInfo?: AggInfo;
12
+ protected _limit: number;
13
+ protected _offset: number;
14
+ build(): PageReq;
15
+ withAgg(agg: AggInfo): QueryBuilder;
16
+ withFilter(filter: FilterInfo): QueryBuilder;
17
+ withOrderBy(orderby: OrderByInfo): QueryBuilder;
18
+ withSelect(select: SelectInfo): QueryBuilder;
19
+ offset(offset: number): QueryBuilder;
20
+ limit(limit: number): QueryBuilder;
21
+ }
22
+ export declare class QueryBuilderOf<T> extends QueryBuilder {
23
+ where(left: DeepKeysOrConstantOrExpression<T>, op: Operator | undefined, right: DeepKeysOrConstantOrExpression<T>): QueryBuilderOf<T>;
24
+ orderby(path: DeepKeysOrExpression<T>, type?: OrderByType): QueryBuilderOf<T>;
25
+ orderbyDesc(path: DeepKeysOrExpression<T>): QueryBuilderOf<T>;
26
+ thenby(path: DeepKeysOrExpression<T>, type?: OrderByType): QueryBuilderOf<T>;
27
+ thenbyDesc(path: DeepKeysOrExpression<T>): QueryBuilderOf<T>;
28
+ agg(path: DeepKeys<T>, type?: AggType, name?: string | null): QueryBuilderOf<T>;
29
+ include(...names: FieldKeys<T>[]): QueryBuilderOf<T>;
30
+ exclude(...names: FieldKeys<T>[]): QueryBuilderOf<T>;
31
+ }
32
+ export declare function query<T>(): QueryBuilderOf<T>;
33
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,OAAO,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,WAAW,EAAe,WAAW,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,8BAA8B,EAAE,oBAAoB,EAAqB,MAAM,QAAQ,CAAC;AAE3G,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAItC,qBAAa,YAAY;IAErB,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IACnC,SAAS,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;IACrC,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAuB;IAC/C,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAEvB,KAAK,IAAI,OAAO;IAmBhB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY;IAInC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAI5C,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY;IAI/C,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAI5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAIpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;CAI5C;AAED,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAExC,KAAK,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,YAAkB,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAS3I,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,WAA6B,GAAG,cAAc,CAAC,CAAC,CAAC;IAI9F,WAAW,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAG7D,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,WAA6B,GAAG,cAAc,CAAC,CAAC,CAAC;IAQ7F,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAG5D,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAqB,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,cAAc,CAAC,CAAC,CAAC;IAQlG,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;IAQpD,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;CAQ9D;AACD,wBAAgB,KAAK,CAAC,CAAC,uBAEtB"}
package/dist/query.js ADDED
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.QueryBuilderOf = exports.QueryBuilder = void 0;
7
+ exports.query = query;
8
+ const agg_1 = require("./agg");
9
+ const filter_1 = require("./filter");
10
+ const orderby_1 = require("./orderby");
11
+ const select_1 = require("./select");
12
+ const type_1 = require("./type");
13
+ const default_1 = __importDefault(require("./default"));
14
+ class QueryBuilder {
15
+ constructor() {
16
+ this._limit = default_1.default.defaultLimit;
17
+ this._offset = 0;
18
+ }
19
+ build() {
20
+ const res = {
21
+ limit: this._limit,
22
+ offset: this._offset
23
+ };
24
+ if (this._filterInfo) {
25
+ res.filter = this._filterInfo.toString();
26
+ }
27
+ if (this._orderByInfo) {
28
+ res.orderBy = this._orderByInfo.toString();
29
+ }
30
+ if (this._selectInfo) {
31
+ res.select = this._selectInfo.toString();
32
+ }
33
+ if (this._aggInfo) {
34
+ res.agg = this._aggInfo.toString();
35
+ }
36
+ return res;
37
+ }
38
+ withAgg(agg) {
39
+ this._aggInfo = agg;
40
+ return this;
41
+ }
42
+ withFilter(filter) {
43
+ this._filterInfo = filter;
44
+ return this;
45
+ }
46
+ withOrderBy(orderby) {
47
+ this._orderByInfo = orderby;
48
+ return this;
49
+ }
50
+ withSelect(select) {
51
+ this._selectInfo = select;
52
+ return this;
53
+ }
54
+ offset(offset) {
55
+ this._offset = offset;
56
+ return this;
57
+ }
58
+ limit(limit) {
59
+ this._limit = limit;
60
+ return this;
61
+ }
62
+ }
63
+ exports.QueryBuilder = QueryBuilder;
64
+ class QueryBuilderOf extends QueryBuilder {
65
+ where(left, op = filter_1.Operator.Equals, right) {
66
+ if (this._filterInfo) {
67
+ this._filterInfo = this._filterInfo.andAlso(new filter_1.FilterInfo((0, type_1.toValueExp)(left), op, (0, type_1.toValueExp)(right)));
68
+ }
69
+ else {
70
+ this._filterInfo = new filter_1.FilterInfo((0, type_1.toValueExp)(left), op, (0, type_1.toValueExp)(right));
71
+ }
72
+ return this;
73
+ }
74
+ orderby(path, type = orderby_1.OrderByType.Asc) {
75
+ this._orderByInfo = new orderby_1.OrderByInfo(new orderby_1.OrderByItem((0, type_1.toExp)(path), type));
76
+ return this;
77
+ }
78
+ orderbyDesc(path) {
79
+ return this.orderby(path, orderby_1.OrderByType.Desc);
80
+ }
81
+ thenby(path, type = orderby_1.OrderByType.Asc) {
82
+ if (this._orderByInfo) {
83
+ this._orderByInfo.add((0, type_1.toExp)(path), type);
84
+ }
85
+ else {
86
+ this._orderByInfo = new orderby_1.OrderByInfo(new orderby_1.OrderByItem((0, type_1.toExp)(path), type));
87
+ }
88
+ return this;
89
+ }
90
+ thenbyDesc(path) {
91
+ return this.thenby(path, orderby_1.OrderByType.Desc);
92
+ }
93
+ agg(path, type = agg_1.AggType.Sum, name = null) {
94
+ if (this._aggInfo) {
95
+ this._aggInfo.append(path, type, name);
96
+ }
97
+ else {
98
+ this._aggInfo = new agg_1.AggInfo(new agg_1.AggItem(path, type, name));
99
+ }
100
+ return this;
101
+ }
102
+ include(...names) {
103
+ if (this._selectInfo) {
104
+ this._selectInfo.appendItems(...names.map(t => new select_1.SelectItem(t.toString())));
105
+ }
106
+ else {
107
+ this._selectInfo = new select_1.SelectInfo(...names.map(t => new select_1.SelectItem(t.toString())));
108
+ }
109
+ return this;
110
+ }
111
+ exclude(...names) {
112
+ if (this._selectInfo) {
113
+ this._selectInfo.appendItems(...names.map(t => new select_1.SelectItem(t.toString(), true)));
114
+ }
115
+ else {
116
+ this._selectInfo = new select_1.SelectInfo(...names.map(t => new select_1.SelectItem(t.toString(), true)));
117
+ }
118
+ return this;
119
+ }
120
+ }
121
+ exports.QueryBuilderOf = QueryBuilderOf;
122
+ function query() {
123
+ return new QueryBuilderOf();
124
+ }
125
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare class SelectItem {
2
+ private exclude;
3
+ private name;
4
+ constructor(name: string, exclude?: boolean);
5
+ toString(): string;
6
+ }
7
+ export declare class SelectInfo {
8
+ protected items: SelectItem[];
9
+ constructor(...selectItems: SelectItem[]);
10
+ toString(): string;
11
+ appendItems(...names: SelectItem[]): SelectInfo;
12
+ }
13
+ export declare class SelectInfoOf<T> extends SelectInfo {
14
+ include(...names: FieldKeys<T>[]): SelectInfoOf<T>;
15
+ exclude(...names: FieldKeys<T>[]): SelectInfoOf<T>;
16
+ }
17
+ export type FieldKeys<T> = "[default]" | "[complex]" | "[all]" | keyof T;
18
+ export declare function select<T>(...names: FieldKeys<T>[]): SelectInfoOf<T>;
19
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../src/select.ts"],"names":[],"mappings":"AACA,qBAAa,UAAU;IACnB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAK3C,QAAQ,IAAI,MAAM;CAI5B;AACD,qBAAa,UAAU;IACnB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,CAAM;gBAEvB,GAAG,WAAW,EAAE,UAAU,EAAE;IAIxC,QAAQ,IAAI,MAAM;IAOX,WAAW,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU;CAQzD;AAED,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU;IACpC,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAIlD,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;CAI5D;AACD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;AAEzE,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAEnE"}
package/dist/select.js ADDED
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectInfoOf = exports.SelectInfo = exports.SelectItem = void 0;
4
+ exports.select = select;
5
+ class SelectItem {
6
+ constructor(name, exclude = false) {
7
+ this.name = name;
8
+ this.exclude = exclude;
9
+ }
10
+ toString() {
11
+ return this.exclude ? `-${this.name}` : this.name;
12
+ }
13
+ }
14
+ exports.SelectItem = SelectItem;
15
+ class SelectInfo {
16
+ constructor(...selectItems) {
17
+ this.items = [];
18
+ this.items.push(...(selectItems.filter(item => item !== null)));
19
+ }
20
+ toString() {
21
+ if (this.items.length === 0)
22
+ return '';
23
+ return this.items
24
+ .filter(item => item !== null)
25
+ .map(item => item.toString())
26
+ .join(',');
27
+ }
28
+ appendItems(...names) {
29
+ if (this.items) {
30
+ this.items = this.items.concat(names);
31
+ }
32
+ else {
33
+ this.items = names;
34
+ }
35
+ return this;
36
+ }
37
+ }
38
+ exports.SelectInfo = SelectInfo;
39
+ class SelectInfoOf extends SelectInfo {
40
+ include(...names) {
41
+ this.appendItems(...names.map(t => new SelectItem(t.toString())));
42
+ return this;
43
+ }
44
+ exclude(...names) {
45
+ this.appendItems(...names.map(t => new SelectItem(t.toString(), true)));
46
+ return this;
47
+ }
48
+ }
49
+ exports.SelectInfoOf = SelectInfoOf;
50
+ function select(...names) {
51
+ return new SelectInfoOf().include(...names);
52
+ }
53
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../src/select.ts"],"names":[],"mappings":";;;AAmDA,wBAEC;AApDD,MAAa,UAAU;IAInB,YAAY,IAAY,EAAE,UAAmB,KAAK;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACtD,CAAC;CAEJ;AAbD,gCAaC;AACD,MAAa,UAAU;IAGnB,YAAY,GAAG,WAAyB;QAF9B,UAAK,GAAiB,EAAE,CAAC;QAG/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;aAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACM,WAAW,CAAC,GAAG,KAAmB;QACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAtBD,gCAsBC;AAED,MAAa,YAAgB,SAAQ,UAAU;IACpC,OAAO,CAAC,GAAG,KAAqB;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAA;IACf,CAAC;IACM,OAAO,CAAC,GAAG,KAAqB;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AATD,oCASC;AAGD,SAAgB,MAAM,CAAI,GAAG,KAAqB;IAC9C,OAAO,IAAI,YAAY,EAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnD,CAAC"}
package/dist/type.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { Expression } from "./expression";
2
+ import { Constant } from "./constant";
3
+ export type DeepKeys<T> = T extends object ? {
4
+ [K in keyof T]-?: K extends string | number ? `${K}` | `${K}.${DeepKeys<T[K]>}` : never;
5
+ }[keyof T] : never;
6
+ export type Keys<T> = {
7
+ [K in keyof T]: K;
8
+ }[keyof T];
9
+ export type ConstantOrExpression = Constant | Expression;
10
+ export type DeepKeysOrExpression<T> = DeepKeys<T> | Expression;
11
+ export type DeepKeysOrConstantOrExpression<T> = keyof T | DeepKeys<T> | ConstantOrExpression;
12
+ export declare function key<T>(prop: DeepKeys<T>): string;
13
+ export declare function toExp<T>(path: DeepKeysOrExpression<T>): Expression;
14
+ export declare function toValueExp<T>(path: DeepKeysOrConstantOrExpression<T> | null): ConstantOrExpression | null;
15
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACpC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GACzC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GACjC,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,GACR,KAAK,CAAC;AAEZ,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;KACjB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;CACpB,CAAC,MAAM,CAAC,CAAC,CAAC;AAGX,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;AAE7F,wBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAEhD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,UAAU,CAMlE;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,oBAAoB,GAAG,IAAI,CAUzG"}
package/dist/type.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.key = key;
4
+ exports.toExp = toExp;
5
+ exports.toValueExp = toValueExp;
6
+ const expression_1 = require("./expression");
7
+ const constant_1 = require("./constant");
8
+ function key(prop) {
9
+ return prop.toString();
10
+ }
11
+ function toExp(path) {
12
+ if (path instanceof expression_1.Expression) {
13
+ return path;
14
+ }
15
+ else {
16
+ return new expression_1.Expression(path);
17
+ }
18
+ }
19
+ function toValueExp(path) {
20
+ if (path == null) {
21
+ return null;
22
+ }
23
+ else if (path instanceof expression_1.Expression) {
24
+ return path;
25
+ }
26
+ else if (path instanceof constant_1.Constant) {
27
+ return path;
28
+ }
29
+ else {
30
+ return new expression_1.Expression(path);
31
+ }
32
+ }
33
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":";;AAsBA,kBAEC;AAED,sBAMC;AACD,gCAUC;AA3CD,6CAA0C;AAC1C,yCAAsC;AAqBtC,SAAgB,GAAG,CAAI,IAAiB;IACpC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED,SAAgB,KAAK,CAAI,IAA6B;IAClD,IAAI,IAAI,YAAY,uBAAU,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AACD,SAAgB,UAAU,CAAI,IAA8C;IACxE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,uBAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,mBAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,uBAAU,CAAC,IAAc,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "ys.knife.query.js",
3
+ "version": "0.0.3",
4
+ "description": "ys.knife.query.js是一个用于构建查询的基础类库,提供了丰富的API用于创建和管理查询表达式",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "clean": "rimraf dist reports coverage",
9
+ "build": "tsc",
10
+ "test": "jest",
11
+ "lint": "pnpm eslint src/**/*.ts",
12
+ "fix-lint": "pnpm eslint src/**/*.ts --fix",
13
+ "prepublishOnly": "pnpm run clean && pnpm run lint && pnpm run test && pnpm run build",
14
+ "postversion": "git push && git push --tags"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/yscorecore/ys.knife.query.js.git"
19
+ },
20
+ "keywords": [
21
+ "ys.knife.query",
22
+ "ys.knife.query.js"
23
+ ],
24
+ "author": "Pengbo",
25
+ "license": "ISC",
26
+ "bugs": {
27
+ "url": "https://github.com/yscorecore/ys.knife.query.js/issues"
28
+ },
29
+ "homepage": "https://github.com/yscorecore/ys.knife.query.js#readme",
30
+ "devDependencies": {
31
+ "@eslint/js": "^9.9.0",
32
+ "@types/jest": "^29.5.12",
33
+ "@types/node": "^22.2.0",
34
+ "@typescript-eslint/eslint-plugin": "^8.1.0",
35
+ "@typescript-eslint/parser": "^8.1.0",
36
+ "eslint": "^9.9.0",
37
+ "globals": "^15.9.0",
38
+ "jest": "^29.7.0",
39
+ "jest-html-reporters": "^3.1.7",
40
+ "rimraf": "^6.0.1",
41
+ "rollup": "^4.20.0",
42
+ "rollup-plugin-typescript2": "^0.36.0",
43
+ "ts-jest": "^29.2.4",
44
+ "typescript": "^5.5.4",
45
+ "typescript-eslint": "^8.1.0"
46
+ },
47
+ "dependencies": {},
48
+ "files": [
49
+ "./dist/*"
50
+ ]
51
+ }