prostgles-types 4.0.113 → 4.0.115
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/.vscode/settings.json +10 -1
- package/dist/auth.d.ts +21 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/files.d.ts +5 -5
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +13 -1
- package/dist/files.js.map +1 -1
- package/dist/filters.d.ts +82 -14
- package/dist/filters.d.ts.map +1 -1
- package/dist/filters.js +90 -45
- package/dist/filters.js.map +1 -1
- package/dist/index.d.ts +335 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +124 -59
- package/dist/index.js.map +1 -1
- package/dist/insertUpdateUtils.d.ts.map +1 -1
- package/dist/insertUpdateUtils.js +2 -0
- package/dist/insertUpdateUtils.js.map +1 -1
- package/dist/jsonb.d.ts +33 -10
- package/dist/jsonb.d.ts.map +1 -1
- package/dist/jsonb.js +50 -38
- package/dist/jsonb.js.map +1 -1
- package/dist/md5.d.ts.map +1 -1
- package/dist/md5.js +52 -19
- package/dist/md5.js.map +1 -1
- package/dist/replication.d.ts +47 -0
- package/dist/replication.d.ts.map +1 -1
- package/dist/util.d.ts +47 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +122 -65
- package/dist/util.js.map +1 -1
- package/lib/auth.ts +11 -13
- package/lib/files.ts +87 -75
- package/lib/filters.ts +228 -193
- package/lib/index.ts +604 -466
- package/lib/insertUpdateUtils.ts +10 -10
- package/lib/jsonb.ts +242 -205
- package/lib/md5.ts +31 -28
- package/lib/replication.ts +39 -33
- package/lib/util.ts +217 -175
- package/package.json +2 -1
- package/tsconfig.json +1 -1
package/.vscode/settings.json
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"typescript.tsdk": "node_modules/typescript/lib"
|
|
2
|
+
"typescript.tsdk": "node_modules/typescript/lib",
|
|
3
|
+
"editor.formatOnSave": true,
|
|
4
|
+
"prettier.experimentalTernaries": true,
|
|
5
|
+
"[javascript]": {
|
|
6
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
7
|
+
},
|
|
8
|
+
"[typescript]": {
|
|
9
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
10
|
+
},
|
|
11
|
+
"prettier.printWidth": 100
|
|
3
12
|
}
|
package/dist/auth.d.ts
CHANGED
|
@@ -6,16 +6,37 @@ export type UserLike = {
|
|
|
6
6
|
};
|
|
7
7
|
export type EmailAuthType = "withPassword" | "withMagicLink";
|
|
8
8
|
export type EmailSignupType = "withPassword" | "withMagicLink";
|
|
9
|
+
/**
|
|
10
|
+
* Auth object sent from server to client
|
|
11
|
+
*/
|
|
9
12
|
export type AuthSocketSchema = {
|
|
13
|
+
/**
|
|
14
|
+
* User data as returned from server auth.getClientUser
|
|
15
|
+
* if undefined, the client is not logged in
|
|
16
|
+
*/
|
|
10
17
|
user: UserLike | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Identity providers enabled on the server
|
|
20
|
+
* if undefined, the server does not support social login
|
|
21
|
+
*/
|
|
11
22
|
providers: Partial<Record<IdentityProvider, {
|
|
12
23
|
url: string;
|
|
13
24
|
}>> | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Email login methods enabled on the server
|
|
27
|
+
*/
|
|
14
28
|
loginType: EmailAuthType | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Email registration methods enabled on the server
|
|
31
|
+
*/
|
|
15
32
|
register: {
|
|
16
33
|
type: EmailSignupType;
|
|
17
34
|
url: string;
|
|
18
35
|
} | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* If server auth publicRoutes is set up and AuthGuard is not explicitly disabled ( disableSocketAuthGuard: true ):
|
|
38
|
+
* on each connect/reconnect the client pathname is checked and page reloaded if it's not a public page and the client is not logged in
|
|
39
|
+
*/
|
|
19
40
|
pathGuard?: boolean;
|
|
20
41
|
};
|
|
21
42
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../lib/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../lib/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,UAAU,GACV,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,eAAe,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE3B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAE1E;;OAEG;IACH,SAAS,EAAE,aAAa,GAAG,SAAS,CAAC;IAErC;;OAEG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,eAAe,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAE7D;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
|
package/dist/files.d.ts
CHANGED
|
@@ -72,11 +72,11 @@ export type ALLOWED_CONTENT_TYPE = keyof typeof CONTENT_TYPE_TO_EXT;
|
|
|
72
72
|
export type ALLOWED_EXTENSION = (typeof CONTENT_TYPE_TO_EXT)[ALLOWED_CONTENT_TYPE][number];
|
|
73
73
|
export type FileType = {
|
|
74
74
|
acceptedContent: FieldFilter<{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
image: 1;
|
|
76
|
+
audio: 1;
|
|
77
|
+
video: 1;
|
|
78
|
+
text: 1;
|
|
79
|
+
application: 1;
|
|
80
80
|
}>;
|
|
81
81
|
} | {
|
|
82
82
|
acceptedContentType: FieldFilter<typeof CONTENT_TYPE_TO_EXT>;
|
package/dist/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../lib/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../lib/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFtB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3F,MAAM,MAAM,QAAQ,GAChB;IAAE,eAAe,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC;QAAC,WAAW,EAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAAE,GAC3F;IAAE,mBAAmB,EAAE,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;CAAE,GAChE;IAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAA;CAAE,GAChE,KAAK,CAAC;AAEV,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
|
package/dist/files.js
CHANGED
|
@@ -54,7 +54,19 @@ exports.CONTENT_TYPE_TO_EXT = {
|
|
|
54
54
|
"application/x-xpinstall": ["xpi"],
|
|
55
55
|
"application/xhtml+xml": ["xhtml"],
|
|
56
56
|
"application/zip": ["zip"],
|
|
57
|
-
"application/octet-stream": [
|
|
57
|
+
"application/octet-stream": [
|
|
58
|
+
"bin",
|
|
59
|
+
"exe",
|
|
60
|
+
"dll",
|
|
61
|
+
"deb",
|
|
62
|
+
"dmg",
|
|
63
|
+
"eot",
|
|
64
|
+
"iso",
|
|
65
|
+
"img",
|
|
66
|
+
"msi",
|
|
67
|
+
"msp",
|
|
68
|
+
"msm",
|
|
69
|
+
],
|
|
58
70
|
"audio/midi": ["mid", "midi", "kar"],
|
|
59
71
|
"audio/mpeg": ["mp3"],
|
|
60
72
|
"audio/ogg": ["ogg"],
|
package/dist/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../lib/files.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG;IACjC,WAAW,
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../lib/files.ts"],"names":[],"mappings":"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"}
|
package/dist/filters.d.ts
CHANGED
|
@@ -71,53 +71,111 @@ export declare const JsonbFilterKeys: ("@@" | "@>" | "<@" | "?" | "?|" | "?&" |
|
|
|
71
71
|
export declare const TextFilterKeys: readonly ["$ilike", "$like", "$nilike", "$nlike"];
|
|
72
72
|
export declare const TextFilterFTSKeys: readonly ["@@", "@>", "<@", "$contains", "$containedBy"];
|
|
73
73
|
export declare const TextFilter_FullTextSearchFilterKeys: readonly ["to_tsquery", "plainto_tsquery", "phraseto_tsquery", "websearch_to_tsquery"];
|
|
74
|
-
export type FullTextSearchFilter = ExactlyOne<Record<typeof TextFilter_FullTextSearchFilterKeys[number], string[]>>;
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
export type FullTextSearchFilter = ExactlyOne<Record<(typeof TextFilter_FullTextSearchFilterKeys)[number], string[]>>;
|
|
75
|
+
/**
|
|
76
|
+
* Example: col_name: { $gt: 2 }
|
|
77
|
+
*/
|
|
78
|
+
export type CompareFilter<T extends AllowedTSType = string> =
|
|
79
|
+
/**
|
|
80
|
+
* column value equals provided value
|
|
81
|
+
*/
|
|
82
|
+
T | ExactlyOne<Record<(typeof CompareFilterKeys)[number], T>> | ExactlyOne<Record<(typeof CompareInFilterKeys)[number], T[]>> | ExactlyOne<Record<(typeof BetweenFilterKeys)[number], [T, T]>>;
|
|
83
|
+
export type TextFilter = CompareFilter<string> | ExactlyOne<Record<(typeof TextFilterKeys)[number], string>> | ExactlyOne<Record<(typeof TextFilterFTSKeys)[number], FullTextSearchFilter>>;
|
|
77
84
|
export declare const ArrayFilterOperands: readonly ["@>", "<@", "=", "$eq", "$contains", "$containedBy", "&&", "$overlaps"];
|
|
78
|
-
export type ArrayFilter<T extends AllowedTSType[]> = Record<typeof ArrayFilterOperands[number], T> | ExactlyOne<Record<typeof ArrayFilterOperands[number], T>>;
|
|
85
|
+
export type ArrayFilter<T extends AllowedTSType[]> = Record<(typeof ArrayFilterOperands)[number], T> | ExactlyOne<Record<(typeof ArrayFilterOperands)[number], T>>;
|
|
86
|
+
/**
|
|
87
|
+
* Makes bounding box from NW and SE points
|
|
88
|
+
* float xmin, float ymin, float xmax, float ymax, integer srid=unknown
|
|
89
|
+
* https://postgis.net/docs/ST_MakeEnvelope.html
|
|
90
|
+
*/
|
|
79
91
|
export type GeoBBox = {
|
|
80
92
|
ST_MakeEnvelope: number[];
|
|
81
93
|
};
|
|
82
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Returns TRUE if A's 2D bounding box intersects B's 2D bounding box.
|
|
96
|
+
* https://postgis.net/docs/reference.html#Operators
|
|
97
|
+
*/
|
|
98
|
+
export type GeomFilter =
|
|
99
|
+
/**
|
|
100
|
+
* A's 2D bounding box intersects B's 2D bounding box.
|
|
101
|
+
*/
|
|
102
|
+
{
|
|
83
103
|
"&&": GeoBBox;
|
|
84
|
-
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* A's bounding box is contained by B's
|
|
107
|
+
*/
|
|
108
|
+
| {
|
|
85
109
|
"@": GeoBBox;
|
|
86
110
|
};
|
|
111
|
+
/**
|
|
112
|
+
* A's bounding box contains B's.
|
|
113
|
+
*/
|
|
87
114
|
export declare const GeomFilterKeys: readonly ["~", "~=", "@", "|&>", "|>>", ">>", "=", "<<|", "<<", "&>", "&<|", "&<", "&&&", "&&"];
|
|
88
115
|
export declare const GeomFilter_Funcs: readonly ["ST_MakeEnvelope", "st_makeenvelope", "ST_MakePolygon", "st_makepolygon"];
|
|
89
116
|
export type AnyObject = Record<string, any>;
|
|
90
|
-
export type CastFromTSToPG<T extends AllowedTSType> = T extends number ?
|
|
117
|
+
export type CastFromTSToPG<T extends AllowedTSType> = T extends number ? T | string : T extends string ? T | number | Date : T extends boolean ? T | string : T extends Date ? T | string : T;
|
|
91
118
|
export declare const EXISTS_KEYS: readonly ["$exists", "$notExists", "$existsJoined", "$notExistsJoined"];
|
|
92
|
-
export type EXISTS_KEY = typeof EXISTS_KEYS[number];
|
|
119
|
+
export type EXISTS_KEY = (typeof EXISTS_KEYS)[number];
|
|
93
120
|
export declare const ComplexFilterComparisonKeys: readonly ["$ilike", "$like", "$nilike", "$nlike", ...("@@" | "@>" | "<@" | "?" | "?|" | "?&" | "||" | "-" | "#-" | "@?")[], "=", "$eq", "<>", ">", "<", ">=", "<=", "$eq", "$ne", "$gt", "$gte", "$lt", "$lte", "$isDistinctFrom", "$isNotDistinctFrom", "$between", "$notBetween", "$in", "$nin"];
|
|
94
121
|
export declare const COMPLEX_FILTER_KEY: "$filter";
|
|
122
|
+
/**
|
|
123
|
+
* Complex filter that allows applying functions to columns
|
|
124
|
+
* @example:
|
|
125
|
+
* {
|
|
126
|
+
* $filter: [
|
|
127
|
+
* { $funcName: [...args] },
|
|
128
|
+
* operand,
|
|
129
|
+
* value | funcFilter
|
|
130
|
+
* ]
|
|
131
|
+
* }
|
|
132
|
+
*/
|
|
95
133
|
export type ComplexFilter = Record<typeof COMPLEX_FILTER_KEY, [
|
|
96
134
|
{
|
|
97
135
|
[funcName: string]: any[];
|
|
98
136
|
},
|
|
99
|
-
typeof ComplexFilterComparisonKeys[number]?,
|
|
137
|
+
(typeof ComplexFilterComparisonKeys)[number]?,
|
|
100
138
|
any?
|
|
101
139
|
]>;
|
|
102
140
|
export type KeyofString<T> = keyof T & string;
|
|
141
|
+
/**
|
|
142
|
+
* Shortened filter operands
|
|
143
|
+
*/
|
|
103
144
|
type BasicFilter<Field extends string, DataType extends any> = Partial<{
|
|
104
|
-
[K in Extract<typeof CompareFilterKeys[number], string> as `${Field}.${K}`]: CastFromTSToPG<DataType>;
|
|
145
|
+
[K in Extract<(typeof CompareFilterKeys)[number], string> as `${Field}.${K}`]: CastFromTSToPG<DataType>;
|
|
105
146
|
}> | Partial<{
|
|
106
|
-
[K in Extract<typeof CompareInFilterKeys[number], string> as `${Field}.${K}`]: CastFromTSToPG<DataType>[];
|
|
147
|
+
[K in Extract<(typeof CompareInFilterKeys)[number], string> as `${Field}.${K}`]: CastFromTSToPG<DataType>[];
|
|
107
148
|
}>;
|
|
108
149
|
type StringFilter<Field extends string, DataType extends any> = BasicFilter<Field, DataType> & (Partial<{
|
|
109
|
-
[K in Extract<typeof TextFilterKeys[number], string> as `${Field}.${K}`]: DataType;
|
|
150
|
+
[K in Extract<(typeof TextFilterKeys)[number], string> as `${Field}.${K}`]: DataType;
|
|
110
151
|
}> | Partial<{
|
|
111
|
-
[K in Extract<typeof TextFilterFTSKeys[number], string> as `${Field}.${K}`]: any;
|
|
152
|
+
[K in Extract<(typeof TextFilterFTSKeys)[number], string> as `${Field}.${K}`]: any;
|
|
112
153
|
}>);
|
|
113
154
|
export type ValueOf<T> = T[keyof T];
|
|
155
|
+
/**
|
|
156
|
+
* Equality filter used for sync
|
|
157
|
+
* Multiple columns are combined with AND
|
|
158
|
+
*/
|
|
114
159
|
export type EqualityFilter<T extends AnyObject> = {
|
|
115
160
|
[K in keyof Partial<T>]: CastFromTSToPG<T[K]>;
|
|
116
161
|
};
|
|
117
|
-
|
|
162
|
+
/**
|
|
163
|
+
* Filter operators for each PG data type
|
|
164
|
+
*/
|
|
165
|
+
export type FilterDataType<T extends AllowedTSType> = T extends string ? TextFilter : T extends number ? CompareFilter<CastFromTSToPG<T>> : T extends boolean ? CompareFilter<CastFromTSToPG<T>> : T extends Date ? CompareFilter<CastFromTSToPG<T>> : T extends any[] ? ArrayFilter<T> : CompareFilter<T> | TextFilter | GeomFilter;
|
|
166
|
+
/**
|
|
167
|
+
* Column filter with operators
|
|
168
|
+
* Multiple columns are combined with AND
|
|
169
|
+
* @example: { colName: { $operator: ["value"] } }
|
|
170
|
+
* */
|
|
118
171
|
type NormalFilter<T> = {
|
|
119
172
|
[K in keyof Partial<T>]: FilterDataType<T[K]>;
|
|
120
173
|
} & Partial<ComplexFilter>;
|
|
174
|
+
/**
|
|
175
|
+
* Filters with shorthand notation for autocomplete convenience
|
|
176
|
+
* Operator is inside the key: ` "{columnName}.{operator}": value`
|
|
177
|
+
* @example: { "name.$ilike": 'abc' }
|
|
178
|
+
*/
|
|
121
179
|
type ShorthandFilter<Obj extends Record<string, any>> = ValueOf<{
|
|
122
180
|
[K in KeyofString<Obj>]: Obj[K] extends string ? StringFilter<K, Required<Obj>[K]> : BasicFilter<K, Required<Obj>[K]>;
|
|
123
181
|
}>;
|
|
@@ -130,13 +188,23 @@ export type ExistsFilter<S = void> = Partial<{
|
|
|
130
188
|
};
|
|
131
189
|
}> : any;
|
|
132
190
|
}>;
|
|
191
|
+
/**
|
|
192
|
+
* Filter that relates to a single column
|
|
193
|
+
*/
|
|
133
194
|
export type FilterItem<T extends AnyObject = AnyObject> = FilterForObject<T>;
|
|
134
195
|
export type AnyObjIfVoid<T extends AnyObject | void> = T extends AnyObject ? T : AnyObject;
|
|
196
|
+
/**
|
|
197
|
+
* Group or simple filter
|
|
198
|
+
* @example { $or: [ { id: 1 }, { status: 'live' } ] }
|
|
199
|
+
*/
|
|
135
200
|
export type FullFilter<T extends AnyObject | void, S extends DBSchema | void> = {
|
|
136
201
|
$and: FullFilter<T, S>[];
|
|
137
202
|
} | {
|
|
138
203
|
$or: FullFilter<T, S>[];
|
|
139
204
|
} | FilterItem<AnyObjIfVoid<T>> | ExistsFilter<S> | ComplexFilter;
|
|
205
|
+
/**
|
|
206
|
+
* Simpler FullFilter to reduce load on compilation
|
|
207
|
+
*/
|
|
140
208
|
export type FullFilterBasic<T = {
|
|
141
209
|
[key: string]: any;
|
|
142
210
|
}> = {
|
package/dist/filters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAW,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC;AACnE,MAAM,MAAM,cAAc,GAAG,aAAa,EAAE,CAAC;AAE7C,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
|
@@ -3,81 +3,128 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.COMPLEX_FILTER_KEY = exports.ComplexFilterComparisonKeys = exports.EXISTS_KEYS = exports.GeomFilter_Funcs = exports.GeomFilterKeys = exports.ArrayFilterOperands = exports.TextFilter_FullTextSearchFilterKeys = exports.TextFilterFTSKeys = exports.TextFilterKeys = exports.JsonbFilterKeys = exports.JsonbOperands = exports.BetweenFilterKeys = exports.CompareInFilterKeys = exports.CompareFilterKeys = void 0;
|
|
4
4
|
const util_1 = require("./util");
|
|
5
5
|
exports.CompareFilterKeys = [
|
|
6
|
-
"=",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
6
|
+
"=",
|
|
7
|
+
"$eq",
|
|
8
|
+
"<>",
|
|
9
|
+
">",
|
|
10
|
+
"<",
|
|
11
|
+
">=",
|
|
12
|
+
"<=",
|
|
13
|
+
"$eq",
|
|
14
|
+
"$ne",
|
|
15
|
+
"$gt",
|
|
16
|
+
"$gte",
|
|
17
|
+
"$lt",
|
|
18
|
+
"$lte",
|
|
19
|
+
"$isDistinctFrom",
|
|
20
|
+
"$isNotDistinctFrom",
|
|
10
21
|
];
|
|
11
22
|
exports.CompareInFilterKeys = ["$in", "$nin"];
|
|
12
23
|
exports.BetweenFilterKeys = ["$between", "$notBetween"];
|
|
13
24
|
exports.JsonbOperands = {
|
|
14
25
|
"@>": {
|
|
15
|
-
|
|
26
|
+
Operator: "@>",
|
|
16
27
|
"Right Operand Type": "jsonb",
|
|
17
|
-
|
|
18
|
-
|
|
28
|
+
Description: "Does the left JSON value contain the right JSON path/value entries at the top level?",
|
|
29
|
+
Example: '\'{"a":1, "b":2}\'::jsonb @> \'{"b":2}\'::jsonb',
|
|
19
30
|
},
|
|
20
31
|
"<@": {
|
|
21
|
-
|
|
32
|
+
Operator: "<@",
|
|
22
33
|
"Right Operand Type": "jsonb",
|
|
23
|
-
|
|
24
|
-
|
|
34
|
+
Description: "Are the left JSON path/value entries contained at the top level within the right JSON value?",
|
|
35
|
+
Example: '\'{"b":2}\'::jsonb <@ \'{"a":1, "b":2}\'::jsonb',
|
|
25
36
|
},
|
|
26
37
|
"?": {
|
|
27
|
-
|
|
38
|
+
Operator: "?",
|
|
28
39
|
"Right Operand Type": "text",
|
|
29
|
-
|
|
30
|
-
|
|
40
|
+
Description: "Does the string exist as a top-level key within the JSON value?",
|
|
41
|
+
Example: "'{\"a\":1, \"b\":2}'::jsonb ? 'b'",
|
|
31
42
|
},
|
|
32
43
|
"?|": {
|
|
33
|
-
|
|
44
|
+
Operator: "?|",
|
|
34
45
|
"Right Operand Type": "text[]",
|
|
35
|
-
|
|
36
|
-
|
|
46
|
+
Description: "Do any of these array strings exist as top-level keys?",
|
|
47
|
+
Example: "'{\"a\":1, \"b\":2, \"c\":3}'::jsonb ?| array['b', 'c']",
|
|
37
48
|
},
|
|
38
49
|
"?&": {
|
|
39
|
-
|
|
50
|
+
Operator: "?&",
|
|
40
51
|
"Right Operand Type": "text[]",
|
|
41
|
-
|
|
42
|
-
|
|
52
|
+
Description: "Do all of these array strings exist as top-level keys?",
|
|
53
|
+
Example: "'[\"a\", \"b\"]'::jsonb ?& array['a', 'b']",
|
|
43
54
|
},
|
|
44
55
|
"||": {
|
|
45
|
-
|
|
56
|
+
Operator: "||",
|
|
46
57
|
"Right Operand Type": "jsonb",
|
|
47
|
-
|
|
48
|
-
|
|
58
|
+
Description: "Concatenate two jsonb values into a new jsonb value",
|
|
59
|
+
Example: '\'["a", "b"]\'::jsonb || \'["c", "d"]\'::jsonb',
|
|
49
60
|
},
|
|
50
61
|
"-": {
|
|
51
|
-
|
|
62
|
+
Operator: "-",
|
|
52
63
|
"Right Operand Type": "integer",
|
|
53
|
-
|
|
54
|
-
|
|
64
|
+
Description: "Delete the array element with specified index (Negative integers count from the end). Throws an error if top level container is not an array.",
|
|
65
|
+
Example: '\'["a", "b"]\'::jsonb - 1',
|
|
55
66
|
},
|
|
56
67
|
"#-": {
|
|
57
|
-
|
|
68
|
+
Operator: "#-",
|
|
58
69
|
"Right Operand Type": "text[]",
|
|
59
|
-
|
|
60
|
-
|
|
70
|
+
Description: "Delete the field or element with specified path (for JSON arrays, negative integers count from the end)",
|
|
71
|
+
Example: "'[\"a\", {\"b\":1}]'::jsonb #- '{1,b}'",
|
|
61
72
|
},
|
|
62
73
|
"@?": {
|
|
63
|
-
|
|
74
|
+
Operator: "@?",
|
|
64
75
|
"Right Operand Type": "jsonpath",
|
|
65
|
-
|
|
66
|
-
|
|
76
|
+
Description: "Does JSON path return any item for the specified JSON value?",
|
|
77
|
+
Example: "'{\"a\":[1,2,3,4,5]}'::jsonb @? '$.a[*] ? (@ > 2)'",
|
|
67
78
|
},
|
|
68
79
|
"@@": {
|
|
69
|
-
|
|
80
|
+
Operator: "@@",
|
|
70
81
|
"Right Operand Type": "jsonpath",
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
82
|
+
Description: "Returns the result of JSON path predicate check for the specified JSON value. Only the first item of the result is taken into account. If the result is not Boolean, then null is returned.",
|
|
83
|
+
Example: "'{\"a\":[1,2,3,4,5]}'::jsonb @@ '$.a[*] > 2'",
|
|
84
|
+
},
|
|
74
85
|
};
|
|
75
86
|
exports.JsonbFilterKeys = (0, util_1.getKeys)(exports.JsonbOperands);
|
|
76
87
|
exports.TextFilterKeys = ["$ilike", "$like", "$nilike", "$nlike"];
|
|
77
88
|
exports.TextFilterFTSKeys = ["@@", "@>", "<@", "$contains", "$containedBy"];
|
|
78
|
-
exports.TextFilter_FullTextSearchFilterKeys = [
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
exports.TextFilter_FullTextSearchFilterKeys = [
|
|
90
|
+
"to_tsquery",
|
|
91
|
+
"plainto_tsquery",
|
|
92
|
+
"phraseto_tsquery",
|
|
93
|
+
"websearch_to_tsquery",
|
|
94
|
+
];
|
|
95
|
+
exports.ArrayFilterOperands = [
|
|
96
|
+
"@>",
|
|
97
|
+
"<@",
|
|
98
|
+
"=",
|
|
99
|
+
"$eq",
|
|
100
|
+
"$contains",
|
|
101
|
+
"$containedBy",
|
|
102
|
+
"&&",
|
|
103
|
+
"$overlaps",
|
|
104
|
+
];
|
|
105
|
+
// | { "|&>": GeoBBox }
|
|
106
|
+
// | { "|>>": GeoBBox }
|
|
107
|
+
/**
|
|
108
|
+
* A's bounding box contains B's.
|
|
109
|
+
*/
|
|
110
|
+
// | { "~": GeoBBox }
|
|
111
|
+
// | { "~=": GeoBBox }
|
|
112
|
+
exports.GeomFilterKeys = [
|
|
113
|
+
"~",
|
|
114
|
+
"~=",
|
|
115
|
+
"@",
|
|
116
|
+
"|&>",
|
|
117
|
+
"|>>",
|
|
118
|
+
">>",
|
|
119
|
+
"=",
|
|
120
|
+
"<<|",
|
|
121
|
+
"<<",
|
|
122
|
+
"&>",
|
|
123
|
+
"&<|",
|
|
124
|
+
"&<",
|
|
125
|
+
"&&&",
|
|
126
|
+
"&&",
|
|
127
|
+
];
|
|
81
128
|
exports.GeomFilter_Funcs = [
|
|
82
129
|
"ST_MakeEnvelope",
|
|
83
130
|
"st_makeenvelope",
|
|
@@ -90,20 +137,18 @@ exports.ComplexFilterComparisonKeys = [
|
|
|
90
137
|
...exports.JsonbFilterKeys,
|
|
91
138
|
...exports.CompareFilterKeys,
|
|
92
139
|
...exports.BetweenFilterKeys,
|
|
93
|
-
...exports.CompareInFilterKeys
|
|
140
|
+
...exports.CompareInFilterKeys,
|
|
94
141
|
];
|
|
95
142
|
exports.COMPLEX_FILTER_KEY = "$filter";
|
|
96
143
|
const _f = {
|
|
97
|
-
"h.$eq": ["2"]
|
|
144
|
+
"h.$eq": ["2"],
|
|
98
145
|
};
|
|
99
146
|
const forcedFilter = {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
{ h: { "$containedBy": [] } }
|
|
103
|
-
]
|
|
147
|
+
// "h.$eq": ["2"]
|
|
148
|
+
$and: [{ "h.$eq": [] }, { h: { $containedBy: [] } }],
|
|
104
149
|
};
|
|
105
150
|
const _f2 = {
|
|
106
|
-
$filter: [{ $funcName: ["colname", "opts"] }, ">", 2]
|
|
151
|
+
$filter: [{ $funcName: ["colname", "opts"] }, ">", 2],
|
|
107
152
|
};
|
|
108
153
|
const _d = {
|
|
109
154
|
a: 2,
|
package/dist/filters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":";;;AACA,iCAA6C;AAKhC,QAAA,iBAAiB,GAAG;IAC/B,GAAG,
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../lib/filters.ts"],"names":[],"mappings":"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"}
|