angular-odata 0.99.2 → 0.100.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/esm2020/lib/api.mjs +65 -55
  2. package/esm2020/lib/cache/cache.mjs +2 -2
  3. package/esm2020/lib/client.mjs +3 -3
  4. package/esm2020/lib/helper.mjs +91 -86
  5. package/esm2020/lib/models/collection.mjs +35 -46
  6. package/esm2020/lib/models/model.mjs +36 -40
  7. package/esm2020/lib/models/options.mjs +53 -36
  8. package/esm2020/lib/module.mjs +4 -4
  9. package/esm2020/lib/options.mjs +4 -3
  10. package/esm2020/lib/resources/query/builder.mjs +5 -7
  11. package/esm2020/lib/resources/query/expressions/base.mjs +1 -1
  12. package/esm2020/lib/resources/query/expressions/compute.mjs +13 -6
  13. package/esm2020/lib/resources/query/expressions/expand.mjs +77 -13
  14. package/esm2020/lib/resources/query/expressions/filter.mjs +11 -5
  15. package/esm2020/lib/resources/query/expressions/orderby.mjs +11 -3
  16. package/esm2020/lib/resources/query/expressions/search.mjs +15 -3
  17. package/esm2020/lib/resources/query/expressions/select.mjs +10 -5
  18. package/esm2020/lib/resources/query/expressions/syntax.mjs +42 -9
  19. package/esm2020/lib/resources/query/handlers.mjs +41 -30
  20. package/esm2020/lib/resources/query/options.mjs +47 -44
  21. package/esm2020/lib/resources/resource.mjs +22 -61
  22. package/esm2020/lib/resources/responses/annotations.mjs +6 -6
  23. package/esm2020/lib/resources/responses/options.mjs +1 -2
  24. package/esm2020/lib/resources/responses/response.mjs +3 -3
  25. package/esm2020/lib/resources/types/entity-set.mjs +1 -1
  26. package/esm2020/lib/resources/types/entity.mjs +3 -3
  27. package/esm2020/lib/resources/types/function.mjs +9 -1
  28. package/esm2020/lib/schema/callable.mjs +6 -2
  29. package/esm2020/lib/schema/enum-type.mjs +10 -2
  30. package/esm2020/lib/schema/parsers/callable.mjs +3 -2
  31. package/esm2020/lib/schema/parsers/enum-type.mjs +6 -5
  32. package/esm2020/lib/schema/parsers/structured-type.mjs +5 -5
  33. package/esm2020/lib/schema/structured-type.mjs +4 -9
  34. package/esm2020/lib/services/entity-set.mjs +6 -6
  35. package/esm2020/lib/services/factory.mjs +3 -3
  36. package/esm2020/lib/types.mjs +2 -1
  37. package/esm2020/lib/utils/objects.mjs +5 -1
  38. package/esm2020/lib/utils/urls.mjs +2 -2
  39. package/fesm2015/angular-odata.mjs +642 -498
  40. package/fesm2015/angular-odata.mjs.map +1 -1
  41. package/fesm2020/angular-odata.mjs +642 -502
  42. package/fesm2020/angular-odata.mjs.map +1 -1
  43. package/lib/helper.d.ts +28 -57
  44. package/lib/models/collection.d.ts +4 -2
  45. package/lib/models/model.d.ts +3 -9
  46. package/lib/models/options.d.ts +13 -11
  47. package/lib/options.d.ts +4 -4
  48. package/lib/resources/query/builder.d.ts +2 -1
  49. package/lib/resources/query/expressions/base.d.ts +1 -0
  50. package/lib/resources/query/expressions/compute.d.ts +3 -2
  51. package/lib/resources/query/expressions/expand.d.ts +40 -12
  52. package/lib/resources/query/expressions/filter.d.ts +22 -21
  53. package/lib/resources/query/expressions/orderby.d.ts +4 -2
  54. package/lib/resources/query/expressions/search.d.ts +5 -2
  55. package/lib/resources/query/expressions/select.d.ts +3 -2
  56. package/lib/resources/query/expressions/syntax.d.ts +12 -2
  57. package/lib/resources/query/handlers.d.ts +19 -15
  58. package/lib/resources/query/options.d.ts +15 -15
  59. package/lib/resources/resource.d.ts +1 -0
  60. package/lib/resources/responses/annotations.d.ts +12 -18
  61. package/lib/resources/responses/options.d.ts +2 -3
  62. package/lib/resources/responses/response.d.ts +1 -3
  63. package/lib/resources/types/entity-set.d.ts +1 -1
  64. package/lib/resources/types/function.d.ts +3 -0
  65. package/lib/schema/callable.d.ts +4 -4
  66. package/lib/schema/enum-type.d.ts +10 -4
  67. package/lib/schema/parsers/callable.d.ts +9 -7
  68. package/lib/schema/parsers/enum-type.d.ts +7 -5
  69. package/lib/schema/parsers/structured-type.d.ts +7 -7
  70. package/lib/schema/structured-type.d.ts +4 -4
  71. package/lib/types.d.ts +6 -5
  72. package/package.json +3 -3
