@squidcloud/local-backend 1.0.67 → 1.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/src/ai-assistant.context.d.ts +13 -13
- package/dist/common/src/ai-assistant.context.js +19 -19
- package/dist/common/src/ai-assistant.schemas.d.ts +243 -243
- package/dist/common/src/ai-assistant.schemas.js +210 -210
- package/dist/common/src/ai-assistant.types.d.ts +85 -90
- package/dist/common/src/ai-assistant.types.js +11 -11
- package/dist/common/src/ai-assistant.types.js.map +1 -1
- package/dist/common/src/api-call.context.d.ts +13 -13
- package/dist/common/src/api-call.context.js +16 -16
- package/dist/common/src/api.types.d.ts +23 -23
- package/dist/common/src/api.types.js +2 -2
- package/dist/common/src/application.schemas.d.ts +1312 -1312
- package/dist/common/src/application.schemas.js +860 -860
- package/dist/common/src/application.types.d.ts +186 -186
- package/dist/common/src/application.types.js +89 -89
- package/dist/common/src/backend-function.schemas.d.ts +3 -3
- package/dist/common/src/backend-function.schemas.js +12 -12
- package/dist/common/src/backend-function.types.d.ts +6 -6
- package/dist/common/src/backend-function.types.js +2 -2
- package/dist/common/src/backend-run.types.d.ts +54 -54
- package/dist/common/src/backend-run.types.js +96 -96
- package/dist/common/src/bundle-api.types.d.ts +63 -63
- package/dist/common/src/bundle-api.types.js +2 -2
- package/dist/common/src/bundle-data.types.d.ts +59 -59
- package/dist/common/src/bundle-data.types.js +2 -2
- package/dist/common/src/communication.types.d.ts +18 -18
- package/dist/common/src/communication.types.js +40 -40
- package/dist/common/src/context.types.d.ts +24 -24
- package/dist/common/src/context.types.js +2 -2
- package/dist/common/src/distributed-lock.context.d.ts +5 -5
- package/dist/common/src/distributed-lock.context.js +10 -10
- package/dist/common/src/document.types.d.ts +32 -32
- package/dist/common/src/document.types.js +50 -50
- package/dist/common/src/graphql.context.d.ts +14 -14
- package/dist/common/src/graphql.context.js +12 -12
- package/dist/common/src/graphql.types.d.ts +11 -11
- package/dist/common/src/graphql.types.js +34 -34
- package/dist/common/src/heartbeat.types.d.ts +4 -4
- package/dist/common/src/heartbeat.types.js +16 -16
- package/dist/common/src/http-status.enum.d.ts +50 -50
- package/dist/common/src/http-status.enum.js +54 -54
- package/dist/common/src/index.d.ts +55 -55
- package/dist/common/src/index.js +71 -71
- package/dist/common/src/integrations/ai_assistant.types.d.ts +26 -24
- package/dist/common/src/integrations/ai_assistant.types.js +2 -2
- package/dist/common/src/integrations/api.types.d.ts +80 -80
- package/dist/common/src/integrations/api.types.js +2 -2
- package/dist/common/src/integrations/auth.types.d.ts +39 -39
- package/dist/common/src/integrations/auth.types.js +2 -2
- package/dist/common/src/integrations/database.types.d.ts +231 -231
- package/dist/common/src/integrations/database.types.js +2 -2
- package/dist/common/src/integrations/index.d.ts +126 -124
- package/dist/common/src/integrations/index.js +113 -111
- package/dist/common/src/integrations/index.js.map +1 -1
- package/dist/common/src/integrations/observability.types.d.ts +23 -23
- package/dist/common/src/integrations/observability.types.js +23 -23
- package/dist/common/src/logger.types.d.ts +21 -21
- package/dist/common/src/logger.types.js +11 -11
- package/dist/common/src/metrics.types.d.ts +73 -73
- package/dist/common/src/metrics.types.js +11 -11
- package/dist/common/src/mutation.context.d.ts +13 -13
- package/dist/common/src/mutation.context.js +26 -26
- package/dist/common/src/mutation.schemas.d.ts +5 -5
- package/dist/common/src/mutation.schemas.js +114 -114
- package/dist/common/src/mutation.types.d.ts +63 -63
- package/dist/common/src/mutation.types.js +142 -142
- package/dist/common/src/named-query.context.d.ts +4 -4
- package/dist/common/src/named-query.context.js +9 -9
- package/dist/common/src/named-query.schemas.d.ts +3 -3
- package/dist/common/src/named-query.schemas.js +13 -13
- package/dist/common/src/named-query.types.d.ts +8 -8
- package/dist/common/src/named-query.types.js +2 -2
- package/dist/common/src/query/base-query-builder.d.ts +37 -37
- package/dist/common/src/query/base-query-builder.js +36 -36
- package/dist/common/src/query/index.d.ts +4 -4
- package/dist/common/src/query/index.js +20 -20
- package/dist/common/src/query/pagination.d.ts +42 -42
- package/dist/common/src/query/pagination.js +164 -164
- package/dist/common/src/query/query-context.d.ts +47 -47
- package/dist/common/src/query/query-context.js +159 -159
- package/dist/common/src/query/serialized-query.types.d.ts +24 -24
- package/dist/common/src/query/serialized-query.types.js +2 -2
- package/dist/common/src/query.types.d.ts +86 -86
- package/dist/common/src/query.types.js +153 -153
- package/dist/common/src/regions.d.ts +21 -21
- package/dist/common/src/regions.js +46 -46
- package/dist/common/src/schema/schema.types.d.ts +30 -30
- package/dist/common/src/schema/schema.types.js +172 -172
- package/dist/common/src/secret.schemas.d.ts +6 -6
- package/dist/common/src/secret.schemas.js +38 -38
- package/dist/common/src/secret.types.d.ts +49 -49
- package/dist/common/src/secret.types.js +5 -5
- package/dist/common/src/security.types.d.ts +3 -3
- package/dist/common/src/security.types.js +2 -2
- package/dist/common/src/socket.schemas.d.ts +3 -3
- package/dist/common/src/socket.schemas.js +58 -58
- package/dist/common/src/socket.types.d.ts +112 -112
- package/dist/common/src/socket.types.js +2 -2
- package/dist/common/src/time-units.d.ts +5 -5
- package/dist/common/src/time-units.js +8 -8
- package/dist/common/src/trigger.types.d.ts +15 -15
- package/dist/common/src/trigger.types.js +2 -2
- package/dist/common/src/types.d.ts +21 -21
- package/dist/common/src/types.js +2 -2
- package/dist/common/src/utils/array.d.ts +8 -8
- package/dist/common/src/utils/array.js +54 -54
- package/dist/common/src/utils/assert.d.ts +8 -8
- package/dist/common/src/utils/assert.js +49 -49
- package/dist/common/src/utils/error.d.ts +4 -4
- package/dist/common/src/utils/error.js +10 -10
- package/dist/common/src/utils/global.utils.d.ts +10 -10
- package/dist/common/src/utils/global.utils.js +46 -46
- package/dist/common/src/utils/http.d.ts +2 -2
- package/dist/common/src/utils/http.js +41 -41
- package/dist/common/src/utils/id.d.ts +2 -2
- package/dist/common/src/utils/id.js +21 -21
- package/dist/common/src/utils/lock.manager.d.ts +9 -9
- package/dist/common/src/utils/lock.manager.js +39 -39
- package/dist/common/src/utils/nullish.d.ts +2 -2
- package/dist/common/src/utils/nullish.js +11 -11
- package/dist/common/src/utils/object.d.ts +5 -5
- package/dist/common/src/utils/object.js +75 -75
- package/dist/common/src/utils/serialization.d.ts +6 -6
- package/dist/common/src/utils/serialization.js +77 -77
- package/dist/common/src/utils/transforms.d.ts +18 -18
- package/dist/common/src/utils/transforms.js +92 -92
- package/dist/common/src/utils/url.d.ts +1 -1
- package/dist/common/src/utils/url.js +15 -15
- package/dist/common/src/utils/validation.d.ts +17 -17
- package/dist/common/src/utils/validation.js +209 -209
- package/dist/common/src/webhook-response.d.ts +6 -6
- package/dist/common/src/webhook-response.js +2 -2
- package/dist/common/src/websocket.impl.d.ts +21 -21
- package/dist/common/src/websocket.impl.js +76 -76
- package/dist/internal-common/src/async-queue.d.ts +4 -4
- package/dist/internal-common/src/async-queue.js +17 -17
- package/dist/internal-common/src/code-executor.types.d.ts +13 -13
- package/dist/internal-common/src/code-executor.types.js +2 -2
- package/dist/internal-common/src/dao.types.d.ts +46 -46
- package/dist/internal-common/src/dao.types.js +2 -2
- package/dist/internal-common/src/environment/environment.types.d.ts +74 -74
- package/dist/internal-common/src/environment/environment.types.js +2 -2
- package/dist/internal-common/src/environment/index.d.ts +6 -6
- package/dist/internal-common/src/environment/index.js +27 -27
- package/dist/internal-common/src/environment/local.environment.d.ts +2 -2
- package/dist/internal-common/src/environment/local.environment.js +62 -62
- package/dist/internal-common/src/filters/custom-exception.filter.d.ts +6 -6
- package/dist/internal-common/src/filters/custom-exception.filter.js +44 -44
- package/dist/internal-common/src/index.d.ts +14 -14
- package/dist/internal-common/src/index.js +32 -32
- package/dist/internal-common/src/interceptors/body.interceptor.d.ts +5 -5
- package/dist/internal-common/src/interceptors/body.interceptor.js +24 -24
- package/dist/internal-common/src/kafka/kafka.manager.d.ts +22 -22
- package/dist/internal-common/src/kafka/kafka.manager.js +129 -129
- package/dist/internal-common/src/kafka/kafka.types.d.ts +17 -17
- package/dist/internal-common/src/kafka/kafka.types.js +2 -2
- package/dist/internal-common/src/kafka-observability-publisher.d.ts +11 -11
- package/dist/internal-common/src/kafka-observability-publisher.js +20 -20
- package/dist/internal-common/src/local-dev.types.d.ts +35 -35
- package/dist/internal-common/src/local-dev.types.js +2 -2
- package/dist/internal-common/src/observability-publisher.d.ts +9 -9
- package/dist/internal-common/src/observability-publisher.js +58 -58
- package/dist/internal-common/src/observability.types.d.ts +17 -17
- package/dist/internal-common/src/observability.types.js +2 -2
- package/dist/internal-common/src/shutdown.manager.d.ts +20 -20
- package/dist/internal-common/src/shutdown.manager.js +75 -75
- package/dist/internal-common/src/utils.d.ts +5 -5
- package/dist/internal-common/src/utils.js +29 -29
- package/dist/local-backend/src/index.d.ts +4 -4
- package/dist/local-backend/src/index.js +20 -20
- package/dist/local-backend/src/local-backend-socket.service.d.ts +19 -19
- package/dist/local-backend/src/local-backend-socket.service.js +110 -110
- package/dist/local-backend/src/local-backend.app.d.ts +2 -2
- package/dist/local-backend/src/local-backend.app.js +19 -19
- package/dist/local-backend/src/local-backend.controller.d.ts +8 -8
- package/dist/local-backend/src/local-backend.controller.js +49 -49
- package/dist/local-backend/src/local-backend.module.d.ts +8 -8
- package/dist/local-backend/src/local-backend.module.js +53 -53
- package/dist/local-backend/src/local-backend.service.d.ts +15 -15
- package/dist/local-backend/src/local-backend.service.js +165 -165
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseQueryBuilder = void 0;
|
|
4
|
-
class BaseQueryBuilder {
|
|
5
|
-
eq(fieldName, value) {
|
|
6
|
-
return this.where(fieldName, '==', value);
|
|
7
|
-
}
|
|
8
|
-
neq(fieldName, value) {
|
|
9
|
-
return this.where(fieldName, '!=', value);
|
|
10
|
-
}
|
|
11
|
-
in(fieldName, value) {
|
|
12
|
-
return this.where(fieldName, 'in', value);
|
|
13
|
-
}
|
|
14
|
-
nin(fieldName, value) {
|
|
15
|
-
return this.where(fieldName, 'not in', value);
|
|
16
|
-
}
|
|
17
|
-
gt(fieldName, value) {
|
|
18
|
-
return this.where(fieldName, '>', value);
|
|
19
|
-
}
|
|
20
|
-
gte(fieldName, value) {
|
|
21
|
-
return this.where(fieldName, '>=', value);
|
|
22
|
-
}
|
|
23
|
-
lt(fieldName, value) {
|
|
24
|
-
return this.where(fieldName, '<', value);
|
|
25
|
-
}
|
|
26
|
-
lte(fieldName, value) {
|
|
27
|
-
return this.where(fieldName, '<=', value);
|
|
28
|
-
}
|
|
29
|
-
like(fieldName, pattern, caseSensitive) {
|
|
30
|
-
return this.where(fieldName, caseSensitive ? 'like_cs' : 'like', pattern);
|
|
31
|
-
}
|
|
32
|
-
notLike(fieldName, pattern, caseSensitive) {
|
|
33
|
-
return this.where(fieldName, caseSensitive ? 'not like_cs' : 'not like', pattern);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.BaseQueryBuilder = BaseQueryBuilder;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseQueryBuilder = void 0;
|
|
4
|
+
class BaseQueryBuilder {
|
|
5
|
+
eq(fieldName, value) {
|
|
6
|
+
return this.where(fieldName, '==', value);
|
|
7
|
+
}
|
|
8
|
+
neq(fieldName, value) {
|
|
9
|
+
return this.where(fieldName, '!=', value);
|
|
10
|
+
}
|
|
11
|
+
in(fieldName, value) {
|
|
12
|
+
return this.where(fieldName, 'in', value);
|
|
13
|
+
}
|
|
14
|
+
nin(fieldName, value) {
|
|
15
|
+
return this.where(fieldName, 'not in', value);
|
|
16
|
+
}
|
|
17
|
+
gt(fieldName, value) {
|
|
18
|
+
return this.where(fieldName, '>', value);
|
|
19
|
+
}
|
|
20
|
+
gte(fieldName, value) {
|
|
21
|
+
return this.where(fieldName, '>=', value);
|
|
22
|
+
}
|
|
23
|
+
lt(fieldName, value) {
|
|
24
|
+
return this.where(fieldName, '<', value);
|
|
25
|
+
}
|
|
26
|
+
lte(fieldName, value) {
|
|
27
|
+
return this.where(fieldName, '<=', value);
|
|
28
|
+
}
|
|
29
|
+
like(fieldName, pattern, caseSensitive) {
|
|
30
|
+
return this.where(fieldName, caseSensitive ? 'like_cs' : 'like', pattern);
|
|
31
|
+
}
|
|
32
|
+
notLike(fieldName, pattern, caseSensitive) {
|
|
33
|
+
return this.where(fieldName, caseSensitive ? 'not like_cs' : 'not like', pattern);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.BaseQueryBuilder = BaseQueryBuilder;
|
|
37
37
|
//# sourceMappingURL=base-query-builder.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './query-context';
|
|
2
|
-
export * from './base-query-builder';
|
|
3
|
-
export * from './serialized-query.types';
|
|
4
|
-
export * from './pagination';
|
|
1
|
+
export * from './query-context';
|
|
2
|
+
export * from './base-query-builder';
|
|
3
|
+
export * from './serialized-query.types';
|
|
4
|
+
export * from './pagination';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./query-context"), exports);
|
|
18
|
-
__exportStar(require("./base-query-builder"), exports);
|
|
19
|
-
__exportStar(require("./serialized-query.types"), exports);
|
|
20
|
-
__exportStar(require("./pagination"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./query-context"), exports);
|
|
18
|
+
__exportStar(require("./base-query-builder"), exports);
|
|
19
|
+
__exportStar(require("./serialized-query.types"), exports);
|
|
20
|
+
__exportStar(require("./pagination"), exports);
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import { SnapshotEmitter } from './base-query-builder';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
export interface PaginationState<ReturnType> {
|
|
4
|
-
data: Array<ReturnType>;
|
|
5
|
-
hasNext: boolean;
|
|
6
|
-
hasPrev: boolean;
|
|
7
|
-
}
|
|
8
|
-
export interface PaginationOptions {
|
|
9
|
-
subscribe: boolean;
|
|
10
|
-
pageSize: number;
|
|
11
|
-
}
|
|
12
|
-
interface InternalState<ReturnType> {
|
|
13
|
-
data: ReturnType[];
|
|
14
|
-
extractedData: any[];
|
|
15
|
-
numBefore: number;
|
|
16
|
-
numAfter: number;
|
|
17
|
-
}
|
|
18
|
-
export declare class Pagination<ReturnType> {
|
|
19
|
-
private readonly options;
|
|
20
|
-
private internalStateObserver;
|
|
21
|
-
private firstElement;
|
|
22
|
-
private lastElement;
|
|
23
|
-
private readonly isDestroyed;
|
|
24
|
-
private templateSnapshotEmitter;
|
|
25
|
-
private snapshotSubject;
|
|
26
|
-
private onFirstPage;
|
|
27
|
-
constructor(snapshotEmitter: SnapshotEmitter<ReturnType>, options?: Partial<PaginationOptions>);
|
|
28
|
-
private goToFirstPage;
|
|
29
|
-
private static compareValues;
|
|
30
|
-
private compare;
|
|
31
|
-
dataReceived(data: Array<ReturnType>): Promise<void>;
|
|
32
|
-
private doNewQuery;
|
|
33
|
-
private waitForInternalState;
|
|
34
|
-
private internalStateToState;
|
|
35
|
-
unsubscribe(): void;
|
|
36
|
-
prevInternal(internalState: InternalState<ReturnType>): void;
|
|
37
|
-
prev(): Promise<PaginationState<ReturnType>>;
|
|
38
|
-
next(): Promise<PaginationState<ReturnType>>;
|
|
39
|
-
waitForData(): Promise<PaginationState<ReturnType>>;
|
|
40
|
-
observeState(): Observable<PaginationState<ReturnType>>;
|
|
41
|
-
}
|
|
42
|
-
export {};
|
|
1
|
+
import { SnapshotEmitter } from './base-query-builder';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export interface PaginationState<ReturnType> {
|
|
4
|
+
data: Array<ReturnType>;
|
|
5
|
+
hasNext: boolean;
|
|
6
|
+
hasPrev: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface PaginationOptions {
|
|
9
|
+
subscribe: boolean;
|
|
10
|
+
pageSize: number;
|
|
11
|
+
}
|
|
12
|
+
interface InternalState<ReturnType> {
|
|
13
|
+
data: ReturnType[];
|
|
14
|
+
extractedData: any[];
|
|
15
|
+
numBefore: number;
|
|
16
|
+
numAfter: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class Pagination<ReturnType> {
|
|
19
|
+
private readonly options;
|
|
20
|
+
private internalStateObserver;
|
|
21
|
+
private firstElement;
|
|
22
|
+
private lastElement;
|
|
23
|
+
private readonly isDestroyed;
|
|
24
|
+
private templateSnapshotEmitter;
|
|
25
|
+
private snapshotSubject;
|
|
26
|
+
private onFirstPage;
|
|
27
|
+
constructor(snapshotEmitter: SnapshotEmitter<ReturnType>, options?: Partial<PaginationOptions>);
|
|
28
|
+
private goToFirstPage;
|
|
29
|
+
private static compareValues;
|
|
30
|
+
private compare;
|
|
31
|
+
dataReceived(data: Array<ReturnType>): Promise<void>;
|
|
32
|
+
private doNewQuery;
|
|
33
|
+
private waitForInternalState;
|
|
34
|
+
private internalStateToState;
|
|
35
|
+
unsubscribe(): void;
|
|
36
|
+
prevInternal(internalState: InternalState<ReturnType>): void;
|
|
37
|
+
prev(): Promise<PaginationState<ReturnType>>;
|
|
38
|
+
next(): Promise<PaginationState<ReturnType>>;
|
|
39
|
+
waitForData(): Promise<PaginationState<ReturnType>>;
|
|
40
|
+
observeState(): Observable<PaginationState<ReturnType>>;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -1,165 +1,165 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Pagination = void 0;
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const object_1 = require("../utils/object");
|
|
6
|
-
class Pagination {
|
|
7
|
-
constructor(snapshotEmitter, options = {}) {
|
|
8
|
-
this.internalStateObserver = new rxjs_1.BehaviorSubject(null);
|
|
9
|
-
this.firstElement = null;
|
|
10
|
-
this.lastElement = null;
|
|
11
|
-
this.isDestroyed = new rxjs_1.BehaviorSubject(false);
|
|
12
|
-
this.snapshotSubject = new rxjs_1.Subject();
|
|
13
|
-
this.onFirstPage = true;
|
|
14
|
-
this.snapshotSubject.pipe((0, rxjs_1.switchAll)()).subscribe((data) => this.dataReceived(data));
|
|
15
|
-
this.templateSnapshotEmitter = snapshotEmitter.clone();
|
|
16
|
-
this.options = Object.assign({ pageSize: 100, subscribe: true }, options);
|
|
17
|
-
this.goToFirstPage();
|
|
18
|
-
}
|
|
19
|
-
goToFirstPage() {
|
|
20
|
-
this.onFirstPage = true;
|
|
21
|
-
const firstPageSnapshot = this.templateSnapshotEmitter
|
|
22
|
-
.clone()
|
|
23
|
-
.limit(this.options.pageSize * 3)
|
|
24
|
-
.snapshots(this.options.subscribe);
|
|
25
|
-
this.snapshotSubject.next(firstPageSnapshot);
|
|
26
|
-
}
|
|
27
|
-
static compareValues(a, b) {
|
|
28
|
-
if (a > b) {
|
|
29
|
-
return 1;
|
|
30
|
-
}
|
|
31
|
-
else if (a < b) {
|
|
32
|
-
return -1;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return 0;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
compare(doc1, doc2) {
|
|
39
|
-
if (doc2 === null) {
|
|
40
|
-
return 1;
|
|
41
|
-
}
|
|
42
|
-
for (const so of this.templateSnapshotEmitter.getSortOrders()) {
|
|
43
|
-
const currentComparison = Pagination.compareValues((0, object_1.getInPath)(doc1, so.fieldName), (0, object_1.getInPath)(doc2, so.fieldName));
|
|
44
|
-
if (currentComparison !== 0) {
|
|
45
|
-
if (so.asc) {
|
|
46
|
-
return currentComparison;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
return -currentComparison;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return 0;
|
|
54
|
-
}
|
|
55
|
-
async dataReceived(data) {
|
|
56
|
-
const extractedData = data.map((s) => this.templateSnapshotEmitter.extractData(s));
|
|
57
|
-
if (data.length === 0) {
|
|
58
|
-
if (this.onFirstPage) {
|
|
59
|
-
this.internalStateObserver.next({ numBefore: 0, numAfter: 0, data, extractedData });
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
this.goToFirstPage();
|
|
63
|
-
}
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (this.firstElement === null && this.lastElement !== null) {
|
|
67
|
-
const numAfter = extractedData.filter((s) => this.compare(s, this.lastElement) === 1).length;
|
|
68
|
-
this.firstElement = extractedData[data.length - numAfter - this.options.pageSize];
|
|
69
|
-
this.lastElement = null;
|
|
70
|
-
}
|
|
71
|
-
const numBefore = extractedData.filter((s) => this.compare(s, this.firstElement) === -1).length;
|
|
72
|
-
const numAfter = Math.max(0, data.length - numBefore - this.options.pageSize);
|
|
73
|
-
if (numBefore === data.length) {
|
|
74
|
-
this.prevInternal({ numBefore, numAfter, data, extractedData });
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this.internalStateObserver.next({ numBefore, numAfter, data, extractedData });
|
|
78
|
-
}
|
|
79
|
-
doNewQuery(startingDoc, reverseOrder) {
|
|
80
|
-
this.onFirstPage = false;
|
|
81
|
-
if (reverseOrder) {
|
|
82
|
-
const newSnapshotEmitter = this.templateSnapshotEmitter
|
|
83
|
-
.clone()
|
|
84
|
-
.limit(this.options.pageSize * 3)
|
|
85
|
-
.flipSortOrder()
|
|
86
|
-
.addCompositeCondition(this.templateSnapshotEmitter.getSortOrders().map((sortOrder) => {
|
|
87
|
-
return {
|
|
88
|
-
fieldName: sortOrder.fieldName,
|
|
89
|
-
operator: sortOrder.asc ? '<=' : '>=',
|
|
90
|
-
value: (0, object_1.getInPath)(startingDoc, sortOrder.fieldName),
|
|
91
|
-
};
|
|
92
|
-
}));
|
|
93
|
-
this.snapshotSubject.next(newSnapshotEmitter.snapshots(this.options.subscribe).pipe((0, rxjs_1.map)((s) => s.reverse())));
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
const newSnapshotEmitter = this.templateSnapshotEmitter
|
|
97
|
-
.clone()
|
|
98
|
-
.limit(this.options.pageSize * 3)
|
|
99
|
-
.addCompositeCondition(this.templateSnapshotEmitter.getSortOrders().map((sortOrder) => {
|
|
100
|
-
return {
|
|
101
|
-
fieldName: sortOrder.fieldName,
|
|
102
|
-
operator: sortOrder.asc ? '>=' : '<=',
|
|
103
|
-
value: (0, object_1.getInPath)(startingDoc, sortOrder.fieldName),
|
|
104
|
-
};
|
|
105
|
-
}));
|
|
106
|
-
this.snapshotSubject.next(newSnapshotEmitter.snapshots(this.options.subscribe));
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
async waitForInternalState() {
|
|
110
|
-
const internalState = this.internalStateObserver.value;
|
|
111
|
-
if (internalState !== null) {
|
|
112
|
-
return internalState;
|
|
113
|
-
}
|
|
114
|
-
return await (0, rxjs_1.firstValueFrom)((0, rxjs_1.race)(this.isDestroyed.pipe((0, rxjs_1.filter)(Boolean), (0, rxjs_1.map)((_) => ({
|
|
115
|
-
data: [],
|
|
116
|
-
extractedData: [],
|
|
117
|
-
numBefore: 0,
|
|
118
|
-
numAfter: 0,
|
|
119
|
-
}))), this.internalStateObserver.pipe((0, rxjs_1.filter)((state) => state !== null), (0, rxjs_1.take)(1))));
|
|
120
|
-
}
|
|
121
|
-
internalStateToState(internalState) {
|
|
122
|
-
const { data, numBefore, numAfter, extractedData } = internalState;
|
|
123
|
-
return {
|
|
124
|
-
data: data
|
|
125
|
-
.filter((_, i) => this.compare(extractedData[i], this.firstElement) !== -1)
|
|
126
|
-
.slice(0, this.options.pageSize),
|
|
127
|
-
hasNext: numAfter > 0,
|
|
128
|
-
hasPrev: numBefore > 0,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
unsubscribe() {
|
|
132
|
-
this.isDestroyed.next(true);
|
|
133
|
-
this.isDestroyed.complete();
|
|
134
|
-
this.internalStateObserver.complete();
|
|
135
|
-
this.snapshotSubject.complete();
|
|
136
|
-
}
|
|
137
|
-
prevInternal(internalState) {
|
|
138
|
-
const { numBefore, numAfter, data, extractedData } = internalState;
|
|
139
|
-
this.firstElement = null;
|
|
140
|
-
this.lastElement = extractedData[numBefore - 1];
|
|
141
|
-
this.internalStateObserver.next(null);
|
|
142
|
-
this.doNewQuery(extractedData[extractedData.length - numAfter - 1], true);
|
|
143
|
-
}
|
|
144
|
-
async prev() {
|
|
145
|
-
this.prevInternal(await this.waitForInternalState());
|
|
146
|
-
return await this.waitForData();
|
|
147
|
-
}
|
|
148
|
-
async next() {
|
|
149
|
-
const { numBefore, extractedData } = await this.waitForInternalState();
|
|
150
|
-
this.firstElement = extractedData[numBefore + this.options.pageSize];
|
|
151
|
-
this.internalStateObserver.next(null);
|
|
152
|
-
this.doNewQuery(extractedData[numBefore], false);
|
|
153
|
-
return await this.waitForData();
|
|
154
|
-
}
|
|
155
|
-
async waitForData() {
|
|
156
|
-
return this.internalStateToState(await this.waitForInternalState());
|
|
157
|
-
}
|
|
158
|
-
observeState() {
|
|
159
|
-
return this.internalStateObserver.pipe((0, rxjs_1.filter)((state) => state !== null), (0, rxjs_1.map)((state) => {
|
|
160
|
-
return this.internalStateToState(state);
|
|
161
|
-
}));
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
exports.Pagination = Pagination;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Pagination = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const object_1 = require("../utils/object");
|
|
6
|
+
class Pagination {
|
|
7
|
+
constructor(snapshotEmitter, options = {}) {
|
|
8
|
+
this.internalStateObserver = new rxjs_1.BehaviorSubject(null);
|
|
9
|
+
this.firstElement = null;
|
|
10
|
+
this.lastElement = null;
|
|
11
|
+
this.isDestroyed = new rxjs_1.BehaviorSubject(false);
|
|
12
|
+
this.snapshotSubject = new rxjs_1.Subject();
|
|
13
|
+
this.onFirstPage = true;
|
|
14
|
+
this.snapshotSubject.pipe((0, rxjs_1.switchAll)()).subscribe((data) => this.dataReceived(data));
|
|
15
|
+
this.templateSnapshotEmitter = snapshotEmitter.clone();
|
|
16
|
+
this.options = Object.assign({ pageSize: 100, subscribe: true }, options);
|
|
17
|
+
this.goToFirstPage();
|
|
18
|
+
}
|
|
19
|
+
goToFirstPage() {
|
|
20
|
+
this.onFirstPage = true;
|
|
21
|
+
const firstPageSnapshot = this.templateSnapshotEmitter
|
|
22
|
+
.clone()
|
|
23
|
+
.limit(this.options.pageSize * 3)
|
|
24
|
+
.snapshots(this.options.subscribe);
|
|
25
|
+
this.snapshotSubject.next(firstPageSnapshot);
|
|
26
|
+
}
|
|
27
|
+
static compareValues(a, b) {
|
|
28
|
+
if (a > b) {
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
else if (a < b) {
|
|
32
|
+
return -1;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
compare(doc1, doc2) {
|
|
39
|
+
if (doc2 === null) {
|
|
40
|
+
return 1;
|
|
41
|
+
}
|
|
42
|
+
for (const so of this.templateSnapshotEmitter.getSortOrders()) {
|
|
43
|
+
const currentComparison = Pagination.compareValues((0, object_1.getInPath)(doc1, so.fieldName), (0, object_1.getInPath)(doc2, so.fieldName));
|
|
44
|
+
if (currentComparison !== 0) {
|
|
45
|
+
if (so.asc) {
|
|
46
|
+
return currentComparison;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return -currentComparison;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
55
|
+
async dataReceived(data) {
|
|
56
|
+
const extractedData = data.map((s) => this.templateSnapshotEmitter.extractData(s));
|
|
57
|
+
if (data.length === 0) {
|
|
58
|
+
if (this.onFirstPage) {
|
|
59
|
+
this.internalStateObserver.next({ numBefore: 0, numAfter: 0, data, extractedData });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.goToFirstPage();
|
|
63
|
+
}
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (this.firstElement === null && this.lastElement !== null) {
|
|
67
|
+
const numAfter = extractedData.filter((s) => this.compare(s, this.lastElement) === 1).length;
|
|
68
|
+
this.firstElement = extractedData[data.length - numAfter - this.options.pageSize];
|
|
69
|
+
this.lastElement = null;
|
|
70
|
+
}
|
|
71
|
+
const numBefore = extractedData.filter((s) => this.compare(s, this.firstElement) === -1).length;
|
|
72
|
+
const numAfter = Math.max(0, data.length - numBefore - this.options.pageSize);
|
|
73
|
+
if (numBefore === data.length) {
|
|
74
|
+
this.prevInternal({ numBefore, numAfter, data, extractedData });
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.internalStateObserver.next({ numBefore, numAfter, data, extractedData });
|
|
78
|
+
}
|
|
79
|
+
doNewQuery(startingDoc, reverseOrder) {
|
|
80
|
+
this.onFirstPage = false;
|
|
81
|
+
if (reverseOrder) {
|
|
82
|
+
const newSnapshotEmitter = this.templateSnapshotEmitter
|
|
83
|
+
.clone()
|
|
84
|
+
.limit(this.options.pageSize * 3)
|
|
85
|
+
.flipSortOrder()
|
|
86
|
+
.addCompositeCondition(this.templateSnapshotEmitter.getSortOrders().map((sortOrder) => {
|
|
87
|
+
return {
|
|
88
|
+
fieldName: sortOrder.fieldName,
|
|
89
|
+
operator: sortOrder.asc ? '<=' : '>=',
|
|
90
|
+
value: (0, object_1.getInPath)(startingDoc, sortOrder.fieldName),
|
|
91
|
+
};
|
|
92
|
+
}));
|
|
93
|
+
this.snapshotSubject.next(newSnapshotEmitter.snapshots(this.options.subscribe).pipe((0, rxjs_1.map)((s) => s.reverse())));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const newSnapshotEmitter = this.templateSnapshotEmitter
|
|
97
|
+
.clone()
|
|
98
|
+
.limit(this.options.pageSize * 3)
|
|
99
|
+
.addCompositeCondition(this.templateSnapshotEmitter.getSortOrders().map((sortOrder) => {
|
|
100
|
+
return {
|
|
101
|
+
fieldName: sortOrder.fieldName,
|
|
102
|
+
operator: sortOrder.asc ? '>=' : '<=',
|
|
103
|
+
value: (0, object_1.getInPath)(startingDoc, sortOrder.fieldName),
|
|
104
|
+
};
|
|
105
|
+
}));
|
|
106
|
+
this.snapshotSubject.next(newSnapshotEmitter.snapshots(this.options.subscribe));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async waitForInternalState() {
|
|
110
|
+
const internalState = this.internalStateObserver.value;
|
|
111
|
+
if (internalState !== null) {
|
|
112
|
+
return internalState;
|
|
113
|
+
}
|
|
114
|
+
return await (0, rxjs_1.firstValueFrom)((0, rxjs_1.race)(this.isDestroyed.pipe((0, rxjs_1.filter)(Boolean), (0, rxjs_1.map)((_) => ({
|
|
115
|
+
data: [],
|
|
116
|
+
extractedData: [],
|
|
117
|
+
numBefore: 0,
|
|
118
|
+
numAfter: 0,
|
|
119
|
+
}))), this.internalStateObserver.pipe((0, rxjs_1.filter)((state) => state !== null), (0, rxjs_1.take)(1))));
|
|
120
|
+
}
|
|
121
|
+
internalStateToState(internalState) {
|
|
122
|
+
const { data, numBefore, numAfter, extractedData } = internalState;
|
|
123
|
+
return {
|
|
124
|
+
data: data
|
|
125
|
+
.filter((_, i) => this.compare(extractedData[i], this.firstElement) !== -1)
|
|
126
|
+
.slice(0, this.options.pageSize),
|
|
127
|
+
hasNext: numAfter > 0,
|
|
128
|
+
hasPrev: numBefore > 0,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
unsubscribe() {
|
|
132
|
+
this.isDestroyed.next(true);
|
|
133
|
+
this.isDestroyed.complete();
|
|
134
|
+
this.internalStateObserver.complete();
|
|
135
|
+
this.snapshotSubject.complete();
|
|
136
|
+
}
|
|
137
|
+
prevInternal(internalState) {
|
|
138
|
+
const { numBefore, numAfter, data, extractedData } = internalState;
|
|
139
|
+
this.firstElement = null;
|
|
140
|
+
this.lastElement = extractedData[numBefore - 1];
|
|
141
|
+
this.internalStateObserver.next(null);
|
|
142
|
+
this.doNewQuery(extractedData[extractedData.length - numAfter - 1], true);
|
|
143
|
+
}
|
|
144
|
+
async prev() {
|
|
145
|
+
this.prevInternal(await this.waitForInternalState());
|
|
146
|
+
return await this.waitForData();
|
|
147
|
+
}
|
|
148
|
+
async next() {
|
|
149
|
+
const { numBefore, extractedData } = await this.waitForInternalState();
|
|
150
|
+
this.firstElement = extractedData[numBefore + this.options.pageSize];
|
|
151
|
+
this.internalStateObserver.next(null);
|
|
152
|
+
this.doNewQuery(extractedData[numBefore], false);
|
|
153
|
+
return await this.waitForData();
|
|
154
|
+
}
|
|
155
|
+
async waitForData() {
|
|
156
|
+
return this.internalStateToState(await this.waitForInternalState());
|
|
157
|
+
}
|
|
158
|
+
observeState() {
|
|
159
|
+
return this.internalStateObserver.pipe((0, rxjs_1.filter)((state) => state !== null), (0, rxjs_1.map)((state) => {
|
|
160
|
+
return this.internalStateToState(state);
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.Pagination = Pagination;
|
|
165
165
|
//# sourceMappingURL=pagination.js.map
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { IntegrationId } from '../communication.types';
|
|
2
|
-
import { CollectionName, DocumentData } from '../document.types';
|
|
3
|
-
import { FieldSort, Operator, Query, SimpleCondition } from '../query.types';
|
|
4
|
-
import { DeepRecord, FieldOf, PartialBy, Paths } from '../types';
|
|
5
|
-
export declare class QueryContext<T extends DocumentData = any> {
|
|
6
|
-
readonly query: Query<T>;
|
|
7
|
-
private readonly parsedConditions;
|
|
8
|
-
constructor(query: Query<T>);
|
|
9
|
-
get integrationId(): IntegrationId;
|
|
10
|
-
get collectionName(): CollectionName;
|
|
11
|
-
get limit(): number;
|
|
12
|
-
sortedBy(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
|
|
13
|
-
sortedByExact(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
|
|
14
|
-
isSubqueryOf<F extends Paths<T>, O extends AllOperators>(fieldName: F, operator: O, value: GenericValue<T, F, O> | null): boolean;
|
|
15
|
-
isSubqueryOfCondition(condition: GeneralCondition<T>): boolean;
|
|
16
|
-
isSubqueryOfConditions(conditions: GeneralConditions<T>): boolean;
|
|
17
|
-
isSubqueryOfQuery(query: Query<T>): boolean;
|
|
18
|
-
getConditionsFor<K extends Paths<T>>(...fieldNames: Array<K>): ContextConditions<T, K>;
|
|
19
|
-
getConditionsForField<K extends Paths<T>>(fieldName: K): ContextConditions<T>;
|
|
20
|
-
documentMatchesQuery(doc: DocumentData): boolean;
|
|
21
|
-
private evaluateSubset;
|
|
22
|
-
private evaluateIncludes;
|
|
23
|
-
private parseConditions;
|
|
24
|
-
}
|
|
25
|
-
type ContextConditions<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> = Array<ContextCondition<Doc, F>>;
|
|
26
|
-
type ContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> = InContextCondition<Doc, F> | NotInContextCondition<Doc, F> | OtherContextCondition<Doc, F>;
|
|
27
|
-
interface InContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, 'in'> {
|
|
28
|
-
operator: 'in';
|
|
29
|
-
value: Array<FieldOf<DeepRecord<Doc>, Paths<Doc>> | any>;
|
|
30
|
-
}
|
|
31
|
-
interface NotInContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, 'not in'> {
|
|
32
|
-
operator: 'not in';
|
|
33
|
-
value: Array<FieldOf<DeepRecord<Doc>, Paths<Doc>> | any>;
|
|
34
|
-
}
|
|
35
|
-
interface OtherContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, Exclude<ContextOperator, 'in' | 'not in'>> {
|
|
36
|
-
operator: Exclude<ContextOperator, 'in' | 'not in'>;
|
|
37
|
-
value: FieldOf<DeepRecord<Doc>, Paths<Doc>> | any;
|
|
38
|
-
}
|
|
39
|
-
interface GeneralCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, AllOperators> {
|
|
40
|
-
operator: AllOperators;
|
|
41
|
-
value: any;
|
|
42
|
-
}
|
|
43
|
-
type GeneralConditions<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> = Array<GeneralCondition<Doc, F>>;
|
|
44
|
-
type ContextOperator = Exclude<Operator, '==' | '!='> | 'in' | 'not in';
|
|
45
|
-
type AllOperators = Operator | 'in' | 'not in';
|
|
46
|
-
type GenericValue<Doc = any, F extends Paths<Doc> = Paths<Doc>, O extends AllOperators = any> = O extends 'in' ? Array<DeepRecord<Doc>[F]> | null : O extends 'not in' ? Array<DeepRecord<Doc>[F]> | null : DeepRecord<Doc>[F] | null;
|
|
47
|
-
export {};
|
|
1
|
+
import { IntegrationId } from '../communication.types';
|
|
2
|
+
import { CollectionName, DocumentData } from '../document.types';
|
|
3
|
+
import { FieldSort, Operator, Query, SimpleCondition } from '../query.types';
|
|
4
|
+
import { DeepRecord, FieldOf, PartialBy, Paths } from '../types';
|
|
5
|
+
export declare class QueryContext<T extends DocumentData = any> {
|
|
6
|
+
readonly query: Query<T>;
|
|
7
|
+
private readonly parsedConditions;
|
|
8
|
+
constructor(query: Query<T>);
|
|
9
|
+
get integrationId(): IntegrationId;
|
|
10
|
+
get collectionName(): CollectionName;
|
|
11
|
+
get limit(): number;
|
|
12
|
+
sortedBy(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
|
|
13
|
+
sortedByExact(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
|
|
14
|
+
isSubqueryOf<F extends Paths<T>, O extends AllOperators>(fieldName: F, operator: O, value: GenericValue<T, F, O> | null): boolean;
|
|
15
|
+
isSubqueryOfCondition(condition: GeneralCondition<T>): boolean;
|
|
16
|
+
isSubqueryOfConditions(conditions: GeneralConditions<T>): boolean;
|
|
17
|
+
isSubqueryOfQuery(query: Query<T>): boolean;
|
|
18
|
+
getConditionsFor<K extends Paths<T>>(...fieldNames: Array<K>): ContextConditions<T, K>;
|
|
19
|
+
getConditionsForField<K extends Paths<T>>(fieldName: K): ContextConditions<T>;
|
|
20
|
+
documentMatchesQuery(doc: DocumentData): boolean;
|
|
21
|
+
private evaluateSubset;
|
|
22
|
+
private evaluateIncludes;
|
|
23
|
+
private parseConditions;
|
|
24
|
+
}
|
|
25
|
+
type ContextConditions<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> = Array<ContextCondition<Doc, F>>;
|
|
26
|
+
type ContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> = InContextCondition<Doc, F> | NotInContextCondition<Doc, F> | OtherContextCondition<Doc, F>;
|
|
27
|
+
interface InContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, 'in'> {
|
|
28
|
+
operator: 'in';
|
|
29
|
+
value: Array<FieldOf<DeepRecord<Doc>, Paths<Doc>> | any>;
|
|
30
|
+
}
|
|
31
|
+
interface NotInContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, 'not in'> {
|
|
32
|
+
operator: 'not in';
|
|
33
|
+
value: Array<FieldOf<DeepRecord<Doc>, Paths<Doc>> | any>;
|
|
34
|
+
}
|
|
35
|
+
interface OtherContextCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, Exclude<ContextOperator, 'in' | 'not in'>> {
|
|
36
|
+
operator: Exclude<ContextOperator, 'in' | 'not in'>;
|
|
37
|
+
value: FieldOf<DeepRecord<Doc>, Paths<Doc>> | any;
|
|
38
|
+
}
|
|
39
|
+
interface GeneralCondition<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> extends SimpleCondition<Doc, F, AllOperators> {
|
|
40
|
+
operator: AllOperators;
|
|
41
|
+
value: any;
|
|
42
|
+
}
|
|
43
|
+
type GeneralConditions<Doc extends DocumentData = any, F extends Paths<Doc> = Paths<Doc>> = Array<GeneralCondition<Doc, F>>;
|
|
44
|
+
type ContextOperator = Exclude<Operator, '==' | '!='> | 'in' | 'not in';
|
|
45
|
+
type AllOperators = Operator | 'in' | 'not in';
|
|
46
|
+
type GenericValue<Doc = any, F extends Paths<Doc> = Paths<Doc>, O extends AllOperators = any> = O extends 'in' ? Array<DeepRecord<Doc>[F]> | null : O extends 'not in' ? Array<DeepRecord<Doc>[F]> | null : DeepRecord<Doc>[F] | null;
|
|
47
|
+
export {};
|