@lenne.tech/nest-server 12.1.1 → 12.2.0
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/.claude/rules/architecture.md +1 -0
- package/.claude/rules/configurable-features.md +1 -0
- package/.claude/rules/package-management.md +16 -1
- package/.claude/rules/persistence.md +26 -0
- package/.claude/rules/testing.md +79 -14
- package/CLAUDE.md +2 -1
- package/FRAMEWORK-API.md +17 -2
- package/README.md +18 -0
- package/dist/core/common/interfaces/server-options.interface.d.ts +41 -0
- package/dist/core/common/interfaces/service-options.interface.d.ts +3 -0
- package/dist/core/common/persistence/core-persistence.module.js +12 -2
- package/dist/core/common/persistence/core-persistence.module.js.map +1 -1
- package/dist/core/common/persistence/data-source.runtime.js +4 -2
- package/dist/core/common/persistence/data-source.runtime.js.map +1 -1
- package/dist/core/common/persistence/data-store.interface.d.ts +24 -9
- package/dist/core/common/persistence/id-format.d.ts +2 -0
- package/dist/core/common/persistence/id-format.js +14 -0
- package/dist/core/common/persistence/id-format.js.map +1 -1
- package/dist/core/common/persistence/model-descriptor.interface.d.ts +6 -0
- package/dist/core/common/persistence/model-metadata.registry.d.ts +2 -1
- package/dist/core/common/persistence/model-metadata.registry.js +20 -2
- package/dist/core/common/persistence/model-metadata.registry.js.map +1 -1
- package/dist/core/common/persistence/mongo/sync-schema.plugin.d.ts +18 -0
- package/dist/core/common/persistence/mongo/sync-schema.plugin.js +368 -0
- package/dist/core/common/persistence/mongo/sync-schema.plugin.js.map +1 -0
- package/dist/core/common/persistence/mongoose-data-store.d.ts +19 -9
- package/dist/core/common/persistence/mongoose-data-store.js +107 -31
- package/dist/core/common/persistence/mongoose-data-store.js.map +1 -1
- package/dist/core/common/persistence/persisted-model.decorator.d.ts +3 -0
- package/dist/core/common/persistence/persisted-model.decorator.js +9 -0
- package/dist/core/common/persistence/persisted-model.decorator.js.map +1 -1
- package/dist/core/common/persistence/policies/sync.policy.d.ts +17 -0
- package/dist/core/common/persistence/policies/sync.policy.js +77 -0
- package/dist/core/common/persistence/policies/sync.policy.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-data-store.d.ts +12 -8
- package/dist/core/common/persistence/sql/mysql/mysql-data-store.js +82 -29
- package/dist/core/common/persistence/sql/mysql/mysql-data-store.js.map +1 -1
- package/dist/core/common/persistence/sql/mysql/mysql-schema.compiler.d.ts +10 -0
- package/dist/core/common/persistence/sql/mysql/mysql-schema.compiler.js +61 -4
- package/dist/core/common/persistence/sql/mysql/mysql-schema.compiler.js.map +1 -1
- package/dist/core/common/persistence/sql/mysql/mysql-schema.migrator.js +101 -4
- package/dist/core/common/persistence/sql/mysql/mysql-schema.migrator.js.map +1 -1
- package/dist/core/common/persistence/sql/postgres/postgres-schema.compiler.d.ts +10 -0
- package/dist/core/common/persistence/sql/postgres/postgres-schema.compiler.js +41 -2
- package/dist/core/common/persistence/sql/postgres/postgres-schema.compiler.js.map +1 -1
- package/dist/core/common/persistence/sql/postgres/postgres-schema.migrator.js +98 -10
- package/dist/core/common/persistence/sql/postgres/postgres-schema.migrator.js.map +1 -1
- package/dist/core/common/persistence/sql/sql-data-store.d.ts +38 -14
- package/dist/core/common/persistence/sql/sql-data-store.js +212 -38
- package/dist/core/common/persistence/sql/sql-data-store.js.map +1 -1
- package/dist/core/common/persistence/sql/sql-errors.d.ts +2 -1
- package/dist/core/common/persistence/sql/sql-errors.js +3 -1
- package/dist/core/common/persistence/sql/sql-errors.js.map +1 -1
- package/dist/core/common/persistence/sync-access.registry.d.ts +17 -0
- package/dist/core/common/persistence/sync-access.registry.js +8 -0
- package/dist/core/common/persistence/sync-access.registry.js.map +1 -0
- package/dist/core/common/persistence/sync-model.d.ts +29 -0
- package/dist/core/common/persistence/sync-model.js +138 -0
- package/dist/core/common/persistence/sync-model.js.map +1 -0
- package/dist/core/common/services/crud.service.d.ts +13 -1
- package/dist/core/common/services/crud.service.js +174 -16
- package/dist/core/common/services/crud.service.js.map +1 -1
- package/dist/core/modules/error-code/error-codes.d.ts +54 -0
- package/dist/core/modules/error-code/error-codes.js +48 -0
- package/dist/core/modules/error-code/error-codes.js.map +1 -1
- package/dist/core/modules/migrate/sql-migration.helper.d.ts +15 -1
- package/dist/core/modules/migrate/sql-migration.helper.js +90 -5
- package/dist/core/modules/migrate/sql-migration.helper.js.map +1 -1
- package/dist/core/modules/sync/core-sync-base.controller.d.ts +7 -0
- package/dist/core/modules/sync/core-sync-base.controller.js +44 -0
- package/dist/core/modules/sync/core-sync-base.controller.js.map +1 -0
- package/dist/core/modules/sync/core-sync-cursor.d.ts +19 -0
- package/dist/core/modules/sync/core-sync-cursor.js +77 -0
- package/dist/core/modules/sync/core-sync-cursor.js.map +1 -0
- package/dist/core/modules/sync/core-sync-hints.controller.d.ts +4 -0
- package/dist/core/modules/sync/core-sync-hints.controller.js +55 -0
- package/dist/core/modules/sync/core-sync-hints.controller.js.map +1 -0
- package/dist/core/modules/sync/core-sync-hints.service.d.ts +28 -0
- package/dist/core/modules/sync/core-sync-hints.service.js +155 -0
- package/dist/core/modules/sync/core-sync-hints.service.js.map +1 -0
- package/dist/core/modules/sync/core-sync-infrastructure.models.d.ts +2 -0
- package/dist/core/modules/sync/core-sync-infrastructure.models.js +17 -0
- package/dist/core/modules/sync/core-sync-infrastructure.models.js.map +1 -0
- package/dist/core/modules/sync/core-sync-mutation.store.d.ts +43 -0
- package/dist/core/modules/sync/core-sync-mutation.store.js +88 -0
- package/dist/core/modules/sync/core-sync-mutation.store.js.map +1 -0
- package/dist/core/modules/sync/core-sync-state.store.d.ts +18 -0
- package/dist/core/modules/sync/core-sync-state.store.js +64 -0
- package/dist/core/modules/sync/core-sync-state.store.js.map +1 -0
- package/dist/core/modules/sync/core-sync.constants.d.ts +28 -0
- package/dist/core/modules/sync/core-sync.constants.js +23 -0
- package/dist/core/modules/sync/core-sync.constants.js.map +1 -0
- package/dist/core/modules/sync/core-sync.controller.d.ts +8 -0
- package/dist/core/modules/sync/core-sync.controller.js +79 -0
- package/dist/core/modules/sync/core-sync.controller.js.map +1 -0
- package/dist/core/modules/sync/core-sync.decorators.d.ts +12 -0
- package/dist/core/modules/sync/core-sync.decorators.js +28 -0
- package/dist/core/modules/sync/core-sync.decorators.js.map +1 -0
- package/dist/core/modules/sync/core-sync.module.d.ts +16 -0
- package/dist/core/modules/sync/core-sync.module.js +50 -0
- package/dist/core/modules/sync/core-sync.module.js.map +1 -0
- package/dist/core/modules/sync/core-sync.resolver.d.ts +9 -0
- package/dist/core/modules/sync/core-sync.resolver.js +46 -0
- package/dist/core/modules/sync/core-sync.resolver.js.map +1 -0
- package/dist/core/modules/sync/core-sync.service.d.ts +142 -0
- package/dist/core/modules/sync/core-sync.service.js +1208 -0
- package/dist/core/modules/sync/core-sync.service.js.map +1 -0
- package/dist/core/modules/sync/interfaces/core-sync.interfaces.d.ts +56 -0
- package/dist/core/modules/sync/interfaces/core-sync.interfaces.js +2 -0
- package/dist/core/modules/sync/interfaces/core-sync.interfaces.js.map +1 -0
- package/dist/core/modules/sync/models/core-sync-hint.model.d.ts +4 -0
- package/dist/core/modules/sync/models/core-sync-hint.model.js +30 -0
- package/dist/core/modules/sync/models/core-sync-hint.model.js.map +1 -0
- package/dist/core/modules/tenant/core-tenant.guard.js +4 -0
- package/dist/core/modules/tenant/core-tenant.guard.js.map +1 -1
- package/dist/core.module.js +14 -0
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/server/modules/error-code/error-codes.d.ts +6 -0
- package/dist/server/modules/sync-note/inputs/sync-note-create.input.d.ts +4 -0
- package/dist/server/modules/sync-note/inputs/sync-note-create.input.js +27 -0
- package/dist/server/modules/sync-note/inputs/sync-note-create.input.js.map +1 -0
- package/dist/server/modules/sync-note/inputs/sync-note.input.d.ts +6 -0
- package/dist/server/modules/sync-note/inputs/sync-note.input.js +37 -0
- package/dist/server/modules/sync-note/inputs/sync-note.input.js.map +1 -0
- package/dist/server/modules/sync-note/sync-note.model.d.ts +10 -0
- package/dist/server/modules/sync-note/sync-note.model.js +73 -0
- package/dist/server/modules/sync-note/sync-note.model.js.map +1 -0
- package/dist/server/modules/sync-note/sync-note.module.d.ts +2 -0
- package/dist/server/modules/sync-note/sync-note.module.js +21 -0
- package/dist/server/modules/sync-note/sync-note.module.js.map +1 -0
- package/dist/server/modules/sync-note/sync-note.service.d.ts +10 -0
- package/dist/server/modules/sync-note/sync-note.service.js +35 -0
- package/dist/server/modules/sync-note/sync-note.service.js.map +1 -0
- package/docs/REQUEST-LIFECYCLE.md +1 -0
- package/docs/offline-sync-protocol.md +96 -62
- package/docs/security-overrides.md +14 -0
- package/migration-guides/12.1.x-to-12.2.x.md +154 -0
- package/package.json +4 -2
- package/src/core/common/interfaces/server-options.interface.ts +149 -0
- package/src/core/common/interfaces/service-options.interface.ts +15 -0
- package/src/core/common/persistence/core-persistence.module.ts +21 -2
- package/src/core/common/persistence/data-source.runtime.ts +5 -2
- package/src/core/common/persistence/data-store.interface.ts +65 -12
- package/src/core/common/persistence/id-format.ts +26 -0
- package/src/core/common/persistence/model-descriptor.interface.ts +12 -0
- package/src/core/common/persistence/model-metadata.registry.ts +31 -2
- package/src/core/common/persistence/mongo/sync-schema.plugin.ts +508 -0
- package/src/core/common/persistence/mongoose-data-store.ts +171 -35
- package/src/core/common/persistence/persisted-model.decorator.ts +26 -0
- package/src/core/common/persistence/policies/sync.policy.ts +121 -0
- package/src/core/common/persistence/sql/mysql/mysql-data-store.ts +108 -30
- package/src/core/common/persistence/sql/mysql/mysql-schema.compiler.ts +107 -4
- package/src/core/common/persistence/sql/mysql/mysql-schema.migrator.ts +129 -3
- package/src/core/common/persistence/sql/postgres/postgres-schema.compiler.ts +74 -2
- package/src/core/common/persistence/sql/postgres/postgres-schema.migrator.ts +139 -7
- package/src/core/common/persistence/sql/sql-data-store.ts +325 -44
- package/src/core/common/persistence/sql/sql-errors.ts +5 -1
- package/src/core/common/persistence/sync-access.registry.ts +50 -0
- package/src/core/common/persistence/sync-model.ts +270 -0
- package/src/core/common/services/crud.service.ts +257 -19
- package/src/core/modules/error-code/error-codes.ts +59 -0
- package/src/core/modules/migrate/sql-migration.helper.ts +141 -7
- package/src/core/modules/sync/INTEGRATION-CHECKLIST.md +95 -0
- package/src/core/modules/sync/README.md +188 -0
- package/src/core/modules/sync/SECURITY.md +65 -0
- package/src/core/modules/sync/core-sync-base.controller.ts +43 -0
- package/src/core/modules/sync/core-sync-cursor.ts +117 -0
- package/src/core/modules/sync/core-sync-hints.controller.ts +52 -0
- package/src/core/modules/sync/core-sync-hints.service.ts +178 -0
- package/src/core/modules/sync/core-sync-infrastructure.models.ts +40 -0
- package/src/core/modules/sync/core-sync-mutation.store.ts +146 -0
- package/src/core/modules/sync/core-sync-state.store.ts +89 -0
- package/src/core/modules/sync/core-sync.constants.ts +51 -0
- package/src/core/modules/sync/core-sync.controller.ts +68 -0
- package/src/core/modules/sync/core-sync.decorators.ts +84 -0
- package/src/core/modules/sync/core-sync.module.ts +75 -0
- package/src/core/modules/sync/core-sync.resolver.ts +35 -0
- package/src/core/modules/sync/core-sync.service.ts +1728 -0
- package/src/core/modules/sync/interfaces/core-sync.interfaces.ts +85 -0
- package/src/core/modules/sync/models/core-sync-hint.model.ts +18 -0
- package/src/core/modules/tenant/core-tenant.guard.ts +8 -0
- package/src/core.module.ts +25 -0
- package/src/index.ts +21 -0
- package/src/server/modules/sync-note/inputs/sync-note-create.input.ts +14 -0
- package/src/server/modules/sync-note/inputs/sync-note.input.ts +23 -0
- package/src/server/modules/sync-note/sync-note.model.ts +77 -0
- package/src/server/modules/sync-note/sync-note.module.ts +16 -0
- package/src/server/modules/sync-note/sync-note.service.ts +25 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { HttpException, Logger, OnApplicationBootstrap, OnModuleDestroy, Type } from '@nestjs/common';
|
|
2
|
+
import { DiscoveryService, ModuleRef } from '@nestjs/core';
|
|
3
|
+
import type { ISync } from '../../common/interfaces/server-options.interface.js';
|
|
4
|
+
import type { DataStore } from '../../common/persistence/data-store.interface.js';
|
|
5
|
+
import type { LockStore } from '../../common/persistence/lock-store.interface.js';
|
|
6
|
+
import { type SyncAccessListener, type SyncRecordChange, type SyncRecordMove } from '../../common/persistence/sync-access.registry.js';
|
|
7
|
+
import { type SyncConflictStrategy, type SyncIdFormat, type SyncOperationRoles } from '../../common/persistence/sync-model.js';
|
|
8
|
+
import { CoreRedisService } from '../../common/services/core-redis.service.js';
|
|
9
|
+
import { CrudService } from '../../common/services/crud.service.js';
|
|
10
|
+
import { RateLimitStore } from '../../common/services/rate-limit-store.js';
|
|
11
|
+
import { CoreSyncHintService, type SyncHintEvent } from './core-sync-hints.service.js';
|
|
12
|
+
import { type SyncCursorPosition, type SyncCursorState } from './core-sync-cursor.js';
|
|
13
|
+
import { getSyncServiceOptions, type SyncFieldStrategy } from './core-sync.decorators.js';
|
|
14
|
+
import { CoreSyncMutationStore } from './core-sync-mutation.store.js';
|
|
15
|
+
import { CoreSyncStateStore } from './core-sync-state.store.js';
|
|
16
|
+
import type { ISyncPullResult, ISyncPushItem, ISyncPushResult, ISyncRecord, SyncResyncReason } from './interfaces/core-sync.interfaces.js';
|
|
17
|
+
export declare class SyncResyncRequiredException extends HttpException {
|
|
18
|
+
readonly reason: SyncResyncReason;
|
|
19
|
+
constructor(reason: SyncResyncReason);
|
|
20
|
+
}
|
|
21
|
+
export interface SyncModelRegistration {
|
|
22
|
+
createInput: Type<any>;
|
|
23
|
+
fieldStrategies: Readonly<Record<string, SyncFieldStrategy>>;
|
|
24
|
+
idFormat: SyncIdFormat;
|
|
25
|
+
model: Type<any>;
|
|
26
|
+
name: string;
|
|
27
|
+
order: 'clock' | 'seq';
|
|
28
|
+
roles: Readonly<Required<SyncOperationRoles>>;
|
|
29
|
+
scope: readonly string[];
|
|
30
|
+
service: CrudService<any>;
|
|
31
|
+
store: DataStore<any>;
|
|
32
|
+
strategy: SyncConflictStrategy;
|
|
33
|
+
tenantScoped: boolean;
|
|
34
|
+
updateInput: Type<any>;
|
|
35
|
+
}
|
|
36
|
+
interface SyncAccessState {
|
|
37
|
+
epochs: string;
|
|
38
|
+
fingerprint: string;
|
|
39
|
+
user: string;
|
|
40
|
+
}
|
|
41
|
+
export declare class CoreSyncService implements OnApplicationBootstrap, OnModuleDestroy, SyncAccessListener {
|
|
42
|
+
protected readonly discoveryService: DiscoveryService;
|
|
43
|
+
protected readonly moduleRef: ModuleRef;
|
|
44
|
+
protected readonly redisService?: CoreRedisService;
|
|
45
|
+
protected readonly hintService?: CoreSyncHintService;
|
|
46
|
+
protected readonly logger: Logger;
|
|
47
|
+
protected readonly models: Map<string, SyncModelRegistration>;
|
|
48
|
+
protected readonly mutationStore: CoreSyncMutationStore;
|
|
49
|
+
protected readonly stateStore: CoreSyncStateStore;
|
|
50
|
+
protected cursorKey?: Buffer;
|
|
51
|
+
protected rateLimitStore?: RateLimitStore;
|
|
52
|
+
protected purgeTimer?: ReturnType<typeof setInterval>;
|
|
53
|
+
protected purgeRunning?: Promise<unknown>;
|
|
54
|
+
protected readonly purgeOwner: string;
|
|
55
|
+
protected purgeIntervalMs: number;
|
|
56
|
+
constructor(mutations: DataStore<any>, states: DataStore<any>, discoveryService: DiscoveryService, moduleRef: ModuleRef, redisService?: CoreRedisService, hintService?: CoreSyncHintService);
|
|
57
|
+
protected get config(): ISync;
|
|
58
|
+
onApplicationBootstrap(): Promise<void>;
|
|
59
|
+
onModuleDestroy(): Promise<void>;
|
|
60
|
+
getModels(): ReadonlyMap<string, SyncModelRegistration>;
|
|
61
|
+
protected resolveCursorSecret(): string;
|
|
62
|
+
protected discoverModels(): SyncModelRegistration[];
|
|
63
|
+
protected resolveRegistration(service: unknown, options: NonNullable<ReturnType<typeof getSyncServiceOptions>>): SyncModelRegistration;
|
|
64
|
+
protected registration(model: string): SyncModelRegistration;
|
|
65
|
+
pull(model: string, query: {
|
|
66
|
+
cursor?: unknown;
|
|
67
|
+
limit?: unknown;
|
|
68
|
+
}, currentUser: any): Promise<ISyncPullResult>;
|
|
69
|
+
protected continuedCursor(registration: SyncModelRegistration, cursor: unknown, access: SyncAccessState): Promise<SyncCursorState>;
|
|
70
|
+
protected pullLimit(value: unknown): number;
|
|
71
|
+
protected readClock(registration: SyncModelRegistration): Promise<{
|
|
72
|
+
now: number;
|
|
73
|
+
windowMs: number;
|
|
74
|
+
}>;
|
|
75
|
+
protected readPositions(registration: SyncModelRegistration, position: SyncCursorPosition, count: number): Promise<any[]>;
|
|
76
|
+
protected comparePositions(registration: SyncModelRegistration, a: any, b: any): number;
|
|
77
|
+
protected readContents(registration: SyncModelRegistration, ids: string[], currentUser: any): Promise<Map<string, any>>;
|
|
78
|
+
protected readSystemFields(registration: SyncModelRegistration, ids: string[]): Promise<Map<string, any>>;
|
|
79
|
+
protected systemFields(registration: SyncModelRegistration): string[];
|
|
80
|
+
protected positionOf(registration: SyncModelRegistration, raw: any): SyncCursorPosition;
|
|
81
|
+
protected toSyncRecord(registration: SyncModelRegistration, record: any, raw: any, currentUser: any): ISyncRecord | undefined;
|
|
82
|
+
protected accessState(registration: SyncModelRegistration, currentUser: any): Promise<SyncAccessState>;
|
|
83
|
+
push(model: string, body: unknown, currentUser: any): Promise<{
|
|
84
|
+
results: ISyncPushResult[];
|
|
85
|
+
}>;
|
|
86
|
+
protected pushItems(body: unknown): ISyncPushItem[];
|
|
87
|
+
protected pushItem(registration: SyncModelRegistration, item: ISyncPushItem, currentUser: any): Promise<ISyncPushResult>;
|
|
88
|
+
protected repeatedResult(registration: SyncModelRegistration, item: ISyncPushItem, outcome: {
|
|
89
|
+
code?: string;
|
|
90
|
+
status: string;
|
|
91
|
+
version?: number;
|
|
92
|
+
}, currentUser: any): Promise<ISyncPushResult>;
|
|
93
|
+
protected applyItem(registration: SyncModelRegistration, item: ISyncPushItem, currentUser: any): Promise<ISyncPushResult>;
|
|
94
|
+
protected applyCreate(registration: SyncModelRegistration, item: ISyncPushItem, currentUser: any): Promise<ISyncPushResult>;
|
|
95
|
+
protected applyUpdate(registration: SyncModelRegistration, item: ISyncPushItem, currentUser: any): Promise<ISyncPushResult>;
|
|
96
|
+
protected resolveUpdateConflict(registration: SyncModelRegistration, item: ISyncPushItem, input: Record<string, unknown>, currentUser: any): Promise<ISyncPushResult>;
|
|
97
|
+
protected applyDelete(registration: SyncModelRegistration, item: ISyncPushItem, current: ISyncRecord | undefined, currentUser: any): Promise<ISyncPushResult>;
|
|
98
|
+
protected applyCustom(registration: SyncModelRegistration, item: ISyncPushItem, currentUser: any): Promise<ISyncPushResult>;
|
|
99
|
+
protected reapply(registration: SyncModelRegistration, item: ISyncPushItem, input: Record<string, unknown>, status: 'applied' | 'merged', currentUser: any): Promise<ISyncPushResult>;
|
|
100
|
+
protected reapplyDelete(registration: SyncModelRegistration, item: ISyncPushItem, currentUser: any): Promise<ISyncPushResult>;
|
|
101
|
+
protected currentConflict(registration: SyncModelRegistration, item: ISyncPushItem, currentUser: any): Promise<ISyncPushResult>;
|
|
102
|
+
protected update(registration: SyncModelRegistration, id: string, input: Record<string, unknown>, expectedVersion: number, currentUser: any): Promise<unknown>;
|
|
103
|
+
protected remove(registration: SyncModelRegistration, id: string, expectedVersion: number, currentUser: any): Promise<unknown>;
|
|
104
|
+
protected findVisible(registration: SyncModelRegistration, id: string, currentUser: any): Promise<ISyncRecord | undefined>;
|
|
105
|
+
protected validateInput(inputType: Type<any>, data: unknown): Promise<Record<string, unknown>>;
|
|
106
|
+
protected writeFailure(registration: SyncModelRegistration, item: ISyncPushItem, error: unknown, currentUser: any): Promise<ISyncPushResult>;
|
|
107
|
+
rateLimit(kind: 'pull' | 'push', currentUser: any): Promise<number | undefined>;
|
|
108
|
+
protected getRateLimitStore(): RateLimitStore;
|
|
109
|
+
assertPushRequest(request: any): void;
|
|
110
|
+
protected isTrustedOrigin(origin: string): boolean;
|
|
111
|
+
bumpAccessEpoch(model: string, tenantId: string | undefined, userId?: string): Promise<void>;
|
|
112
|
+
recordMoved(move: SyncRecordMove): Promise<void>;
|
|
113
|
+
tenantInvalidated(tenantId: string): Promise<void>;
|
|
114
|
+
advanceHorizon(model: string, at: Date): Promise<void>;
|
|
115
|
+
recordChanged(change: SyncRecordChange): void;
|
|
116
|
+
notifyChange(model: string, tenantIds?: readonly string[]): void;
|
|
117
|
+
hintsEnabled(channel: 'graphql' | 'sse'): boolean;
|
|
118
|
+
protected hintFilter(currentUser: any, models?: readonly string[]): Promise<(hint: SyncHintEvent) => boolean>;
|
|
119
|
+
protected hintPayload(hint: SyncHintEvent): {
|
|
120
|
+
at: Date;
|
|
121
|
+
model: string;
|
|
122
|
+
};
|
|
123
|
+
openHintStream(request: any, response: any, currentUser: any, models?: readonly string[]): Promise<void>;
|
|
124
|
+
hintIterator(currentUser: any, models?: readonly string[]): Promise<AsyncIterableIterator<{
|
|
125
|
+
syncHint: {
|
|
126
|
+
at: Date;
|
|
127
|
+
model: string;
|
|
128
|
+
};
|
|
129
|
+
}>>;
|
|
130
|
+
protected tombstoneDays(): false | number;
|
|
131
|
+
protected schedulePurge(): void;
|
|
132
|
+
protected leasedPurge(): Promise<void>;
|
|
133
|
+
protected purgeLeaseStore(): Promise<LockStore | undefined>;
|
|
134
|
+
purgeTombstones(options?: {
|
|
135
|
+
before?: Date;
|
|
136
|
+
model?: string;
|
|
137
|
+
}): Promise<Record<string, number>>;
|
|
138
|
+
protected purgeModel(registration: SyncModelRegistration, before: Date): Promise<number>;
|
|
139
|
+
protected resync(reason: SyncResyncReason): never;
|
|
140
|
+
protected storeCall<T>(call: () => Promise<T>): Promise<T>;
|
|
141
|
+
}
|
|
142
|
+
export {};
|