dexie-cloud-addon 4.2.4 → 4.2.5
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/dexie-cloud-import.json +2 -1
- package/dist/modern/dexie-cloud-addon.js +146 -168
- package/dist/modern/dexie-cloud-addon.js.map +1 -1
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/service-worker.js +146 -168
- package/dist/modern/service-worker.js.map +1 -1
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/modern/service-worker.min.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.js +1623 -2458
- package/dist/umd/dexie-cloud-addon.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.min.js +1 -1
- package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
- package/dist/umd/service-worker.js +2003 -2838
- package/dist/umd/service-worker.js.map +1 -1
- package/dist/umd/service-worker.min.js +1 -1
- package/dist/umd/service-worker.min.js.map +1 -1
- package/package.json +11 -8
- package/dist/umd/DISABLE_SERVICEWORKER_STRATEGY.d.ts +0 -1
- package/dist/umd/DXCWebSocketStatus.d.ts +0 -1
- package/dist/umd/DexieCloudAPI.d.ts +0 -75
- package/dist/umd/DexieCloudOptions.d.ts +0 -27
- package/dist/umd/DexieCloudSyncOptions.d.ts +0 -4
- package/dist/umd/DexieCloudTable.d.ts +0 -18
- package/dist/umd/InvalidLicenseError.d.ts +0 -5
- package/dist/umd/Invite.d.ts +0 -8
- package/dist/umd/PermissionChecker.d.ts +0 -15
- package/dist/umd/TSON.d.ts +0 -17
- package/dist/umd/WSObservable.d.ts +0 -72
- package/dist/umd/associate.d.ts +0 -1
- package/dist/umd/authentication/AuthPersistedContext.d.ts +0 -9
- package/dist/umd/authentication/TokenErrorResponseError.d.ts +0 -10
- package/dist/umd/authentication/TokenExpiredError.d.ts +0 -3
- package/dist/umd/authentication/UNAUTHORIZED_USER.d.ts +0 -2
- package/dist/umd/authentication/authenticate.d.ts +0 -13
- package/dist/umd/authentication/currentUserObservable.d.ts +0 -1
- package/dist/umd/authentication/interactWithUser.d.ts +0 -21
- package/dist/umd/authentication/login.d.ts +0 -3
- package/dist/umd/authentication/logout.d.ts +0 -5
- package/dist/umd/authentication/otpFetchTokenCallback.d.ts +0 -3
- package/dist/umd/authentication/setCurrentUser.d.ts +0 -14
- package/dist/umd/authentication/waitUntil.d.ts +0 -3
- package/dist/umd/computeSyncState.d.ts +0 -4
- package/dist/umd/createSharedValueObservable.d.ts +0 -3
- package/dist/umd/currentUserEmitter.d.ts +0 -3
- package/dist/umd/db/DexieCloudDB.d.ts +0 -61
- package/dist/umd/db/entities/BaseRevisionMapEntry.d.ts +0 -5
- package/dist/umd/db/entities/EntityCommon.d.ts +0 -5
- package/dist/umd/db/entities/GuardedJob.d.ts +0 -5
- package/dist/umd/db/entities/Member.d.ts +0 -19
- package/dist/umd/db/entities/PersistedSyncState.d.ts +0 -22
- package/dist/umd/db/entities/Realm.d.ts +0 -14
- package/dist/umd/db/entities/Role.d.ts +0 -11
- package/dist/umd/db/entities/UserLogin.d.ts +0 -23
- package/dist/umd/default-ui/Dialog.d.ts +0 -5
- package/dist/umd/default-ui/LoginDialog.d.ts +0 -3
- package/dist/umd/default-ui/Styles.d.ts +0 -3
- package/dist/umd/default-ui/index.d.ts +0 -24
- package/dist/umd/define-ydoc-trigger.d.ts +0 -3
- package/dist/umd/dexie-cloud-addon.d.ts +0 -3
- package/dist/umd/dexie-cloud-client.d.ts +0 -23
- package/dist/umd/errors/HttpError.d.ts +0 -5
- package/dist/umd/extend-dexie-interface.d.ts +0 -23
- package/dist/umd/getGlobalRolesObservable.d.ts +0 -5
- package/dist/umd/getInternalAccessControlObservable.d.ts +0 -12
- package/dist/umd/getInvitesObservable.d.ts +0 -23
- package/dist/umd/getPermissionsLookupObservable.d.ts +0 -16
- package/dist/umd/getTiedRealmId.d.ts +0 -2
- package/dist/umd/helpers/BroadcastedAndLocalEvent.d.ts +0 -8
- package/dist/umd/helpers/CancelToken.d.ts +0 -4
- package/dist/umd/helpers/IS_SERVICE_WORKER.d.ts +0 -1
- package/dist/umd/helpers/SWBroadcastChannel.d.ts +0 -12
- package/dist/umd/helpers/allSettled.d.ts +0 -1
- package/dist/umd/helpers/bulkUpdate.d.ts +0 -4
- package/dist/umd/helpers/computeRealmSetHash.d.ts +0 -2
- package/dist/umd/helpers/date-constants.d.ts +0 -5
- package/dist/umd/helpers/flatten.d.ts +0 -1
- package/dist/umd/helpers/getMutationTable.d.ts +0 -1
- package/dist/umd/helpers/getSyncableTables.d.ts +0 -4
- package/dist/umd/helpers/getTableFromMutationTable.d.ts +0 -1
- package/dist/umd/helpers/makeArray.d.ts +0 -1
- package/dist/umd/helpers/randomString.d.ts +0 -1
- package/dist/umd/helpers/resolveText.d.ts +0 -16
- package/dist/umd/helpers/throwVersionIncrementNeeded.d.ts +0 -1
- package/dist/umd/helpers/visibilityState.d.ts +0 -1
- package/dist/umd/isEagerSyncDisabled.d.ts +0 -2
- package/dist/umd/isFirefox.d.ts +0 -1
- package/dist/umd/isSafari.d.ts +0 -2
- package/dist/umd/mapValueObservable.d.ts +0 -5
- package/dist/umd/mergePermissions.d.ts +0 -2
- package/dist/umd/middleware-helpers/guardedTable.d.ts +0 -11
- package/dist/umd/middleware-helpers/idGenerationHelpers.d.ts +0 -18
- package/dist/umd/middlewares/createIdGenerationMiddleware.d.ts +0 -3
- package/dist/umd/middlewares/createImplicitPropSetterMiddleware.d.ts +0 -3
- package/dist/umd/middlewares/createMutationTrackingMiddleware.d.ts +0 -17
- package/dist/umd/middlewares/outstandingTransaction.d.ts +0 -4
- package/dist/umd/overrideParseStoresSpec.d.ts +0 -4
- package/dist/umd/performInitialSync.d.ts +0 -4
- package/dist/umd/permissions.d.ts +0 -9
- package/dist/umd/prodLog.d.ts +0 -9
- package/dist/umd/service-worker.d.ts +0 -1
- package/dist/umd/sync/DEXIE_CLOUD_SYNCER_ID.d.ts +0 -1
- package/dist/umd/sync/LocalSyncWorker.d.ts +0 -7
- package/dist/umd/sync/SyncRequiredError.d.ts +0 -3
- package/dist/umd/sync/applyServerChanges.d.ts +0 -3
- package/dist/umd/sync/connectWebSocket.d.ts +0 -2
- package/dist/umd/sync/encodeIdsForServer.d.ts +0 -4
- package/dist/umd/sync/extractRealm.d.ts +0 -2
- package/dist/umd/sync/getLatestRevisionsPerTable.d.ts +0 -6
- package/dist/umd/sync/getTablesToSyncify.d.ts +0 -3
- package/dist/umd/sync/isOnline.d.ts +0 -1
- package/dist/umd/sync/isSyncNeeded.d.ts +0 -2
- package/dist/umd/sync/listClientChanges.d.ts +0 -9
- package/dist/umd/sync/listSyncifiedChanges.d.ts +0 -5
- package/dist/umd/sync/messageConsumerIsReady.d.ts +0 -2
- package/dist/umd/sync/messagesFromServerQueue.d.ts +0 -8
- package/dist/umd/sync/modifyLocalObjectsWithNewUserId.d.ts +0 -4
- package/dist/umd/sync/myId.d.ts +0 -1
- package/dist/umd/sync/numUnsyncedMutations.d.ts +0 -2
- package/dist/umd/sync/old_startSyncingClientChanges.d.ts +0 -39
- package/dist/umd/sync/performGuardedJob.d.ts +0 -2
- package/dist/umd/sync/ratelimit.d.ts +0 -3
- package/dist/umd/sync/registerSyncEvent.d.ts +0 -3
- package/dist/umd/sync/sync.d.ts +0 -15
- package/dist/umd/sync/syncIfPossible.d.ts +0 -5
- package/dist/umd/sync/syncWithServer.d.ts +0 -6
- package/dist/umd/sync/triggerSync.d.ts +0 -2
- package/dist/umd/sync/updateBaseRevs.d.ts +0 -5
- package/dist/umd/types/DXCAlert.d.ts +0 -25
- package/dist/umd/types/DXCInputField.d.ts +0 -11
- package/dist/umd/types/DXCUserInteraction.d.ts +0 -93
- package/dist/umd/types/NewIdOptions.d.ts +0 -3
- package/dist/umd/types/SWMessageEvent.d.ts +0 -3
- package/dist/umd/types/SWSyncEvent.d.ts +0 -4
- package/dist/umd/types/SyncState.d.ts +0 -9
- package/dist/umd/types/TXExpandos.d.ts +0 -11
- package/dist/umd/updateSchemaFromOptions.d.ts +0 -3
- package/dist/umd/userIsActive.d.ts +0 -7
- package/dist/umd/verifyConfig.d.ts +0 -2
- package/dist/umd/verifySchema.d.ts +0 -2
- package/dist/umd/yjs/YDexieCloudSyncState.d.ts +0 -3
- package/dist/umd/yjs/YTable.d.ts +0 -3
- package/dist/umd/yjs/applyYMessages.d.ts +0 -9
- package/dist/umd/yjs/awareness.d.ts +0 -3
- package/dist/umd/yjs/createYClientUpdateObservable.d.ts +0 -4
- package/dist/umd/yjs/createYHandler.d.ts +0 -2
- package/dist/umd/yjs/downloadYDocsFromServer.d.ts +0 -3
- package/dist/umd/yjs/getUpdatesTable.d.ts +0 -3
- package/dist/umd/yjs/listUpdatesSince.d.ts +0 -3
- package/dist/umd/yjs/listYClientMessagesAndStateVector.d.ts +0 -26
- package/dist/umd/yjs/reopenDocSignal.d.ts +0 -10
- package/dist/umd/yjs/updateYSyncStates.d.ts +0 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dexie-cloud-addon",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.5",
|
|
4
4
|
"description": "Dexie addon that syncs with to Dexie Cloud",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "dist/modern/dexie-cloud-addon.min.js",
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
"author": "david.fahlander@gmail.com",
|
|
68
68
|
"license": "Apache-2.0",
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@rollup/plugin-commonjs": "^
|
|
71
|
-
"@rollup/plugin-node-resolve": "^
|
|
70
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
71
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
72
72
|
"@rollup/plugin-replace": "^5.0.4",
|
|
73
73
|
"@rollup/plugin-terser": "^0.4.4",
|
|
74
|
-
"@rollup/plugin-typescript": "^
|
|
74
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
75
75
|
"@types/node": "^18.11.18",
|
|
76
76
|
"dreambase-library": "^1.0.26",
|
|
77
77
|
"just-build": "*",
|
|
@@ -79,9 +79,12 @@
|
|
|
79
79
|
"karma-chrome-launcher": "*",
|
|
80
80
|
"karma-firefox-launcher": "*",
|
|
81
81
|
"karma-qunit": "*",
|
|
82
|
+
"karma-webdriver-launcher": "*",
|
|
83
|
+
"qunit": "2.10.0",
|
|
84
|
+
"qunitjs": "1.23.1",
|
|
82
85
|
"lib0": "^0.2.97",
|
|
83
86
|
"preact": "*",
|
|
84
|
-
"rollup": "^4.
|
|
87
|
+
"rollup": "^4.53.3",
|
|
85
88
|
"terser": "^5.20.0",
|
|
86
89
|
"tslib": "*",
|
|
87
90
|
"typescript": "^5.6.3",
|
|
@@ -91,11 +94,11 @@
|
|
|
91
94
|
"rxjs": "^7.x",
|
|
92
95
|
"yjs": "^13.6.27",
|
|
93
96
|
"y-protocols": "^1.0.6",
|
|
94
|
-
"
|
|
95
|
-
"dexie
|
|
97
|
+
"dexie-cloud-common": "^1.0.57",
|
|
98
|
+
"y-dexie": "^4.2.2"
|
|
96
99
|
},
|
|
97
100
|
"peerDependencies": {
|
|
98
|
-
"dexie": "^4.
|
|
101
|
+
"dexie": "^4.3.0"
|
|
99
102
|
},
|
|
100
103
|
"scripts": {
|
|
101
104
|
"test": "just-build test && pnpm run test-unit",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const DISABLE_SERVICEWORKER_STRATEGY: boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type DXCWebSocketStatus = "not-started" | "connecting" | "connected" | "disconnected" | "error";
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { DexieCloudOptions } from './DexieCloudOptions';
|
|
2
|
-
import { DBRealmRole, DexieCloudSchema } from 'dexie-cloud-common';
|
|
3
|
-
import { UserLogin } from './db/entities/UserLogin';
|
|
4
|
-
import { PersistedSyncState } from './db/entities/PersistedSyncState';
|
|
5
|
-
import { SyncState } from './types/SyncState';
|
|
6
|
-
import { DXCUserInteraction } from './types/DXCUserInteraction';
|
|
7
|
-
import { DXCWebSocketStatus } from './DXCWebSocketStatus';
|
|
8
|
-
import { PermissionChecker } from './PermissionChecker';
|
|
9
|
-
import { DexieCloudSyncOptions } from "./DexieCloudSyncOptions";
|
|
10
|
-
import { Invite } from './Invite';
|
|
11
|
-
import { BehaviorSubject, Observable } from 'rxjs';
|
|
12
|
-
/** The API of db.cloud, where `db` is an instance of Dexie with dexie-cloud-addon active.
|
|
13
|
-
*/
|
|
14
|
-
export interface LoginHints {
|
|
15
|
-
email?: string;
|
|
16
|
-
userId?: string;
|
|
17
|
-
grant_type?: 'demo' | 'otp';
|
|
18
|
-
otpId?: string;
|
|
19
|
-
otp?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface DexieCloudAPI {
|
|
22
|
-
version: string;
|
|
23
|
-
options: DexieCloudOptions | null;
|
|
24
|
-
schema: DexieCloudSchema | null;
|
|
25
|
-
currentUserId: string;
|
|
26
|
-
currentUser: BehaviorSubject<UserLogin>;
|
|
27
|
-
webSocketStatus: BehaviorSubject<DXCWebSocketStatus>;
|
|
28
|
-
syncState: BehaviorSubject<SyncState>;
|
|
29
|
-
persistedSyncState: BehaviorSubject<PersistedSyncState | undefined>;
|
|
30
|
-
events: {
|
|
31
|
-
syncComplete: Observable<void>;
|
|
32
|
-
};
|
|
33
|
-
userInteraction: BehaviorSubject<DXCUserInteraction | undefined>;
|
|
34
|
-
invites: Observable<Invite[]>;
|
|
35
|
-
roles: Observable<{
|
|
36
|
-
[roleName: string]: DBRealmRole;
|
|
37
|
-
}>;
|
|
38
|
-
usingServiceWorker?: boolean;
|
|
39
|
-
isServiceWorkerDB?: boolean;
|
|
40
|
-
/** Login using Dexie Cloud OTP or Demo user.
|
|
41
|
-
*
|
|
42
|
-
* @param email Email to authenticate
|
|
43
|
-
* @param userId Optional userId to authenticate
|
|
44
|
-
* @param grant_type requested grant type
|
|
45
|
-
*/
|
|
46
|
-
login(hint?: LoginHints): Promise<void>;
|
|
47
|
-
logout(options?: {
|
|
48
|
-
force?: boolean;
|
|
49
|
-
}): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Connect to given URL
|
|
52
|
-
*/
|
|
53
|
-
configure(options: DexieCloudOptions): void;
|
|
54
|
-
/** Trigger a sync
|
|
55
|
-
*
|
|
56
|
-
*/
|
|
57
|
-
sync(options?: DexieCloudSyncOptions): Promise<void>;
|
|
58
|
-
/** Method that returns an observable of the available permissions of given
|
|
59
|
-
* entity.
|
|
60
|
-
*
|
|
61
|
-
* @param entity Entity to check permission for
|
|
62
|
-
*/
|
|
63
|
-
permissions<T extends {
|
|
64
|
-
owner: string;
|
|
65
|
-
realmId: string;
|
|
66
|
-
table: () => string;
|
|
67
|
-
}>(entity: T): Observable<PermissionChecker<T>>;
|
|
68
|
-
/** Method that returns an observable of the available permissions of given
|
|
69
|
-
* object and table name.
|
|
70
|
-
*
|
|
71
|
-
* @param obj Object retrieved from a dexie query
|
|
72
|
-
* @param table Table name that the object was retrieved from
|
|
73
|
-
*/
|
|
74
|
-
permissions<T>(obj: T, table: string): Observable<PermissionChecker<T, string>>;
|
|
75
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { TokenFinalResponse } from 'dexie-cloud-common';
|
|
2
|
-
import type { LoginHints } from './DexieCloudAPI';
|
|
3
|
-
export interface PeriodicSyncOptions {
|
|
4
|
-
minInterval?: number;
|
|
5
|
-
}
|
|
6
|
-
export interface DexieCloudOptions {
|
|
7
|
-
databaseUrl: string;
|
|
8
|
-
requireAuth?: boolean | LoginHints;
|
|
9
|
-
tryUseServiceWorker?: boolean;
|
|
10
|
-
periodicSync?: PeriodicSyncOptions;
|
|
11
|
-
customLoginGui?: boolean;
|
|
12
|
-
unsyncedTables?: string[];
|
|
13
|
-
unsyncedProperties?: {
|
|
14
|
-
[tableName: string]: string[];
|
|
15
|
-
};
|
|
16
|
-
nameSuffix?: boolean;
|
|
17
|
-
disableWebSocket?: boolean;
|
|
18
|
-
disableEagerSync?: boolean;
|
|
19
|
-
fetchTokens?: (tokenParams: {
|
|
20
|
-
public_key: string;
|
|
21
|
-
hints?: {
|
|
22
|
-
userId?: string;
|
|
23
|
-
email?: string;
|
|
24
|
-
};
|
|
25
|
-
}) => Promise<TokenFinalResponse>;
|
|
26
|
-
awarenessProtocol?: typeof import('y-protocols/awareness');
|
|
27
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { EntityTable, InsertType } from 'dexie';
|
|
2
|
-
export interface DexieCloudEntity {
|
|
3
|
-
owner: string;
|
|
4
|
-
realmId: string;
|
|
5
|
-
}
|
|
6
|
-
/** Don't force the declaration of owner and realmId on every entity (some
|
|
7
|
-
* types may not be interested of these props if they are never going to be shared)
|
|
8
|
-
* Let the type system behave the same as the runtime and merge these props in automatically
|
|
9
|
-
* when declaring the table where the props aren't explicitely declared.
|
|
10
|
-
* User may also explicitely declare these props in order to manually set them when
|
|
11
|
-
* they are interested of taking control over access.
|
|
12
|
-
*/
|
|
13
|
-
type WithDexieCloudProps<T> = T extends DexieCloudEntity ? T : T & DexieCloudEntity;
|
|
14
|
-
/** Syntactic sugar for declaring a synced table of arbritary entity.
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
|
-
export type DexieCloudTable<T = any, TKeyPropName extends keyof T = never> = EntityTable<WithDexieCloudProps<T>, TKeyPropName, InsertType<WithDexieCloudProps<T>, TKeyPropName | 'owner' | 'realmId'>>;
|
|
18
|
-
export {};
|
package/dist/umd/Invite.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { KeyPaths } from 'dexie';
|
|
2
|
-
import { DBPermissionSet } from 'dexie-cloud-common';
|
|
3
|
-
type TableName<T> = T extends {
|
|
4
|
-
table: () => infer TABLE;
|
|
5
|
-
} ? TABLE extends string ? TABLE : string : string;
|
|
6
|
-
export declare class PermissionChecker<T, TableNames extends string = TableName<T>> {
|
|
7
|
-
private permissions;
|
|
8
|
-
private tableName;
|
|
9
|
-
private isOwner;
|
|
10
|
-
constructor(permissions: DBPermissionSet, tableName: TableNames, isOwner: boolean);
|
|
11
|
-
add(...tableNames: TableNames[]): boolean;
|
|
12
|
-
update(...props: KeyPaths<T>[]): boolean;
|
|
13
|
-
delete(): boolean;
|
|
14
|
-
}
|
|
15
|
-
export {};
|
package/dist/umd/TSON.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare const hasBigIntSupport: boolean;
|
|
2
|
-
export declare function compareBigInts(a: bigint | FakeBigInt | string, b: bigint | FakeBigInt | string): 1 | 0 | -1;
|
|
3
|
-
export declare class FakeBigInt {
|
|
4
|
-
v: string;
|
|
5
|
-
toString(): string;
|
|
6
|
-
constructor(value: string);
|
|
7
|
-
}
|
|
8
|
-
export declare const TSON: {
|
|
9
|
-
stringify(value: any, alternateChannel?: any, space?: number): string;
|
|
10
|
-
parse(tson: string, alternateChannel?: any): any;
|
|
11
|
-
};
|
|
12
|
-
export declare const BISON: {
|
|
13
|
-
toBinary(value: any): Blob;
|
|
14
|
-
stringify(value: any): [Blob, string];
|
|
15
|
-
parse<T = any>(json: string, binData: Blob): Promise<T>;
|
|
16
|
-
fromBinary<T_1 = any>(blob: Blob): Promise<T_1>;
|
|
17
|
-
};
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { DBOperationsSet } from 'dexie-cloud-common';
|
|
2
|
-
import { BehaviorSubject, Observable, Subscriber, Subscription } from 'rxjs';
|
|
3
|
-
import { DXCWebSocketStatus } from './DXCWebSocketStatus';
|
|
4
|
-
import type { YClientMessage } from 'dexie-cloud-common';
|
|
5
|
-
import { DexieCloudDB } from './db/DexieCloudDB';
|
|
6
|
-
import { UserLogin } from './dexie-cloud-client';
|
|
7
|
-
export type WSClientToServerMsg = ReadyForChangesMessage | YClientMessage;
|
|
8
|
-
export interface ReadyForChangesMessage {
|
|
9
|
-
type: 'ready';
|
|
10
|
-
realmSetHash: string;
|
|
11
|
-
rev: string;
|
|
12
|
-
}
|
|
13
|
-
export type WSConnectionMsg = RevisionChangedMessage | RealmAddedMessage | RealmAcceptedMessage | RealmRemovedMessage | RealmsChangedMessage | ChangesFromServerMessage | TokenExpiredMessage;
|
|
14
|
-
export interface ChangesFromServerMessage {
|
|
15
|
-
type: 'changes';
|
|
16
|
-
baseRev: string;
|
|
17
|
-
realmSetHash: string;
|
|
18
|
-
newRev: string;
|
|
19
|
-
changes: DBOperationsSet<string>;
|
|
20
|
-
}
|
|
21
|
-
export interface RevisionChangedMessage {
|
|
22
|
-
type: 'rev';
|
|
23
|
-
rev: string;
|
|
24
|
-
}
|
|
25
|
-
export interface RealmAddedMessage {
|
|
26
|
-
type: 'realm-added';
|
|
27
|
-
realm: string;
|
|
28
|
-
}
|
|
29
|
-
export interface RealmAcceptedMessage {
|
|
30
|
-
type: 'realm-accepted';
|
|
31
|
-
realm: string;
|
|
32
|
-
}
|
|
33
|
-
export interface RealmRemovedMessage {
|
|
34
|
-
type: 'realm-removed';
|
|
35
|
-
realm: string;
|
|
36
|
-
}
|
|
37
|
-
export interface RealmsChangedMessage {
|
|
38
|
-
type: 'realms-changed';
|
|
39
|
-
realmsHash: string;
|
|
40
|
-
}
|
|
41
|
-
export interface TokenExpiredMessage {
|
|
42
|
-
type: 'token-expired';
|
|
43
|
-
}
|
|
44
|
-
export declare class WSObservable extends Observable<WSConnectionMsg> {
|
|
45
|
-
constructor(db: DexieCloudDB, rev: string | undefined, yrev: string | undefined, realmSetHash: string, clientIdentity: string, messageProducer: Observable<WSClientToServerMsg>, webSocketStatus: BehaviorSubject<DXCWebSocketStatus>, user: UserLogin);
|
|
46
|
-
}
|
|
47
|
-
export declare class WSConnection extends Subscription {
|
|
48
|
-
db: DexieCloudDB;
|
|
49
|
-
ws: WebSocket | null;
|
|
50
|
-
lastServerActivity: Date;
|
|
51
|
-
lastUserActivity: Date;
|
|
52
|
-
lastPing: Date;
|
|
53
|
-
databaseUrl: string;
|
|
54
|
-
rev: string | undefined;
|
|
55
|
-
yrev: string | undefined;
|
|
56
|
-
realmSetHash: string;
|
|
57
|
-
clientIdentity: string;
|
|
58
|
-
user: UserLogin;
|
|
59
|
-
subscriber: Subscriber<WSConnectionMsg>;
|
|
60
|
-
pauseUntil?: Date;
|
|
61
|
-
messageProducer: Observable<WSClientToServerMsg>;
|
|
62
|
-
webSocketStatus: BehaviorSubject<DXCWebSocketStatus>;
|
|
63
|
-
id: number;
|
|
64
|
-
private pinger;
|
|
65
|
-
private subscriptions;
|
|
66
|
-
constructor(db: DexieCloudDB, rev: string | undefined, yrev: string | undefined, realmSetHash: string, clientIdentity: string, user: UserLogin, subscriber: Subscriber<WSConnectionMsg>, messageProducer: Observable<WSClientToServerMsg>, webSocketStatus: BehaviorSubject<DXCWebSocketStatus>);
|
|
67
|
-
private teardown;
|
|
68
|
-
private disconnect;
|
|
69
|
-
reconnecting: boolean;
|
|
70
|
-
reconnect(): void;
|
|
71
|
-
connect(): Promise<void>;
|
|
72
|
-
}
|
package/dist/umd/associate.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function associate<T extends object, M>(factory: (x: T) => M): (x: T) => M;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { DexieCloudDB } from "../db/DexieCloudDB";
|
|
2
|
-
import { UserLogin } from "../db/entities/UserLogin";
|
|
3
|
-
export interface AuthPersistedContext extends UserLogin {
|
|
4
|
-
save(): Promise<void>;
|
|
5
|
-
}
|
|
6
|
-
export declare class AuthPersistedContext {
|
|
7
|
-
constructor(db: DexieCloudDB, userLogin: UserLogin);
|
|
8
|
-
static load(db: DexieCloudDB, userId: string): import("dexie").PromiseExtended<AuthPersistedContext>;
|
|
9
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { TokenErrorResponse } from 'dexie-cloud-common';
|
|
2
|
-
export declare class TokenErrorResponseError extends Error {
|
|
3
|
-
title: string;
|
|
4
|
-
messageCode: 'INVALID_OTP' | 'INVALID_EMAIL' | 'LICENSE_LIMIT_REACHED' | 'GENERIC_ERROR';
|
|
5
|
-
message: string;
|
|
6
|
-
messageParams?: {
|
|
7
|
-
[param: string]: string;
|
|
8
|
-
};
|
|
9
|
-
constructor({ title, message, messageCode, messageParams, }: TokenErrorResponse);
|
|
10
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { TokenErrorResponse, TokenFinalResponse } from 'dexie-cloud-common';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { DexieCloudDB } from '../db/DexieCloudDB';
|
|
4
|
-
import { UserLogin } from '../db/entities/UserLogin';
|
|
5
|
-
import { DXCUserInteraction } from '../types/DXCUserInteraction';
|
|
6
|
-
import { LoginHints } from '../DexieCloudAPI';
|
|
7
|
-
export type FetchTokenCallback = (tokenParams: {
|
|
8
|
-
public_key: string;
|
|
9
|
-
hints?: LoginHints;
|
|
10
|
-
}) => Promise<TokenFinalResponse | TokenErrorResponse>;
|
|
11
|
-
export declare function loadAccessToken(db: DexieCloudDB): Promise<UserLogin | null>;
|
|
12
|
-
export declare function authenticate(url: string, context: UserLogin, fetchToken: FetchTokenCallback, userInteraction: BehaviorSubject<DXCUserInteraction | undefined>, hints?: LoginHints): Promise<UserLogin>;
|
|
13
|
-
export declare function refreshAccessToken(url: string, login: UserLogin): Promise<UserLogin>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import { DXCAlert } from '../types/DXCAlert';
|
|
3
|
-
import { DXCInputField } from '../types/DXCInputField';
|
|
4
|
-
import { DXCUserInteraction } from '../types/DXCUserInteraction';
|
|
5
|
-
export interface DXCUserInteractionRequest {
|
|
6
|
-
type: DXCUserInteraction['type'];
|
|
7
|
-
title: string;
|
|
8
|
-
alerts: DXCAlert[];
|
|
9
|
-
submitLabel?: string;
|
|
10
|
-
cancelLabel?: string | null;
|
|
11
|
-
fields: {
|
|
12
|
-
[name: string]: DXCInputField;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare function interactWithUser<T extends DXCUserInteractionRequest>(userInteraction: BehaviorSubject<DXCUserInteraction | undefined>, req: T): Promise<{
|
|
16
|
-
[P in keyof T['fields']]: string;
|
|
17
|
-
}>;
|
|
18
|
-
export declare function alertUser(userInteraction: BehaviorSubject<DXCUserInteraction | undefined>, title: string, ...alerts: DXCAlert[]): Promise<{}>;
|
|
19
|
-
export declare function promptForEmail(userInteraction: BehaviorSubject<DXCUserInteraction | undefined>, title: string, emailHint?: string): Promise<string>;
|
|
20
|
-
export declare function promptForOTP(userInteraction: BehaviorSubject<DXCUserInteraction | undefined>, email: string, alert?: DXCAlert): Promise<string>;
|
|
21
|
-
export declare function confirmLogout(userInteraction: BehaviorSubject<DXCUserInteraction | undefined>, currentUserId: string, numUnsyncedChanges: number): Promise<boolean>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { DexieCloudDB } from '../db/DexieCloudDB';
|
|
2
|
-
import { AuthPersistedContext } from './AuthPersistedContext';
|
|
3
|
-
/** This function changes or sets the current user as requested.
|
|
4
|
-
*
|
|
5
|
-
* Use cases:
|
|
6
|
-
* * Initially on db.ready after reading the current user from db.$logins.
|
|
7
|
-
* This will make sure that any unsynced operations from the previous user is synced before
|
|
8
|
-
* changing the user.
|
|
9
|
-
* * Upon user request
|
|
10
|
-
*
|
|
11
|
-
* @param db
|
|
12
|
-
* @param newUser
|
|
13
|
-
*/
|
|
14
|
-
export declare function setCurrentUser(db: DexieCloudDB, user: AuthPersistedContext): Promise<void>;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import Dexie, { Table } from 'dexie';
|
|
2
|
-
import { GuardedJob } from './entities/GuardedJob';
|
|
3
|
-
import { UserLogin } from './entities/UserLogin';
|
|
4
|
-
import { PersistedSyncState } from './entities/PersistedSyncState';
|
|
5
|
-
import { DexieCloudOptions } from '../DexieCloudOptions';
|
|
6
|
-
import { Subject } from 'rxjs';
|
|
7
|
-
import { BaseRevisionMapEntry } from './entities/BaseRevisionMapEntry';
|
|
8
|
-
import { DBRealm, DBRealmMember, DBRealmRole, DexieCloudSchema } from 'dexie-cloud-common';
|
|
9
|
-
import { BroadcastedAndLocalEvent } from '../helpers/BroadcastedAndLocalEvent';
|
|
10
|
-
import { SyncStatePhase } from '../types/SyncState';
|
|
11
|
-
import { MessagesFromServerConsumer } from '../sync/messagesFromServerQueue';
|
|
12
|
-
import { YClientMessage } from 'dexie-cloud-common';
|
|
13
|
-
export interface SyncStateChangedEventData {
|
|
14
|
-
phase: SyncStatePhase;
|
|
15
|
-
error?: Error;
|
|
16
|
-
progress?: number;
|
|
17
|
-
}
|
|
18
|
-
type SyncStateTable = Table<PersistedSyncState | DexieCloudSchema | DexieCloudOptions, 'syncState' | 'options' | 'schema'>;
|
|
19
|
-
export interface DexieCloudDBBase {
|
|
20
|
-
readonly name: Dexie['name'];
|
|
21
|
-
readonly close: Dexie['close'];
|
|
22
|
-
transaction: Dexie['transaction'];
|
|
23
|
-
table: Dexie['table'];
|
|
24
|
-
readonly tables: Dexie['tables'];
|
|
25
|
-
readonly cloud: Dexie['cloud'];
|
|
26
|
-
readonly $jobs: Table<GuardedJob, string>;
|
|
27
|
-
readonly $logins: Table<UserLogin, string>;
|
|
28
|
-
readonly $syncState: SyncStateTable;
|
|
29
|
-
readonly $baseRevs: Table<BaseRevisionMapEntry, [string, number]>;
|
|
30
|
-
readonly realms: Table<DBRealm, string>;
|
|
31
|
-
readonly members: Table<DBRealmMember, string>;
|
|
32
|
-
readonly roles: Table<DBRealmRole, [string, string]>;
|
|
33
|
-
readonly localSyncEvent: Subject<{
|
|
34
|
-
purpose?: 'pull' | 'push';
|
|
35
|
-
}>;
|
|
36
|
-
readonly syncStateChangedEvent: BroadcastedAndLocalEvent<SyncStateChangedEventData>;
|
|
37
|
-
readonly syncCompleteEvent: BroadcastedAndLocalEvent<void>;
|
|
38
|
-
readonly dx: Dexie;
|
|
39
|
-
readonly initiallySynced: boolean;
|
|
40
|
-
}
|
|
41
|
-
export interface DexieCloudDB extends DexieCloudDBBase {
|
|
42
|
-
getCurrentUser(): Promise<UserLogin>;
|
|
43
|
-
getSchema(): Promise<DexieCloudSchema | undefined>;
|
|
44
|
-
getOptions(): Promise<DexieCloudOptions | undefined>;
|
|
45
|
-
getPersistedSyncState(): Promise<PersistedSyncState | undefined>;
|
|
46
|
-
setInitiallySynced(initiallySynced: boolean): void;
|
|
47
|
-
reconfigure(): void;
|
|
48
|
-
messageConsumer: MessagesFromServerConsumer;
|
|
49
|
-
messageProducer: Subject<YClientMessage>;
|
|
50
|
-
}
|
|
51
|
-
export declare const DEXIE_CLOUD_SCHEMA: {
|
|
52
|
-
members: string;
|
|
53
|
-
roles: string;
|
|
54
|
-
realms: string;
|
|
55
|
-
$jobs: string;
|
|
56
|
-
$syncState: string;
|
|
57
|
-
$baseRevs: string;
|
|
58
|
-
$logins: string;
|
|
59
|
-
};
|
|
60
|
-
export declare function DexieCloudDB(dx: Dexie): DexieCloudDB;
|
|
61
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export interface Member {
|
|
2
|
-
id?: string;
|
|
3
|
-
realmId: string;
|
|
4
|
-
userId?: string;
|
|
5
|
-
email?: string;
|
|
6
|
-
name?: string;
|
|
7
|
-
invite?: boolean;
|
|
8
|
-
invited?: Date;
|
|
9
|
-
accepted?: Date;
|
|
10
|
-
rejected?: Date;
|
|
11
|
-
roles?: string[];
|
|
12
|
-
permissions?: {
|
|
13
|
-
add?: string[] | "*";
|
|
14
|
-
update?: {
|
|
15
|
-
[tableName: string]: string[] | "*";
|
|
16
|
-
};
|
|
17
|
-
manage?: string[] | "*";
|
|
18
|
-
};
|
|
19
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface PersistedSyncState {
|
|
2
|
-
serverRevision?: any;
|
|
3
|
-
yServerRevision?: string;
|
|
4
|
-
latestRevisions: {
|
|
5
|
-
[tableName: string]: number;
|
|
6
|
-
};
|
|
7
|
-
realms: string[];
|
|
8
|
-
inviteRealms: string[];
|
|
9
|
-
clientIdentity: string;
|
|
10
|
-
initiallySynced?: boolean;
|
|
11
|
-
remoteDbId?: string;
|
|
12
|
-
syncedTables: string[];
|
|
13
|
-
timestamp?: Date;
|
|
14
|
-
error?: string;
|
|
15
|
-
yDownloadedRealms?: {
|
|
16
|
-
[realmId: string]: "*" | {
|
|
17
|
-
tbl: string;
|
|
18
|
-
prop: string;
|
|
19
|
-
key: any;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export interface Realm {
|
|
2
|
-
/** Primary key of the realm.
|
|
3
|
-
*/
|
|
4
|
-
realmId: string;
|
|
5
|
-
/** The name of the realm.
|
|
6
|
-
*
|
|
7
|
-
* This property is optional but it can be a good practice to name a realm for what it represents.
|
|
8
|
-
*/
|
|
9
|
-
name?: string;
|
|
10
|
-
/** Contains the user-ID of the owner. An owner has implicit full write-access to the realm
|
|
11
|
-
* and all obejcts connected to it.
|
|
12
|
-
*/
|
|
13
|
-
owner?: string;
|
|
14
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface UserLogin {
|
|
2
|
-
userId?: string;
|
|
3
|
-
name?: string;
|
|
4
|
-
email?: string;
|
|
5
|
-
claims: {
|
|
6
|
-
[claimName: string]: any;
|
|
7
|
-
};
|
|
8
|
-
license?: {
|
|
9
|
-
type: 'demo' | 'eval' | 'prod' | 'client';
|
|
10
|
-
status: 'ok' | 'expired' | 'deactivated';
|
|
11
|
-
validUntil?: Date;
|
|
12
|
-
evalDaysLeft?: number;
|
|
13
|
-
};
|
|
14
|
-
lastLogin: Date;
|
|
15
|
-
accessToken?: string;
|
|
16
|
-
accessTokenExpiration?: Date;
|
|
17
|
-
refreshToken?: string;
|
|
18
|
-
refreshTokenExpiration?: Date;
|
|
19
|
-
nonExportablePrivateKey?: CryptoKey;
|
|
20
|
-
publicKey?: CryptoKey;
|
|
21
|
-
isLoggedIn?: boolean;
|
|
22
|
-
data?: any;
|
|
23
|
-
}
|