@cloudbase/database 1.4.3-alpha.0 → 1.5.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/dist/commonjs/ObjectId/index.d.ts +1 -1
- package/dist/commonjs/ObjectId/index.js +16 -9
- package/dist/commonjs/aggregate.js +126 -75
- package/dist/commonjs/collection.d.ts +3 -2
- package/dist/commonjs/collection.js +131 -58
- package/dist/commonjs/command.d.ts +5 -5
- package/dist/commonjs/command.js +181 -154
- package/dist/commonjs/commands/logic.js +30 -20
- package/dist/commonjs/commands/query.d.ts +1 -1
- package/dist/commonjs/commands/query.js +85 -65
- package/dist/commonjs/commands/update.js +9 -7
- package/dist/commonjs/config/error.config.js +1 -0
- package/dist/commonjs/const/code.js +1 -0
- package/dist/commonjs/constant.d.ts +7 -7
- package/dist/commonjs/constant.js +13 -11
- package/dist/commonjs/document.d.ts +10 -6
- package/dist/commonjs/document.js +305 -193
- package/dist/commonjs/geo/index.js +20 -9
- package/dist/commonjs/geo/lineString.d.ts +1 -1
- package/dist/commonjs/geo/lineString.js +62 -33
- package/dist/commonjs/geo/multiLineString.d.ts +1 -1
- package/dist/commonjs/geo/multiLineString.js +71 -32
- package/dist/commonjs/geo/multiPoint.d.ts +1 -1
- package/dist/commonjs/geo/multiPoint.js +58 -29
- package/dist/commonjs/geo/multiPolygon.d.ts +1 -1
- package/dist/commonjs/geo/multiPolygon.js +96 -36
- package/dist/commonjs/geo/point.d.ts +1 -1
- package/dist/commonjs/geo/point.js +30 -23
- package/dist/commonjs/geo/polygon.d.ts +1 -1
- package/dist/commonjs/geo/polygon.js +78 -39
- package/dist/commonjs/helper/symbol.js +17 -5
- package/dist/commonjs/index.d.ts +8 -2
- package/dist/commonjs/index.js +73 -20
- package/dist/commonjs/lib/util.js +4 -3
- package/dist/commonjs/operator-map.js +7 -6
- package/dist/commonjs/query.d.ts +8 -4
- package/dist/commonjs/query.js +308 -201
- package/dist/commonjs/regexp/index.d.ts +1 -1
- package/dist/commonjs/regexp/index.js +16 -9
- package/dist/commonjs/serializer/common.d.ts +2 -2
- package/dist/commonjs/serializer/common.js +59 -22
- package/dist/commonjs/serializer/datatype.d.ts +2 -2
- package/dist/commonjs/serializer/datatype.js +58 -21
- package/dist/commonjs/serializer/query.d.ts +1 -1
- package/dist/commonjs/serializer/query.js +137 -127
- package/dist/commonjs/serializer/update.d.ts +1 -1
- package/dist/commonjs/serializer/update.js +83 -78
- package/dist/commonjs/serverDate/index.d.ts +1 -1
- package/dist/commonjs/serverDate/index.js +16 -9
- package/dist/commonjs/transaction/collection.d.ts +1 -1
- package/dist/commonjs/transaction/collection.js +5 -2
- package/dist/commonjs/transaction/document.d.ts +1 -1
- package/dist/commonjs/transaction/document.js +5 -5
- package/dist/commonjs/transaction/index.js +196 -86
- package/dist/commonjs/transaction/query.d.ts +39 -1
- package/dist/commonjs/transaction/query.js +252 -1
- package/dist/commonjs/typings/index.d.ts +4 -4
- package/dist/commonjs/typings/realtime.d.ts +16 -16
- package/dist/commonjs/util.js +123 -92
- package/dist/commonjs/utils/error.d.ts +2 -1
- package/dist/commonjs/utils/error.js +74 -38
- package/dist/commonjs/utils/symbol.js +33 -14
- package/dist/commonjs/utils/type.d.ts +1 -1
- package/dist/commonjs/utils/type.js +25 -13
- package/dist/commonjs/utils/utils.d.ts +4 -1
- package/dist/commonjs/utils/utils.js +93 -22
- package/dist/commonjs/validate.js +79 -63
- package/dist/esm/ObjectId/index.d.ts +1 -1
- package/dist/esm/ObjectId/index.js +15 -8
- package/dist/esm/aggregate.js +118 -66
- package/dist/esm/collection.d.ts +3 -2
- package/dist/esm/collection.js +125 -52
- package/dist/esm/command.d.ts +5 -5
- package/dist/esm/command.js +175 -147
- package/dist/esm/commands/logic.js +30 -20
- package/dist/esm/commands/query.d.ts +1 -1
- package/dist/esm/commands/query.js +91 -71
- package/dist/esm/commands/update.js +8 -6
- package/dist/esm/config/error.config.js +1 -1
- package/dist/esm/const/code.js +1 -1
- package/dist/esm/constant.d.ts +7 -7
- package/dist/esm/constant.js +12 -11
- package/dist/esm/document.d.ts +10 -6
- package/dist/esm/document.js +297 -185
- package/dist/esm/geo/interface.js +1 -0
- package/dist/esm/geo/lineString.d.ts +1 -1
- package/dist/esm/geo/lineString.js +57 -28
- package/dist/esm/geo/multiLineString.d.ts +1 -1
- package/dist/esm/geo/multiLineString.js +66 -27
- package/dist/esm/geo/multiPoint.d.ts +1 -1
- package/dist/esm/geo/multiPoint.js +53 -24
- package/dist/esm/geo/multiPolygon.d.ts +1 -1
- package/dist/esm/geo/multiPolygon.js +91 -31
- package/dist/esm/geo/point.d.ts +1 -1
- package/dist/esm/geo/point.js +26 -19
- package/dist/esm/geo/polygon.d.ts +1 -1
- package/dist/esm/geo/polygon.js +73 -34
- package/dist/esm/helper/symbol.js +13 -13
- package/dist/esm/index.d.ts +8 -2
- package/dist/esm/index.js +62 -9
- package/dist/esm/lib/util.js +1 -2
- package/dist/esm/operator-map.js +4 -4
- package/dist/esm/query.d.ts +8 -4
- package/dist/esm/query.js +299 -192
- package/dist/esm/regexp/index.d.ts +1 -1
- package/dist/esm/regexp/index.js +15 -8
- package/dist/esm/serializer/common.d.ts +2 -2
- package/dist/esm/serializer/common.js +49 -13
- package/dist/esm/serializer/datatype.d.ts +2 -2
- package/dist/esm/serializer/datatype.js +44 -8
- package/dist/esm/serializer/query.d.ts +1 -1
- package/dist/esm/serializer/query.js +112 -102
- package/dist/esm/serializer/update.d.ts +1 -1
- package/dist/esm/serializer/update.js +69 -64
- package/dist/esm/serverDate/index.d.ts +1 -1
- package/dist/esm/serverDate/index.js +15 -8
- package/dist/esm/transaction/collection.d.ts +1 -1
- package/dist/esm/transaction/collection.js +4 -2
- package/dist/esm/transaction/document.d.ts +1 -1
- package/dist/esm/transaction/document.js +2 -3
- package/dist/esm/transaction/index.js +191 -81
- package/dist/esm/transaction/query.d.ts +39 -1
- package/dist/esm/transaction/query.js +251 -1
- package/dist/esm/typings/index.d.ts +4 -4
- package/dist/esm/typings/index.js +1 -0
- package/dist/esm/typings/realtime.d.ts +16 -16
- package/dist/esm/typings/realtime.js +1 -0
- package/dist/esm/util.js +121 -90
- package/dist/esm/utils/error.d.ts +2 -1
- package/dist/esm/utils/error.js +70 -35
- package/dist/esm/utils/symbol.js +33 -14
- package/dist/esm/utils/type.d.ts +1 -1
- package/dist/esm/utils/type.js +12 -12
- package/dist/esm/utils/utils.d.ts +4 -1
- package/dist/esm/utils/utils.js +78 -16
- package/dist/esm/validate.js +65 -49
- package/jest.config.js +14 -0
- package/package.json +14 -10
- package/src/aggregate.ts +1 -5
- package/src/collection.ts +15 -2
- package/src/document.ts +45 -34
- package/src/index.ts +51 -4
- package/src/query.ts +33 -29
- package/src/serializer/query.ts +18 -6
- package/src/transaction/index.ts +1 -1
- package/src/typings/index.ts +0 -4
- package/src/utils/utils.ts +46 -0
- package/src/validate.ts +3 -6
- package/tests/gateway-contract.test.ts +180 -0
- package/tests/index.test.ts +283 -0
- package/tests/transaction-query.test.ts +207 -0
- package/tsconfig.esm.json +4 -2
- package/tsconfig.json +16 -6
- package/tsconfig.test.json +15 -0
- package/dist/commonjs/realtime/error.d.ts +0 -7
- package/dist/commonjs/realtime/error.js +0 -11
- package/dist/commonjs/realtime/listener.d.ts +0 -14
- package/dist/commonjs/realtime/listener.js +0 -17
- package/dist/commonjs/realtime/message.d.ts +0 -3
- package/dist/commonjs/realtime/message.js +0 -10
- package/dist/commonjs/realtime/snapshot.d.ts +0 -16
- package/dist/commonjs/realtime/snapshot.js +0 -42
- package/dist/commonjs/realtime/virtual-websocket-client.d.ts +0 -63
- package/dist/commonjs/realtime/virtual-websocket-client.js +0 -736
- package/dist/commonjs/realtime/websocket-client.d.ts +0 -78
- package/dist/commonjs/realtime/websocket-client.js +0 -567
- package/dist/commonjs/realtime/ws-event.d.ts +0 -126
- package/dist/commonjs/realtime/ws-event.js +0 -139
- package/dist/commonjs/transaction.d.ts +0 -42
- package/dist/commonjs/transaction.js +0 -126
- package/dist/esm/realtime/error.d.ts +0 -7
- package/dist/esm/realtime/error.js +0 -8
- package/dist/esm/realtime/listener.d.ts +0 -14
- package/dist/esm/realtime/listener.js +0 -14
- package/dist/esm/realtime/message.d.ts +0 -3
- package/dist/esm/realtime/message.js +0 -6
- package/dist/esm/realtime/snapshot.d.ts +0 -16
- package/dist/esm/realtime/snapshot.js +0 -39
- package/dist/esm/realtime/virtual-websocket-client.d.ts +0 -63
- package/dist/esm/realtime/virtual-websocket-client.js +0 -733
- package/dist/esm/realtime/websocket-client.d.ts +0 -78
- package/dist/esm/realtime/websocket-client.js +0 -564
- package/dist/esm/realtime/ws-event.d.ts +0 -126
- package/dist/esm/realtime/ws-event.js +0 -137
- package/dist/esm/transaction.d.ts +0 -42
- package/dist/esm/transaction.js +0 -121
- package/src/realtime/error.ts +0 -19
- package/src/realtime/listener.ts +0 -35
- package/src/realtime/message.ts +0 -14
- package/src/realtime/snapshot.ts +0 -60
- package/src/realtime/virtual-websocket-client.ts +0 -1195
- package/src/realtime/websocket-client.ts +0 -995
- package/src/realtime/ws-event.ts +0 -163
- package/src/transaction.ts +0 -190
package/tsconfig.json
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
"allowJs": false,
|
|
5
5
|
"allowUnreachableCode": false,
|
|
6
6
|
"allowUnusedLabels": false,
|
|
7
|
-
"charset": "utf8",
|
|
8
7
|
"declaration": true,
|
|
9
8
|
"experimentalDecorators": true,
|
|
10
9
|
"emitDecoratorMetadata": true,
|
|
@@ -21,10 +20,21 @@
|
|
|
21
20
|
"removeComments": true,
|
|
22
21
|
"stripInternal": true,
|
|
23
22
|
"skipDefaultLibCheck": true,
|
|
23
|
+
"downlevelIteration": true,
|
|
24
24
|
"skipLibCheck": true,
|
|
25
|
-
"target": "
|
|
26
|
-
"lib": [
|
|
25
|
+
"target": "es5",
|
|
26
|
+
"lib": [
|
|
27
|
+
"es2015",
|
|
28
|
+
"es6",
|
|
29
|
+
"dom"
|
|
30
|
+
]
|
|
27
31
|
},
|
|
28
|
-
"include": [
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
"include": [
|
|
33
|
+
"src/**/*"
|
|
34
|
+
],
|
|
35
|
+
"exclude": [
|
|
36
|
+
"node_modules",
|
|
37
|
+
"test",
|
|
38
|
+
"tests"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "es6",
|
|
5
|
+
"module": "commonjs",
|
|
6
|
+
"isolatedModules": true,
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
"strict": false,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"moduleResolution": "node",
|
|
11
|
+
"allowJs": true
|
|
12
|
+
},
|
|
13
|
+
"include": ["tests/**/*.ts", "src/**/*.ts"],
|
|
14
|
+
"exclude": ["node_modules"]
|
|
15
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { IResponseMessageErrorMsg } from '../typings/realtime';
|
|
2
|
-
export declare class RealtimeErrorMessageError extends Error {
|
|
3
|
-
isRealtimeErrorMessageError: boolean;
|
|
4
|
-
payload: IResponseMessageErrorMsg;
|
|
5
|
-
constructor(serverErrorMsg: IResponseMessageErrorMsg);
|
|
6
|
-
}
|
|
7
|
-
export declare const isRealtimeErrorMessageError: (e: any) => e is RealtimeErrorMessageError;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class RealtimeErrorMessageError extends Error {
|
|
4
|
-
constructor(serverErrorMsg) {
|
|
5
|
-
super(`Watch Error ${JSON.stringify(serverErrorMsg.msgData)} (requestid: ${serverErrorMsg.requestId})`);
|
|
6
|
-
this.isRealtimeErrorMessageError = true;
|
|
7
|
-
this.payload = serverErrorMsg;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.RealtimeErrorMessageError = RealtimeErrorMessageError;
|
|
11
|
-
exports.isRealtimeErrorMessageError = (e) => e && e.isRealtimeErrorMessageError;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { VirtualWebSocketClient } from './virtual-websocket-client';
|
|
2
|
-
import { IRealtimeListenerConstructorOptions, DBRealtimeListener } from '../typings/index';
|
|
3
|
-
interface IRealtimeListenerOptions extends IRealtimeListenerConstructorOptions {
|
|
4
|
-
close: () => void;
|
|
5
|
-
debug?: boolean;
|
|
6
|
-
virtualClient?: VirtualWebSocketClient;
|
|
7
|
-
}
|
|
8
|
-
export declare class RealtimeListener implements DBRealtimeListener {
|
|
9
|
-
close: () => void;
|
|
10
|
-
onChange: (res: any) => void;
|
|
11
|
-
onError: (error: any) => void;
|
|
12
|
-
constructor(options: IRealtimeListenerOptions);
|
|
13
|
-
}
|
|
14
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class RealtimeListener {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
this.close = options.close;
|
|
6
|
-
this.onChange = options.onChange;
|
|
7
|
-
this.onError = options.onError;
|
|
8
|
-
if (options.debug) {
|
|
9
|
-
Object.defineProperty(this, 'virtualClient', {
|
|
10
|
-
get: () => {
|
|
11
|
-
return options.virtualClient;
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.RealtimeListener = RealtimeListener;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function genRequestId(prefix = '') {
|
|
4
|
-
return `${prefix ? `${prefix}_` : ''}${+new Date()}_${Math.random()}`;
|
|
5
|
-
}
|
|
6
|
-
exports.genRequestId = genRequestId;
|
|
7
|
-
function isInitEventMessage(msg) {
|
|
8
|
-
return msg.msgType === 'INIT_EVENT';
|
|
9
|
-
}
|
|
10
|
-
exports.isInitEventMessage = isInitEventMessage;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ISingleDBEvent, SnapshotType, ISnapshot } from '../typings/index';
|
|
2
|
-
interface ISnapshotConstructorOptions {
|
|
3
|
-
id: number;
|
|
4
|
-
docChanges: ISingleDBEvent[];
|
|
5
|
-
docs: Record<string, any>[];
|
|
6
|
-
type?: SnapshotType;
|
|
7
|
-
msgType?: String;
|
|
8
|
-
}
|
|
9
|
-
export declare class Snapshot implements ISnapshot {
|
|
10
|
-
id: number;
|
|
11
|
-
docChanges: ISingleDBEvent[];
|
|
12
|
-
docs: Record<string, any>[];
|
|
13
|
-
type?: 'init';
|
|
14
|
-
constructor(options: ISnapshotConstructorOptions);
|
|
15
|
-
}
|
|
16
|
-
export {};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Snapshot {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
const { id, docChanges, docs, msgType, type } = options;
|
|
6
|
-
let cachedDocChanges;
|
|
7
|
-
let cachedDocs;
|
|
8
|
-
Object.defineProperties(this, {
|
|
9
|
-
id: {
|
|
10
|
-
get: () => id,
|
|
11
|
-
enumerable: true
|
|
12
|
-
},
|
|
13
|
-
docChanges: {
|
|
14
|
-
get: () => {
|
|
15
|
-
if (!cachedDocChanges) {
|
|
16
|
-
cachedDocChanges = JSON.parse(JSON.stringify(docChanges));
|
|
17
|
-
}
|
|
18
|
-
return cachedDocChanges;
|
|
19
|
-
},
|
|
20
|
-
enumerable: true
|
|
21
|
-
},
|
|
22
|
-
docs: {
|
|
23
|
-
get: () => {
|
|
24
|
-
if (!cachedDocs) {
|
|
25
|
-
cachedDocs = JSON.parse(JSON.stringify(docs));
|
|
26
|
-
}
|
|
27
|
-
return cachedDocs;
|
|
28
|
-
},
|
|
29
|
-
enumerable: true
|
|
30
|
-
},
|
|
31
|
-
msgType: {
|
|
32
|
-
get: () => msgType,
|
|
33
|
-
enumerable: true
|
|
34
|
-
},
|
|
35
|
-
type: {
|
|
36
|
-
get: () => type,
|
|
37
|
-
enumerable: true
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.Snapshot = Snapshot;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { IResponseMessage } from '../typings/realtime';
|
|
2
|
-
import { RealtimeListener } from './listener';
|
|
3
|
-
import { IWSSendOptions } from './websocket-client';
|
|
4
|
-
import { IWatchOptions } from '../typings/index';
|
|
5
|
-
interface IVirtualWebSocketClientConstructorOptions extends IWatchOptions {
|
|
6
|
-
envId?: string;
|
|
7
|
-
collectionName: string;
|
|
8
|
-
query: string;
|
|
9
|
-
limit?: number;
|
|
10
|
-
orderBy?: Record<string, string>;
|
|
11
|
-
send: <T = any>(opts: IWSSendOptions) => Promise<T>;
|
|
12
|
-
login: (envId?: string, refresh?: boolean) => Promise<any>;
|
|
13
|
-
isWSConnected: () => boolean;
|
|
14
|
-
onceWSConnected: () => Promise<void>;
|
|
15
|
-
getWaitExpectedTimeoutLength: () => number;
|
|
16
|
-
onWatchStart: (client: VirtualWebSocketClient, queryID: string) => void;
|
|
17
|
-
onWatchClose: (client: VirtualWebSocketClient, queryID: string) => void;
|
|
18
|
-
debug?: boolean;
|
|
19
|
-
}
|
|
20
|
-
export declare class VirtualWebSocketClient {
|
|
21
|
-
watchId: string;
|
|
22
|
-
private envId?;
|
|
23
|
-
private collectionName;
|
|
24
|
-
private query;
|
|
25
|
-
private limit;
|
|
26
|
-
private orderBy;
|
|
27
|
-
private send;
|
|
28
|
-
private login;
|
|
29
|
-
private isWSConnected;
|
|
30
|
-
private onceWSConnected;
|
|
31
|
-
private getWaitExpectedTimeoutLength;
|
|
32
|
-
private onWatchStart;
|
|
33
|
-
private onWatchClose;
|
|
34
|
-
private debug?;
|
|
35
|
-
listener: RealtimeListener;
|
|
36
|
-
private watchStatus;
|
|
37
|
-
private _availableRetries;
|
|
38
|
-
private _ackTimeoutId?;
|
|
39
|
-
private _initWatchPromise?;
|
|
40
|
-
private _rebuildWatchPromise?;
|
|
41
|
-
private sessionInfo?;
|
|
42
|
-
private _waitExpectedTimeoutId?;
|
|
43
|
-
constructor(options: IVirtualWebSocketClientConstructorOptions);
|
|
44
|
-
private _login;
|
|
45
|
-
private initWatch;
|
|
46
|
-
private rebuildWatch;
|
|
47
|
-
private handleWatchEstablishmentError;
|
|
48
|
-
private closeWatch;
|
|
49
|
-
private scheduleSendACK;
|
|
50
|
-
private clearACKSchedule;
|
|
51
|
-
private sendACK;
|
|
52
|
-
private handleCommonError;
|
|
53
|
-
private useRetryTicket;
|
|
54
|
-
private handleServerEvents;
|
|
55
|
-
private _handleServerEvents;
|
|
56
|
-
private _postHandleServerEventsValidityCheck;
|
|
57
|
-
private clearWaitExpectedEvent;
|
|
58
|
-
onMessage(msg: IResponseMessage): void;
|
|
59
|
-
closeWithError(error: any): void;
|
|
60
|
-
pause(): void;
|
|
61
|
-
resume(): Promise<void>;
|
|
62
|
-
}
|
|
63
|
-
export {};
|