@plumile/filter-query 0.1.206 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/lib/errors.d.ts +0 -39
- package/lib/errors.d.ts.map +0 -1
- package/lib/errors.js +0 -2
- package/lib/index.d.ts +0 -8
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -6
- package/lib/mutate.d.ts +0 -12
- package/lib/mutate.d.ts.map +0 -1
- package/lib/mutate.js +0 -97
- package/lib/parse.d.ts +0 -3
- package/lib/parse.d.ts.map +0 -1
- package/lib/parse.js +0 -184
- package/lib/schema.d.ts +0 -14
- package/lib/schema.d.ts.map +0 -1
- package/lib/schema.js +0 -105
- package/lib/stringify.d.ts +0 -3
- package/lib/stringify.d.ts.map +0 -1
- package/lib/stringify.js +0 -116
- package/lib/types.d.ts +0 -39
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -2
- package/lib/values.d.ts +0 -13
- package/lib/values.d.ts.map +0 -1
- package/lib/values.js +0 -43
package/package.json
CHANGED
package/lib/errors.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export type Diagnostic = UnknownFieldDiagnostic | UnknownOperatorDiagnostic | InvalidValueDiagnostic | InvalidArityDiagnostic | DuplicateBetweenDiagnostic | DecodeErrorDiagnostic;
|
|
2
|
-
export interface BaseDiagnostic {
|
|
3
|
-
readonly kind: string;
|
|
4
|
-
readonly field?: string;
|
|
5
|
-
readonly operator?: string;
|
|
6
|
-
readonly detail?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface UnknownFieldDiagnostic extends BaseDiagnostic {
|
|
9
|
-
kind: 'UnknownField';
|
|
10
|
-
field: string;
|
|
11
|
-
}
|
|
12
|
-
export interface UnknownOperatorDiagnostic extends BaseDiagnostic {
|
|
13
|
-
kind: 'UnknownOperator';
|
|
14
|
-
field: string;
|
|
15
|
-
operator: string;
|
|
16
|
-
}
|
|
17
|
-
export interface InvalidValueDiagnostic extends BaseDiagnostic {
|
|
18
|
-
kind: 'InvalidValue';
|
|
19
|
-
field: string;
|
|
20
|
-
operator: string;
|
|
21
|
-
detail?: string;
|
|
22
|
-
}
|
|
23
|
-
export interface InvalidArityDiagnostic extends BaseDiagnostic {
|
|
24
|
-
kind: 'InvalidArity';
|
|
25
|
-
field: string;
|
|
26
|
-
operator: string;
|
|
27
|
-
detail: string;
|
|
28
|
-
}
|
|
29
|
-
export interface DuplicateBetweenDiagnostic extends BaseDiagnostic {
|
|
30
|
-
kind: 'DuplicateBetween';
|
|
31
|
-
field: string;
|
|
32
|
-
}
|
|
33
|
-
export interface DecodeErrorDiagnostic extends BaseDiagnostic {
|
|
34
|
-
kind: 'DecodeError';
|
|
35
|
-
field: string;
|
|
36
|
-
operator: string;
|
|
37
|
-
detail: string;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=errors.d.ts.map
|
package/lib/errors.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAClB,sBAAsB,GACtB,yBAAyB,GACzB,sBAAsB,GACtB,sBAAsB,GACtB,0BAA0B,GAC1B,qBAAqB,CAAC;AAM1B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAChE,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
package/lib/errors.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlvbiBvZiBhbGwgZGlhZ25vc3RpYyB2YXJpYW50cyB0aGF0IGNhbiBiZSBwcm9kdWNlZCB3aGlsZSBwYXJzaW5nIGEgZmlsdGVyIHF1ZXJ5IHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgRGlhZ25vc3RpYyA9XG4gIHwgVW5rbm93bkZpZWxkRGlhZ25vc3RpY1xuICB8IFVua25vd25PcGVyYXRvckRpYWdub3N0aWNcbiAgfCBJbnZhbGlkVmFsdWVEaWFnbm9zdGljXG4gIHwgSW52YWxpZEFyaXR5RGlhZ25vc3RpY1xuICB8IER1cGxpY2F0ZUJldHdlZW5EaWFnbm9zdGljXG4gIHwgRGVjb2RlRXJyb3JEaWFnbm9zdGljO1xuXG4vKipcbiAqIENvbW1vbiBkaWFnbm9zdGljIHNoYXBlLlxuICogQ29uc3VtZXJzIHNob3VsZCByZWZpbmUgdmlhIHRoZSBga2luZGAgZGlzY3JpbWluYW50IGJlZm9yZSByZWFkaW5nIGFkZGl0aW9uYWwgZmllbGRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEaWFnbm9zdGljIHtcbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuICByZWFkb25seSBmaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgb3BlcmF0b3I/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRldGFpbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSYWlzZWQgd2hlbiB0aGUgcXVlcnkgcmVmZXJlbmNlcyBhIGZpZWxkIHRoYXQgaXMgbm90IHByZXNlbnQgaW4gdGhlIHNjaGVtYSBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVua25vd25GaWVsZERpYWdub3N0aWMgZXh0ZW5kcyBCYXNlRGlhZ25vc3RpYyB7XG4gIGtpbmQ6ICdVbmtub3duRmllbGQnO1xuICBmaWVsZDogc3RyaW5nO1xufVxuLyoqXG4gKiBSYWlzZWQgd2hlbiBhIGZpZWxkIGlzIGtub3duIGJ1dCBhbiBvcGVyYXRvciB0aGF0IGlzIG5vdCB3aGl0ZWxpc3RlZCBvbiB0aGUgc2NoZW1hXG4gKiBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmtub3duT3BlcmF0b3JEaWFnbm9zdGljIGV4dGVuZHMgQmFzZURpYWdub3N0aWMge1xuICBraW5kOiAnVW5rbm93bk9wZXJhdG9yJztcbiAgZmllbGQ6IHN0cmluZztcbiAgb3BlcmF0b3I6IHN0cmluZztcbn1cbi8qKlxuICogU2lnbmFscyB0aGF0IGEgdmFsdWUgY291bGQgbm90IGJlIHBhcnNlZCBhY2NvcmRpbmcgdG8gdGhlIGZpZWxkIGRlc2NyaXB0b3JcbiAqIChlLmcuIG1hbGZvcm1lZCBudW1iZXIpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludmFsaWRWYWx1ZURpYWdub3N0aWMgZXh0ZW5kcyBCYXNlRGlhZ25vc3RpYyB7XG4gIGtpbmQ6ICdJbnZhbGlkVmFsdWUnO1xuICBmaWVsZDogc3RyaW5nO1xuICBvcGVyYXRvcjogc3RyaW5nO1xuICBkZXRhaWw/OiBzdHJpbmc7XG59XG4vKipcbiAqIEVtaXR0ZWQgd2hlbiBhbiBvcGVyYXRvciByZWNlaXZlcyBhbiB1bmV4cGVjdGVkIG51bWJlciBvZiB2YWx1ZXNcbiAqIChlLmcuIGBiZXR3ZWVuYCB3aXRob3V0IGV4YWN0bHkgdHdvIGl0ZW1zKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnZhbGlkQXJpdHlEaWFnbm9zdGljIGV4dGVuZHMgQmFzZURpYWdub3N0aWMge1xuICBraW5kOiAnSW52YWxpZEFyaXR5JztcbiAgZmllbGQ6IHN0cmluZztcbiAgb3BlcmF0b3I6IHN0cmluZztcbiAgZGV0YWlsOiBzdHJpbmc7IC8vIGV4cGVjdGVkIGFyaXR5IGluZm9cbn1cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgbXVsdGlwbGUgYGJldHdlZW5gIGRlY2xhcmF0aW9ucyB3ZXJlIGVuY291bnRlcmVkIGZvciB0aGUgc2FtZSBmaWVsZDtcbiAqIG9ubHkgdGhlIGZpcnN0IGlzIGtlcHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHVwbGljYXRlQmV0d2VlbkRpYWdub3N0aWMgZXh0ZW5kcyBCYXNlRGlhZ25vc3RpYyB7XG4gIGtpbmQ6ICdEdXBsaWNhdGVCZXR3ZWVuJztcbiAgZmllbGQ6IHN0cmluZztcbn1cbi8qKlxuICogUmFpc2VkIHdoZW4gYSB2YWx1ZSBjYW5ub3QgYmUgZGVjb2RlZCBmcm9tIHRoZSBVUkwgcXVlcnkgc3RyaW5nIChpbnZhbGlkIHBlcmNlbnQtZW5jb2RpbmcpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29kZUVycm9yRGlhZ25vc3RpYyBleHRlbmRzIEJhc2VEaWFnbm9zdGljIHtcbiAga2luZDogJ0RlY29kZUVycm9yJztcbiAgZmllbGQ6IHN0cmluZztcbiAgb3BlcmF0b3I6IHN0cmluZztcbiAgZGV0YWlsOiBzdHJpbmc7XG59XG4iXX0=
|
package/lib/index.d.ts
DELETED
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,mBAAmB,aAAa,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/lib/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './schema.js';
|
|
2
|
-
export * from './parse.js';
|
|
3
|
-
export * from './stringify.js';
|
|
4
|
-
export * from './mutate.js';
|
|
5
|
-
export * from './values.js';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlICogZnJvbSAnLi90eXBlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYS5qcyc7XG5leHBvcnQgdHlwZSAqIGZyb20gJy4vZXJyb3JzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGFyc2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpbmdpZnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tdXRhdGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi92YWx1ZXMuanMnO1xuIl19
|
package/lib/mutate.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { InferFilters, Schema } from './types.js';
|
|
2
|
-
export type EqInput<S extends Schema> = Partial<{
|
|
3
|
-
[K in keyof S as 'eq' extends keyof NonNullable<InferFilters<S>[K]> ? K : never]: NonNullable<InferFilters<S>[K]> extends {
|
|
4
|
-
eq?: infer V;
|
|
5
|
-
} ? V : never;
|
|
6
|
-
}>;
|
|
7
|
-
export declare function buildEqFilters<S extends Schema>(input: EqInput<S>): InferFilters<S>;
|
|
8
|
-
export declare function setFilter<S extends Schema, F extends keyof S, O extends keyof NonNullable<InferFilters<S>[F]>>(filters: Readonly<InferFilters<S>>, field: F, operator: O, value: NonNullable<InferFilters<S>[F]>[O] | undefined): InferFilters<S>;
|
|
9
|
-
export declare function removeFilter<S extends Schema, F extends keyof S>(filters: Readonly<InferFilters<S>>, field: F, operator?: keyof NonNullable<InferFilters<S>[F]>): InferFilters<S>;
|
|
10
|
-
export declare function mergeFilters<S extends Schema>(base: Readonly<InferFilters<S>>, patch: Readonly<InferFilters<S>>): InferFilters<S>;
|
|
11
|
-
export declare function isEmpty<S extends Schema>(filters: Readonly<InferFilters<S>>): boolean;
|
|
12
|
-
//# sourceMappingURL=mutate.d.ts.map
|
package/lib/mutate.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../src/mutate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAgCvD,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,CAAC;KAE5C,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9D,CAAC,GACD,KAAK,GACR,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CACxE,CAAC,CAAC;AAOH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAChB,YAAY,CAAC,CAAC,CAAC,CAQjB;AAWD,wBAAgB,SAAS,CACvB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAE/C,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GACpD,YAAY,CAAC,CAAC,CAAC,CAwBjB;AASD,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAC9D,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC/C,YAAY,CAAC,CAAC,CAAC,CAkBjB;AASD,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC/B,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC/B,YAAY,CAAC,CAAC,CAAC,CAoBjB;AAOD,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EACtC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACjC,OAAO,CAET"}
|
package/lib/mutate.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
function shallowEqual(a, b) {
|
|
2
|
-
if (a === b) {
|
|
3
|
-
return true;
|
|
4
|
-
}
|
|
5
|
-
if (typeof a !== 'object' ||
|
|
6
|
-
a === null ||
|
|
7
|
-
typeof b !== 'object' ||
|
|
8
|
-
b === null) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
const aObj = a;
|
|
12
|
-
const bObj = b;
|
|
13
|
-
const aKeys = Object.keys(aObj);
|
|
14
|
-
const bKeys = Object.keys(bObj);
|
|
15
|
-
if (aKeys.length !== bKeys.length) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
for (const k of aKeys) {
|
|
19
|
-
if (aObj[k] !== bObj[k]) {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
export function buildEqFilters(input) {
|
|
26
|
-
const filters = {};
|
|
27
|
-
for (const [key, value] of Object.entries(input)) {
|
|
28
|
-
if (value !== undefined) {
|
|
29
|
-
filters[key] = { eq: value };
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return filters;
|
|
33
|
-
}
|
|
34
|
-
export function setFilter(filters, field, operator, value) {
|
|
35
|
-
const currentField = filters[field];
|
|
36
|
-
if (value === undefined) {
|
|
37
|
-
if (currentField === undefined) {
|
|
38
|
-
return filters;
|
|
39
|
-
}
|
|
40
|
-
const { [operator]: _removed, ...rest } = currentField;
|
|
41
|
-
if (Object.keys(rest).length === 0) {
|
|
42
|
-
const { [field]: _f, ...clone } = filters;
|
|
43
|
-
return clone;
|
|
44
|
-
}
|
|
45
|
-
return { ...filters, [field]: rest };
|
|
46
|
-
}
|
|
47
|
-
const newField = {
|
|
48
|
-
...currentField,
|
|
49
|
-
[operator]: value,
|
|
50
|
-
};
|
|
51
|
-
if (currentField !== undefined && shallowEqual(currentField, newField)) {
|
|
52
|
-
return filters;
|
|
53
|
-
}
|
|
54
|
-
return { ...filters, [field]: newField };
|
|
55
|
-
}
|
|
56
|
-
export function removeFilter(filters, field, operator) {
|
|
57
|
-
const currentField = filters[field];
|
|
58
|
-
if (currentField === undefined) {
|
|
59
|
-
return filters;
|
|
60
|
-
}
|
|
61
|
-
if (operator === undefined) {
|
|
62
|
-
const { [field]: _removed, ...clone } = filters;
|
|
63
|
-
return clone;
|
|
64
|
-
}
|
|
65
|
-
const { [operator]: _opRemoved, ...rest } = currentField;
|
|
66
|
-
if (Object.keys(rest).length === 0) {
|
|
67
|
-
const { [field]: _f, ...clone } = filters;
|
|
68
|
-
return clone;
|
|
69
|
-
}
|
|
70
|
-
return { ...filters, [field]: rest };
|
|
71
|
-
}
|
|
72
|
-
export function mergeFilters(base, patch) {
|
|
73
|
-
let changed = false;
|
|
74
|
-
const result = { ...base };
|
|
75
|
-
for (const key of Object.keys(patch)) {
|
|
76
|
-
const existing = base[key];
|
|
77
|
-
const incoming = patch[key];
|
|
78
|
-
if (incoming === undefined) {
|
|
79
|
-
}
|
|
80
|
-
else if (existing === undefined) {
|
|
81
|
-
result[key] = incoming;
|
|
82
|
-
changed = true;
|
|
83
|
-
}
|
|
84
|
-
else if (!shallowEqual(existing, incoming)) {
|
|
85
|
-
result[key] = incoming;
|
|
86
|
-
changed = true;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (changed) {
|
|
90
|
-
return result;
|
|
91
|
-
}
|
|
92
|
-
return base;
|
|
93
|
-
}
|
|
94
|
-
export function isEmpty(filters) {
|
|
95
|
-
return Object.keys(filters).length === 0;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL211dGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxTQUFTLFlBQVksQ0FBQyxDQUFVLEVBQUUsQ0FBVTtJQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQ0UsT0FBTyxDQUFDLEtBQUssUUFBUTtRQUNyQixDQUFDLEtBQUssSUFBSTtRQUNWLE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDckIsQ0FBQyxLQUFLLElBQUksRUFDVixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsQ0FBNEIsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBRyxDQUE0QixDQUFDO0lBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWVELE1BQU0sVUFBVSxjQUFjLENBQzVCLEtBQWlCO0lBRWpCLE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxP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Z0IsRUFBRSxDQUFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFFN0IsQ0FBQzthQUFNLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7WUFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNqQixDQUFDO2FBQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQU9ELE1BQU0sVUFBVSxPQUFPLENBQ3JCLE9BQWtDO0lBRWxDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEluZmVyRmlsdGVycywgU2NoZW1hIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIHNoYWxsb3cgZXF1YWxpdHkgYmV0d2VlbiB0d28gcGxhaW4gb2JqZWN0cyAob3duIGVudW1lcmFibGUgc3RyaW5nIGtleXMgb25seSkuXG4gKi9cbmZ1bmN0aW9uIHNoYWxsb3dFcXVhbChhOiB1bmtub3duLCBiOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKFxuICAgIHR5cGVvZiBhICE9PSAnb2JqZWN0JyB8fFxuICAgIGEgPT09IG51bGwgfHxcbiAgICB0eXBlb2YgYiAhPT0gJ29iamVjdCcgfHxcbiAgICBiID09PSBudWxsXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBhT2JqID0gYSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY29uc3QgYk9iaiA9IGIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGFLZXlzID0gT2JqZWN0LmtleXMoYU9iaik7XG4gIGNvbnN0IGJLZXlzID0gT2JqZWN0LmtleXMoYk9iaik7XG4gIGlmIChhS2V5cy5sZW5ndGggIT09IGJLZXlzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmb3IgKGNvbnN0IGsgb2YgYUtleXMpIHtcbiAgICBpZiAoYU9ialtrXSAhPT0gYk9ialtrXSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IHR5cGUgRXFJbnB1dDxTIGV4dGVuZHMgU2NoZW1hPiA9IFBhcnRpYWw8e1xuICBbXG4gICAgSyBpbiBrZXlvZiBTIGFzICdlcScgZXh0ZW5kcyBrZXlvZiBOb25OdWxsYWJsZTxJbmZlckZpbHRlcnM8Uz5bS10+XG4gICAgICA/IEtcbiAgICAgIDogbmV2ZXJcbiAgXTogTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJzPFM+W0tdPiBleHRlbmRzIHsgZXE/OiBpbmZlciBWIH0gPyBWIDogbmV2ZXI7XG59PjtcblxuLyoqXG4gKiBCdWlsZHMgYSBmaWx0ZXJzIG9iamVjdCB1c2luZyBpbXBsaWNpdCBlcXVhbGl0eSBmb3IgZWFjaCBwcm92aWRlZCBmaWVsZC5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgLSBSZWNvcmQgb2YgZmllbGQgdmFsdWVzIHRvIGVuY29kZSBhcyBgeyBlcTogdmFsdWUgfWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVxRmlsdGVyczxTIGV4dGVuZHMgU2NoZW1hPihcbiAgaW5wdXQ6IEVxSW5wdXQ8Uz4sXG4pOiBJbmZlckZpbHRlcnM8Uz4ge1xuICBjb25zdCBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhpbnB1dCkpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZmlsdGVyc1trZXldID0geyBlcTogdmFsdWUgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpbHRlcnMgYXMgSW5mZXJGaWx0ZXJzPFM+O1xufVxuXG4vKipcbiAqIFNldHMgb3IgdW5zZXRzIGEgc3BlY2lmaWMgb3BlcmF0b3IgdmFsdWUgb24gYSBmaWVsZCB3aGlsZSBwcmVzZXJ2aW5nIHJlZmVyZW5jZVxuICogZXF1YWxpdHkgd2hlbiBub3RoaW5nIGNoYW5nZXMuXG4gKlxuICogQHBhcmFtIGZpbHRlcnMgLSBDdXJyZW50IGZpbHRlcnMgb2JqZWN0IHRoYXQgd2lsbCBiZSB0cmVhdGVkIGFzIGltbXV0YWJsZSBpbnB1dC5cbiAqIEBwYXJhbSBmaWVsZCAtIEZpZWxkIGtleSB0byB1cGRhdGUuXG4gKiBAcGFyYW0gb3BlcmF0b3IgLSBPcGVyYXRvciBuYW1lIHRvIHNldCBvciByZW1vdmUuXG4gKiBAcGFyYW0gdmFsdWUgLSBOZXcgb3BlcmF0b3IgdmFsdWU7IHBhc3MgYHVuZGVmaW5lZGAgdG8gcmVtb3ZlIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RmlsdGVyPFxuICBTIGV4dGVuZHMgU2NoZW1hLFxuICBGIGV4dGVuZHMga2V5b2YgUyxcbiAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyczxTPltGXT4sXG4+KFxuICBmaWx0ZXJzOiBSZWFkb25seTxJbmZlckZpbHRlcnM8Uz4+LFxuICBmaWVsZDogRixcbiAgb3BlcmF0b3I6IE8sXG4gIHZhbHVlOiBOb25OdWxsYWJsZTxJbmZlckZpbHRlcnM8Uz5bRl0+W09dIHwgdW5kZWZpbmVkLFxuKTogSW5mZXJGaWx0ZXJzPFM+IHtcbiAgY29uc3QgY3VycmVudEZpZWxkID0gZmlsdGVyc1tmaWVsZF07XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGN1cnJlbnRGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmlsdGVycztcbiAgICB9XG4gICAgY29uc3QgeyBbb3BlcmF0b3JdOiBfcmVtb3ZlZCwgLi4ucmVzdCB9ID0gY3VycmVudEZpZWxkIGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHVua25vd25cbiAgICA+O1xuICAgIGlmIChPYmplY3Qua2V5cyhyZXN0KS5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHsgW2ZpZWxkXTogX2YsIC4uLmNsb25lIH0gPSBmaWx0ZXJzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgcmV0dXJuIGNsb25lIGFzIEluZmVyRmlsdGVyczxTPjtcbiAgICB9XG4gICAgcmV0dXJuIHsgLi4uZmlsdGVycywgW2ZpZWxkXTogcmVzdCB9O1xuICB9XG4gIGNvbnN0IG5ld0ZpZWxkID0ge1xuICAgIC4uLmN1cnJlbnRGaWVsZCxcbiAgICBbb3BlcmF0b3JdOiB2YWx1ZSxcbiAgfTtcbiAgaWYgKGN1cnJlbnRGaWVsZCAhPT0gdW5kZWZpbmVkICYmIHNoYWxsb3dFcXVhbChjdXJyZW50RmllbGQsIG5ld0ZpZWxkKSkge1xuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG4gIHJldHVybiB7IC4uLmZpbHRlcnMsIFtmaWVsZF06IG5ld0ZpZWxkIH07XG59XG5cbi8qKlxuICogUmVtb3ZlcyBlaXRoZXIgYW4gZW50aXJlIGZpZWxkIG9yIGEgc3BlY2lmaWMgb3BlcmF0b3IgZnJvbSB0aGUgZmlsdGVycyBvYmplY3QuXG4gKlxuICogQHBhcmFtIGZpbHRlcnMgLSBDdXJyZW50IGZpbHRlcnMgb2JqZWN0ICh0cmVhdGVkIGltbXV0YWJseSkuXG4gKiBAcGFyYW0gZmllbGQgLSBGaWVsZCBuYW1lIHRvIGFsdGVyLlxuICogQHBhcmFtIG9wZXJhdG9yIC0gT3B0aW9uYWwgb3BlcmF0b3IgdG8gcmVtb3ZlOyBvbWl0IHRvIGRyb3AgdGhlIHdob2xlIGZpZWxkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRmlsdGVyPFMgZXh0ZW5kcyBTY2hlbWEsIEYgZXh0ZW5kcyBrZXlvZiBTPihcbiAgZmlsdGVyczogUmVhZG9ubHk8SW5mZXJGaWx0ZXJzPFM+PixcbiAgZmllbGQ6IEYsXG4gIG9wZXJhdG9yPzoga2V5b2YgTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJzPFM+W0ZdPixcbik6IEluZmVyRmlsdGVyczxTPiB7XG4gIGNvbnN0IGN1cnJlbnRGaWVsZCA9IGZpbHRlcnNbZmllbGRdO1xuICBpZiAoY3VycmVudEZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmlsdGVycztcbiAgfVxuICBpZiAob3BlcmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHsgW2ZpZWxkXTogX3JlbW92ZWQsIC4uLmNsb25lIH0gPSBmaWx0ZXJzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIHJldHVybiBjbG9uZSBhcyBJbmZlckZpbHRlcnM8Uz47XG4gIH1cbiAgY29uc3QgeyBbb3BlcmF0b3JdOiBfb3BSZW1vdmVkLCAuLi5yZXN0IH0gPSBjdXJyZW50RmllbGQgYXMgUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB1bmtub3duXG4gID47XG4gIGlmIChPYmplY3Qua2V5cyhyZXN0KS5sZW5ndGggPT09IDApIHtcbiAgICBjb25zdCB7IFtmaWVsZF06IF9mLCAuLi5jbG9uZSB9ID0gZmlsdGVycyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICByZXR1cm4gY2xvbmUgYXMgSW5mZXJGaWx0ZXJzPFM+O1xuICB9XG4gIHJldHVybiB7IC4uLmZpbHRlcnMsIFtmaWVsZF06IHJlc3QgfTtcbn1cblxuLyoqXG4gKiBNZXJnZXMgYSBwYXRjaCBvZiBmaWx0ZXJzIGludG8gYW4gZXhpc3RpbmcgZmlsdGVycyBvYmplY3Qgd2hpbGUgcHJlc2VydmluZyByZWZlcmVuY2VcbiAqIGlkZW50aXR5IGZvciB1bmNoYW5nZWQgZmllbGRzLlxuICpcbiAqIEBwYXJhbSBiYXNlIC0gT3JpZ2luYWwgZmlsdGVycy5cbiAqIEBwYXJhbSBwYXRjaCAtIEZpbHRlcnMgdG8gb3ZlcmxheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRmlsdGVyczxTIGV4dGVuZHMgU2NoZW1hPihcbiAgYmFzZTogUmVhZG9ubHk8SW5mZXJGaWx0ZXJzPFM+PixcbiAgcGF0Y2g6IFJlYWRvbmx5PEluZmVyRmlsdGVyczxTPj4sXG4pOiBJbmZlckZpbHRlcnM8Uz4ge1xuICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICBjb25zdCByZXN1bHQ6IFBhcnRpYWw8SW5mZXJGaWx0ZXJzPFM+PiA9IHsgLi4uYmFzZSB9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXRjaCkgYXMgKGtleW9mIFMpW10pIHtcbiAgICBjb25zdCBleGlzdGluZyA9IGJhc2Vba2V5XTtcbiAgICBjb25zdCBpbmNvbWluZyA9IHBhdGNoW2tleV07XG4gICAgaWYgKGluY29taW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHNraXAgdW5kZWZpbmVkIGluY29taW5nXG4gICAgfSBlbHNlIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHRba2V5XSA9IGluY29taW5nO1xuICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmICghc2hhbGxvd0VxdWFsKGV4aXN0aW5nLCBpbmNvbWluZykpIHtcbiAgICAgIHJlc3VsdFtrZXldID0gaW5jb21pbmc7XG4gICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgaWYgKGNoYW5nZWQpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHJldHVybiBiYXNlO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIGZpbHRlcnMgb2JqZWN0IGlzIGVtcHR5IChubyBmaWVsZHMgcHJlc2VudCkuXG4gKlxuICogQHBhcmFtIGZpbHRlcnMgLSBGaWx0ZXJzIHRvIGluc3BlY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5PFMgZXh0ZW5kcyBTY2hlbWE+KFxuICBmaWx0ZXJzOiBSZWFkb25seTxJbmZlckZpbHRlcnM8Uz4+LFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhmaWx0ZXJzKS5sZW5ndGggPT09IDA7XG59XG4iXX0=
|
package/lib/parse.d.ts
DELETED
package/lib/parse.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAMN,WAAW,EACZ,MAAM,YAAY,CAAC;AAwKpB,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,CAAC,GACR,WAAW,CAAC,CAAC,CAAC,CA8DhB"}
|
package/lib/parse.js
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
const BETWEEN = 'between';
|
|
2
|
-
const LIST_OPS = ['in', 'nin'];
|
|
3
|
-
function ensureFieldObject(filters, field) {
|
|
4
|
-
const existing = filters[field];
|
|
5
|
-
if (existing !== undefined) {
|
|
6
|
-
return { container: filters, target: existing };
|
|
7
|
-
}
|
|
8
|
-
const clone = { ...filters };
|
|
9
|
-
const created = {};
|
|
10
|
-
clone[field] = created;
|
|
11
|
-
return { container: clone, target: created };
|
|
12
|
-
}
|
|
13
|
-
function decodeValue(value, field, operator, diagnostics) {
|
|
14
|
-
try {
|
|
15
|
-
return decodeURIComponent(value);
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
diagnostics.push({
|
|
19
|
-
kind: 'DecodeError',
|
|
20
|
-
field,
|
|
21
|
-
operator,
|
|
22
|
-
detail: 'Failed to decode',
|
|
23
|
-
});
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function parseSingleValue(descriptor, raw) {
|
|
28
|
-
if (descriptor.parse != null) {
|
|
29
|
-
return descriptor.parse(raw);
|
|
30
|
-
}
|
|
31
|
-
if (descriptor.kind === 'number') {
|
|
32
|
-
if (raw === '') {
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
const n = Number(raw);
|
|
36
|
-
if (!Number.isFinite(n)) {
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
return n;
|
|
40
|
-
}
|
|
41
|
-
return raw;
|
|
42
|
-
}
|
|
43
|
-
function handleBetween(descriptor, decoded, field, operator, acc) {
|
|
44
|
-
const parts = decoded.split(',');
|
|
45
|
-
if (parts.length !== 2) {
|
|
46
|
-
acc.diagnostics.push({
|
|
47
|
-
kind: 'InvalidArity',
|
|
48
|
-
field,
|
|
49
|
-
operator,
|
|
50
|
-
detail: 'Expected exactly 2 values',
|
|
51
|
-
});
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const [aRaw, bRaw] = parts;
|
|
55
|
-
const a = parseSingleValue(descriptor, aRaw);
|
|
56
|
-
const b = parseSingleValue(descriptor, bRaw);
|
|
57
|
-
if (a === undefined || b === undefined) {
|
|
58
|
-
acc.diagnostics.push({
|
|
59
|
-
kind: 'InvalidValue',
|
|
60
|
-
field,
|
|
61
|
-
operator,
|
|
62
|
-
detail: 'One of the between values invalid',
|
|
63
|
-
});
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const ensured = ensureFieldObject(acc.filters, field);
|
|
67
|
-
acc.filters = ensured.container;
|
|
68
|
-
if (Object.prototype.hasOwnProperty.call(ensured.target, 'between')) {
|
|
69
|
-
acc.diagnostics.push({ kind: 'DuplicateBetween', field });
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
ensured.target.between = [a, b];
|
|
73
|
-
}
|
|
74
|
-
function handleList(descriptor, decoded, field, operator, acc) {
|
|
75
|
-
const listRaw = decoded.split(',');
|
|
76
|
-
const parsedList = [];
|
|
77
|
-
for (const item of listRaw) {
|
|
78
|
-
const parsed = parseSingleValue(descriptor, item);
|
|
79
|
-
if (parsed === undefined) {
|
|
80
|
-
acc.diagnostics.push({
|
|
81
|
-
kind: 'InvalidValue',
|
|
82
|
-
field,
|
|
83
|
-
operator,
|
|
84
|
-
detail: 'List item invalid',
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
parsedList.push(parsed);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
if (parsedList.length === 0) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const ensured = ensureFieldObject(acc.filters, field);
|
|
95
|
-
acc.filters = ensured.container;
|
|
96
|
-
const targetObj = ensured.target;
|
|
97
|
-
const existing = targetObj[operator];
|
|
98
|
-
if (Array.isArray(existing)) {
|
|
99
|
-
targetObj[operator] = [...existing, ...parsedList];
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
targetObj[operator] = parsedList;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
function handleScalar(descriptor, decoded, field, operator, acc) {
|
|
106
|
-
const scalar = parseSingleValue(descriptor, decoded);
|
|
107
|
-
if (scalar === undefined) {
|
|
108
|
-
acc.diagnostics.push({ kind: 'InvalidValue', field, operator });
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
const ensured = ensureFieldObject(acc.filters, field);
|
|
112
|
-
acc.filters = ensured.container;
|
|
113
|
-
const scalarTarget = ensured.target;
|
|
114
|
-
scalarTarget[operator] = scalar;
|
|
115
|
-
}
|
|
116
|
-
export function parse(rawSearch, schema) {
|
|
117
|
-
const acc = { filters: {}, diagnostics: [] };
|
|
118
|
-
let search = rawSearch;
|
|
119
|
-
if (search.startsWith('?')) {
|
|
120
|
-
search = search.slice(1);
|
|
121
|
-
}
|
|
122
|
-
if (search.trim() === '') {
|
|
123
|
-
return acc;
|
|
124
|
-
}
|
|
125
|
-
const segments = search.split('&');
|
|
126
|
-
for (const seg of segments) {
|
|
127
|
-
const eqIdx = seg.indexOf('=');
|
|
128
|
-
const validBasic = seg !== '' && eqIdx !== -1;
|
|
129
|
-
if (validBasic) {
|
|
130
|
-
const rawKey = seg.slice(0, eqIdx);
|
|
131
|
-
const rawVal = seg.slice(eqIdx + 1);
|
|
132
|
-
const lastDot = rawKey.lastIndexOf('.');
|
|
133
|
-
const explicitShape = !(lastDot <= 0 || lastDot === rawKey.length - 1);
|
|
134
|
-
if (explicitShape) {
|
|
135
|
-
const field = rawKey.slice(0, lastDot);
|
|
136
|
-
const operator = rawKey.slice(lastDot + 1);
|
|
137
|
-
const descriptor = schema[field];
|
|
138
|
-
const descOk = descriptor?.operators.includes(operator) === true;
|
|
139
|
-
if (!descOk) {
|
|
140
|
-
if (descriptor == null) {
|
|
141
|
-
acc.diagnostics.push({ kind: 'UnknownField', field });
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
acc.diagnostics.push({ kind: 'UnknownOperator', field, operator });
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
const decoded = decodeValue(rawVal, field, operator, acc.diagnostics);
|
|
149
|
-
if (decoded !== undefined) {
|
|
150
|
-
const isList = LIST_OPS.includes(operator);
|
|
151
|
-
if (operator === BETWEEN) {
|
|
152
|
-
handleBetween(descriptor, decoded, field, operator, acc);
|
|
153
|
-
}
|
|
154
|
-
else if (isList) {
|
|
155
|
-
handleList(descriptor, decoded, field, operator, acc);
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
handleScalar(descriptor, decoded, field, operator, acc);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else if (lastDot === -1) {
|
|
164
|
-
const field = rawKey;
|
|
165
|
-
const operator = 'eq';
|
|
166
|
-
const descriptor = schema[field];
|
|
167
|
-
if (descriptor == null) {
|
|
168
|
-
acc.diagnostics.push({ kind: 'UnknownField', field });
|
|
169
|
-
}
|
|
170
|
-
else if (!descriptor.operators.includes(operator)) {
|
|
171
|
-
acc.diagnostics.push({ kind: 'UnknownOperator', field, operator });
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
const decoded = decodeValue(rawVal, field, operator, acc.diagnostics);
|
|
175
|
-
if (decoded !== undefined) {
|
|
176
|
-
handleScalar(descriptor, decoded, field, operator, acc);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return acc;
|
|
183
|
-
}
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxPQUFPLEdBQW9CLFNBQVMsQ0FBQztBQUMzQyxNQUFNLFFBQVEsR0FBNEIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFReEQsU0FBUyxpQkFBaUIsQ0FDeEIsT0FBd0IsRUFDeEIsS0FBYTtJQUViLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFnQixDQUFDLENBQUM7SUFDM0MsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFDRCxNQUFNLEtBQUssR0FBb0IsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQzlDLE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7SUFDM0MsS0FBaUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFHRCxTQUFTLFdBQVcsQ0FDbEIsS0FBYSxFQUNiLEtBQWEsRUFDYixRQUFnQixFQUNoQixXQUF5QjtJQUV6QixJQUFJLENBQUM7UUFDSCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSztZQUNMLFFBQVE7WUFDUixNQUFNLEVBQUUsa0JBQWtCO1NBQzNCLENBQUMsQ0FBQztRQUNILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBR0QsU0FBUyxnQkFBZ0IsQ0FBQyxVQUEyQixFQUFFLEdBQVc7SUFDaEUsSUFB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RUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0RSxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDMUIsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDMUQsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBTY2hlbWEsXG4gIE9wZXJhdG9yLFxuICBMaXN0T3BlcmF0b3IsXG4gIEJldHdlZW5PcGVyYXRvcixcbiAgSW5mZXJGaWx0ZXJzLFxuICBGaWVsZERlc2NyaXB0b3IsXG4gIFBhcnNlUmVzdWx0LFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyB9IGZyb20gJy4vZXJyb3JzLmpzJztcblxuY29uc3QgQkVUV0VFTjogQmV0d2Vlbk9wZXJhdG9yID0gJ2JldHdlZW4nO1xuY29uc3QgTElTVF9PUFM6IHJlYWRvbmx5IExpc3RPcGVyYXRvcltdID0gWydpbicsICduaW4nXTtcblxuaW50ZXJmYWNlIEludGVybmFsQWNjdW11bGF0b3I8UyBleHRlbmRzIFNjaGVtYT4ge1xuICBmaWx0ZXJzOiBJbmZlckZpbHRlcnM8Uz47XG4gIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107XG59XG5cbi8qKiBTaGFsbG93IGNsb25lIHBsdXMgZW5zdXJlIGZpZWxkIG9iamVjdCBoZWxwZXIgKGltbXV0YWJsZSB1cGRhdGUpLiAqL1xuZnVuY3Rpb24gZW5zdXJlRmllbGRPYmplY3Q8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPixcbiAgZmllbGQ6IHN0cmluZyxcbik6IHsgY29udGFpbmVyOiBJbmZlckZpbHRlcnM8Uz47IHRhcmdldDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfSB7XG4gIGNvbnN0IGV4aXN0aW5nID0gZmlsdGVyc1tmaWVsZCBhcyBrZXlvZiBTXTtcbiAgaWYgKGV4aXN0aW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBjb250YWluZXI6IGZpbHRlcnMsIHRhcmdldDogZXhpc3RpbmcgfTtcbiAgfVxuICBjb25zdCBjbG9uZTogSW5mZXJGaWx0ZXJzPFM+ID0geyAuLi5maWx0ZXJzIH07XG4gIGNvbnN0IGNyZWF0ZWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIChjbG9uZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbZmllbGRdID0gY3JlYXRlZDtcbiAgcmV0dXJuIHsgY29udGFpbmVyOiBjbG9uZSwgdGFyZ2V0OiBjcmVhdGVkIH07XG59XG5cbi8qKiBEZWNvZGUgY29tcG9uZW50LCByZWNvcmRpbmcgYSBkaWFnbm9zdGljIG9uIGZhaWx1cmUuICovXG5mdW5jdGlvbiBkZWNvZGVWYWx1ZShcbiAgdmFsdWU6IHN0cmluZyxcbiAgZmllbGQ6IHN0cmluZyxcbiAgb3BlcmF0b3I6IHN0cmluZyxcbiAgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNbXSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIH0gY2F0Y2gge1xuICAgIGRpYWdub3N0aWNzLnB1c2goe1xuICAgICAga2luZDogJ0RlY29kZUVycm9yJyxcbiAgICAgIGZpZWxkLFxuICAgICAgb3BlcmF0b3IsXG4gICAgICBkZXRhaWw6ICdGYWlsZWQgdG8gZGVjb2RlJyxcbiAgICB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKiBQYXJzZSBhIHNpbmdsZSByYXcgdmFsdWUgYWNjb3JkaW5nIHRvIGZpZWxkIGtpbmQuICovXG5mdW5jdGlvbiBwYXJzZVNpbmdsZVZhbHVlKGRlc2NyaXB0b3I6IEZpZWxkRGVzY3JpcHRvciwgcmF3OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgaWYgKGRlc2NyaXB0b3IucGFyc2UgIT0gbnVsbCkge1xuICAgIHJldHVybiBkZXNjcmlwdG9yLnBhcnNlKHJhdyk7XG4gIH1cbiAgaWYgKGRlc2NyaXB0b3Iua2luZCA9PT0gJ251bWJlcicpIHtcbiAgICBpZiAocmF3ID09PSAnJykge1xuICAgICAgLy8gVHJlYXQgZW1wdHkgc3RyaW5nIGFzIGludmFsaWQgZm9yIG51bWVyaWMgZmllbGRzIChyZWplY3QgaW5zdGVhZCBvZiBjb2VyY2luZyB0byAwKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgbiA9IE51bWJlcihyYXcpO1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG4pKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gbjtcbiAgfVxuICByZXR1cm4gcmF3O1xufVxuXG4vKiogSGFuZGxlIGEgYmV0d2VlbiBvcGVyYXRvciB2YWx1ZS4gKi9cbmZ1bmN0aW9uIGhhbmRsZUJldHdlZW48UyBleHRlbmRzIFNjaGVtYT4oXG4gIGRlc2NyaXB0b3I6IEZpZWxkRGVzY3JpcHRvcixcbiAgZGVjb2RlZDogc3RyaW5nLFxuICBmaWVsZDogc3RyaW5nLFxuICBvcGVyYXRvcjogc3RyaW5nLFxuICBhY2M6IEludGVybmFsQWNjdW11bGF0b3I8Uz4sXG4pOiB2b2lkIHtcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gZGVjb2RlZC5zcGxpdCgnLCcpO1xuICBpZiAocGFydHMubGVuZ3RoICE9PSAyKSB7XG4gICAgYWNjLmRpYWdub3N0aWNzLnB1c2goe1xuICAgICAga2luZDogJ0ludmFsaWRBcml0eScsXG4gICAgICBmaWVsZCxcbiAgICAgIG9wZXJhdG9yLFxuICAgICAgZGV0YWlsOiAnRXhwZWN0ZWQgZXhhY3RseSAyIHZhbHVlcycsXG4gICAgfSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IFthUmF3LCBiUmF3XSA9IHBhcnRzIGFzIFtzdHJpbmcsIHN0cmluZ107XG4gIGNvbnN0IGEgPSBwYXJzZVNpbmdsZVZhbHVlKGRlc2NyaXB0b3IsIGFSYXcpO1xuICBjb25zdCBiID0gcGFyc2VTaW5nbGVWYWx1ZShkZXNjcmlwdG9yLCBiUmF3KTtcbiAgaWYgKGEgPT09IHVuZGVmaW5lZCB8fCBiID09PSB1bmRlZmluZWQpIHtcbiAgICBhY2MuZGlhZ25vc3RpY3MucHVzaCh7XG4gICAgICBraW5kOiAnSW52YWxpZFZhbHVlJyxcbiAgICAgIGZpZWxkLFxuICAgICAgb3BlcmF0b3IsXG4gICAgICBkZXRhaWw6ICdPbmUgb2YgdGhlIGJldHdlZW4gdmFsdWVzIGludmFsaWQnLFxuICAgIH0pO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBlbnN1cmVkID0gZW5zdXJlRmllbGRPYmplY3QoYWNjLmZpbHRlcnMsIGZpZWxkKTtcbiAgYWNjLmZpbHRlcnMgPSBlbnN1cmVkLmNvbnRhaW5lcjtcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnN1cmVkLnRhcmdldCwgJ2JldHdlZW4nKSkge1xuICAgIGFjYy5kaWFnbm9zdGljcy5wdXNoKHsga2luZDogJ0R1cGxpY2F0ZUJldHdlZW4nLCBmaWVsZCB9KTtcbiAgICByZXR1cm47XG4gIH1cbiAgZW5zdXJlZC50YXJnZXQuYmV0d2VlbiA9IFthLCBiXSBhcyB1bmtub3duO1xufVxuXG4vKiogSGFuZGxlIGxpc3Qgb3BlcmF0b3JzIChpbiwgbmluKS4gKi9cbmZ1bmN0aW9uIGhhbmRsZUxpc3Q8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGRlc2NyaXB0b3I6IEZpZWxkRGVzY3JpcHRvcixcbiAgZGVjb2RlZDogc3RyaW5nLFxuICBmaWVsZDogc3RyaW5nLFxuICBvcGVyYXRvcjogc3RyaW5nLFxuICBhY2M6IEludGVybmFsQWNjdW11bGF0b3I8Uz4sXG4pOiB2b2lkIHtcbiAgY29uc3QgbGlzdFJhdyA9IGRlY29kZWQuc3BsaXQoJywnKTtcbiAgY29uc3QgcGFyc2VkTGlzdDogdW5rbm93bltdID0gW107XG4gIGZvciAoY29uc3QgaXRlbSBvZiBsaXN0UmF3KSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VTaW5nbGVWYWx1ZShkZXNjcmlwdG9yLCBpdGVtKTtcbiAgICBpZiAocGFyc2VkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGFjYy5kaWFnbm9zdGljcy5wdXNoKHtcbiAgICAgICAga2luZDogJ0ludmFsaWRWYWx1ZScsXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBvcGVyYXRvcixcbiAgICAgICAgZGV0YWlsOiAnTGlzdCBpdGVtIGludmFsaWQnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlZExpc3QucHVzaChwYXJzZWQpO1xuICAgIH1cbiAgfVxuICBpZiAocGFyc2VkTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgZW5zdXJlZCA9IGVuc3VyZUZpZWxkT2JqZWN0KGFjYy5maWx0ZXJzLCBmaWVsZCk7XG4gIGFjYy5maWx0ZXJzID0gZW5zdXJlZC5jb250YWluZXI7XG4gIGNvbnN0IHRhcmdldE9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBlbnN1cmVkLnRhcmdldDtcbiAgY29uc3QgZXhpc3RpbmcgPSB0YXJnZXRPYmpbb3BlcmF0b3JdO1xuICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICB0YXJnZXRPYmpbb3BlcmF0b3JdID0gWy4uLmV4aXN0aW5nLCAuLi5wYXJzZWRMaXN0XTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXRPYmpbb3BlcmF0b3JdID0gcGFyc2VkTGlzdDtcbiAgfVxufVxuXG4vKiogSGFuZGxlIHNjYWxhciBvcGVyYXRvciB2YWx1ZXMuICovXG5mdW5jdGlvbiBoYW5kbGVTY2FsYXI8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGRlc2NyaXB0b3I6IEZpZWxkRGVzY3JpcHRvcixcbiAgZGVjb2RlZDogc3RyaW5nLFxuICBmaWVsZDogc3RyaW5nLFxuICBvcGVyYXRvcjogc3RyaW5nLFxuICBhY2M6IEludGVybmFsQWNjdW11bGF0b3I8Uz4sXG4pOiB2b2lkIHtcbiAgY29uc3Qgc2NhbGFyID0gcGFyc2VTaW5nbGVWYWx1ZShkZXNjcmlwdG9yLCBkZWNvZGVkKTtcbiAgaWYgKHNjYWxhciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYWNjLmRpYWdub3N0aWNzLnB1c2goeyBraW5kOiAnSW52YWxpZFZhbHVlJywgZmllbGQsIG9wZXJhdG9yIH0pO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBlbnN1cmVkID0gZW5zdXJlRmllbGRPYmplY3QoYWNjLmZpbHRlcnMsIGZpZWxkKTtcbiAgYWNjLmZpbHRlcnMgPSBlbnN1cmVkLmNvbnRhaW5lcjtcbiAgY29uc3Qgc2NhbGFyVGFyZ2V0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IGVuc3VyZWQudGFyZ2V0O1xuICBzY2FsYXJUYXJnZXRbb3BlcmF0b3JdID0gc2NhbGFyO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIHJhdyBzZWFyY2ggc3RyaW5nIChsZWFkaW5nIGA/YCBvcHRpb25hbCkgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZCBzY2hlbWFcbiAqIGFuZCByZXR1cm5zIHRoZSBmaWx0ZXJzIHBsdXMgZGlhZ25vc3RpY3MuXG4gKlxuICogQHBhcmFtIHJhd1NlYXJjaCAtIFF1ZXJ5IHN0cmluZyB0byBwYXJzZSAod2l0aCBvciB3aXRob3V0IHRoZSBsZWFkaW5nIHF1ZXN0aW9uIG1hcmspLlxuICogQHBhcmFtIHNjaGVtYSAtIFNjaGVtYSBkZXNjcmliaW5nIGFsbG93ZWQgZmllbGRzIGFuZCBvcGVyYXRvcnMuXG4gKiBAcmV0dXJucyBQYXJzZWQgZmlsdGVycyBhbG9uZ3NpZGUgbm9uLWJsb2NraW5nIGRpYWdub3N0aWNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2U8UyBleHRlbmRzIFNjaGVtYT4oXG4gIHJhd1NlYXJjaDogc3RyaW5nLFxuICBzY2hlbWE6IFMsXG4pOiBQYXJzZVJlc3VsdDxTPiB7XG4gIGNvbnN0IGFjYzogSW50ZXJuYWxBY2N1bXVsYXRvcjxTPiA9IHsgZmlsdGVyczoge30sIGRpYWdub3N0aWNzOiBbXSB9O1xuICBsZXQgc2VhcmNoID0gcmF3U2VhcmNoO1xuICBpZiAoc2VhcmNoLnN0YXJ0c1dpdGgoJz8nKSkge1xuICAgIHNlYXJjaCA9IHNlYXJjaC5zbGljZSgxKTtcbiAgfVxuICBpZiAoc2VhcmNoLnRyaW0oKSA9PT0gJycpIHtcbiAgICByZXR1cm4gYWNjO1xuICB9XG4gIGNvbnN0IHNlZ21lbnRzID0gc2VhcmNoLnNwbGl0KCcmJyk7XG4gIGZvciAoY29uc3Qgc2VnIG9mIHNlZ21lbnRzKSB7XG4gICAgY29uc3QgZXFJZHggPSBzZWcuaW5kZXhPZignPScpO1xuICAgIGNvbnN0IHZhbGlkQmFzaWMgPSBzZWcgIT09ICcnICYmIGVxSWR4ICE9PSAtMTtcbiAgICBpZiAodmFsaWRCYXNpYykge1xuICAgICAgY29uc3QgcmF3S2V5ID0gc2VnLnNsaWNlKDAsIGVxSWR4KTtcbiAgICAgIGNvbnN0IHJhd1ZhbCA9IHNlZy5zbGljZShlcUlkeCArIDEpO1xuICAgICAgY29uc3QgbGFzdERvdCA9IHJhd0tleS5sYXN0SW5kZXhPZignLicpO1xuICAgICAgLy8gQ2FzZSAxOiBrZXkgd2l0aCBleHBsaWNpdCBvcGVyYXRvciAoZmllbGQub3ApXG4gICAgICBjb25zdCBleHBsaWNpdFNoYXBlID0gIShsYXN0RG90IDw9IDAgfHwgbGFzdERvdCA9PT0gcmF3S2V5Lmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGV4cGxpY2l0U2hhcGUpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSByYXdLZXkuc2xpY2UoMCwgbGFzdERvdCk7XG4gICAgICAgIGNvbnN0IG9wZXJhdG9yID0gcmF3S2V5LnNsaWNlKGxhc3REb3QgKyAxKSBhcyBPcGVyYXRvcjtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IHNjaGVtYVtmaWVsZF07XG4gICAgICAgIGNvbnN0IGRlc2NPayA9IGRlc2NyaXB0b3I/Lm9wZXJhdG9ycy5pbmNsdWRlcyhvcGVyYXRvcikgPT09IHRydWU7XG4gICAgICAgIGlmICghZGVzY09rKSB7XG4gICAgICAgICAgaWYgKGRlc2NyaXB0b3IgPT0gbnVsbCkge1xuICAgICAgICAgICAgYWNjLmRpYWdub3N0aWNzLnB1c2goeyBraW5kOiAnVW5rbm93bkZpZWxkJywgZmllbGQgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjYy5kaWFnbm9zdGljcy5wdXNoKHsga2luZDogJ1Vua25vd25PcGVyYXRvcicsIGZpZWxkLCBvcGVyYXRvciB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVZhbHVlKHJhd1ZhbCwgZmllbGQsIG9wZXJhdG9yLCBhY2MuZGlhZ25vc3RpY3MpO1xuICAgICAgICAgIGlmIChkZWNvZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdCA9IChMSVNUX09QUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMob3BlcmF0b3IpO1xuICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSBCRVRXRUVOKSB7XG4gICAgICAgICAgICAgIGhhbmRsZUJldHdlZW4oZGVzY3JpcHRvciwgZGVjb2RlZCwgZmllbGQsIG9wZXJhdG9yLCBhY2MpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpc3QpIHtcbiAgICAgICAgICAgICAgaGFuZGxlTGlzdChkZXNjcmlwdG9yLCBkZWNvZGVkLCBmaWVsZCwgb3BlcmF0b3IsIGFjYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBoYW5kbGVTY2FsYXIoZGVzY3JpcHRvciwgZGVjb2RlZCwgZmllbGQsIG9wZXJhdG9yLCBhY2MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChsYXN0RG90ID09PSAtMSkge1xuICAgICAgICAvLyBpbXBsaWNpdCBlcXVhbGl0eSAobm8gZG90KSA9PiBvcGVyYXRvciAnZXEnXG4gICAgICAgIGNvbnN0IGZpZWxkID0gcmF3S2V5O1xuICAgICAgICBjb25zdCBvcGVyYXRvcjogT3BlcmF0b3IgPSAnZXEnO1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gc2NoZW1hW2ZpZWxkXTtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IgPT0gbnVsbCkge1xuICAgICAgICAgIGFjYy5kaWFnbm9zdGljcy5wdXNoKHsga2luZDogJ1Vua25vd25GaWVsZCcsIGZpZWxkIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKCFkZXNjcmlwdG9yLm9wZXJhdG9ycy5pbmNsdWRlcyhvcGVyYXRvcikpIHtcbiAgICAgICAgICBhY2MuZGlhZ25vc3RpY3MucHVzaCh7IGtpbmQ6ICdVbmtub3duT3BlcmF0b3InLCBmaWVsZCwgb3BlcmF0b3IgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVZhbHVlKHJhd1ZhbCwgZmllbGQsIG9wZXJhdG9yLCBhY2MuZGlhZ25vc3RpY3MpO1xuICAgICAgICAgIGlmIChkZWNvZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhhbmRsZVNjYWxhcihkZXNjcmlwdG9yLCBkZWNvZGVkLCBmaWVsZCwgb3BlcmF0b3IsIGFjYyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBhY2M7XG59XG4iXX0=
|
package/lib/schema.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { FieldDescriptor, NumberFieldDescriptor, StringFieldDescriptor, BooleanFieldDescriptor, EnumFieldDescriptor, CustomFieldDescriptor, Operator } from './types.js';
|
|
2
|
-
export declare function numberField(ops?: readonly Operator[]): NumberFieldDescriptor;
|
|
3
|
-
export declare function stringField(ops?: readonly Operator[]): StringFieldDescriptor;
|
|
4
|
-
export declare function booleanField(ops?: readonly Operator[]): BooleanFieldDescriptor;
|
|
5
|
-
export declare function enumField<const T extends string>(values: readonly T[], ops?: readonly Operator[]): EnumFieldDescriptor<T>;
|
|
6
|
-
type CustomFieldOptions<T> = {
|
|
7
|
-
operators: readonly Operator[];
|
|
8
|
-
parse: (raw: string) => T | undefined;
|
|
9
|
-
serialize?: (value: T) => string;
|
|
10
|
-
};
|
|
11
|
-
export declare function customField<T>(options: CustomFieldOptions<T>): CustomFieldDescriptor<T>;
|
|
12
|
-
export declare function defineSchema<S extends Record<string, FieldDescriptor>>(schema: S): S;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=schema.d.ts.map
|
package/lib/schema.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACT,MAAM,YAAY,CAAC;AA8BpB,wBAAgB,WAAW,CACzB,GAAG,GAAE,SAAS,QAAQ,EAA6B,GAClD,qBAAqB,CAmBvB;AAKD,wBAAgB,WAAW,CACzB,GAAG,GAAE,SAAS,QAAQ,EAA6B,GAClD,qBAAqB,CAWvB;AAKD,wBAAgB,YAAY,CAC1B,GAAG,GAAE,SAAS,QAAQ,EAA8B,GACnD,sBAAsB,CAqBxB;AAKD,wBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAC9C,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,GAAG,GAAE,SAAS,QAAQ,EAA2B,GAChD,mBAAmB,CAAC,CAAC,CAAC,CAexB;AAED,KAAK,kBAAkB,CAAC,CAAC,IAAI;IAC3B,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;CAClC,CAAC;AAKF,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,qBAAqB,CAAC,CAAC,CAAC,CAO1B;AAKD,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACpE,MAAM,EAAE,CAAC,GACR,CAAC,CAEH"}
|
package/lib/schema.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { FILTER_LIST_OPERATORS, FILTER_OPERATORS } from './values.js';
|
|
2
|
-
const DEFAULT_NUMBER_OPERATORS = [
|
|
3
|
-
...FILTER_OPERATORS.filter((operator) => {
|
|
4
|
-
return operator !== 'contains' && operator !== 'sw' && operator !== 'ew';
|
|
5
|
-
}),
|
|
6
|
-
];
|
|
7
|
-
const DEFAULT_STRING_OPERATORS = [
|
|
8
|
-
'eq',
|
|
9
|
-
'neq',
|
|
10
|
-
'contains',
|
|
11
|
-
'sw',
|
|
12
|
-
'ew',
|
|
13
|
-
...FILTER_LIST_OPERATORS,
|
|
14
|
-
];
|
|
15
|
-
const DEFAULT_BOOLEAN_OPERATORS = [
|
|
16
|
-
'eq',
|
|
17
|
-
'neq',
|
|
18
|
-
...FILTER_LIST_OPERATORS,
|
|
19
|
-
];
|
|
20
|
-
const DEFAULT_ENUM_OPERATORS = [
|
|
21
|
-
'eq',
|
|
22
|
-
'neq',
|
|
23
|
-
...FILTER_LIST_OPERATORS,
|
|
24
|
-
];
|
|
25
|
-
export function numberField(ops = DEFAULT_NUMBER_OPERATORS) {
|
|
26
|
-
return {
|
|
27
|
-
kind: 'number',
|
|
28
|
-
operators: ops,
|
|
29
|
-
parse(raw) {
|
|
30
|
-
if (raw === '') {
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
const n = Number(raw);
|
|
34
|
-
if (Number.isFinite(n)) {
|
|
35
|
-
return n;
|
|
36
|
-
}
|
|
37
|
-
return undefined;
|
|
38
|
-
},
|
|
39
|
-
serialize(value) {
|
|
40
|
-
return String(value);
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
export function stringField(ops = DEFAULT_STRING_OPERATORS) {
|
|
45
|
-
return {
|
|
46
|
-
kind: 'string',
|
|
47
|
-
operators: ops,
|
|
48
|
-
parse(raw) {
|
|
49
|
-
return raw;
|
|
50
|
-
},
|
|
51
|
-
serialize(value) {
|
|
52
|
-
return String(value);
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
export function booleanField(ops = DEFAULT_BOOLEAN_OPERATORS) {
|
|
57
|
-
return {
|
|
58
|
-
kind: 'boolean',
|
|
59
|
-
operators: ops,
|
|
60
|
-
parse(raw) {
|
|
61
|
-
const normalized = raw.trim().toLowerCase();
|
|
62
|
-
if (normalized === 'true' || normalized === '1') {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
if (normalized === 'false' || normalized === '0') {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
return undefined;
|
|
69
|
-
},
|
|
70
|
-
serialize(value) {
|
|
71
|
-
if (value === true) {
|
|
72
|
-
return 'true';
|
|
73
|
-
}
|
|
74
|
-
return 'false';
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export function enumField(values, ops = DEFAULT_ENUM_OPERATORS) {
|
|
79
|
-
const valueSet = new Set(values);
|
|
80
|
-
return {
|
|
81
|
-
kind: 'enum',
|
|
82
|
-
operators: ops,
|
|
83
|
-
parse(raw) {
|
|
84
|
-
if (valueSet.has(raw)) {
|
|
85
|
-
return raw;
|
|
86
|
-
}
|
|
87
|
-
return undefined;
|
|
88
|
-
},
|
|
89
|
-
serialize(value) {
|
|
90
|
-
return String(value);
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
export function customField(options) {
|
|
95
|
-
return {
|
|
96
|
-
kind: 'custom',
|
|
97
|
-
operators: options.operators,
|
|
98
|
-
parse: options.parse,
|
|
99
|
-
serialize: options.serialize,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
export function defineSchema(schema) {
|
|
103
|
-
return Object.freeze({ ...schema });
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEUsTUFBTSx3QkFBd0IsR0FBd0I7SUFDcEQsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN0QyxPQUFPLFFBQVEsS0FBSyxVQUFVLElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDO0lBQzNFLENBQUMsQ0FBQztDQUNILENBQUM7QUFDRixNQUFNLHdCQUF3QixHQUF3QjtJQUNwRCxJQUFJO0lBQ0osS0FBSztJQUNMLFVBQVU7SUFDVixJQUFJO0lBQ0osSUFBSTtJQUNKLEdBQUcscUJBQXFCO0NBQ3pCLENBQUM7QUFDRixNQUFNLHlCQUF5QixHQUF3QjtJQUNyRCxJQUFJO0lBQ0osS0FBSztJQUNMLEdBQUcscUJBQXFCO0NBQ3pCLENBQUM7QUFDRixNQUFNLHNCQUFzQixHQUF3QjtJQUNsRCxJQUFJO0lBQ0osS0FBSztJQUNMLEdBQUcscUJBQXFCO0NBQ3pCLENBQUM7QUFLRixNQUFNLFVBQVUsV0FBVyxDQUN6QixHQUFHLEdBQXdCLHdCQUF3QjtJQUVuRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsR0FBRztRQUNkLEtBQUssQ0FBQyxHQUFXO1lBQ2YsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELFNBQVMsQ0FBQyxLQUFjO1lBQ3RCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUtELE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQUcsR0FBd0Isd0JBQXdCO0lBRW5ELE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUTtRQUNkLFNBQVMsRUFBRSxHQUFHO1FBQ2QsS0FBSyxDQUFDLEdBQVc7WUFDZixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxTQUFTLENBQUMsS0FBYztZQUN0QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFLRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixHQUFHLEdBQXdCLHlCQUF5QjtJQUVwRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFNBQVM7UUFDZixTQUFTLEVBQUUsR0FBRztRQUNkLEtBQUssQ0FBQyxHQUFXO1lBQ2YsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksVUFBVSxLQUFLLE9BQU8sSUFBSSxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxTQUFTLENBQUMsS0FBYztZQUN0QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUtELE1BQU0sVUFBVSxTQUFTLENBQ3ZCLE1BQW9CLEVBQ3BCLEdBQUcsR0FBd0Isc0JBQXNCO0lBRWpELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTTtRQUNaLFNBQVMsRUFBRSxHQUFHO1FBQ2QsS0FBSyxDQUFDLEdBQVc7WUFDZixJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBUSxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxHQUFRLENBQUM7WUFDbEIsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxTQUFTLENBQUMsS0FBYztZQUN0QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFXRCxNQUFNLFVBQVUsV0FBVyxDQUN6QixPQUE4QjtJQUU5QixPQUFPO1FBQ0wsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDNUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUtELE1BQU0sVUFBVSxZQUFZLENBQzFCLE1BQVM7SUFFVCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmllbGREZXNjcmlwdG9yLFxuICBOdW1iZXJGaWVsZERlc2NyaXB0b3IsXG4gIFN0cmluZ0ZpZWxkRGVzY3JpcHRvcixcbiAgQm9vbGVhbkZpZWxkRGVzY3JpcHRvcixcbiAgRW51bUZpZWxkRGVzY3JpcHRvcixcbiAgQ3VzdG9tRmllbGREZXNjcmlwdG9yLFxuICBPcGVyYXRvcixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBGSUxURVJfTElTVF9PUEVSQVRPUlMsIEZJTFRFUl9PUEVSQVRPUlMgfSBmcm9tICcuL3ZhbHVlcy5qcyc7XG5cbmNvbnN0IERFRkFVTFRfTlVNQkVSX09QRVJBVE9SUzogcmVhZG9ubHkgT3BlcmF0b3JbXSA9IFtcbiAgLi4uRklMVEVSX09QRVJBVE9SUy5maWx0ZXIoKG9wZXJhdG9yKSA9PiB7XG4gICAgcmV0dXJuIG9wZXJhdG9yICE9PSAnY29udGFpbnMnICYmIG9wZXJhdG9yICE9PSAnc3cnICYmIG9wZXJhdG9yICE9PSAnZXcnO1xuICB9KSxcbl07XG5jb25zdCBERUZBVUxUX1NUUklOR19PUEVSQVRPUlM6IHJlYWRvbmx5IE9wZXJhdG9yW10gPSBbXG4gICdlcScsXG4gICduZXEnLFxuICAnY29udGFpbnMnLFxuICAnc3cnLFxuICAnZXcnLFxuICAuLi5GSUxURVJfTElTVF9PUEVSQVRPUlMsXG5dO1xuY29uc3QgREVGQVVMVF9CT09MRUFOX09QRVJBVE9SUzogcmVhZG9ubHkgT3BlcmF0b3JbXSA9IFtcbiAgJ2VxJyxcbiAgJ25lcScsXG4gIC4uLkZJTFRFUl9MSVNUX09QRVJBVE9SUyxcbl07XG5jb25zdCBERUZBVUxUX0VOVU1fT1BFUkFUT1JTOiByZWFkb25seSBPcGVyYXRvcltdID0gW1xuICAnZXEnLFxuICAnbmVxJyxcbiAgLi4uRklMVEVSX0xJU1RfT1BFUkFUT1JTLFxuXTtcblxuLyoqXG4gKiBDcmVhdGUgYSBudW1lcmljIGZpZWxkIGRlc2NyaXB0b3Igd2l0aCBhIGdpdmVuIG9wZXJhdG9yIHdoaXRlbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG51bWJlckZpZWxkKFxuICBvcHM6IHJlYWRvbmx5IE9wZXJhdG9yW10gPSBERUZBVUxUX05VTUJFUl9PUEVSQVRPUlMsXG4pOiBOdW1iZXJGaWVsZERlc2NyaXB0b3Ige1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdudW1iZXInLFxuICAgIG9wZXJhdG9yczogb3BzLFxuICAgIHBhcnNlKHJhdzogc3RyaW5nKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmIChyYXcgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBuID0gTnVtYmVyKHJhdyk7XG4gICAgICBpZiAoTnVtYmVyLmlzRmluaXRlKG4pKSB7XG4gICAgICAgIHJldHVybiBuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIC8vIEFjY2VwdCB1bmtub3duIHRvIHNhdGlzZnkgYmFzZSBpbnRlcmZhY2UgaW50ZXJzZWN0aW9uOyBjYWxsZXIgZW5zdXJlcyB0eXBlIGNvcnJlY3RuZXNzXG4gICAgc2VyaWFsaXplKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGZpZWxkIGRlc2NyaXB0b3Igd2l0aCBhIGdpdmVuIG9wZXJhdG9yIHdoaXRlbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0ZpZWxkKFxuICBvcHM6IHJlYWRvbmx5IE9wZXJhdG9yW10gPSBERUZBVUxUX1NUUklOR19PUEVSQVRPUlMsXG4pOiBTdHJpbmdGaWVsZERlc2NyaXB0b3Ige1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdzdHJpbmcnLFxuICAgIG9wZXJhdG9yczogb3BzLFxuICAgIHBhcnNlKHJhdzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiByYXc7XG4gICAgfSxcbiAgICBzZXJpYWxpemUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBib29sZWFuIGZpZWxkIGRlc2NyaXB0b3Igd2l0aCBhIGdpdmVuIG9wZXJhdG9yIHdoaXRlbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5GaWVsZChcbiAgb3BzOiByZWFkb25seSBPcGVyYXRvcltdID0gREVGQVVMVF9CT09MRUFOX09QRVJBVE9SUyxcbik6IEJvb2xlYW5GaWVsZERlc2NyaXB0b3Ige1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICBvcGVyYXRvcnM6IG9wcyxcbiAgICBwYXJzZShyYXc6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IHJhdy50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChub3JtYWxpemVkID09PSAndHJ1ZScgfHwgbm9ybWFsaXplZCA9PT0gJzEnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG5vcm1hbGl6ZWQgPT09ICdmYWxzZScgfHwgbm9ybWFsaXplZCA9PT0gJzAnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBzZXJpYWxpemUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiAndHJ1ZSc7XG4gICAgICB9XG4gICAgICByZXR1cm4gJ2ZhbHNlJztcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlbnVtIGZpZWxkIGRlc2NyaXB0b3Igd2l0aCBhIGdpdmVuIG9wZXJhdG9yIHdoaXRlbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudW1GaWVsZDxjb25zdCBUIGV4dGVuZHMgc3RyaW5nPihcbiAgdmFsdWVzOiByZWFkb25seSBUW10sXG4gIG9wczogcmVhZG9ubHkgT3BlcmF0b3JbXSA9IERFRkFVTFRfRU5VTV9PUEVSQVRPUlMsXG4pOiBFbnVtRmllbGREZXNjcmlwdG9yPFQ+IHtcbiAgY29uc3QgdmFsdWVTZXQgPSBuZXcgU2V0KHZhbHVlcyk7XG4gIHJldHVybiB7XG4gICAga2luZDogJ2VudW0nLFxuICAgIG9wZXJhdG9yczogb3BzLFxuICAgIHBhcnNlKHJhdzogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAodmFsdWVTZXQuaGFzKHJhdyBhcyBUKSkge1xuICAgICAgICByZXR1cm4gcmF3IGFzIFQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sXG4gICAgc2VyaWFsaXplKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH0sXG4gIH07XG59XG5cbnR5cGUgQ3VzdG9tRmllbGRPcHRpb25zPFQ+ID0ge1xuICBvcGVyYXRvcnM6IHJlYWRvbmx5IE9wZXJhdG9yW107XG4gIHBhcnNlOiAocmF3OiBzdHJpbmcpID0+IFQgfCB1bmRlZmluZWQ7XG4gIHNlcmlhbGl6ZT86ICh2YWx1ZTogVCkgPT4gc3RyaW5nO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgYSBjdXN0b20gZmllbGQgZGVzY3JpcHRvciB3aXRoIGV4cGxpY2l0IHBhcnNlL3NlcmlhbGl6ZSBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdXN0b21GaWVsZDxUPihcbiAgb3B0aW9uczogQ3VzdG9tRmllbGRPcHRpb25zPFQ+LFxuKTogQ3VzdG9tRmllbGREZXNjcmlwdG9yPFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAnY3VzdG9tJyxcbiAgICBvcGVyYXRvcnM6IG9wdGlvbnMub3BlcmF0b3JzLFxuICAgIHBhcnNlOiBvcHRpb25zLnBhcnNlLFxuICAgIHNlcmlhbGl6ZTogb3B0aW9ucy5zZXJpYWxpemUsXG4gIH07XG59XG5cbi8qKlxuICogRnJlZXplIGFuZCByZXR1cm4gdGhlIHNjaGVtYSAoaW1tdXRhYmlsaXR5IGd1YXJkIGZvciBjb25zdW1lcnMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lU2NoZW1hPFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBGaWVsZERlc2NyaXB0b3I+PihcbiAgc2NoZW1hOiBTLFxuKTogUyB7XG4gIHJldHVybiBPYmplY3QuZnJlZXplKHsgLi4uc2NoZW1hIH0pO1xufVxuIl19
|
package/lib/stringify.d.ts
DELETED
package/lib/stringify.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringify.d.ts","sourceRoot":"","sources":["../src/stringify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EAGP,MAAM,YAAY,CAAC;AAwEpB,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EACxC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC5D,MAAM,EAAE,CAAC,GACR,MAAM,CAmER"}
|
package/lib/stringify.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
function encodeKey(field, op) {
|
|
2
|
-
if (op === 'eq')
|
|
3
|
-
return field;
|
|
4
|
-
return `${field}.${op}`;
|
|
5
|
-
}
|
|
6
|
-
function serializeScalar(descriptor, value) {
|
|
7
|
-
if (value === undefined) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const isPrimitive = typeof value === 'string' ||
|
|
11
|
-
typeof value === 'number' ||
|
|
12
|
-
typeof value === 'boolean';
|
|
13
|
-
if (isPrimitive) {
|
|
14
|
-
if (descriptor.serialize != null) {
|
|
15
|
-
try {
|
|
16
|
-
switch (descriptor.kind) {
|
|
17
|
-
case 'number':
|
|
18
|
-
if (typeof value === 'number') {
|
|
19
|
-
return descriptor.serialize(value);
|
|
20
|
-
}
|
|
21
|
-
return undefined;
|
|
22
|
-
case 'string':
|
|
23
|
-
case 'enum':
|
|
24
|
-
if (typeof value === 'string') {
|
|
25
|
-
return descriptor.serialize(value);
|
|
26
|
-
}
|
|
27
|
-
return undefined;
|
|
28
|
-
case 'boolean':
|
|
29
|
-
if (typeof value === 'boolean') {
|
|
30
|
-
return descriptor.serialize(value);
|
|
31
|
-
}
|
|
32
|
-
return undefined;
|
|
33
|
-
case 'custom':
|
|
34
|
-
return descriptor.serialize(value);
|
|
35
|
-
default:
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return String(value);
|
|
44
|
-
}
|
|
45
|
-
if (descriptor.kind === 'custom' && descriptor.serialize != null) {
|
|
46
|
-
try {
|
|
47
|
-
return descriptor.serialize(value);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return JSON.stringify(value);
|
|
54
|
-
}
|
|
55
|
-
export function stringify(filters, schema) {
|
|
56
|
-
const parts = [];
|
|
57
|
-
for (const field of Object.keys(schema)) {
|
|
58
|
-
const value = filters[field];
|
|
59
|
-
const descriptor = schema[field];
|
|
60
|
-
if (value === undefined ||
|
|
61
|
-
descriptor === undefined ||
|
|
62
|
-
value === null ||
|
|
63
|
-
typeof value !== 'object') {
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
for (const op of descriptor.operators) {
|
|
67
|
-
if (op === 'eq') {
|
|
68
|
-
const scalar = Reflect.get(value, op);
|
|
69
|
-
const printable = serializeScalar(descriptor, scalar);
|
|
70
|
-
if (printable !== undefined) {
|
|
71
|
-
parts.push(`${encodeKey(field, op)}=${encodeURIComponent(printable)}`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else if (op === 'between') {
|
|
75
|
-
const tuple = Reflect.get(value, 'between');
|
|
76
|
-
if (Array.isArray(tuple) && tuple.length === 2) {
|
|
77
|
-
const first = serializeScalar(descriptor, tuple[0]);
|
|
78
|
-
const second = serializeScalar(descriptor, tuple[1]);
|
|
79
|
-
if (first !== undefined && second !== undefined) {
|
|
80
|
-
parts.push(`${encodeKey(field, op)}=${encodeURIComponent(first)},${encodeURIComponent(second)}`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else if (op === 'in' || op === 'nin') {
|
|
85
|
-
const list = Reflect.get(value, op);
|
|
86
|
-
if (Array.isArray(list) && list.length > 0) {
|
|
87
|
-
const encodedItems = list
|
|
88
|
-
.map((v) => {
|
|
89
|
-
const printable = serializeScalar(descriptor, v);
|
|
90
|
-
if (printable === undefined) {
|
|
91
|
-
return undefined;
|
|
92
|
-
}
|
|
93
|
-
return encodeURIComponent(printable);
|
|
94
|
-
})
|
|
95
|
-
.filter((item) => {
|
|
96
|
-
return item !== undefined;
|
|
97
|
-
})
|
|
98
|
-
.join(',');
|
|
99
|
-
if (encodedItems !== '') {
|
|
100
|
-
parts.push(`${encodeKey(field, op)}=${encodedItems}`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
const scalar = value[op];
|
|
106
|
-
const printable = serializeScalar(descriptor, scalar);
|
|
107
|
-
if (printable !== undefined) {
|
|
108
|
-
parts.push(`${encodeKey(field, op)}=${encodeURIComponent(printable)}`);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return parts.join('&');
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxTQUFTLFNBQVMsQ0FBQyxLQUFhLEVBQUUsRUFBWTtJQUM1QyxJQUFJLEVBQUUsS0FBSyxJQUFJO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDOUIsT0FBTyxHQUFHLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQztBQUMxQixDQUFDO0FBS0QsU0FBUyxlQUFlLENBQ3RCLFVBQTJCLEVBQzNCLEtBQWM7SUFFZCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQ2YsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUM3QixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLElBQUksVUFBVSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUM7Z0JBQ0gsUUFBUSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hCLEtBQUssUUFBUTt3QkFDWCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDOzRCQUM5QixPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3JDLENBQUM7d0JBQ0QsT0FBTyxTQUFTLENBQUM7b0JBQ25CLEtBQUssUUFBUSxDQUFDO29CQUNkLEtBQUssTUFBTTt3QkFDVCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDOzRCQUM5QixPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3JDLENBQUM7d0JBQ0QsT0FBTyxTQUFTLENBQUM7b0JBQ25CLEtBQUssU0FBUzt3QkFDWixJQUFJLE9BQU8sS0FB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QkFDdEQsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7d0JBQzVCLEtBQUssQ0FBQyxJQUFJLENBQ1IsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQzNELENBQUM7b0JBQ0osQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEluZmVyRmlsdGVycyxcbiAgU2NoZW1hLFxuICBPcGVyYXRvcixcbiAgRmllbGREZXNjcmlwdG9yLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqXG4gKiBCdWlsZHMgdGhlIGVuY29kZWQga2V5IHBvcnRpb24gZm9yIGEgZmllbGQvb3BlcmF0b3IgcGFpciAoaW1wbGljaXQgYGVxYCBoYXMgbm8gZG90IHN1ZmZpeCkuXG4gKi9cbmZ1bmN0aW9uIGVuY29kZUtleShmaWVsZDogc3RyaW5nLCBvcDogT3BlcmF0b3IpOiBzdHJpbmcge1xuICBpZiAob3AgPT09ICdlcScpIHJldHVybiBmaWVsZDsgLy8gaW1wbGljaXQgZXF1YWxpdHkgZm9ybVxuICByZXR1cm4gYCR7ZmllbGR9LiR7b3B9YDtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgc2NhbGFyIHZhbHVlIHVzaW5nIHRoZSBmaWVsZCBkZXNjcmlwdG9yIHdoZW4gcG9zc2libGUuXG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZVNjYWxhcihcbiAgZGVzY3JpcHRvcjogRmllbGREZXNjcmlwdG9yLFxuICB2YWx1ZTogdW5rbm93bixcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBpc1ByaW1pdGl2ZSA9XG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJztcbiAgaWYgKGlzUHJpbWl0aXZlKSB7XG4gICAgaWYgKGRlc2NyaXB0b3Iuc2VyaWFsaXplICE9IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci5raW5kKSB7XG4gICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdG9yLnNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvci5zZXJpYWxpemUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvci5zZXJpYWxpemUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3Iuc2VyaWFsaXplKHZhbHVlKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG4gIGlmIChkZXNjcmlwdG9yLmtpbmQgPT09ICdjdXN0b20nICYmIGRlc2NyaXB0b3Iuc2VyaWFsaXplICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGRlc2NyaXB0b3Iuc2VyaWFsaXplKHZhbHVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIGZpbHRlcnMgb2JqZWN0IGludG8gYSBjYW5vbmljYWwgcXVlcnkgc3RyaW5nIHJlc3BlY3RpbmcgdGhlIHNjaGVtYSBvcGVyYXRvciBvcmRlcmluZy5cbiAqXG4gKiBAcGFyYW0gZmlsdGVycyAtIFBhcnNlZCBmaWx0ZXJzIHRvIGVuY29kZS5cbiAqIEBwYXJhbSBzY2hlbWEgLSBTY2hlbWEgdXNlZCB0byBkZXRlcm1pbmUgb3BlcmF0b3Igb3JkZXJpbmcgYW5kIGZvcm1hdHRpbmcuXG4gKiBAcmV0dXJucyBRdWVyeSBzdHJpbmcgd2l0aG91dCBsZWFkaW5nIHF1ZXN0aW9uIG1hcmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnk8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPiB8IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PixcbiAgc2NoZW1hOiBTLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgZmllbGQgb2YgT2JqZWN0LmtleXMoc2NoZW1hKSkge1xuICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyc1tmaWVsZF07XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IHNjaGVtYVtmaWVsZF07XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgZGVzY3JpcHRvciA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0J1xuICAgICkge1xuICAgICAgLy8gc2tpcCBhYnNlbnRcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBvcCBvZiBkZXNjcmlwdG9yLm9wZXJhdG9ycykge1xuICAgICAgICBpZiAob3AgPT09ICdlcScpIHtcbiAgICAgICAgICBjb25zdCBzY2FsYXIgPSBSZWZsZWN0LmdldCh2YWx1ZSwgb3ApIGFzIHVua25vd247XG4gICAgICAgICAgY29uc3QgcHJpbnRhYmxlID0gc2VyaWFsaXplU2NhbGFyKGRlc2NyaXB0b3IsIHNjYWxhcik7XG4gICAgICAgICAgaWYgKHByaW50YWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICAgICAgICBgJHtlbmNvZGVLZXkoZmllbGQsIG9wKX09JHtlbmNvZGVVUklDb21wb25lbnQocHJpbnRhYmxlKX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob3AgPT09ICdiZXR3ZWVuJykge1xuICAgICAgICAgIGNvbnN0IHR1cGxlID0gUmVmbGVjdC5nZXQodmFsdWUsICdiZXR3ZWVuJykgYXMgdW5rbm93bjtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0dXBsZSkgJiYgdHVwbGUubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdCA9IHNlcmlhbGl6ZVNjYWxhcihkZXNjcmlwdG9yLCB0dXBsZVswXSk7XG4gICAgICAgICAgICBjb25zdCBzZWNvbmQgPSBzZXJpYWxpemVTY2FsYXIoZGVzY3JpcHRvciwgdHVwbGVbMV0pO1xuICAgICAgICAgICAgaWYgKGZpcnN0ICE9PSB1bmRlZmluZWQgJiYgc2Vjb25kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgcGFydHMucHVzaChcbiAgICAgICAgICAgICAgICBgJHtlbmNvZGVLZXkoZmllbGQsIG9wKX09JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgICBmaXJzdCxcbiAgICAgICAgICAgICAgICApfSwke2VuY29kZVVSSUNvbXBvbmVudChzZWNvbmQpfWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wID09PSAnaW4nIHx8IG9wID09PSAnbmluJykge1xuICAgICAgICAgIGNvbnN0IGxpc3QgPSBSZWZsZWN0LmdldCh2YWx1ZSwgb3ApIGFzIHVua25vd247XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdCkgJiYgbGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkSXRlbXMgPSBsaXN0XG4gICAgICAgICAgICAgIC5tYXAoKHYpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmludGFibGUgPSBzZXJpYWxpemVTY2FsYXIoZGVzY3JpcHRvciwgdik7XG4gICAgICAgICAgICAgICAgaWYgKHByaW50YWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHByaW50YWJsZSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIHN0cmluZyA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0gIT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmpvaW4oJywnKTtcbiAgICAgICAgICAgIGlmIChlbmNvZGVkSXRlbXMgIT09ICcnKSB7XG4gICAgICAgICAgICAgIHBhcnRzLnB1c2goYCR7ZW5jb2RlS2V5KGZpZWxkLCBvcCl9PSR7ZW5jb2RlZEl0ZW1zfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBzY2FsYXIgPSAodmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW29wXTtcbiAgICAgICAgICBjb25zdCBwcmludGFibGUgPSBzZXJpYWxpemVTY2FsYXIoZGVzY3JpcHRvciwgc2NhbGFyKTtcbiAgICAgICAgICBpZiAocHJpbnRhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgICAgICAgIGAke2VuY29kZUtleShmaWVsZCwgb3ApfT0ke2VuY29kZVVSSUNvbXBvbmVudChwcmludGFibGUpfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcGFydHMuam9pbignJicpO1xufVxuIl19
|
package/lib/types.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { Diagnostic } from './errors.js';
|
|
2
|
-
import type { FilterBetweenOperatorValue, FilterListOperatorValue, FilterOperatorValue, FilterScalarOperatorValue } from './values.js';
|
|
3
|
-
export type ScalarOperator = FilterScalarOperatorValue;
|
|
4
|
-
export type BetweenOperator = FilterBetweenOperatorValue;
|
|
5
|
-
export type ListOperator = FilterListOperatorValue;
|
|
6
|
-
export type Operator = FilterOperatorValue;
|
|
7
|
-
export type PrimitiveKind = 'number' | 'string' | 'boolean' | 'enum' | 'custom';
|
|
8
|
-
type BivariantSerializer<TValue> = {
|
|
9
|
-
bivarianceHack(value: TValue): string;
|
|
10
|
-
}['bivarianceHack'];
|
|
11
|
-
export interface FieldDescriptorBase<TKind extends PrimitiveKind, TValue> {
|
|
12
|
-
readonly kind: TKind;
|
|
13
|
-
readonly operators: readonly Operator[];
|
|
14
|
-
readonly parse?: (raw: string) => TValue | undefined;
|
|
15
|
-
readonly serialize?: BivariantSerializer<TValue>;
|
|
16
|
-
}
|
|
17
|
-
export type NumberFieldDescriptor = FieldDescriptorBase<'number', number>;
|
|
18
|
-
export type StringFieldDescriptor = FieldDescriptorBase<'string', string>;
|
|
19
|
-
export type BooleanFieldDescriptor = FieldDescriptorBase<'boolean', boolean>;
|
|
20
|
-
export type EnumFieldDescriptor<T extends string> = FieldDescriptorBase<'enum', T>;
|
|
21
|
-
export type CustomFieldDescriptor<T> = FieldDescriptorBase<'custom', T>;
|
|
22
|
-
export type FieldDescriptor = NumberFieldDescriptor | StringFieldDescriptor | BooleanFieldDescriptor | EnumFieldDescriptor<string> | CustomFieldDescriptor<unknown>;
|
|
23
|
-
export type Schema = Readonly<Record<string, FieldDescriptor>>;
|
|
24
|
-
type FieldValue<D extends FieldDescriptor> = D extends FieldDescriptorBase<PrimitiveKind, infer TValue> ? TValue : never;
|
|
25
|
-
type ScalarMap<D extends FieldDescriptor> = Record<ScalarOperator, FieldValue<D> | undefined>;
|
|
26
|
-
type BetweenMap<D extends FieldDescriptor> = {
|
|
27
|
-
between?: readonly [FieldValue<D>, FieldValue<D>];
|
|
28
|
-
};
|
|
29
|
-
type ListMap<D extends FieldDescriptor> = Record<ListOperator, readonly FieldValue<D>[] | undefined>;
|
|
30
|
-
export type InferField<D extends FieldDescriptor> = Partial<ScalarMap<D> & BetweenMap<D> & ListMap<D>>;
|
|
31
|
-
export type InferFilters<S extends Schema> = {
|
|
32
|
-
[K in keyof S]?: InferField<S[K]>;
|
|
33
|
-
};
|
|
34
|
-
export interface ParseResult<S extends Schema> {
|
|
35
|
-
readonly filters: InferFilters<S>;
|
|
36
|
-
readonly diagnostics: Diagnostic[];
|
|
37
|
-
}
|
|
38
|
-
export {};
|
|
39
|
-
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyB9IGZyb20gJy4vZXJyb3JzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRmlsdGVyQmV0d2Vlbk9wZXJhdG9yVmFsdWUsXG4gIEZpbHRlckxpc3RPcGVyYXRvclZhbHVlLFxuICBGaWx0ZXJPcGVyYXRvclZhbHVlLFxuICBGaWx0ZXJTY2FsYXJPcGVyYXRvclZhbHVlLFxufSBmcm9tICcuL3ZhbHVlcy5qcyc7XG5cbi8qKlxuICogT3BlcmF0b3JzIHRoYXQgdGFrZSBhIHNpbmdsZSBzY2FsYXIgdmFsdWUgKG51bWJlcnMgb3Igc3RyaW5ncykgaW4gdGhlIGZpbHRlciBzY2hlbWEuXG4gKi9cbmV4cG9ydCB0eXBlIFNjYWxhck9wZXJhdG9yID0gRmlsdGVyU2NhbGFyT3BlcmF0b3JWYWx1ZTtcbi8qKiBPcGVyYXRvciByZXByZXNlbnRpbmcgYSByYW5nZSBvZiB0d28gdmFsdWVzLiAqL1xuZXhwb3J0IHR5cGUgQmV0d2Vlbk9wZXJhdG9yID0gRmlsdGVyQmV0d2Vlbk9wZXJhdG9yVmFsdWU7XG4vKiogT3BlcmF0b3JzIHdob3NlIHZhbHVlcyBhcmUgbGlzdHMuICovXG5leHBvcnQgdHlwZSBMaXN0T3BlcmF0b3IgPSBGaWx0ZXJMaXN0T3BlcmF0b3JWYWx1ZTtcbi8qKiBBbGwgc3VwcG9ydGVkIG9wZXJhdG9yIGtpbmRzLiAqL1xuZXhwb3J0IHR5cGUgT3BlcmF0b3IgPSBGaWx0ZXJPcGVyYXRvclZhbHVlO1xuXG4vKiogUHJpbWl0aXZlIGZpZWxkIGtpbmRzIHN1cHBvcnRlZCBieSB0aGUgc2NoZW1hLiAqL1xuZXhwb3J0IHR5cGUgUHJpbWl0aXZlS2luZCA9ICdudW1iZXInIHwgJ3N0cmluZycgfCAnYm9vbGVhbicgfCAnZW51bScgfCAnY3VzdG9tJztcblxudHlwZSBCaXZhcmlhbnRTZXJpYWxpemVyPFRWYWx1ZT4gPSB7XG4gIC8vIFRoZSBwdWJsaWMgY2FsbGJhY2sgbXVzdCBhY2NlcHQgdGhlIHNwZWNpYWxpemVkIHZhbHVlIGluZmVycmVkIGJ5IGl0cyBmaWVsZC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZXRob2Qtc2lnbmF0dXJlLXN0eWxlXG4gIGJpdmFyaWFuY2VIYWNrKHZhbHVlOiBUVmFsdWUpOiBzdHJpbmc7XG59WydiaXZhcmlhbmNlSGFjayddO1xuXG4vKipcbiAqIEJhc2UgZGVzY3JpcHRvciBzaGFyZWQgYnkgbnVtYmVyIGFuZCBzdHJpbmcgZmllbGRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkRGVzY3JpcHRvckJhc2U8VEtpbmQgZXh0ZW5kcyBQcmltaXRpdmVLaW5kLCBUVmFsdWU+IHtcbiAgcmVhZG9ubHkga2luZDogVEtpbmQ7XG4gIHJlYWRvbmx5IG9wZXJhdG9yczogcmVhZG9ubHkgT3BlcmF0b3JbXTtcbiAgcmVhZG9ubHkgcGFyc2U/OiAocmF3OiBzdHJpbmcpID0+IFRWYWx1ZSB8IHVuZGVmaW5lZDtcbiAgLyoqIEJpdmFyaWFuY2Uga2VlcHMgc3BlY2lhbGl6ZWQgZGVzY3JpcHRvcnMgYXNzaWduYWJsZSB0byBTY2hlbWEuICovXG4gIHJlYWRvbmx5IHNlcmlhbGl6ZT86IEJpdmFyaWFudFNlcmlhbGl6ZXI8VFZhbHVlPjtcbn1cblxuLyoqIERlc2NyaXB0b3IgZm9yIG51bWVyaWMgZmllbGRzLiBQcm92aWRlcyBudW1lcmljIHBhcnNpbmcvc2VyaWFsaXNhdGlvbiBob29rcy4gKi9cbmV4cG9ydCB0eXBlIE51bWJlckZpZWxkRGVzY3JpcHRvciA9IEZpZWxkRGVzY3JpcHRvckJhc2U8J251bWJlcicsIG51bWJlcj47XG4vKiogRGVzY3JpcHRvciBmb3Igc3RyaW5nIGZpZWxkcy4gUHJvdmlkZXMgc3RyaW5nIHBhcnNpbmcvc2VyaWFsaXNhdGlvbiBob29rcy4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ0ZpZWxkRGVzY3JpcHRvciA9IEZpZWxkRGVzY3JpcHRvckJhc2U8J3N0cmluZycsIHN0cmluZz47XG4vKiogRGVzY3JpcHRvciBmb3IgYm9vbGVhbiBmaWVsZHMuICovXG5leHBvcnQgdHlwZSBCb29sZWFuRmllbGREZXNjcmlwdG9yID0gRmllbGREZXNjcmlwdG9yQmFzZTwnYm9vbGVhbicsIGJvb2xlYW4+O1xuLyoqIERlc2NyaXB0b3IgZm9yIGVudW0gc3RyaW5nIGZpZWxkcy4gKi9cbmV4cG9ydCB0eXBlIEVudW1GaWVsZERlc2NyaXB0b3I8VCBleHRlbmRzIHN0cmluZz4gPSBGaWVsZERlc2NyaXB0b3JCYXNlPFxuICAnZW51bScsXG4gIFRcbj47XG4vKiogRGVzY3JpcHRvciBmb3IgY3VzdG9tIGZpZWxkcy4gKi9cbmV4cG9ydCB0eXBlIEN1c3RvbUZpZWxkRGVzY3JpcHRvcjxUPiA9IEZpZWxkRGVzY3JpcHRvckJhc2U8J2N1c3RvbScsIFQ+O1xuXG4vKiogRGVzY3JpcHRvciBhY2NlcHRlZCBieSB0aGUgc2NoZW1hLiAqL1xuZXhwb3J0IHR5cGUgRmllbGREZXNjcmlwdG9yID1cbiAgfCBOdW1iZXJGaWVsZERlc2NyaXB0b3JcbiAgfCBTdHJpbmdGaWVsZERlc2NyaXB0b3JcbiAgfCBCb29sZWFuRmllbGREZXNjcmlwdG9yXG4gIHwgRW51bUZpZWxkRGVzY3JpcHRvcjxzdHJpbmc+XG4gIHwgQ3VzdG9tRmllbGREZXNjcmlwdG9yPHVua25vd24+O1xuXG4vKiogSW1tdXRhYmxlIG1hcHBpbmcgYmV0d2VlbiBmaWVsZCBrZXlzIGFuZCB0aGVpciBkZXNjcmlwdG9ycy4gKi9cbmV4cG9ydCB0eXBlIFNjaGVtYSA9IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIEZpZWxkRGVzY3JpcHRvcj4+O1xuXG50eXBlIEZpZWxkVmFsdWU8RCBleHRlbmRzIEZpZWxkRGVzY3JpcHRvcj4gPVxuICBEIGV4dGVuZHMgRmllbGREZXNjcmlwdG9yQmFzZTxQcmltaXRpdmVLaW5kLCBpbmZlciBUVmFsdWU+ID8gVFZhbHVlIDogbmV2ZXI7XG50eXBlIFNjYWxhck1hcDxEIGV4dGVuZHMgRmllbGREZXNjcmlwdG9yPiA9IFJlY29yZDxcbiAgU2NhbGFyT3BlcmF0b3IsXG4gIEZpZWxkVmFsdWU8RD4gfCB1bmRlZmluZWRcbj47XG5cbnR5cGUgQmV0d2Vlbk1hcDxEIGV4dGVuZHMgRmllbGREZXNjcmlwdG9yPiA9IHtcbiAgYmV0d2Vlbj86IHJlYWRvbmx5IFtGaWVsZFZhbHVlPEQ+LCBGaWVsZFZhbHVlPEQ+XTtcbn07XG5cbnR5cGUgTGlzdE1hcDxEIGV4dGVuZHMgRmllbGREZXNjcmlwdG9yPiA9IFJlY29yZDxcbiAgTGlzdE9wZXJhdG9yLFxuICByZWFkb25seSBGaWVsZFZhbHVlPEQ+W10gfCB1bmRlZmluZWRcbj47XG5cbi8qKlxuICogSW5mZXJzIG9wZXJhdG9yIHZhbHVlIHNoYXBlcyBmcm9tIGEgZGVzY3JpcHRvcidzIGZpZWxkIHZhbHVlIHR5cGUuXG4gKiBUaGUgZGVzY3JpcHRvcidzIHJ1bnRpbWUgb3BlcmF0b3Igd2hpdGVsaXN0IGlzIGludGVudGlvbmFsbHkgbm90IGVuY29kZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEluZmVyRmllbGQ8RCBleHRlbmRzIEZpZWxkRGVzY3JpcHRvcj4gPSBQYXJ0aWFsPFxuICBTY2FsYXJNYXA8RD4gJiBCZXR3ZWVuTWFwPEQ+ICYgTGlzdE1hcDxEPlxuPjtcblxuLyoqIEZpbHRlcnMgbWFwIGluZmVycmVkIGZyb20gYSBzY2hlbWEgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCB0eXBlIEluZmVyRmlsdGVyczxTIGV4dGVuZHMgU2NoZW1hPiA9IHtcbiAgW0sgaW4ga2V5b2YgU10/OiBJbmZlckZpZWxkPFNbS10+O1xufTtcblxuLyoqIFJlc3VsdCByZXR1cm5lZCBieSB0aGUgYHBhcnNlYCBmdW5jdGlvbjogcGFyc2VkIGZpbHRlcnMgcGx1cyBkaWFnbm9zdGljcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VSZXN1bHQ8UyBleHRlbmRzIFNjaGVtYT4ge1xuICByZWFkb25seSBmaWx0ZXJzOiBJbmZlckZpbHRlcnM8Uz47XG4gIHJlYWRvbmx5IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107XG59XG4iXX0=
|
package/lib/values.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const FILTER_OPERATORS: readonly ['gt', 'gte', 'lt', 'lte', 'eq', 'neq', 'contains', 'sw', 'ew', 'between', 'in', 'nin'];
|
|
2
|
-
export type FilterOperatorValue = (typeof FILTER_OPERATORS)[number];
|
|
3
|
-
export declare const FILTER_SCALAR_OPERATORS: readonly ['gt', 'gte', 'lt', 'lte', 'eq', 'neq', 'contains', 'sw', 'ew'];
|
|
4
|
-
export type FilterScalarOperatorValue = (typeof FILTER_SCALAR_OPERATORS)[number];
|
|
5
|
-
export declare const FILTER_LIST_OPERATORS: readonly ['in', 'nin'];
|
|
6
|
-
export type FilterListOperatorValue = (typeof FILTER_LIST_OPERATORS)[number];
|
|
7
|
-
export declare const FILTER_BETWEEN_OPERATORS: readonly ['between'];
|
|
8
|
-
export type FilterBetweenOperatorValue = (typeof FILTER_BETWEEN_OPERATORS)[number];
|
|
9
|
-
export declare function isFilterOperator(value: unknown): value is FilterOperatorValue;
|
|
10
|
-
export declare function isFilterScalarOperator(value: unknown): value is FilterScalarOperatorValue;
|
|
11
|
-
export declare function isFilterListOperator(value: unknown): value is FilterListOperatorValue;
|
|
12
|
-
export declare function isFilterBetweenOperator(value: unknown): value is FilterBetweenOperatorValue;
|
|
13
|
-
//# sourceMappingURL=values.d.ts.map
|
package/lib/values.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAC3B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,CACG,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,uBAAuB,YAClC,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,CACI,CAAC;AAEX,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3C,eAAO,MAAM,qBAAqB,YAAI,IAAI,EAAE,KAAK,CAAU,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,eAAO,MAAM,wBAAwB,YAAI,SAAS,CAAU,CAAC;AAE7D,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAoB5C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAE7E;AAOD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,yBAAyB,CAEpC;AAOD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,uBAAuB,CAElC;AAOD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,0BAA0B,CAErC"}
|
package/lib/values.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export const FILTER_OPERATORS = [
|
|
2
|
-
'gt',
|
|
3
|
-
'gte',
|
|
4
|
-
'lt',
|
|
5
|
-
'lte',
|
|
6
|
-
'eq',
|
|
7
|
-
'neq',
|
|
8
|
-
'contains',
|
|
9
|
-
'sw',
|
|
10
|
-
'ew',
|
|
11
|
-
'between',
|
|
12
|
-
'in',
|
|
13
|
-
'nin',
|
|
14
|
-
];
|
|
15
|
-
export const FILTER_SCALAR_OPERATORS = [
|
|
16
|
-
'gt',
|
|
17
|
-
'gte',
|
|
18
|
-
'lt',
|
|
19
|
-
'lte',
|
|
20
|
-
'eq',
|
|
21
|
-
'neq',
|
|
22
|
-
'contains',
|
|
23
|
-
'sw',
|
|
24
|
-
'ew',
|
|
25
|
-
];
|
|
26
|
-
export const FILTER_LIST_OPERATORS = ['in', 'nin'];
|
|
27
|
-
export const FILTER_BETWEEN_OPERATORS = ['between'];
|
|
28
|
-
function includesValue(values, value) {
|
|
29
|
-
return typeof value === 'string' && values.includes(value);
|
|
30
|
-
}
|
|
31
|
-
export function isFilterOperator(value) {
|
|
32
|
-
return includesValue(FILTER_OPERATORS, value);
|
|
33
|
-
}
|
|
34
|
-
export function isFilterScalarOperator(value) {
|
|
35
|
-
return includesValue(FILTER_SCALAR_OPERATORS, value);
|
|
36
|
-
}
|
|
37
|
-
export function isFilterListOperator(value) {
|
|
38
|
-
return includesValue(FILTER_LIST_OPERATORS, value);
|
|
39
|
-
}
|
|
40
|
-
export function isFilterBetweenOperator(value) {
|
|
41
|
-
return includesValue(FILTER_BETWEEN_OPERATORS, value);
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixJQUFJO0lBQ0osS0FBSztJQUNMLElBQUk7SUFDSixLQUFLO0lBQ0wsSUFBSTtJQUNKLEtBQUs7SUFDTCxVQUFVO0lBQ1YsSUFBSTtJQUNKLElBQUk7SUFDSixTQUFTO0lBQ1QsSUFBSTtJQUNKLEtBQUs7Q0FDRyxDQUFDO0FBSVgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsSUFBSTtJQUNKLEtBQUs7SUFDTCxJQUFJO0lBQ0osS0FBSztJQUNMLElBQUk7SUFDSixLQUFLO0lBQ0wsVUFBVTtJQUNWLElBQUk7SUFDSixJQUFJO0NBQ0ksQ0FBQztBQUtYLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBVSxDQUFDO0FBSTVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBUyxDQUFVLENBQUM7QUFXN0QsU0FBUyxhQUFhLENBQ3BCLE1BQW9CLEVBQ3BCLEtBQWM7SUFFZCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQVUsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFPRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYztJQUM3QyxPQUFPLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBT0QsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxLQUFjO0lBRWQsT0FBTyxhQUFhLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQU9ELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBYztJQUVkLE9BQU8sYUFBYSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFPRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEtBQWM7SUFFZCxPQUFPLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEZJTFRFUl9PUEVSQVRPUlMgPSBbXG4gICdndCcsXG4gICdndGUnLFxuICAnbHQnLFxuICAnbHRlJyxcbiAgJ2VxJyxcbiAgJ25lcScsXG4gICdjb250YWlucycsXG4gICdzdycsXG4gICdldycsXG4gICdiZXR3ZWVuJyxcbiAgJ2luJyxcbiAgJ25pbicsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJPcGVyYXRvclZhbHVlID0gKHR5cGVvZiBGSUxURVJfT1BFUkFUT1JTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgRklMVEVSX1NDQUxBUl9PUEVSQVRPUlMgPSBbXG4gICdndCcsXG4gICdndGUnLFxuICAnbHQnLFxuICAnbHRlJyxcbiAgJ2VxJyxcbiAgJ25lcScsXG4gICdjb250YWlucycsXG4gICdzdycsXG4gICdldycsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJTY2FsYXJPcGVyYXRvclZhbHVlID1cbiAgKHR5cGVvZiBGSUxURVJfU0NBTEFSX09QRVJBVE9SUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9MSVNUX09QRVJBVE9SUyA9IFsnaW4nLCAnbmluJ10gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEZpbHRlckxpc3RPcGVyYXRvclZhbHVlID0gKHR5cGVvZiBGSUxURVJfTElTVF9PUEVSQVRPUlMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBGSUxURVJfQkVUV0VFTl9PUEVSQVRPUlMgPSBbJ2JldHdlZW4nXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgRmlsdGVyQmV0d2Vlbk9wZXJhdG9yVmFsdWUgPVxuICAodHlwZW9mIEZJTFRFUl9CRVRXRUVOX09QRVJBVE9SUylbbnVtYmVyXTtcblxuLyoqXG4gKiBSZXVzYWJsZSBpbmNsdXNpb24gaGVscGVyIGZvciBydW50aW1lIGVudW0tbGlrZSBhcnJheXMuXG4gKlxuICogQHBhcmFtIHZhbHVlcyAtIEFsbG93ZWQgdmFsdWVzLlxuICogQHBhcmFtIHZhbHVlIC0gUnVudGltZSB2YWx1ZSB0byB2YWxpZGF0ZS5cbiAqL1xuZnVuY3Rpb24gaW5jbHVkZXNWYWx1ZTxUIGV4dGVuZHMgc3RyaW5nPihcbiAgdmFsdWVzOiByZWFkb25seSBUW10sXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgVCB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlcy5pbmNsdWRlcyh2YWx1ZSBhcyBUKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgYSBydW50aW1lIHZhbHVlIGlzIGEgc3VwcG9ydGVkIGZpbHRlciBvcGVyYXRvci5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBSdW50aW1lIHZhbHVlIHRvIHZhbGlkYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGaWx0ZXJPcGVyYXRvcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEZpbHRlck9wZXJhdG9yVmFsdWUge1xuICByZXR1cm4gaW5jbHVkZXNWYWx1ZShGSUxURVJfT1BFUkFUT1JTLCB2YWx1ZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIGEgcnVudGltZSB2YWx1ZSBpcyBhIHN1cHBvcnRlZCBzY2FsYXIgb3BlcmF0b3IuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gUnVudGltZSB2YWx1ZSB0byB2YWxpZGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsdGVyU2NhbGFyT3BlcmF0b3IoXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgRmlsdGVyU2NhbGFyT3BlcmF0b3JWYWx1ZSB7XG4gIHJldHVybiBpbmNsdWRlc1ZhbHVlKEZJTFRFUl9TQ0FMQVJfT1BFUkFUT1JTLCB2YWx1ZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIGEgcnVudGltZSB2YWx1ZSBpcyBhIHN1cHBvcnRlZCBsaXN0IG9wZXJhdG9yLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFJ1bnRpbWUgdmFsdWUgdG8gdmFsaWRhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpbHRlckxpc3RPcGVyYXRvcihcbiAgdmFsdWU6IHVua25vd24sXG4pOiB2YWx1ZSBpcyBGaWx0ZXJMaXN0T3BlcmF0b3JWYWx1ZSB7XG4gIHJldHVybiBpbmNsdWRlc1ZhbHVlKEZJTFRFUl9MSVNUX09QRVJBVE9SUywgdmFsdWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBhIHJ1bnRpbWUgdmFsdWUgaXMgYSBzdXBwb3J0ZWQgYmV0d2VlbiBvcGVyYXRvci5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBSdW50aW1lIHZhbHVlIHRvIHZhbGlkYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGaWx0ZXJCZXR3ZWVuT3BlcmF0b3IoXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgRmlsdGVyQmV0d2Vlbk9wZXJhdG9yVmFsdWUge1xuICByZXR1cm4gaW5jbHVkZXNWYWx1ZShGSUxURVJfQkVUV0VFTl9PUEVSQVRPUlMsIHZhbHVlKTtcbn1cbiJdfQ==
|