prostgles-types 1.5.144 → 1.5.145
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/filters.d.ts +27 -15
- package/dist/filters.d.ts.map +1 -1
- package/dist/filters.js +2 -1
- package/dist/filters.js.map +1 -1
- package/dist/index_umd.js +1 -1
- package/lib/filters.ts +33 -10
- package/package.json +1 -1
- package/tests/tsconfig.json +2 -1
- package/tests/typeTests.d.ts.map +1 -1
- package/tests/typeTests.js +7 -1
- package/tests/typeTests.js.map +1 -1
- package/tests/typeTests.ts +9 -2
- package/tsconfig.json +2 -1
package/dist/filters.d.ts
CHANGED
|
@@ -25,8 +25,9 @@ export declare type CompareFilter<T = Date | number | string | boolean> = T | {
|
|
|
25
25
|
} | {
|
|
26
26
|
"$between": [T, T];
|
|
27
27
|
};
|
|
28
|
-
export declare const CompareFilterKeys:
|
|
29
|
-
export declare const CompareInFilterKeys:
|
|
28
|
+
export declare const CompareFilterKeys: readonly ["=", "$eq", "<>", ">", ">=", "<=", "$eq", "$ne", "$gt", "$gte", "$lte"];
|
|
29
|
+
export declare const CompareInFilterKeys: readonly ["$in", "$nin"];
|
|
30
|
+
export declare const TextFilterKeys: readonly ["$ilike", "$like"];
|
|
30
31
|
export declare type FullTextSearchFilter = {
|
|
31
32
|
"to_tsquery": string[];
|
|
32
33
|
} | {
|
|
@@ -36,7 +37,7 @@ export declare type FullTextSearchFilter = {
|
|
|
36
37
|
} | {
|
|
37
38
|
"websearch_to_tsquery": string[];
|
|
38
39
|
};
|
|
39
|
-
export declare const TextFilter_FullTextSearchFilterKeys:
|
|
40
|
+
export declare const TextFilter_FullTextSearchFilterKeys: readonly ["to_tsquery", "plainto_tsquery", "phraseto_tsquery", "websearch_to_tsquery"];
|
|
40
41
|
export declare type TextFilter = CompareFilter<string> | {
|
|
41
42
|
"$ilike": string;
|
|
42
43
|
} | {
|
|
@@ -52,7 +53,7 @@ export declare type TextFilter = CompareFilter<string> | {
|
|
|
52
53
|
} | {
|
|
53
54
|
"$containedBy": FullTextSearchFilter;
|
|
54
55
|
};
|
|
55
|
-
export declare const TextFilterFTSKeys:
|
|
56
|
+
export declare const TextFilterFTSKeys: readonly ["@@", "@>", "<@", "$contains", "$containedBy"];
|
|
56
57
|
export declare type ArrayFilter<T = (number | boolean | string)[]> = CompareFilter<T> | {
|
|
57
58
|
"@>": T;
|
|
58
59
|
} | {
|
|
@@ -74,34 +75,44 @@ export declare type GeomFilter = {
|
|
|
74
75
|
} | {
|
|
75
76
|
"@": GeoBBox;
|
|
76
77
|
};
|
|
77
|
-
export declare const GeomFilterKeys:
|
|
78
|
+
export declare const GeomFilterKeys: readonly ["~", "~=", "@", "|&>", "|>>", ">>", "=", "<<|", "<<", "&>", "&<|", "&<", "&&&", "&&"];
|
|
78
79
|
export declare const GeomFilter_Funcs: string[];
|
|
79
80
|
export declare type AllowedTSTypes = string | number | boolean | Date | any[];
|
|
80
81
|
export declare type AnyObject = {
|
|
81
82
|
[key: string]: any;
|
|
82
83
|
};
|
|
83
|
-
export declare type FilterDataType<T = any> = T extends string ? TextFilter : T extends number ? CompareFilter<T> : T extends boolean ? CompareFilter<T> : T extends Date ? CompareFilter<T> : T extends any[] ? ArrayFilter<T> : (CompareFilter<T>
|
|
84
|
+
export declare type FilterDataType<T = any> = T extends string ? TextFilter : T extends number ? CompareFilter<T> : T extends boolean ? CompareFilter<T> : T extends Date ? CompareFilter<T> : T extends any[] ? ArrayFilter<T> : (CompareFilter<T> | ArrayFilter<T> | TextFilter | GeomFilter);
|
|
84
85
|
export declare const EXISTS_KEYS: readonly ["$exists", "$notExists", "$existsJoined", "$notExistsJoined"];
|
|
85
86
|
export declare type EXISTS_KEY = typeof EXISTS_KEYS[number];
|
|
87
|
+
declare type BasicFilter<Field extends string, DataType extends any> = Partial<{
|
|
88
|
+
[K in Extract<typeof CompareFilterKeys[number], string> as `${Field}.${K}`]: DataType;
|
|
89
|
+
}> | Partial<{
|
|
90
|
+
[K in Extract<typeof CompareInFilterKeys[number], string> as `${Field}.${K}`]: DataType[];
|
|
91
|
+
}>;
|
|
92
|
+
declare type StringFilter<Field extends string, DataType extends any> = BasicFilter<Field, DataType> & (Partial<{
|
|
93
|
+
[K in Extract<typeof TextFilterKeys[number], string> as `${Field}.${K}`]: DataType;
|
|
94
|
+
}> | Partial<{
|
|
95
|
+
[K in Extract<typeof TextFilterFTSKeys[number], string> as `${Field}.${K}`]: any;
|
|
96
|
+
}>);
|
|
97
|
+
declare type ValueOf<T> = T[keyof T];
|
|
98
|
+
declare type ShorthandFilter<Obj extends Record<string, any>> = ValueOf<{
|
|
99
|
+
[K in keyof Obj]: Obj[K] extends string ? StringFilter<K, Obj[K]> : BasicFilter<K, Obj[K]>;
|
|
100
|
+
}>;
|
|
86
101
|
export declare type FilterForObject<T = AnyObject> = {
|
|
87
102
|
[K in keyof Partial<T>]: FilterDataType<T[K]>;
|
|
88
|
-
} |
|
|
89
|
-
[K in keyof Omit<{
|
|
90
|
-
[key: string]: any;
|
|
91
|
-
}, keyof T>]: (FilterDataType | Date | string | number | (Date | string | number)[]);
|
|
92
|
-
};
|
|
103
|
+
} | ShorthandFilter<T>;
|
|
93
104
|
export declare type FilterItem<T = AnyObject> = FilterForObject<T> | Partial<{
|
|
94
105
|
[key in EXISTS_KEY]: {
|
|
95
106
|
[key: string]: FilterForObject;
|
|
96
107
|
};
|
|
97
108
|
}>;
|
|
98
|
-
export declare type FullFilter<T = AnyObject> =
|
|
99
|
-
$and: (FilterItem<T> | FullFilter)[];
|
|
109
|
+
export declare type FullFilter<T = AnyObject> = {
|
|
110
|
+
$and: (FilterItem<T> | FullFilter<T>)[];
|
|
100
111
|
} | {
|
|
101
|
-
$or: (FilterItem<T> | FullFilter)[];
|
|
112
|
+
$or: (FilterItem<T> | FullFilter<T>)[];
|
|
102
113
|
} | {
|
|
103
114
|
$not: FilterItem<T>;
|
|
104
|
-
}
|
|
115
|
+
} | FilterItem<T>;
|
|
105
116
|
export declare type FullFilterBasic<T = {
|
|
106
117
|
[key: string]: any;
|
|
107
118
|
}> = {
|
|
@@ -109,4 +120,5 @@ export declare type FullFilterBasic<T = {
|
|
|
109
120
|
[key: string]: any;
|
|
110
121
|
}>]: any;
|
|
111
122
|
};
|
|
123
|
+
export {};
|
|
112
124
|
//# sourceMappingURL=filters.d.ts.map
|
package/dist/filters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":"AAMC,oBAAY,aAAa,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,IAI5D,CAAC,GACD;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GAE3B;IAAE,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,GACd;IAAE,MAAM,EAAE,CAAC,EAAE,CAAA;CAAE,GACf;IAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,CACxB;AACD,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":"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"}
|
package/dist/filters.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EXISTS_KEYS = exports.GeomFilter_Funcs = exports.GeomFilterKeys = exports.TextFilterFTSKeys = exports.TextFilter_FullTextSearchFilterKeys = exports.CompareInFilterKeys = exports.CompareFilterKeys = void 0;
|
|
3
|
+
exports.EXISTS_KEYS = exports.GeomFilter_Funcs = exports.GeomFilterKeys = exports.TextFilterFTSKeys = exports.TextFilter_FullTextSearchFilterKeys = exports.TextFilterKeys = exports.CompareInFilterKeys = exports.CompareFilterKeys = void 0;
|
|
4
4
|
exports.CompareFilterKeys = ["=", "$eq", "<>", ">", ">=", "<=", "$eq", "$ne", "$gt", "$gte", "$lte"];
|
|
5
5
|
exports.CompareInFilterKeys = ["$in", "$nin"];
|
|
6
|
+
exports.TextFilterKeys = ["$ilike", "$like"];
|
|
6
7
|
exports.TextFilter_FullTextSearchFilterKeys = ["to_tsquery", "plainto_tsquery", "phraseto_tsquery", "websearch_to_tsquery"];
|
|
7
8
|
exports.TextFilterFTSKeys = ["@@", "@>", "<@", "$contains", "$containedBy"];
|
|
8
9
|
exports.GeomFilterKeys = ["~", "~=", "@", "|&>", "|>>", ">>", "=", "<<|", "<<", "&>", "&<|", "&<", "&&&", "&&"];
|
package/dist/filters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":";;;AAqBa,QAAA,iBAAiB,GAAG,CAAC,GAAG,EAAE,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":";;;AAqBa,QAAA,iBAAiB,GAAG,CAAC,GAAG,EAAE,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,CAAU,CAAC;AAC7F,QAAA,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAC/C,QAAA,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AAQ9C,QAAA,mCAAmC,GAAG,CAAC,YAAY,EAAC,iBAAiB,EAAC,kBAAkB,EAAC,sBAAsB,CAAU,CAAC;AAW1H,QAAA,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAU,CAAC;AAoD7E,QAAA,cAAc,GAAG,CAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAU,CAAC;AAC1H,MAAM,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;AAClD,QAAA,gBAAgB,GAAI,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAe1F,QAAA,WAAW,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAU,CAAC"}
|
package/dist/index_umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(this||window,(()=>(()=>{"use strict";var e={444:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EXISTS_KEYS=t.GeomFilter_Funcs=t.GeomFilterKeys=t.TextFilterFTSKeys=t.TextFilter_FullTextSearchFilterKeys=t.CompareInFilterKeys=t.CompareFilterKeys=void 0,t.CompareFilterKeys=["=","$eq","<>",">",">=","<=","$eq","$ne","$gt","$gte","$lte"],t.CompareInFilterKeys=["$in","$nin"],t.TextFilter_FullTextSearchFilterKeys=["to_tsquery","plainto_tsquery","phraseto_tsquery","websearch_to_tsquery"],t.TextFilterFTSKeys=["@@","@>","<@","$contains","$containedBy"],t.GeomFilterKeys=["~","~=","@","|&>","|>>",">>","=","<<|","<<","&>","&<|","&<","&&&","&&"];const n=["ST_MakeEnvelope","ST_MakePolygon"];t.GeomFilter_Funcs=n.concat(n.map((e=>e.toLowerCase()))),t.EXISTS_KEYS=["$exists","$notExists","$existsJoined","$notExistsJoined"]},590:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.getKeys=t.isObject=t.isDefined=t.get=t.WAL=t.unpatchText=t.stableStringify=t.isEmpty=t.getTextPatch=t.asName=t.RULE_METHODS=t.CHANNELS=t.TS_PG_Types=t._PG_postgis=t._PG_date=t._PG_bool=t._PG_json=t._PG_numbers=t._PG_strings=void 0,t._PG_strings=["bpchar","char","varchar","text","citext","uuid","bytea","inet","time","timetz","interval","name"],t._PG_numbers=["int2","int4","int8","float4","float8","numeric","money","oid"],t._PG_json=["json","jsonb"],t._PG_bool=["bool"],t._PG_date=["date","timestamp","timestamptz"],t._PG_postgis=["geometry","geography"],t.TS_PG_Types={string:t._PG_strings,number:t._PG_numbers,boolean:t._PG_bool,Date:t._PG_date,"Array<number>":t._PG_numbers.map((e=>`_${e}`)),"Array<boolean>":t._PG_bool.map((e=>`_${e}`)),"Array<string>":t._PG_strings.map((e=>`_${e}`)),"Array<Object>":t._PG_json.map((e=>`_${e}`)),"Array<Date>":t._PG_date.map((e=>`_${e}`)),any:[]};const s="_psqlWS_.";t.CHANNELS={SCHEMA_CHANGED:s+"schema-changed",SCHEMA:s+"schema",DEFAULT:s,SQL:"_psqlWS_.sql",METHOD:"_psqlWS_.method",NOTICE_EV:"_psqlWS_.notice",LISTEN_EV:"_psqlWS_.listen",REGISTER:"_psqlWS_.register",LOGIN:"_psqlWS_.login",LOGOUT:"_psqlWS_.logout",AUTHGUARD:"_psqlWS_.authguard",_preffix:s},t.RULE_METHODS={getColumns:["getColumns"],getInfo:["getInfo"],insert:["insert","upsert"],update:["update","upsert","updateBatch"],select:["findOne","find","count","size"],delete:["delete","remove"],sync:["sync","unsync"],subscribe:["unsubscribe","subscribe","subscribeOne"]};var o=n(128);Object.defineProperty(t,"asName",{enumerable:!0,get:function(){return o.asName}}),Object.defineProperty(t,"getTextPatch",{enumerable:!0,get:function(){return o.getTextPatch}}),Object.defineProperty(t,"isEmpty",{enumerable:!0,get:function(){return o.isEmpty}}),Object.defineProperty(t,"stableStringify",{enumerable:!0,get:function(){return o.stableStringify}}),Object.defineProperty(t,"unpatchText",{enumerable:!0,get:function(){return o.unpatchText}}),Object.defineProperty(t,"WAL",{enumerable:!0,get:function(){return o.WAL}}),Object.defineProperty(t,"get",{enumerable:!0,get:function(){return o.get}}),Object.defineProperty(t,"isDefined",{enumerable:!0,get:function(){return o.isDefined}}),Object.defineProperty(t,"isObject",{enumerable:!0,get:function(){return o.isObject}}),Object.defineProperty(t,"getKeys",{enumerable:!0,get:function(){return o.getKeys}}),r(n(444),t)},899:(e,t)=>{function n(e,t){var n=e[0],i=e[1],a=e[2],l=e[3];n=r(n,i,a,l,t[0],7,-680876936),l=r(l,n,i,a,t[1],12,-389564586),a=r(a,l,n,i,t[2],17,606105819),i=r(i,a,l,n,t[3],22,-1044525330),n=r(n,i,a,l,t[4],7,-176418897),l=r(l,n,i,a,t[5],12,1200080426),a=r(a,l,n,i,t[6],17,-1473231341),i=r(i,a,l,n,t[7],22,-45705983),n=r(n,i,a,l,t[8],7,1770035416),l=r(l,n,i,a,t[9],12,-1958414417),a=r(a,l,n,i,t[10],17,-42063),i=r(i,a,l,n,t[11],22,-1990404162),n=r(n,i,a,l,t[12],7,1804603682),l=r(l,n,i,a,t[13],12,-40341101),a=r(a,l,n,i,t[14],17,-1502002290),n=s(n,i=r(i,a,l,n,t[15],22,1236535329),a,l,t[1],5,-165796510),l=s(l,n,i,a,t[6],9,-1069501632),a=s(a,l,n,i,t[11],14,643717713),i=s(i,a,l,n,t[0],20,-373897302),n=s(n,i,a,l,t[5],5,-701558691),l=s(l,n,i,a,t[10],9,38016083),a=s(a,l,n,i,t[15],14,-660478335),i=s(i,a,l,n,t[4],20,-405537848),n=s(n,i,a,l,t[9],5,568446438),l=s(l,n,i,a,t[14],9,-1019803690),a=s(a,l,n,i,t[3],14,-187363961),i=s(i,a,l,n,t[8],20,1163531501),n=s(n,i,a,l,t[13],5,-1444681467),l=s(l,n,i,a,t[2],9,-51403784),a=s(a,l,n,i,t[7],14,1735328473),n=o(n,i=s(i,a,l,n,t[12],20,-1926607734),a,l,t[5],4,-378558),l=o(l,n,i,a,t[8],11,-2022574463),a=o(a,l,n,i,t[11],16,1839030562),i=o(i,a,l,n,t[14],23,-35309556),n=o(n,i,a,l,t[1],4,-1530992060),l=o(l,n,i,a,t[4],11,1272893353),a=o(a,l,n,i,t[7],16,-155497632),i=o(i,a,l,n,t[10],23,-1094730640),n=o(n,i,a,l,t[13],4,681279174),l=o(l,n,i,a,t[0],11,-358537222),a=o(a,l,n,i,t[3],16,-722521979),i=o(i,a,l,n,t[6],23,76029189),n=o(n,i,a,l,t[9],4,-640364487),l=o(l,n,i,a,t[12],11,-421815835),a=o(a,l,n,i,t[15],16,530742520),n=c(n,i=o(i,a,l,n,t[2],23,-995338651),a,l,t[0],6,-198630844),l=c(l,n,i,a,t[7],10,1126891415),a=c(a,l,n,i,t[14],15,-1416354905),i=c(i,a,l,n,t[5],21,-57434055),n=c(n,i,a,l,t[12],6,1700485571),l=c(l,n,i,a,t[3],10,-1894986606),a=c(a,l,n,i,t[10],15,-1051523),i=c(i,a,l,n,t[1],21,-2054922799),n=c(n,i,a,l,t[8],6,1873313359),l=c(l,n,i,a,t[15],10,-30611744),a=c(a,l,n,i,t[6],15,-1560198380),i=c(i,a,l,n,t[13],21,1309151649),n=c(n,i,a,l,t[4],6,-145523070),l=c(l,n,i,a,t[11],10,-1120210379),a=c(a,l,n,i,t[2],15,718787259),i=c(i,a,l,n,t[9],21,-343485551),e[0]=f(n,e[0]),e[1]=f(i,e[1]),e[2]=f(a,e[2]),e[3]=f(l,e[3])}function i(e,t,n,i,r,s){return t=f(f(t,e),f(i,s)),f(t<<r|t>>>32-r,n)}function r(e,t,n,r,s,o,c){return i(t&n|~t&r,e,t,s,o,c)}function s(e,t,n,r,s,o,c){return i(t&r|n&~r,e,t,s,o,c)}function o(e,t,n,r,s,o,c){return i(t^n^r,e,t,s,o,c)}function c(e,t,n,r,s,o,c){return i(n^(t|~r),e,t,s,o,c)}function a(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}Object.defineProperty(t,"__esModule",{value:!0}),t.md5=t.md5cycle=void 0,t.md5cycle=n;var l="0123456789abcdef".split("");function u(e){for(var t="",n=0;n<4;n++)t+=l[e>>8*n+4&15]+l[e>>8*n&15];return t}function d(e){return function(e){for(var t=0;t<e.length;t++)e[t]=u(e[t]);return e.join("")}(function(e){var t,i=e.length,r=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=e.length;t+=64)n(r,a(e.substring(t-64,t)));e=e.substring(t-64);var s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<e.length;t++)s[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(s[t>>2]|=128<<(t%4<<3),t>55)for(n(r,s),t=0;t<16;t++)s[t]=0;return s[14]=8*i,n(r,s),r}(e))}function f(e,t){return e+t&4294967295}t.md5=d,d("hello")},128:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getKeys=t.isDefined=t.isObject=t.get=t.isEmpty=t.WAL=t.unpatchText=t.getTextPatch=t.stableStringify=t.asName=void 0;const i=n(899);function r(e){for(var t in e)return!1;return!0}t.asName=function(e){if(null==e||!e.toString||!e.toString())throw"Expecting a non empty string";return`"${e.toString().replace(/"/g,'""')}"`},t.stableStringify=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var n,i="boolean"==typeof t.cycles&&t.cycles,r=t.cmp&&(n=t.cmp,function(e){return function(t,i){var r={key:t,value:e[t]},s={key:i,value:e[i]};return n(r,s)}}),s=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var n,o;if(Array.isArray(t)){for(o="[",n=0;n<t.length;n++)n&&(o+=","),o+=e(t[n])||"null";return o+"]"}if(null===t)return"null";if(-1!==s.indexOf(t)){if(i)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var c=s.push(t)-1,a=Object.keys(t).sort(r&&r(t));for(o="",n=0;n<a.length;n++){var l=a[n],u=e(t[l]);u&&(o&&(o+=","),o+=JSON.stringify(l)+":"+u)}return s.splice(c,1),"{"+o+"}"}}(e)},t.getTextPatch=function(e,t){if(!(e&&t&&e.trim().length&&t.trim().length))return t;if(e===t)return{from:0,to:0,text:"",md5:(0,i.md5)(t)};function n(n=1){let i=n<1?-1:0,r=!1;for(;!r&&Math.abs(i)<=t.length;){const s=n<1?[i]:[0,i];e.slice(...s)!==t.slice(...s)?r=!0:i+=1*Math.sign(n)}return i}let r=n()-1,s=e.length+n(-1)+1,o=t.length+n(-1)+1;return{from:r,to:s,text:t.slice(r,o),md5:(0,i.md5)(t)}},t.unpatchText=function(e,t){if(!t||"string"==typeof t)return t;const{from:n,to:r,text:s,md5:o}=t;if(null===s||null===e)return s;let c=e.slice(0,n)+s+e.slice(r);if(o&&(0,i.md5)(c)!==o)throw"Patch text error: Could not match md5 hash: (original/result) \n"+e+"\n"+c;return c},t.WAL=class{constructor(e){if(this.changed={},this.sending={},this.sentHistory={},this.callbacks=[],this.sort=(e,t)=>{const{orderBy:n}=this.options;return n&&e&&t&&n.map((n=>{if(!(n.fieldName in e)||!(n.fieldName in t))throw"Replication error: \n some orderBy fields missing from data";let i=n.asc?e[n.fieldName]:t[n.fieldName],r=n.asc?t[n.fieldName]:e[n.fieldName],s=+i-+r,o=i<r?-1:i==r?0:1;return"number"===n.tsDataType&&Number.isFinite(s)?s:o})).find((e=>e))||0},this.isInHistory=e=>{if(!e)throw"Provide item";const t=e[this.options.synced_field];if(!Number.isFinite(+t))throw"Provided item Synced field value is missing/invalid ";const n=this.sentHistory[this.getIdStr(e)],i=n?.[this.options.synced_field];if(n){if(!Number.isFinite(+i))throw"Provided historic item Synced field value is missing/invalid";if(+i==+t)return!0}return!1},this.addData=e=>{r(this.changed)&&this.options.onSendStart&&this.options.onSendStart(),e.map((e=>{var t;const{initial:n,current:i}={...e};if(!i)throw"Expecting { current: object, initial?: object }";const r=this.getIdStr(i);this.changed??(this.changed={}),(t=this.changed)[r]??(t[r]={initial:n,current:i}),this.changed[r].current={...this.changed[r].current,...i}})),this.sendItems()},this.isOnSending=!1,this.isSendingTimeout=void 0,this.willDeleteHistory=void 0,this.sendItems=async()=>{const{DEBUG_MODE:e,onSend:t,onSendEnd:n,batch_size:i,throttle:s,historyAgeSeconds:o=2}=this.options;if(this.isSendingTimeout||this.sending&&!r(this.sending))return;if(!this.changed||r(this.changed))return;let c,a=[],l=[],u={};Object.keys(this.changed).sort(((e,t)=>this.sort(this.changed[e].current,this.changed[t].current))).slice(0,i).map((e=>{let t={...this.changed[e]};this.sending[e]={...t},l.push({...t}),u[e]={...t.current},delete this.changed[e]})),a=l.map((e=>e.current)),e&&console.log(this.options.id," SENDING lr->",a[a.length-1]),this.isSendingTimeout||(this.isSendingTimeout=setTimeout((()=>{this.isSendingTimeout=void 0,r(this.changed)||this.sendItems()}),s)),this.isOnSending=!0;try{await t(a,l),o&&(this.sentHistory={...this.sentHistory,...u},this.willDeleteHistory||(this.willDeleteHistory=setTimeout((()=>{this.willDeleteHistory=void 0,this.sentHistory={}}),1e3*o)))}catch(e){c=e,console.error("WAL onSend failed:",e,a,l)}if(this.isOnSending=!1,this.callbacks.length){const e=Object.keys(this.sending);this.callbacks.forEach(((t,n)=>{t.idStrs=t.idStrs.filter((t=>e.includes(t))),t.idStrs.length||t.cb(c)})),this.callbacks=this.callbacks.filter((e=>e.idStrs.length))}this.sending={},e&&console.log(this.options.id," SENT lr->",a[a.length-1]),r(this.changed)?n&&n(a,l,c):this.sendItems()},this.options={...e},!this.options.orderBy){const{synced_field:t,id_fields:n}=e;this.options.orderBy=[t,...n.sort()].map((e=>({fieldName:e,tsDataType:e===t?"number":"string",asc:!0})))}}isSending(){const e=this.isOnSending||!(r(this.sending)&&r(this.changed));return this.options.DEBUG_MODE&&console.log(this.options.id," CHECKING isSending ->",e),e}getIdStr(e){return this.options.id_fields.sort().map((t=>`${e[t]||""}`)).join(".")}getIdObj(e){let t={};return this.options.id_fields.sort().map((n=>{t[n]=e[n]})),t}getDeltaObj(e){let t={};return Object.keys(e).map((n=>{this.options.id_fields.includes(n)||(t[n]=e[n])})),t}},t.isEmpty=r,t.get=function(e,t){let n=t,i=e;return e?("string"==typeof n&&(n=n.split(".")),n.reduce(((e,t)=>e&&e[t]?e[t]:void 0),i)):e},t.isObject=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},t.isDefined=function(e){return null!=e},t.getKeys=function(e){return Object.keys(e)}}},t={};return function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={exports:{}};return e[i].call(s.exports,s,s.exports,n),s.exports}(590)})()));
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var n in i)("object"==typeof exports?exports:e)[n]=i[n]}}(this||window,(()=>(()=>{"use strict";var e={444:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EXISTS_KEYS=t.GeomFilter_Funcs=t.GeomFilterKeys=t.TextFilterFTSKeys=t.TextFilter_FullTextSearchFilterKeys=t.TextFilterKeys=t.CompareInFilterKeys=t.CompareFilterKeys=void 0,t.CompareFilterKeys=["=","$eq","<>",">",">=","<=","$eq","$ne","$gt","$gte","$lte"],t.CompareInFilterKeys=["$in","$nin"],t.TextFilterKeys=["$ilike","$like"],t.TextFilter_FullTextSearchFilterKeys=["to_tsquery","plainto_tsquery","phraseto_tsquery","websearch_to_tsquery"],t.TextFilterFTSKeys=["@@","@>","<@","$contains","$containedBy"],t.GeomFilterKeys=["~","~=","@","|&>","|>>",">>","=","<<|","<<","&>","&<|","&<","&&&","&&"];const i=["ST_MakeEnvelope","ST_MakePolygon"];t.GeomFilter_Funcs=i.concat(i.map((e=>e.toLowerCase()))),t.EXISTS_KEYS=["$exists","$notExists","$existsJoined","$notExistsJoined"]},590:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),r=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||n(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),t.getKeys=t.isObject=t.isDefined=t.get=t.WAL=t.unpatchText=t.stableStringify=t.isEmpty=t.getTextPatch=t.asName=t.RULE_METHODS=t.CHANNELS=t.TS_PG_Types=t._PG_postgis=t._PG_date=t._PG_bool=t._PG_json=t._PG_numbers=t._PG_strings=void 0,t._PG_strings=["bpchar","char","varchar","text","citext","uuid","bytea","inet","time","timetz","interval","name"],t._PG_numbers=["int2","int4","int8","float4","float8","numeric","money","oid"],t._PG_json=["json","jsonb"],t._PG_bool=["bool"],t._PG_date=["date","timestamp","timestamptz"],t._PG_postgis=["geometry","geography"],t.TS_PG_Types={string:t._PG_strings,number:t._PG_numbers,boolean:t._PG_bool,Date:t._PG_date,"Array<number>":t._PG_numbers.map((e=>`_${e}`)),"Array<boolean>":t._PG_bool.map((e=>`_${e}`)),"Array<string>":t._PG_strings.map((e=>`_${e}`)),"Array<Object>":t._PG_json.map((e=>`_${e}`)),"Array<Date>":t._PG_date.map((e=>`_${e}`)),any:[]};const s="_psqlWS_.";t.CHANNELS={SCHEMA_CHANGED:s+"schema-changed",SCHEMA:s+"schema",DEFAULT:s,SQL:"_psqlWS_.sql",METHOD:"_psqlWS_.method",NOTICE_EV:"_psqlWS_.notice",LISTEN_EV:"_psqlWS_.listen",REGISTER:"_psqlWS_.register",LOGIN:"_psqlWS_.login",LOGOUT:"_psqlWS_.logout",AUTHGUARD:"_psqlWS_.authguard",_preffix:s},t.RULE_METHODS={getColumns:["getColumns"],getInfo:["getInfo"],insert:["insert","upsert"],update:["update","upsert","updateBatch"],select:["findOne","find","count","size"],delete:["delete","remove"],sync:["sync","unsync"],subscribe:["unsubscribe","subscribe","subscribeOne"]};var o=i(128);Object.defineProperty(t,"asName",{enumerable:!0,get:function(){return o.asName}}),Object.defineProperty(t,"getTextPatch",{enumerable:!0,get:function(){return o.getTextPatch}}),Object.defineProperty(t,"isEmpty",{enumerable:!0,get:function(){return o.isEmpty}}),Object.defineProperty(t,"stableStringify",{enumerable:!0,get:function(){return o.stableStringify}}),Object.defineProperty(t,"unpatchText",{enumerable:!0,get:function(){return o.unpatchText}}),Object.defineProperty(t,"WAL",{enumerable:!0,get:function(){return o.WAL}}),Object.defineProperty(t,"get",{enumerable:!0,get:function(){return o.get}}),Object.defineProperty(t,"isDefined",{enumerable:!0,get:function(){return o.isDefined}}),Object.defineProperty(t,"isObject",{enumerable:!0,get:function(){return o.isObject}}),Object.defineProperty(t,"getKeys",{enumerable:!0,get:function(){return o.getKeys}}),r(i(444),t)},899:(e,t)=>{function i(e,t){var i=e[0],n=e[1],a=e[2],l=e[3];i=r(i,n,a,l,t[0],7,-680876936),l=r(l,i,n,a,t[1],12,-389564586),a=r(a,l,i,n,t[2],17,606105819),n=r(n,a,l,i,t[3],22,-1044525330),i=r(i,n,a,l,t[4],7,-176418897),l=r(l,i,n,a,t[5],12,1200080426),a=r(a,l,i,n,t[6],17,-1473231341),n=r(n,a,l,i,t[7],22,-45705983),i=r(i,n,a,l,t[8],7,1770035416),l=r(l,i,n,a,t[9],12,-1958414417),a=r(a,l,i,n,t[10],17,-42063),n=r(n,a,l,i,t[11],22,-1990404162),i=r(i,n,a,l,t[12],7,1804603682),l=r(l,i,n,a,t[13],12,-40341101),a=r(a,l,i,n,t[14],17,-1502002290),i=s(i,n=r(n,a,l,i,t[15],22,1236535329),a,l,t[1],5,-165796510),l=s(l,i,n,a,t[6],9,-1069501632),a=s(a,l,i,n,t[11],14,643717713),n=s(n,a,l,i,t[0],20,-373897302),i=s(i,n,a,l,t[5],5,-701558691),l=s(l,i,n,a,t[10],9,38016083),a=s(a,l,i,n,t[15],14,-660478335),n=s(n,a,l,i,t[4],20,-405537848),i=s(i,n,a,l,t[9],5,568446438),l=s(l,i,n,a,t[14],9,-1019803690),a=s(a,l,i,n,t[3],14,-187363961),n=s(n,a,l,i,t[8],20,1163531501),i=s(i,n,a,l,t[13],5,-1444681467),l=s(l,i,n,a,t[2],9,-51403784),a=s(a,l,i,n,t[7],14,1735328473),i=o(i,n=s(n,a,l,i,t[12],20,-1926607734),a,l,t[5],4,-378558),l=o(l,i,n,a,t[8],11,-2022574463),a=o(a,l,i,n,t[11],16,1839030562),n=o(n,a,l,i,t[14],23,-35309556),i=o(i,n,a,l,t[1],4,-1530992060),l=o(l,i,n,a,t[4],11,1272893353),a=o(a,l,i,n,t[7],16,-155497632),n=o(n,a,l,i,t[10],23,-1094730640),i=o(i,n,a,l,t[13],4,681279174),l=o(l,i,n,a,t[0],11,-358537222),a=o(a,l,i,n,t[3],16,-722521979),n=o(n,a,l,i,t[6],23,76029189),i=o(i,n,a,l,t[9],4,-640364487),l=o(l,i,n,a,t[12],11,-421815835),a=o(a,l,i,n,t[15],16,530742520),i=c(i,n=o(n,a,l,i,t[2],23,-995338651),a,l,t[0],6,-198630844),l=c(l,i,n,a,t[7],10,1126891415),a=c(a,l,i,n,t[14],15,-1416354905),n=c(n,a,l,i,t[5],21,-57434055),i=c(i,n,a,l,t[12],6,1700485571),l=c(l,i,n,a,t[3],10,-1894986606),a=c(a,l,i,n,t[10],15,-1051523),n=c(n,a,l,i,t[1],21,-2054922799),i=c(i,n,a,l,t[8],6,1873313359),l=c(l,i,n,a,t[15],10,-30611744),a=c(a,l,i,n,t[6],15,-1560198380),n=c(n,a,l,i,t[13],21,1309151649),i=c(i,n,a,l,t[4],6,-145523070),l=c(l,i,n,a,t[11],10,-1120210379),a=c(a,l,i,n,t[2],15,718787259),n=c(n,a,l,i,t[9],21,-343485551),e[0]=f(i,e[0]),e[1]=f(n,e[1]),e[2]=f(a,e[2]),e[3]=f(l,e[3])}function n(e,t,i,n,r,s){return t=f(f(t,e),f(n,s)),f(t<<r|t>>>32-r,i)}function r(e,t,i,r,s,o,c){return n(t&i|~t&r,e,t,s,o,c)}function s(e,t,i,r,s,o,c){return n(t&r|i&~r,e,t,s,o,c)}function o(e,t,i,r,s,o,c){return n(t^i^r,e,t,s,o,c)}function c(e,t,i,r,s,o,c){return n(i^(t|~r),e,t,s,o,c)}function a(e){var t,i=[];for(t=0;t<64;t+=4)i[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return i}Object.defineProperty(t,"__esModule",{value:!0}),t.md5=t.md5cycle=void 0,t.md5cycle=i;var l="0123456789abcdef".split("");function u(e){for(var t="",i=0;i<4;i++)t+=l[e>>8*i+4&15]+l[e>>8*i&15];return t}function d(e){return function(e){for(var t=0;t<e.length;t++)e[t]=u(e[t]);return e.join("")}(function(e){var t,n=e.length,r=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=e.length;t+=64)i(r,a(e.substring(t-64,t)));e=e.substring(t-64);var s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<e.length;t++)s[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(s[t>>2]|=128<<(t%4<<3),t>55)for(i(r,s),t=0;t<16;t++)s[t]=0;return s[14]=8*n,i(r,s),r}(e))}function f(e,t){return e+t&4294967295}t.md5=d,d("hello")},128:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getKeys=t.isDefined=t.isObject=t.get=t.isEmpty=t.WAL=t.unpatchText=t.getTextPatch=t.stableStringify=t.asName=void 0;const n=i(899);function r(e){for(var t in e)return!1;return!0}t.asName=function(e){if(null==e||!e.toString||!e.toString())throw"Expecting a non empty string";return`"${e.toString().replace(/"/g,'""')}"`},t.stableStringify=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var i,n="boolean"==typeof t.cycles&&t.cycles,r=t.cmp&&(i=t.cmp,function(e){return function(t,n){var r={key:t,value:e[t]},s={key:n,value:e[n]};return i(r,s)}}),s=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var i,o;if(Array.isArray(t)){for(o="[",i=0;i<t.length;i++)i&&(o+=","),o+=e(t[i])||"null";return o+"]"}if(null===t)return"null";if(-1!==s.indexOf(t)){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var c=s.push(t)-1,a=Object.keys(t).sort(r&&r(t));for(o="",i=0;i<a.length;i++){var l=a[i],u=e(t[l]);u&&(o&&(o+=","),o+=JSON.stringify(l)+":"+u)}return s.splice(c,1),"{"+o+"}"}}(e)},t.getTextPatch=function(e,t){if(!(e&&t&&e.trim().length&&t.trim().length))return t;if(e===t)return{from:0,to:0,text:"",md5:(0,n.md5)(t)};function i(i=1){let n=i<1?-1:0,r=!1;for(;!r&&Math.abs(n)<=t.length;){const s=i<1?[n]:[0,n];e.slice(...s)!==t.slice(...s)?r=!0:n+=1*Math.sign(i)}return n}let r=i()-1,s=e.length+i(-1)+1,o=t.length+i(-1)+1;return{from:r,to:s,text:t.slice(r,o),md5:(0,n.md5)(t)}},t.unpatchText=function(e,t){if(!t||"string"==typeof t)return t;const{from:i,to:r,text:s,md5:o}=t;if(null===s||null===e)return s;let c=e.slice(0,i)+s+e.slice(r);if(o&&(0,n.md5)(c)!==o)throw"Patch text error: Could not match md5 hash: (original/result) \n"+e+"\n"+c;return c},t.WAL=class{constructor(e){if(this.changed={},this.sending={},this.sentHistory={},this.callbacks=[],this.sort=(e,t)=>{const{orderBy:i}=this.options;return i&&e&&t&&i.map((i=>{if(!(i.fieldName in e)||!(i.fieldName in t))throw"Replication error: \n some orderBy fields missing from data";let n=i.asc?e[i.fieldName]:t[i.fieldName],r=i.asc?t[i.fieldName]:e[i.fieldName],s=+n-+r,o=n<r?-1:n==r?0:1;return"number"===i.tsDataType&&Number.isFinite(s)?s:o})).find((e=>e))||0},this.isInHistory=e=>{if(!e)throw"Provide item";const t=e[this.options.synced_field];if(!Number.isFinite(+t))throw"Provided item Synced field value is missing/invalid ";const i=this.sentHistory[this.getIdStr(e)],n=i?.[this.options.synced_field];if(i){if(!Number.isFinite(+n))throw"Provided historic item Synced field value is missing/invalid";if(+n==+t)return!0}return!1},this.addData=e=>{r(this.changed)&&this.options.onSendStart&&this.options.onSendStart(),e.map((e=>{var t;const{initial:i,current:n}={...e};if(!n)throw"Expecting { current: object, initial?: object }";const r=this.getIdStr(n);this.changed??(this.changed={}),(t=this.changed)[r]??(t[r]={initial:i,current:n}),this.changed[r].current={...this.changed[r].current,...n}})),this.sendItems()},this.isOnSending=!1,this.isSendingTimeout=void 0,this.willDeleteHistory=void 0,this.sendItems=async()=>{const{DEBUG_MODE:e,onSend:t,onSendEnd:i,batch_size:n,throttle:s,historyAgeSeconds:o=2}=this.options;if(this.isSendingTimeout||this.sending&&!r(this.sending))return;if(!this.changed||r(this.changed))return;let c,a=[],l=[],u={};Object.keys(this.changed).sort(((e,t)=>this.sort(this.changed[e].current,this.changed[t].current))).slice(0,n).map((e=>{let t={...this.changed[e]};this.sending[e]={...t},l.push({...t}),u[e]={...t.current},delete this.changed[e]})),a=l.map((e=>e.current)),e&&console.log(this.options.id," SENDING lr->",a[a.length-1]),this.isSendingTimeout||(this.isSendingTimeout=setTimeout((()=>{this.isSendingTimeout=void 0,r(this.changed)||this.sendItems()}),s)),this.isOnSending=!0;try{await t(a,l),o&&(this.sentHistory={...this.sentHistory,...u},this.willDeleteHistory||(this.willDeleteHistory=setTimeout((()=>{this.willDeleteHistory=void 0,this.sentHistory={}}),1e3*o)))}catch(e){c=e,console.error("WAL onSend failed:",e,a,l)}if(this.isOnSending=!1,this.callbacks.length){const e=Object.keys(this.sending);this.callbacks.forEach(((t,i)=>{t.idStrs=t.idStrs.filter((t=>e.includes(t))),t.idStrs.length||t.cb(c)})),this.callbacks=this.callbacks.filter((e=>e.idStrs.length))}this.sending={},e&&console.log(this.options.id," SENT lr->",a[a.length-1]),r(this.changed)?i&&i(a,l,c):this.sendItems()},this.options={...e},!this.options.orderBy){const{synced_field:t,id_fields:i}=e;this.options.orderBy=[t,...i.sort()].map((e=>({fieldName:e,tsDataType:e===t?"number":"string",asc:!0})))}}isSending(){const e=this.isOnSending||!(r(this.sending)&&r(this.changed));return this.options.DEBUG_MODE&&console.log(this.options.id," CHECKING isSending ->",e),e}getIdStr(e){return this.options.id_fields.sort().map((t=>`${e[t]||""}`)).join(".")}getIdObj(e){let t={};return this.options.id_fields.sort().map((i=>{t[i]=e[i]})),t}getDeltaObj(e){let t={};return Object.keys(e).map((i=>{this.options.id_fields.includes(i)||(t[i]=e[i])})),t}},t.isEmpty=r,t.get=function(e,t){let i=t,n=e;return e?("string"==typeof i&&(i=i.split(".")),i.reduce(((e,t)=>e&&e[t]?e[t]:void 0),n)):e},t.isObject=function(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))},t.isDefined=function(e){return null!=e},t.getKeys=function(e){return Object.keys(e)}}},t={};return function i(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,i),s.exports}(590)})()));
|
package/lib/filters.ts
CHANGED
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
| { "$nin": T[] }
|
|
20
20
|
| { "$between": [T, T] }
|
|
21
21
|
;
|
|
22
|
-
export const CompareFilterKeys = ["=", "$eq","<>",">",">=","<=","$eq","$ne","$gt","$gte","$lte"];
|
|
23
|
-
export const CompareInFilterKeys = ["$in", "$nin"]
|
|
22
|
+
export const CompareFilterKeys = ["=", "$eq","<>",">",">=","<=","$eq","$ne","$gt","$gte","$lte"] as const;
|
|
23
|
+
export const CompareInFilterKeys = ["$in", "$nin"] as const;
|
|
24
|
+
export const TextFilterKeys = ["$ilike", "$like"] as const;
|
|
24
25
|
|
|
25
26
|
export type FullTextSearchFilter =
|
|
26
27
|
| { "to_tsquery": string[] }
|
|
@@ -28,7 +29,7 @@ export type FullTextSearchFilter =
|
|
|
28
29
|
| { "phraseto_tsquery": string[] }
|
|
29
30
|
| { "websearch_to_tsquery": string[] }
|
|
30
31
|
;
|
|
31
|
-
export const TextFilter_FullTextSearchFilterKeys = ["to_tsquery","plainto_tsquery","phraseto_tsquery","websearch_to_tsquery"];
|
|
32
|
+
export const TextFilter_FullTextSearchFilterKeys = ["to_tsquery","plainto_tsquery","phraseto_tsquery","websearch_to_tsquery"] as const;
|
|
32
33
|
|
|
33
34
|
export type TextFilter =
|
|
34
35
|
| CompareFilter<string>
|
|
@@ -39,7 +40,7 @@ export type TextFilter =
|
|
|
39
40
|
| { "@>": FullTextSearchFilter } | { "$contains": FullTextSearchFilter }
|
|
40
41
|
| { "<@": FullTextSearchFilter } | { "$containedBy": FullTextSearchFilter }
|
|
41
42
|
;
|
|
42
|
-
export const TextFilterFTSKeys = ["@@", "@>", "<@", "$contains", "$containedBy"];
|
|
43
|
+
export const TextFilterFTSKeys = ["@@", "@>", "<@", "$contains", "$containedBy"] as const;
|
|
43
44
|
|
|
44
45
|
export type ArrayFilter<T = (number | boolean | string)[]> =
|
|
45
46
|
| CompareFilter<T>
|
|
@@ -91,7 +92,7 @@ export type GeomFilter =
|
|
|
91
92
|
// | { "~": GeoBBox }
|
|
92
93
|
// | { "~=": GeoBBox }
|
|
93
94
|
;
|
|
94
|
-
export const GeomFilterKeys = ["~","~=","@","|&>","|>>", ">>", "=", "<<|", "<<", "&>", "&<|", "&<", "&&&", "&&"]
|
|
95
|
+
export const GeomFilterKeys = ["~","~=","@","|&>","|>>", ">>", "=", "<<|", "<<", "&>", "&<|", "&<", "&&&", "&&"] as const;
|
|
95
96
|
const _GeomFilter_Funcs = ["ST_MakeEnvelope", "ST_MakePolygon"]
|
|
96
97
|
export const GeomFilter_Funcs = _GeomFilter_Funcs.concat(_GeomFilter_Funcs.map(v => v.toLowerCase()));
|
|
97
98
|
|
|
@@ -105,12 +106,32 @@ export type FilterDataType<T = any> =
|
|
|
105
106
|
: T extends boolean ? CompareFilter<T>
|
|
106
107
|
: T extends Date ? CompareFilter<T>
|
|
107
108
|
: T extends any[] ? ArrayFilter<T>
|
|
108
|
-
: (CompareFilter<T>
|
|
109
|
+
: (CompareFilter<T> | ArrayFilter<T> | TextFilter | GeomFilter)
|
|
109
110
|
;
|
|
110
111
|
|
|
111
112
|
export const EXISTS_KEYS = ["$exists", "$notExists", "$existsJoined", "$notExistsJoined"] as const;
|
|
112
113
|
export type EXISTS_KEY = typeof EXISTS_KEYS[number];
|
|
113
114
|
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Shortened filter operands
|
|
118
|
+
*/
|
|
119
|
+
type BasicFilter<Field extends string, DataType extends any> = Partial<{
|
|
120
|
+
[K in Extract<typeof CompareFilterKeys[number], string> as `${Field}.${K}`]: DataType
|
|
121
|
+
}> | Partial<{
|
|
122
|
+
[K in Extract<typeof CompareInFilterKeys[number], string> as `${Field}.${K}`]: DataType[]
|
|
123
|
+
}>;
|
|
124
|
+
type StringFilter<Field extends string, DataType extends any> = BasicFilter<Field, DataType> & (Partial<{
|
|
125
|
+
[K in Extract<typeof TextFilterKeys[number], string> as `${Field}.${K}`]: DataType
|
|
126
|
+
}> | Partial<{
|
|
127
|
+
[K in Extract<typeof TextFilterFTSKeys[number], string> as `${Field}.${K}`]: any
|
|
128
|
+
}>);
|
|
129
|
+
type ValueOf<T> = T[keyof T];
|
|
130
|
+
|
|
131
|
+
type ShorthandFilter<Obj extends Record<string, any>> = ValueOf<{
|
|
132
|
+
[K in keyof Obj]: Obj[K] extends string? StringFilter<K, Obj[K]> : BasicFilter<K, Obj[K]>;
|
|
133
|
+
}>
|
|
134
|
+
|
|
114
135
|
/* Traverses object keys to make filter */
|
|
115
136
|
export type FilterForObject<T = AnyObject> = {
|
|
116
137
|
[K in keyof Partial<T>]: FilterDataType<T[K]>
|
|
@@ -119,7 +140,8 @@ export type FilterForObject<T = AnyObject> = {
|
|
|
119
140
|
* Filters with shorthand notation
|
|
120
141
|
* @example: { "name.$ilike": 'abc' }
|
|
121
142
|
*/
|
|
122
|
-
|
|
143
|
+
ShorthandFilter<T>
|
|
144
|
+
|
|
123
145
|
|
|
124
146
|
|
|
125
147
|
/**
|
|
@@ -136,12 +158,13 @@ export type FilterItem<T = AnyObject> =
|
|
|
136
158
|
* @example { $or: [ { id: 1 }, { status: 'live' } ] }
|
|
137
159
|
*/
|
|
138
160
|
export type FullFilter<T = AnyObject> =
|
|
139
|
-
| FilterItem<T>
|
|
140
|
-
| { $
|
|
141
|
-
| { $or: (FilterItem<T> | FullFilter)[] }
|
|
161
|
+
| { $and: (FilterItem<T> | FullFilter<T>)[] }
|
|
162
|
+
| { $or: (FilterItem<T> | FullFilter<T>)[] }
|
|
142
163
|
| { $not: FilterItem<T> }
|
|
164
|
+
| FilterItem<T>
|
|
143
165
|
;
|
|
144
166
|
|
|
167
|
+
|
|
145
168
|
/**
|
|
146
169
|
* Simpler FullFilter to reduce load on compilation
|
|
147
170
|
*/
|
package/package.json
CHANGED
package/tests/tsconfig.json
CHANGED
package/tests/typeTests.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeTests.d.ts","sourceRoot":"","sources":["typeTests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typeTests.d.ts","sourceRoot":"","sources":["typeTests.ts"],"names":[],"mappings":"AAgGA,eAAO,MAAM,WAAW,YAAW,CAAC"}
|
package/tests/typeTests.js
CHANGED
|
@@ -13,12 +13,18 @@ exports.typeTestsOK = void 0;
|
|
|
13
13
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
14
|
var _a, _b;
|
|
15
15
|
const tableHandler = undefined;
|
|
16
|
+
const f = {
|
|
17
|
+
$and: [
|
|
18
|
+
{ a: "d", num: { ">": 232 } },
|
|
19
|
+
{ "num.$eq": 2, }
|
|
20
|
+
]
|
|
21
|
+
};
|
|
16
22
|
if (tableHandler) {
|
|
17
23
|
const newRow = yield ((_a = tableHandler.insert) === null || _a === void 0 ? void 0 : _a.call(tableHandler, { h: 2 }, { returning: { b: 1, c: 1 } }));
|
|
18
24
|
newRow.b;
|
|
19
25
|
newRow.c;
|
|
20
26
|
newRow.h;
|
|
21
|
-
const row = yield ((_b = tableHandler.findOne) === null || _b === void 0 ? void 0 : _b.call(tableHandler, {}, { select: { b: 0 } }));
|
|
27
|
+
const row = yield ((_b = tableHandler.findOne) === null || _b === void 0 ? void 0 : _b.call(tableHandler, { "c.$nin": [2] }, { select: { b: 0 } }));
|
|
22
28
|
row.c;
|
|
23
29
|
row.h;
|
|
24
30
|
row.b;
|
package/tests/typeTests.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeTests.js","sourceRoot":"","sources":["typeTests.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMC,CAAC,GAAS,EAAE;;IAEX,MAAM,YAAY,GAA+F,SAAgB,CAAC;IAElI,IAAG,YAAY,EAAC;QACd,MAAM,MAAM,GAAG,MAAM,CAAA,MAAA,YAAY,CAAC,MAAM,6DAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAA,CAAC;QAClF,MAAM,CAAC,CAAC,CAAC;QACT,MAAM,CAAC,CAAC,CAAC;QAGT,MAAM,CAAC,CAAC,CAAC;QAGT,MAAM,GAAG,GAAG,MAAM,CAAA,MAAA,YAAY,CAAC,OAAO,6DAAG,
|
|
1
|
+
{"version":3,"file":"typeTests.js","sourceRoot":"","sources":["typeTests.ts"],"names":[],"mappings":"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"}
|
package/tests/typeTests.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import type { TableHandler, SQLHandler } from "../dist/index";
|
|
2
|
+
import type { TableHandler, SQLHandler, FullFilter } from "../dist/index";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Test select/return type inference
|
|
@@ -8,6 +8,13 @@ import type { TableHandler, SQLHandler } from "../dist/index";
|
|
|
8
8
|
|
|
9
9
|
const tableHandler: TableHandler<{ h: number; b: number; c: number; }, { h: number; b?: number; c?: number; }> = undefined as any;
|
|
10
10
|
|
|
11
|
+
const f: FullFilter<{ a: string | null; num: number }> = {
|
|
12
|
+
$and: [
|
|
13
|
+
{ a: "d", num: { ">": 232 } },
|
|
14
|
+
{ "num.$eq": 2, }
|
|
15
|
+
]
|
|
16
|
+
};
|
|
17
|
+
|
|
11
18
|
if(tableHandler){
|
|
12
19
|
const newRow = await tableHandler.insert?.({ h: 2 }, { returning: {b: 1, c: 1} });
|
|
13
20
|
newRow.b;
|
|
@@ -17,7 +24,7 @@ import type { TableHandler, SQLHandler } from "../dist/index";
|
|
|
17
24
|
newRow.h;
|
|
18
25
|
|
|
19
26
|
// const f: FullFilter<Partial<{ a: number; s: string}>> = { }
|
|
20
|
-
const row = await tableHandler.findOne?.({
|
|
27
|
+
const row = await tableHandler.findOne?.({ "c.$nin": [2] }, { select: {b: 0} });
|
|
21
28
|
row.c;
|
|
22
29
|
row.h;
|
|
23
30
|
|