package/lib/helper.d.ts CHANGED
@@ -17,81 +17,52 @@ export interface ODataVersionHelper {
17
17
  ODATA_ANNOTATION_PREFIX: string;
18
18
  ODATA_FUNCTION_PREFIX: string;
19
19
  ODATA_ID: string;
20
+ ODATA_TYPE: string;
20
21
  ODATA_COUNT: string;
21
22
  ODATA_ETAG: string;
22
23
  ODATA_CONTEXT: string;
23
24
  ODATA_MEDIA_ETAG: string;
24
25
  entity(value: {
25
- [name: string]: any;
26
+ [key: string]: any;
26
27
  }): any;
27
28
  entities(value: {
28
- [name: string]: any;
29
+ [key: string]: any;
29
30
  }): any;
30
31
  property(value: {
31
- [name: string]: any;
32
+ [key: string]: any;
32
33
  }): any;
33
34
  annotations(value: {
34
- [name: string]: any;
35
- }): {
36
- [name: string]: any;
37
- };
35
+ [key: string]: any;
36
+ }): Map<string, any>;
38
37
  attributes(value: {
39
- [name: string]: any;
38
+ [key: string]: any;
40
39
  }, metadata: ODataMetadataType): any;
41
- id(value: {
42
- [name: string]: any;
43
- }, id?: string): string | undefined;
44
- etag(value: {
45
- [name: string]: any;
46
- }, etag?: string): string | undefined;
47
- type(value: {
48
- [name: string]: any;
49
- }, type?: string): string | undefined;
50
- count(value: {
51
- [name: string]: any;
52
- }): number | undefined;
53
- context(value: {
54
- [name: string]: any;
40
+ context(annots: Map<string, any> | {
41
+ [key: string]: any;
55
42
  }): ODataContext;
56
- functions(value: {
57
- [name: string]: any;
58
- }): {
59
- [name: string]: any;
60
- };
61
- properties(value: {
62
- [name: string]: any;
63
- }): {
64
- [name: string]: any;
65
- };
66
- mediaEtag(value: {
67
- [name: string]: any;
68
- }): string | undefined;
69
- metadataEtag(value: {
70
- [name: string]: any;
71
- }): string | undefined;
72
- nextLink(value: {
73
- [name: string]: any;
74
- }): string | undefined;
75
- readLink(value: {
76
- [name: string]: any;
77
- }): string | undefined;
78
- mediaReadLink(value: {
79
- [name: string]: any;
80
- }): string | undefined;
81
- editLink(value: {
82
- [name: string]: any;
83
- }): string | undefined;
84
- mediaEditLink(value: {
85
- [name: string]: any;
43
+ id(annots: Map<string, any> | {
44
+ [key: string]: any;
86
45
  }): string | undefined;
87
- mediaContentType(value: {
88
- [name: string]: any;
46
+ etag(annots: Map<string, any> | {
47
+ [key: string]: any;
89
48
  }): string | undefined;
90
- deltaLink(value: {
91
- [name: string]: any;
49
+ type(annots: Map<string, any> | {
50
+ [key: string]: any;
92
51
  }): string | undefined;
52
+ count(annots: Map<string, any>): number | undefined;
53
+ functions(annots: Map<string, any>): Map<string, any>;
54
+ properties(annots: Map<string, any>): Map<string, Map<string, any>>;
55
+ mediaEtag(annots: Map<string, any>): string | undefined;
56
+ metadataEtag(annots: Map<string, any>): string | undefined;
57
+ nextLink(annots: Map<string, any>): string | undefined;
58
+ readLink(annots: Map<string, any>): string | undefined;
59
+ mediaReadLink(annots: Map<string, any>): string | undefined;
60
+ editLink(annots: Map<string, any>): string | undefined;
61
+ mediaEditLink(annots: Map<string, any>): string | undefined;
62
+ mediaContentType(annots: Map<string, any>): string | undefined;
63
+ deltaLink(annots: Map<string, any>): string | undefined;
93
64
  countParam(): {
94
- [name: string]: string;
65
+ [key: string]: string;
95
66
  };
96
67
  }
97
68
  export declare const ODataHelper: {
@@ -110,8 +110,10 @@ export declare class ODataCollection<T, M extends ODataModel<T>> implements Iter
110
110
  [Symbol.iterator](): {
111
111
  next(): IteratorResult<M>;
112
112
  };
113
- filter(predicate: (m: M, index: number) => boolean): M[];
114
- find(predicate: (m: M, index: number) => boolean): M | undefined;
113
+ filter(predicate: (value: M, index: number, array: M[]) => unknown, thisArg?: any): M[];
114
+ map<U>(callbackfn: (value: M, index: number, array: M[]) => U, thisArg?: any): U[];
115
+ find(predicate: (value: M, index: number, obj: M[]) => unknown, thisArg?: any): M | undefined;
116
+ reduce<U>(callbackfn: (previousValue: U, currentValue: M, currentIndex: number, array: M[]) => U, initialValue: U): U;
115
117
  first(): M | undefined;
116
118
  last(): M | undefined;
117
119
  next(model: M): M | undefined;
@@ -15,15 +15,9 @@ export declare class ODataModel<T> {
15
15
  ODataModel<any> | ODataCollection<any, ODataModel<any>>,
16
16
  ODataModelField<any> | null
17
17
  ] | null;
18
- _attributes: {
19
- [name: string]: any;
20
- };
21
- _changes: {
22
- [name: string]: any;
23
- };
24
- _relations: {
25
- [name: string]: ODataModelRelation<any>;
26
- };
18
+ _attributes: Map<string, any>;
19
+ _changes: Map<string, any>;
20
+ _relations: Map<string, ODataModelRelation<any>>;
27
21
  _resource: ODataResource<T> | null;
28
22
  _annotations: ODataEntityAnnotations;
29
23
  _reset: boolean;
@@ -1,19 +1,12 @@
1
1
  import { Subscription } from 'rxjs';
2
2
  import { EntityKey, ODataEntitiesAnnotations, ODataEntityAnnotations, ODataEntityResource, ODataEntitySetResource, ODataNavigationPropertyResource, ODataPropertyResource, ODataQueryOptions, ODataQueryOptionsHandler, ODataResource, ODataSingletonResource } from '../resources';
3
3
  import { ODataEntitySet, ODataStructuredType, ODataStructuredTypeFieldParser } from '../schema';
4
- import { Options, OptionsHelper } from '../types';
4
+ import { OptionsHelper } from '../types';
5
5
  import type { ODataCollection } from './collection';
6
6
  import type { ODataModel } from './model';
7
7
  export declare type ODataModelEventType = 'change' | 'reset' | 'update' | 'destroy' | 'add' | 'remove' | 'invalid' | 'request' | 'sync' | 'attach';
8
8
  export declare class ODataModelEvent<T> {
9
9
  name: ODataModelEventType;
10
- bubbling: boolean;
11
- model?: ODataModel<T>;
12
- collection?: ODataCollection<T, ODataModel<T>>;
13
- chain: [
14
- ODataModel<any> | ODataCollection<any, ODataModel<any>>,
15
- string | number | null
16
- ][];
17
10
  value?: any;
18
11
  previous?: any;
19
12
  options?: any;
@@ -25,10 +18,19 @@ export declare class ODataModelEvent<T> {
25
18
  value?: any;
26
19
  options?: any;
27
20
  });
21
+ bubbling: boolean;
28
22
  stopPropagation(): void;
23
+ chain: [
24
+ ODataModel<any> | ODataCollection<any, ODataModel<any>>,
25
+ string | number | null
26
+ ][];
29
27
  push(model: ODataModel<any> | ODataCollection<any, ODataModel<any>>, track: string | number): void;
30
28
  visited(model: ODataModel<any> | ODataCollection<any, ODataModel<any>>): boolean;
31
29
  get path(): string;
30
+ model?: ODataModel<T>;
31
+ get currentModel(): ODataModel<any> | undefined;
32
+ collection?: ODataCollection<T, ODataModel<T>>;
33
+ get currentCollection(): ODataCollection<any, ODataModel<any>> | undefined;
32
34
  }
33
35
  export declare const BUBBLING: string[];
34
36
  export declare const INCLUDE_SHALLOW: {
@@ -114,9 +116,9 @@ export declare class ODataModelField<F> {
114
116
  navigation?: boolean;
115
117
  }): any;
116
118
  defaults(): any;
117
- deserialize(value: any, options?: Options): F;
118
- serialize(value: F, options?: Options): any;
119
- encode(value: F, options?: Options): any;
119
+ deserialize(value: any, options?: OptionsHelper): F;
120
+ serialize(value: F, options?: OptionsHelper): any;
121
+ encode(value: F, options?: OptionsHelper): any;
120
122
  resourceFactory<T, F>(base: ODataResource<T>): ODataNavigationPropertyResource<F> | ODataPropertyResource<F>;
121
123
  annotationsFactory(base: ODataEntityAnnotations): ODataEntityAnnotations | ODataEntitiesAnnotations;
122
124
  schemaFactory<T, F>(base: ODataStructuredType<T>): ODataStructuredType<F> | undefined;
package/lib/options.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ApiOptions, FetchPolicy, ODataMetadataType, ODataVersion, Options, OptionsHelper, QueryOptionNames } from './types';
1
+ import { ApiOptions, FetchPolicy, ODataMetadataType, ODataVersion, OptionsHelper, QueryOptionNames } from './types';
2
2
  export declare class ODataApiOptions implements ApiOptions, OptionsHelper {
3
3
  /**
4
4
  * Default OData version
@@ -7,7 +7,7 @@ export declare class ODataApiOptions implements ApiOptions, OptionsHelper {
7
7
  /**
8
8
  * Send enum as string in the request
9
9
  */
10
- stringAsEnum?: boolean;
10
+ stringAsEnum: boolean;
11
11
  /**
12
12
  * Strip metadata from the response
13
13
  */
@@ -75,12 +75,12 @@ export declare class ODataApiOptions implements ApiOptions, OptionsHelper {
75
75
  includeAnnotations?: string;
76
76
  };
77
77
  deleteRefBy: 'path' | 'id';
78
+ nonParenthesisForEmptyParameterFunction: boolean;
78
79
  constructor(config: ApiOptions);
79
80
  get helper(): import("./helper").ODataVersionHelper;
80
81
  }
81
82
  export declare class ODataParserOptions implements OptionsHelper {
82
83
  version: ODataVersion;
83
- stringAsEnum?: boolean;
84
- constructor(config: Options);
84
+ constructor(config: OptionsHelper);
85
85
  get helper(): import("./helper").ODataVersionHelper;
86
86
  }
@@ -32,6 +32,7 @@ export declare type ExpandOptions<T> = {
32
32
  filter?: Filter<T>;
33
33
  orderBy?: OrderBy<T>;
34
34
  top?: number;
35
+ skip?: number;
35
36
  levels?: number | 'max';
36
37
  count?: boolean | Filter<T>;
37
38
  expand?: Expand<T>;
@@ -90,7 +91,7 @@ export default function <T>({ select, search, skiptoken, format, top, skip, filt
90
91
  export declare function buildPathAndQuery<T>({ select, search, skiptoken, format, top, skip, filter, transform, orderBy, key, count, expand, action, func, aliases, escape, }?: Partial<QueryOptions<T>>): [string, {
91
92
  [name: string]: any;
92
93
  }];
93
- export declare function normalizeValue(value: Value, { aliases, escape }: {
94
+ export declare function normalizeValue(value: Value, { aliases, escape, }?: {
94
95
  aliases?: QueryCustomType[];
95
96
  escape?: boolean;
96
97
  }): any;
@@ -11,6 +11,7 @@ export declare abstract class Expression<T> implements Renderable {
11
11
  escape?: boolean | undefined;
12
12
  prefix?: string | undefined;
13
13
  }): string;
14
+ abstract clone(): Expression<T>;
14
15
  children(): Renderable[];
15
16
  length(): number;
16
17
  toJSON(): {
@@ -9,15 +9,16 @@ export declare class ComputeExpression<T> extends Expression<T> {
9
9
  });
10
10
  static e<T>(): ComputeExpression<T>;
11
11
  static s<T extends object>(): T;
12
- static compute<T extends object>(opts: (e: {
12
+ static compute<T extends object>(opts: (builder: {
13
13
  s: T;
14
14
  e: () => ComputeExpression<T>;
15
- }) => ComputeExpression<T>): ComputeExpression<T>;
15
+ }, current?: ComputeExpression<T>) => ComputeExpression<T>, current?: ComputeExpression<T>): ComputeExpression<T>;
16
16
  render({ aliases, escape, prefix, }?: {
17
17
  aliases?: QueryCustomType[] | undefined;
18
18
  escape?: boolean | undefined;
19
19
  prefix?: string | undefined;
20
20
  }): string;
21
+ clone(): ComputeExpression<unknown>;
21
22
  private _add;
22
23
  field<T extends object>(name: string, opts: (e: {
23
24
  o: ODataOperators<T>;
@@ -1,9 +1,16 @@
1
1
  import type { QueryCustomType } from '../builder';
2
2
  import { Expression } from './base';
3
- import { Renderable } from './syntax';
3
+ import { FilterConnector, FilterExpression } from './filter';
4
+ import { OrderByExpression } from './orderby';
5
+ import { SearchConnector, SearchExpression } from './search';
6
+ import { SelectExpression } from './select';
7
+ import { ODataFunctions, ODataOperators, Renderable } from './syntax';
4
8
  export declare class ExpandField<T> implements Renderable {
5
- protected field: Renderable;
6
- constructor(field: Renderable);
9
+ protected field: any;
10
+ private values;
11
+ constructor(field: any, values?: {
12
+ [name: string]: any;
13
+ });
7
14
  get [Symbol.toStringTag](): string;
8
15
  toJSON(): {
9
16
  field: any;
@@ -13,12 +20,32 @@ export declare class ExpandField<T> implements Renderable {
13
20
  escape?: boolean;
14
21
  prefix?: string;
15
22
  }): string;
16
- select(): void;
17
- filter(): void;
18
- levels(): void;
19
- orderBy(): void;
20
- top(): void;
21
- skip(): void;
23
+ clone(): ExpandField<unknown>;
24
+ select<T extends object>(opts: (builder: {
25
+ s: T;
26
+ e: () => SelectExpression<T>;
27
+ }, current?: SelectExpression<T>) => SelectExpression<T>): SelectExpression<T>;
28
+ expand<T extends object>(opts: (builder: {
29
+ s: T;
30
+ e: () => ExpandExpression<T>;
31
+ }, current?: ExpandExpression<T>) => ExpandExpression<T>): any;
32
+ filter<T extends object>(opts: (builder: {
33
+ s: T;
34
+ e: (connector?: FilterConnector) => FilterExpression<T>;
35
+ o: ODataOperators<T>;
36
+ f: ODataFunctions<T>;
37
+ }, current?: FilterExpression<T>) => FilterExpression<T>): any;
38
+ search<T extends object>(opts: (builder: {
39
+ e: (connector?: SearchConnector) => SearchExpression<T>;
40
+ }) => SearchExpression<T>): any;
41
+ orderBy<T extends object>(opts: (builder: {
42
+ s: T;
43
+ e: () => OrderByExpression<T>;
44
+ }, current?: OrderByExpression<T>) => OrderByExpression<T>): any;
45
+ skip(n: number): any;
46
+ top(n: number): any;
47
+ levels(n: number | 'max'): any;
48
+ private option;
22
49
  }
23
50
  export declare class ExpandExpression<T> extends Expression<T> {
24
51
  constructor({ children, }?: {
@@ -26,15 +53,16 @@ export declare class ExpandExpression<T> extends Expression<T> {
26
53
  });
27
54
  static e<T>(): ExpandExpression<T>;
28
55
  static s<T extends object>(): T;
29
- static expand<T extends object>(opts: (e: {
56
+ static expand<T extends object>(opts: (builder: {
30
57
  s: T;
31
58
  e: () => ExpandExpression<T>;
32
- }) => ExpandExpression<T>): ExpandExpression<T>;
59
+ }, current?: ExpandExpression<T>) => ExpandExpression<T>, current?: ExpandExpression<T>): ExpandExpression<T>;
33
60
  render({ aliases, escape, prefix, }?: {
34
61
  aliases?: QueryCustomType[] | undefined;
35
62
  escape?: boolean | undefined;
36
63
  prefix?: string | undefined;
37
64
  }): string;
65
+ clone(): ExpandExpression<unknown>;
38
66
  private _add;
39
- field<T extends object>(field: any, opts?: (e: ExpandField<keyof T>) => void): ExpandExpression<T>;
67
+ field<F>(field: F, opts?: (e: ExpandField<F>) => void): ExpandExpression<F>;
40
68
  }
@@ -2,7 +2,7 @@ import type { QueryCustomType } from '../builder';
2
2
  import { Expression } from './base';
3
3
  import { ODataFunctions, ODataOperators, Renderable } from './syntax';
4
4
  export declare type FilterConnector = 'and' | 'or';
5
- export declare class FilterExpression<T> extends Expression<T> {
5
+ export declare class FilterExpression<F> extends Expression<F> {
6
6
  private _connector;
7
7
  private _negated;
8
8
  constructor({ children, connector, negated, }?: {
@@ -12,12 +12,12 @@ export declare class FilterExpression<T> extends Expression<T> {
12
12
  });
13
13
  static s<T extends object>(): T;
14
14
  static e<T>(connector?: FilterConnector): FilterExpression<T>;
15
- static filter<T extends object>(opts: (e: {
15
+ static filter<T extends object>(opts: (builder: {
16
16
  s: T;
17
17
  e: (connector?: FilterConnector) => FilterExpression<T>;
18
18
  o: ODataOperators<T>;
19
19
  f: ODataFunctions<T>;
20
- }) => FilterExpression<T>): FilterExpression<T>;
20
+ }, current?: FilterExpression<T>) => FilterExpression<T>, current?: FilterExpression<T>): FilterExpression<T>;
21
21
  toJSON(): {
22
22
  children: any[];
23
23
  connector: FilterConnector;
@@ -30,29 +30,30 @@ export declare class FilterExpression<T> extends Expression<T> {
30
30
  escape?: boolean;
31
31
  prefix?: string;
32
32
  }): string;
33
+ clone(): FilterExpression<unknown>;
33
34
  private _add;
34
- or(exp: FilterExpression<T>): FilterExpression<T>;
35
- and(exp: FilterExpression<T>): FilterExpression<T>;
36
- not(exp: FilterExpression<T>): FilterExpression<T>;
37
- eq(left: any, right: any, normalize?: boolean): FilterExpression<T>;
38
- ne(left: any, right: any, normalize?: boolean): FilterExpression<T>;
39
- gt(left: any, right: any, normalize?: boolean): FilterExpression<T>;
40
- ge(left: any, right: any, normalize?: boolean): FilterExpression<T>;
41
- lt(left: any, right: any, normalize?: boolean): FilterExpression<T>;
42
- le(left: any, right: any, normalize?: boolean): FilterExpression<T>;
43
- has(left: any, right: any, normalize?: boolean): FilterExpression<T>;
44
- in(left: any, right: any, normalize?: boolean): FilterExpression<T>;
45
- contains(left: any, right: any, normalize?: boolean): FilterExpression<T>;
46
- startsWith(left: any, right: any, normalize?: boolean): FilterExpression<T>;
47
- endsWith(left: any, right: any, normalize?: boolean): FilterExpression<T>;
35
+ or(exp: FilterExpression<F>): FilterExpression<F>;
36
+ and(exp: FilterExpression<F>): FilterExpression<F>;
37
+ not(exp: FilterExpression<F>): FilterExpression<F>;
38
+ eq(left: any, right: any, normalize?: boolean): FilterExpression<F>;
39
+ ne(left: any, right: any, normalize?: boolean): FilterExpression<F>;
40
+ gt(left: any, right: any, normalize?: boolean): FilterExpression<F>;
41
+ ge(left: any, right: any, normalize?: boolean): FilterExpression<F>;
42
+ lt(left: any, right: any, normalize?: boolean): FilterExpression<F>;
43
+ le(left: any, right: any, normalize?: boolean): FilterExpression<F>;
44
+ has(left: any, right: any, normalize?: boolean): FilterExpression<F>;
45
+ in(left: any, right: any, normalize?: boolean): FilterExpression<F>;
46
+ contains(left: any, right: any, normalize?: boolean): FilterExpression<F>;
47
+ startsWith(left: any, right: any, normalize?: boolean): FilterExpression<F>;
48
+ endsWith(left: any, right: any, normalize?: boolean): FilterExpression<F>;
48
49
  any<N extends object>(left: N[], opts: (e: {
49
50
  s: N;
50
51
  e: (connector?: FilterConnector) => FilterExpression<N>;
51
- }) => FilterExpression<N>, alias?: string): FilterExpression<T>;
52
+ }) => FilterExpression<N>, alias?: string): FilterExpression<F>;
52
53
  all<N extends object>(left: N[], opts: (e: {
53
54
  s: N;
54
55
  e: (connector?: FilterConnector) => FilterExpression<N>;
55
- }) => FilterExpression<N>, alias?: string): FilterExpression<T>;
56
- isof(type: string): FilterExpression<T>;
57
- isof(left: T, type: string): FilterExpression<T>;
56
+ }) => FilterExpression<N>, alias?: string): FilterExpression<F>;
57
+ isof(type: string): FilterExpression<F>;
58
+ isof(left: F, type: string): FilterExpression<F>;
58
59
  }
@@ -15,6 +15,7 @@ export declare class OrderByField implements Renderable {
15
15
  escape?: boolean;
16
16
  prefix?: string;
17
17
  }): string;
18
+ clone(): OrderByField;
18
19
  }
19
20
  export declare class OrderByExpression<T> extends Expression<T> {
20
21
  constructor({ children, }?: {
@@ -22,16 +23,17 @@ export declare class OrderByExpression<T> extends Expression<T> {
22
23
  });
23
24
  static e<T>(): OrderByExpression<T>;
24
25
  static s<T extends object>(): T;
25
- static orderBy<T extends object>(opts: (e: {
26
+ static orderBy<T extends object>(opts: (builder: {
26
27
  s: T;
27
28
  e: () => OrderByExpression<T>;
28
- }) => OrderByExpression<T>): OrderByExpression<T>;
29
+ }, current?: OrderByExpression<T>) => OrderByExpression<T>, current?: OrderByExpression<T>): OrderByExpression<T>;
29
30
  private _add;
30
31
  render({ aliases, escape, prefix, }?: {
31
32
  aliases?: QueryCustomType[] | undefined;
32
33
  escape?: boolean | undefined;
33
34
  prefix?: string | undefined;
34
35
  }): string;
36
+ clone(): OrderByExpression<unknown>;
35
37
  ascending(field: any): OrderByExpression<T>;
36
38
  descending(field: any): OrderByExpression<T>;
37
39
  }
@@ -7,6 +7,7 @@ export declare class SearchTerm implements Renderable {
7
7
  constructor(value: string);
8
8
  get [Symbol.toStringTag](): string;
9
9
  toJSON(): {
10
+ $type: string;
10
11
  value: string;
11
12
  };
12
13
  render({ aliases, escape, prefix, }: {
@@ -14,6 +15,7 @@ export declare class SearchTerm implements Renderable {
14
15
  escape?: boolean;
15
16
  prefix?: string;
16
17
  }): string;
18
+ clone(): SearchTerm;
17
19
  }
18
20
  export declare class SearchExpression<T> extends Expression<T> {
19
21
  private _connector;
@@ -24,15 +26,16 @@ export declare class SearchExpression<T> extends Expression<T> {
24
26
  negated?: boolean;
25
27
  });
26
28
  static e<T>(connector?: SearchConnector): SearchExpression<T>;
27
- static search<T extends object>(opts: (e: {
29
+ static search<T extends object>(opts: (builder: {
28
30
  e: (connector?: SearchConnector) => SearchExpression<T>;
29
- }) => SearchExpression<T>): SearchExpression<T>;
31
+ }, current?: SearchExpression<T>) => SearchExpression<T>, current?: SearchExpression<T>): SearchExpression<T>;
30
32
  private _add;
31
33
  render({ aliases, escape, prefix, }?: {
32
34
  aliases?: QueryCustomType[] | undefined;
33
35
  escape?: boolean | undefined;
34
36
  prefix?: string | undefined;
35
37
  }): string;
38
+ clone(): SearchExpression<unknown>;
36
39
  toJSON(): {
37
40
  children: any[];
38
41
  connector: SearchConnector;
@@ -7,15 +7,16 @@ export declare class SelectExpression<T> extends Expression<T> {
7
7
  });
8
8
  static e<T>(): SelectExpression<T>;
9
9
  static s<T extends object>(): T;
10
- static select<T extends object>(opts: (e: {
10
+ static select<T extends object>(builder: (b: {
11
11
  s: T;
12
12
  e: () => SelectExpression<T>;
13
- }) => SelectExpression<T>): SelectExpression<T>;
13
+ }, c?: SelectExpression<T>) => SelectExpression<T>, current?: SelectExpression<T>): SelectExpression<T>;
14
14
  render({ aliases, escape, prefix, }?: {
15
15
  aliases?: QueryCustomType[] | undefined;
16
16
  escape?: boolean | undefined;
17
17
  prefix?: string | undefined;
18
18
  }): string;
19
+ clone(): SelectExpression<unknown>;
19
20
  private _add;
20
21
  field(field: any): SelectExpression<T>;
21
22
  }
@@ -7,12 +7,14 @@ export interface Renderable {
7
7
  }): string;
8
8
  toString(): string;
9
9
  toJSON(): any;
10
+ clone(): any;
10
11
  }
11
12
  export declare class Field<T extends object> implements ProxyHandler<T> {
12
13
  name: string;
13
14
  constructor(name?: string);
14
- static factory<T extends object>(): T;
15
- get(target: T, p: string | symbol): any;
15
+ static factory<T extends object>(name?: string): T;
16
+ get(target: T, key: string | symbol): any;
17
+ has(target: T, key: string): any;
16
18
  }
17
19
  export declare function render(value: any, { aliases, normalize, escape, prefix, }?: {
18
20
  aliases?: QueryCustomType[];
@@ -28,6 +30,7 @@ export declare class Function<T> implements Renderable {
28
30
  constructor(name: string, values: any[], normalize?: boolean, escape?: boolean);
29
31
  get [Symbol.toStringTag](): string;
30
32
  toJSON(): {
33
+ $type: string;
31
34
  name: string;
32
35
  values: any[];
33
36
  normalize: boolean;
@@ -37,6 +40,7 @@ export declare class Function<T> implements Renderable {
37
40
  escape?: boolean;
38
41
  prefix?: string;
39
42
  }): string;
43
+ clone(): Function<T>;
40
44
  }
41
45
  export declare class StringAndCollectionFunctions<T> {
42
46
  concat(field: any, value: any, normalize?: boolean): Function<T>;
@@ -97,6 +101,7 @@ export declare class Operator<T> implements Renderable {
97
101
  constructor(op: string, values: any[], normalize?: boolean);
98
102
  get [Symbol.toStringTag](): string;
99
103
  toJSON(): {
104
+ $type: string;
100
105
  op: string;
101
106
  values: any[];
102
107
  normalize: boolean;
@@ -106,6 +111,7 @@ export declare class Operator<T> implements Renderable {
106
111
  escape?: boolean;
107
112
  prefix?: string;
108
113
  }): string;
114
+ clone(): Operator<unknown>;
109
115
  }
110
116
  export declare class LogicalOperators<T> {
111
117
  eq(left: any, right: any, normalize?: boolean): Operator<unknown>;
@@ -131,6 +137,7 @@ export declare class Grouping<T> implements Renderable {
131
137
  constructor(group: Renderable);
132
138
  get [Symbol.toStringTag](): string;
133
139
  toJSON(): {
140
+ $type: string;
134
141
  group: any;
135
142
  };
136
143
  render({ aliases, escape, prefix, }: {
@@ -138,6 +145,7 @@ export declare class Grouping<T> implements Renderable {
138
145
  escape?: boolean;
139
146
  prefix?: string;
140
147
  }): string;
148
+ clone(): Grouping<unknown>;
141
149
  }
142
150
  export declare class Lambda<T> implements Renderable {
143
151
  protected op: string;
@@ -146,6 +154,7 @@ export declare class Lambda<T> implements Renderable {
146
154
  constructor(op: string, values: any[], alias?: string | undefined);
147
155
  get [Symbol.toStringTag](): string;
148
156
  toJSON(): {
157
+ $type: string;
149
158
  op: string;
150
159
  values: any[];
151
160
  alias: string | undefined;
@@ -155,6 +164,7 @@ export declare class Lambda<T> implements Renderable {
155
164
  escape?: boolean;
156
165
  prefix?: string;
157
166
  }): string;
167
+ clone(): Lambda<unknown>;
158
168
  }
159
169
  export declare class LambdaOperators<T> {
160
170
  any(field: T, value: any, alias?: string): Lambda<unknown>;