@squidcloud/client 1.0.87 → 1.0.88

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.
@@ -1,9 +1,8 @@
1
- import { BaseQueryBuilder, DocumentData, FieldName, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SnapshotEmitter } from '@squidcloud/common';
1
+ import { BaseQueryBuilder, DocumentData, FieldName, FieldSort, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SimpleCondition, SnapshotEmitter } from '@squidcloud/common';
2
2
  import { Observable } from 'rxjs';
3
3
  import { DocumentReference } from '../document-reference';
4
4
  import { QueryBuilder } from './query-builder.factory';
5
5
  import { Alias } from './query.types';
6
- type SimpleJoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, ReturnType extends Record<Alias, DocumentData>, LatestAlias extends Alias, RootAlias extends Alias> = Pick<JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>, 'join' | 'snapshot' | 'snapshots' | 'grouped' | 'dereference'>;
7
6
  type WithDocumentReferences<T extends Record<any, DocumentData>> = {
8
7
  [k in keyof T]: DocumentReference<Required<T>[k]>;
9
8
  };
@@ -61,6 +60,7 @@ export declare class JoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, Re
61
60
  * @returns The query builder
62
61
  */
63
62
  limit(limit: number): this;
63
+ getLimit(): number;
64
64
  /**
65
65
  * Adds a sort order to the query. You can add multiple sort orders to the query. The order in which you add them
66
66
  * determines the order in which they are applied.
@@ -83,11 +83,11 @@ export declare class JoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, Re
83
83
  right: keyof NewReturnType & FieldName;
84
84
  }, options: {
85
85
  leftAlias: LeftAlias;
86
- }): SimpleJoinQueryBuilder<Omit<Aliases, LeftAlias> & Record<LeftAlias, [...Aliases[LeftAlias], NewAlias]> & Record<NewAlias, []>, ReturnType & Partial<Record<NewAlias, NewReturnType>>, NewAlias, RootAlias>;
86
+ }): JoinQueryBuilder<Omit<Aliases, LeftAlias> & Record<LeftAlias, [...Aliases[LeftAlias], NewAlias]> & Record<NewAlias, []>, ReturnType & Partial<Record<NewAlias, NewReturnType>>, NewAlias, RootAlias>;
87
87
  join<NewAlias extends string, NewReturnType extends DocumentData>(queryBuilder: QueryBuilder<NewReturnType>, alias: Exclude<NewAlias, keyof ReturnType>, joinFields: {
88
88
  left: keyof Required<ReturnType>[LatestAlias] & FieldName;
89
89
  right: keyof NewReturnType & FieldName;
90
- }): SimpleJoinQueryBuilder<Omit<Aliases, LatestAlias> & Record<LatestAlias, [...Aliases[LatestAlias], NewAlias]> & Record<NewAlias, []>, ReturnType & Partial<Record<NewAlias, NewReturnType>>, NewAlias, RootAlias>;
90
+ }): JoinQueryBuilder<Omit<Aliases, LatestAlias> & Record<LatestAlias, [...Aliases[LatestAlias], NewAlias]> & Record<NewAlias, []>, ReturnType & Partial<Record<NewAlias, NewReturnType>>, NewAlias, RootAlias>;
91
91
  /** @inheritDoc */
92
92
  snapshot(): Promise<Array<WithDocumentReferences<ReturnType>>>;
93
93
  /** @inheritDoc */
@@ -96,6 +96,11 @@ export declare class JoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, Re
96
96
  grouped(): GroupedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
97
97
  /** @inheritDoc */
98
98
  dereference(): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
99
+ getSortOrders(): Array<FieldSort<any>>;
100
+ clone(): JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
101
+ addCompositeCondition(conditions: Array<SimpleCondition>): JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
102
+ flipSortOrder(): JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
103
+ extractData(data: WithDocumentReferences<ReturnType>): any;
99
104
  paginate(options?: Partial<PaginationOptions>): Pagination<WithDocumentReferences<ReturnType>>;
100
105
  }
101
106
  declare class DereferencedJoin<Aliases extends Record<Alias, Alias[]>, ReturnType extends Record<Alias, DocumentData>, RootAlias extends Alias, LatestAlias extends Alias> implements SnapshotEmitter<ReturnType>, HasGrouped {
@@ -107,7 +112,14 @@ declare class DereferencedJoin<Aliases extends Record<Alias, Alias[]>, ReturnTyp
107
112
  snapshot(): Promise<Array<ReturnType>>;
108
113
  /** @inheritDoc */
109
114
  snapshots(subscribe?: boolean): Observable<Array<ReturnType>>;
115
+ getSortOrders(): Array<FieldSort<any>>;
116
+ clone(): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
117
+ addCompositeCondition(conditions: Array<SimpleCondition>): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
118
+ flipSortOrder(): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
119
+ limit(limit: number): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
120
+ extractData(data: ReturnType): any;
110
121
  paginate(options?: Partial<PaginationOptions>): Pagination<ReturnType>;
122
+ getLimit(): number;
111
123
  }
112
124
  declare class GroupedJoin<Aliases extends Record<Alias, Alias[]>, ReturnType extends Record<Alias, DocumentData>, RootAlias extends Alias, LatestAlias extends Alias> implements SnapshotEmitter<Grouped<Aliases, WithDocumentReferences<ReturnType>, RootAlias>>, HasDereference {
113
125
  readonly joinQueryBuilder: JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
@@ -1,4 +1,4 @@
1
- import { BaseQueryBuilder, DocumentData, FieldName, FieldSort, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SnapshotEmitter } from '@squidcloud/common';
1
+ import { BaseQueryBuilder, DocumentData, FieldName, FieldSort, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SimpleCondition, SnapshotEmitter } from '@squidcloud/common';
2
2
  import { Observable } from 'rxjs';
3
3
  import { DocumentReference } from '../document-reference';
4
4
  /** A query builder that can be used to build a query that returns a list of documents. */
@@ -14,6 +14,7 @@ export declare class QueryBuilder<DocumentType extends DocumentData> extends Bas
14
14
  where(fieldName: (keyof DocumentType & FieldName) | string, operator: Operator | 'in' | 'not in', value: PrimitiveFieldType | Array<PrimitiveFieldType>): this;
15
15
  /** @inheritDoc */
16
16
  limit(limit: number): this;
17
+ getLimit(): number;
17
18
  /** @inheritDoc */
18
19
  sortBy(fieldName: keyof DocumentType & FieldName, asc?: boolean): this;
19
20
  private mergeConditions;
@@ -44,6 +45,11 @@ export declare class QueryBuilder<DocumentType extends DocumentData> extends Bas
44
45
  get hash(): string;
45
46
  /** @inheritDoc */
46
47
  dereference(): SnapshotEmitter<DocumentType>;
48
+ getSortOrders(): Array<FieldSort<any>>;
49
+ clone(): QueryBuilder<DocumentType>;
50
+ addCompositeCondition(conditions: Array<SimpleCondition>): QueryBuilder<DocumentType>;
51
+ flipSortOrder(): QueryBuilder<DocumentType>;
52
+ extractData(data: DocumentReference<DocumentType>): DocumentType;
47
53
  paginate(options?: Partial<PaginationOptions>): Pagination<DocumentReference<DocumentType>>;
48
54
  }
49
55
  /** Describes the changes to a query result. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squidcloud/client",
3
- "version": "1.0.87",
3
+ "version": "1.0.88",
4
4
  "description": "A typescript implementation of the Squid client",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",