@cloudbase/realtime 1.2.2-alpha.0 → 1.8.1
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/.eslintrc.js +15 -0
- package/dist/cjs/common.js +1 -1
- package/dist/cjs/error.js +17 -16
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/listener.js +2 -4
- package/dist/cjs/message.js +2 -2
- package/dist/cjs/snapshot.js +7 -7
- package/dist/cjs/utils.js +3 -2
- package/dist/cjs/virtual-websocket-client.js +86 -83
- package/dist/cjs/websocket-client.js +162 -176
- package/dist/cjs/ws-event.js +27 -26
- package/dist/esm/common.js +1 -1
- package/dist/esm/error.js +13 -15
- package/dist/esm/index.js +3 -3
- package/dist/esm/listener.js +2 -4
- package/dist/esm/message.js +2 -2
- package/dist/esm/snapshot.js +7 -7
- package/dist/esm/utils.js +1 -1
- package/dist/esm/virtual-websocket-client.js +75 -72
- package/dist/esm/websocket-client.js +156 -170
- package/dist/esm/ws-event.js +25 -25
- package/package.json +6 -22
- package/src/common.ts +5 -5
- package/src/error.ts +34 -40
- package/src/index.ts +15 -15
- package/src/listener.ts +11 -13
- package/src/message.ts +5 -7
- package/src/snapshot.ts +20 -20
- package/src/utils.ts +1 -1
- package/src/virtual-websocket-client.ts +446 -514
- package/src/websocket-client.ts +493 -518
- package/src/ws-event.ts +28 -28
- package/tsconfig.esm.json +2 -20
- package/tsconfig.json +2 -20
- package/.eslintrc +0 -30
package/dist/esm/ws-event.js
CHANGED
|
@@ -3,103 +3,103 @@ export var CLOSE_EVENT_CODE_INFO = {
|
|
|
3
3
|
1000: {
|
|
4
4
|
code: 1000,
|
|
5
5
|
name: 'Normal Closure',
|
|
6
|
-
description: 'Normal closure; the connection successfully completed whatever purpose for which it was created.'
|
|
6
|
+
description: 'Normal closure; the connection successfully completed whatever purpose for which it was created.',
|
|
7
7
|
},
|
|
8
8
|
1001: {
|
|
9
9
|
code: 1001,
|
|
10
10
|
name: 'Going Away',
|
|
11
|
-
description: 'The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.'
|
|
11
|
+
description: 'The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.',
|
|
12
12
|
},
|
|
13
13
|
1002: {
|
|
14
14
|
code: 1002,
|
|
15
15
|
name: 'Protocol Error',
|
|
16
|
-
description: 'The endpoint is terminating the connection due to a protocol error.'
|
|
16
|
+
description: 'The endpoint is terminating the connection due to a protocol error.',
|
|
17
17
|
},
|
|
18
18
|
1003: {
|
|
19
19
|
code: 1003,
|
|
20
20
|
name: 'Unsupported Data',
|
|
21
|
-
description: 'The connection is being terminated because the endpoint received data of a type it cannot accept (for example, a text-only endpoint received binary data).'
|
|
21
|
+
description: 'The connection is being terminated because the endpoint received data of a type it cannot accept (for example, a text-only endpoint received binary data).',
|
|
22
22
|
},
|
|
23
23
|
1005: {
|
|
24
24
|
code: 1005,
|
|
25
25
|
name: 'No Status Received',
|
|
26
|
-
description: 'Indicates that no status code was provided even though one was expected.'
|
|
26
|
+
description: 'Indicates that no status code was provided even though one was expected.',
|
|
27
27
|
},
|
|
28
28
|
1006: {
|
|
29
29
|
code: 1006,
|
|
30
30
|
name: 'Abnormal Closure',
|
|
31
|
-
description: 'Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.'
|
|
31
|
+
description: 'Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.',
|
|
32
32
|
},
|
|
33
33
|
1007: {
|
|
34
34
|
code: 1007,
|
|
35
35
|
name: 'Invalid frame payload data',
|
|
36
|
-
description: 'The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message).'
|
|
36
|
+
description: 'The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message).',
|
|
37
37
|
},
|
|
38
38
|
1008: {
|
|
39
39
|
code: 1008,
|
|
40
40
|
name: 'Policy Violation',
|
|
41
|
-
description: 'The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.'
|
|
41
|
+
description: 'The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.',
|
|
42
42
|
},
|
|
43
43
|
1009: {
|
|
44
44
|
code: 1009,
|
|
45
45
|
name: 'Message too big',
|
|
46
|
-
description: 'The endpoint is terminating the connection because a data frame was received that is too large.'
|
|
46
|
+
description: 'The endpoint is terminating the connection because a data frame was received that is too large.',
|
|
47
47
|
},
|
|
48
48
|
1010: {
|
|
49
49
|
code: 1010,
|
|
50
50
|
name: 'Missing Extension',
|
|
51
|
-
description:
|
|
51
|
+
description: 'The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn\'t.',
|
|
52
52
|
},
|
|
53
53
|
1011: {
|
|
54
54
|
code: 1011,
|
|
55
55
|
name: 'Internal Error',
|
|
56
|
-
description: 'The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.'
|
|
56
|
+
description: 'The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.',
|
|
57
57
|
},
|
|
58
58
|
1012: {
|
|
59
59
|
code: 1012,
|
|
60
60
|
name: 'Service Restart',
|
|
61
|
-
description: 'The server is terminating the connection because it is restarting.'
|
|
61
|
+
description: 'The server is terminating the connection because it is restarting.',
|
|
62
62
|
},
|
|
63
63
|
1013: {
|
|
64
64
|
code: 1013,
|
|
65
65
|
name: 'Try Again Later',
|
|
66
|
-
description: 'The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients.'
|
|
66
|
+
description: 'The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients.',
|
|
67
67
|
},
|
|
68
68
|
1014: {
|
|
69
69
|
code: 1014,
|
|
70
70
|
name: 'Bad Gateway',
|
|
71
|
-
description: 'The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code.'
|
|
71
|
+
description: 'The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code.',
|
|
72
72
|
},
|
|
73
73
|
1015: {
|
|
74
74
|
code: 1015,
|
|
75
75
|
name: 'TLS Handshake',
|
|
76
|
-
description:
|
|
76
|
+
description: 'Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can\'t be verified).',
|
|
77
77
|
},
|
|
78
78
|
3000: {
|
|
79
79
|
code: 3000,
|
|
80
80
|
name: 'Reconnect WebSocket',
|
|
81
|
-
description: 'The client is terminating the connection because it wants to reconnect'
|
|
81
|
+
description: 'The client is terminating the connection because it wants to reconnect',
|
|
82
82
|
},
|
|
83
83
|
3001: {
|
|
84
84
|
code: 3001,
|
|
85
85
|
name: 'No Realtime Listeners',
|
|
86
|
-
description: 'The client is terminating the connection because no more realtime listeners exist'
|
|
86
|
+
description: 'The client is terminating the connection because no more realtime listeners exist',
|
|
87
87
|
},
|
|
88
88
|
3002: {
|
|
89
89
|
code: 3002,
|
|
90
90
|
name: 'Heartbeat Ping Error',
|
|
91
|
-
description: 'The client is terminating the connection due to its failure in sending heartbeat messages'
|
|
91
|
+
description: 'The client is terminating the connection due to its failure in sending heartbeat messages',
|
|
92
92
|
},
|
|
93
93
|
3003: {
|
|
94
94
|
code: 3003,
|
|
95
95
|
name: 'Heartbeat Pong Timeout Error',
|
|
96
|
-
description: 'The client is terminating the connection because no heartbeat response is received from the server'
|
|
96
|
+
description: 'The client is terminating the connection because no heartbeat response is received from the server',
|
|
97
97
|
},
|
|
98
98
|
3050: {
|
|
99
99
|
code: 3050,
|
|
100
100
|
name: 'Server Close',
|
|
101
|
-
description: 'The client is terminating the connection because no heartbeat response is received from the server'
|
|
102
|
-
}
|
|
101
|
+
description: 'The client is terminating the connection because no heartbeat response is received from the server',
|
|
102
|
+
},
|
|
103
103
|
};
|
|
104
104
|
export var CLOSE_EVENT_CODE;
|
|
105
105
|
(function (CLOSE_EVENT_CODE) {
|
|
@@ -127,11 +127,11 @@ export var CLOSE_EVENT_CODE;
|
|
|
127
127
|
export var getWSCloseError = function (code, reason) {
|
|
128
128
|
var info = CLOSE_EVENT_CODE_INFO[code];
|
|
129
129
|
var errMsg = !info
|
|
130
|
-
? "code "
|
|
131
|
-
: info.name
|
|
130
|
+
? "code ".concat(code)
|
|
131
|
+
: "".concat(info.name, ", code ").concat(code, ", reason ").concat(reason || info.description);
|
|
132
132
|
return new CloudSDKError({
|
|
133
133
|
errCode: ERR_CODE.SDK_DATABASE_REALTIME_LISTENER_WEBSOCKET_CONNECTION_CLOSED,
|
|
134
|
-
errMsg: errMsg
|
|
134
|
+
errMsg: errMsg,
|
|
135
135
|
});
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd3MtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFakQsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUc7SUFDbkMsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFdBQVcsRUFDVCxrR0FBa0c7S0FDckc7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFdBQVcsRUFDVCxvSkFBb0o7S0FDdko7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsV0FBVyxFQUNULHFFQUFxRTtLQUN4RTtJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQ1QsNEpBQTRKO0tBQy9KO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFDVCwwRUFBMEU7S0FDN0U7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsV0FBVyxFQUNULG9JQUFvSTtLQUN2STtJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxXQUFXLEVBQ1QsMEpBQTBKO0tBQzdKO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFDVCxtTEFBbUw7S0FDdEw7SUFDRCxJQUFJLEVBQUU7UUFDSixJ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QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVJSX0NPREUsIENsb3VkU0RLRXJyb3IgfSBmcm9tICcuL2Vycm9yJ1xuXG5leHBvcnQgY29uc3QgQ0xPU0VfRVZFTlRfQ09ERV9JTkZPID0ge1xuICAxMDAwOiB7XG4gICAgY29kZTogMTAwMCxcbiAgICBuYW1lOiAnTm9ybWFsIENsb3N1cmUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ05vcm1hbCBjbG9zdXJlOyB0aGUgY29ubmVjdGlvbiBzdWNjZXNzZnVsbHkgY29tcGxldGVkIHdoYXRldmVyIHB1cnBvc2UgZm9yIHdoaWNoIGl0IHdhcyBjcmVhdGVkLidcbiAgfSxcbiAgMTAwMToge1xuICAgIGNvZGU6IDEwMDEsXG4gICAgbmFtZTogJ0dvaW5nIEF3YXknLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBlbmRwb2ludCBpcyBnb2luZyBhd2F5LCBlaXRoZXIgYmVjYXVzZSBvZiBhIHNlcnZlciBmYWlsdXJlIG9yIGJlY2F1c2UgdGhlIGJyb3dzZXIgaXMgbmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIHBhZ2UgdGhhdCBvcGVuZWQgdGhlIGNvbm5lY3Rpb24uJ1xuICB9LFxuICAxMDAyOiB7XG4gICAgY29kZTogMTAwMixcbiAgICBuYW1lOiAnUHJvdG9jb2wgRXJyb3InLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBlbmRwb2ludCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBkdWUgdG8gYSBwcm90b2NvbCBlcnJvci4nXG4gIH0sXG4gIDEwMDM6IHtcbiAgICBjb2RlOiAxMDAzLFxuICAgIG5hbWU6ICdVbnN1cHBvcnRlZCBEYXRhJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY29ubmVjdGlvbiBpcyBiZWluZyB0ZXJtaW5hdGVkIGJlY2F1c2UgdGhlIGVuZHBvaW50IHJlY2VpdmVkIGRhdGEgb2YgYSB0eXBlIGl0IGNhbm5vdCBhY2NlcHQgKGZvciBleGFtcGxlLCBhIHRleHQtb25seSBlbmRwb2ludCByZWNlaXZlZCBiaW5hcnkgZGF0YSkuJ1xuICB9LFxuICAxMDA1OiB7XG4gICAgY29kZTogMTAwNSxcbiAgICBuYW1lOiAnTm8gU3RhdHVzIFJlY2VpdmVkJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdJbmRpY2F0ZXMgdGhhdCBubyBzdGF0dXMgY29kZSB3YXMgcHJvdmlkZWQgZXZlbiB0aG91Z2ggb25lIHdhcyBleHBlY3RlZC4nXG4gIH0sXG4gIDEwMDY6IHtcbiAgICBjb2RlOiAxMDA2LFxuICAgIG5hbWU6ICdBYm5vcm1hbCBDbG9zdXJlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVc2VkIHRvIGluZGljYXRlIHRoYXQgYSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgYWJub3JtYWxseSAodGhhdCBpcywgd2l0aCBubyBjbG9zZSBmcmFtZSBiZWluZyBzZW50KSB3aGVuIGEgc3RhdHVzIGNvZGUgaXMgZXhwZWN0ZWQuJ1xuICB9LFxuICAxMDA3OiB7XG4gICAgY29kZTogMTAwNyxcbiAgICBuYW1lOiAnSW52YWxpZCBmcmFtZSBwYXlsb2FkIGRhdGEnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBlbmRwb2ludCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGEgbWVzc2FnZSB3YXMgcmVjZWl2ZWQgdGhhdCBjb250YWluZWQgaW5jb25zaXN0ZW50IGRhdGEgKGUuZy4sIG5vbi1VVEYtOCBkYXRhIHdpdGhpbiBhIHRleHQgbWVzc2FnZSkuJ1xuICB9LFxuICAxMDA4OiB7XG4gICAgY29kZTogMTAwOCxcbiAgICBuYW1lOiAnUG9saWN5IFZpb2xhdGlvbicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGVuZHBvaW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgcmVjZWl2ZWQgYSBtZXNzYWdlIHRoYXQgdmlvbGF0ZXMgaXRzIHBvbGljeS4gVGhpcyBpcyBhIGdlbmVyaWMgc3RhdHVzIGNvZGUsIHVzZWQgd2hlbiBjb2RlcyAxMDAzIGFuZCAxMDA5IGFyZSBub3Qgc3VpdGFibGUuJ1xuICB9LFxuICAxMDA5OiB7XG4gICAgY29kZTogMTAwOSxcbiAgICBuYW1lOiAnTWVzc2FnZSB0b28gYmlnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgZW5kcG9pbnQgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBhIGRhdGEgZnJhbWUgd2FzIHJlY2VpdmVkIHRoYXQgaXMgdG9vIGxhcmdlLidcbiAgfSxcbiAgMTAxMDoge1xuICAgIGNvZGU6IDEwMTAsXG4gICAgbmFtZTogJ01pc3NpbmcgRXh0ZW5zaW9uJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIGNsaWVudCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGl0IGV4cGVjdGVkIHRoZSBzZXJ2ZXIgdG8gbmVnb3RpYXRlIG9uZSBvciBtb3JlIGV4dGVuc2lvbiwgYnV0IHRoZSBzZXJ2ZXIgZGlkbid0LlwiXG4gIH0sXG4gIDEwMTE6IHtcbiAgICBjb2RlOiAxMDExLFxuICAgIG5hbWU6ICdJbnRlcm5hbCBFcnJvcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIHNlcnZlciBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGl0IGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uIHRoYXQgcHJldmVudGVkIGl0IGZyb20gZnVsZmlsbGluZyB0aGUgcmVxdWVzdC4nXG4gIH0sXG4gIDEwMTI6IHtcbiAgICBjb2RlOiAxMDEyLFxuICAgIG5hbWU6ICdTZXJ2aWNlIFJlc3RhcnQnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBzZXJ2ZXIgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBpdCBpcyByZXN0YXJ0aW5nLidcbiAgfSxcbiAgMTAxMzoge1xuICAgIGNvZGU6IDEwMTMsXG4gICAgbmFtZTogJ1RyeSBBZ2FpbiBMYXRlcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIHNlcnZlciBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBkdWUgdG8gYSB0ZW1wb3JhcnkgY29uZGl0aW9uLCBlLmcuIGl0IGlzIG92ZXJsb2FkZWQgYW5kIGlzIGNhc3Rpbmcgb2ZmIHNvbWUgb2YgaXRzIGNsaWVudHMuJ1xuICB9LFxuICAxMDE0OiB7XG4gICAgY29kZTogMTAxNCxcbiAgICBuYW1lOiAnQmFkIEdhdGV3YXknLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBzZXJ2ZXIgd2FzIGFjdGluZyBhcyBhIGdhdGV3YXkgb3IgcHJveHkgYW5kIHJlY2VpdmVkIGFuIGludmFsaWQgcmVzcG9uc2UgZnJvbSB0aGUgdXBzdHJlYW0gc2VydmVyLiBUaGlzIGlzIHNpbWlsYXIgdG8gNTAyIEhUVFAgU3RhdHVzIENvZGUuJ1xuICB9LFxuICAxMDE1OiB7XG4gICAgY29kZTogMTAxNSxcbiAgICBuYW1lOiAnVExTIEhhbmRzaGFrZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkluZGljYXRlcyB0aGF0IHRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgZHVlIHRvIGEgZmFpbHVyZSB0byBwZXJmb3JtIGEgVExTIGhhbmRzaGFrZSAoZS5nLiwgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjYW4ndCBiZSB2ZXJpZmllZCkuXCJcbiAgfSxcbiAgLy8gY3VzdG9tXG4gIDMwMDA6IHtcbiAgICBjb2RlOiAzMDAwLFxuICAgIG5hbWU6ICdSZWNvbm5lY3QgV2ViU29ja2V0JyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY2xpZW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgd2FudHMgdG8gcmVjb25uZWN0J1xuICB9LFxuICAzMDAxOiB7XG4gICAgY29kZTogMzAwMSxcbiAgICBuYW1lOiAnTm8gUmVhbHRpbWUgTGlzdGVuZXJzJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY2xpZW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2Ugbm8gbW9yZSByZWFsdGltZSBsaXN0ZW5lcnMgZXhpc3QnXG4gIH0sXG4gIDMwMDI6IHtcbiAgICBjb2RlOiAzMDAyLFxuICAgIG5hbWU6ICdIZWFydGJlYXQgUGluZyBFcnJvcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGNsaWVudCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBkdWUgdG8gaXRzIGZhaWx1cmUgaW4gc2VuZGluZyBoZWFydGJlYXQgbWVzc2FnZXMnXG4gIH0sXG4gIDMwMDM6IHtcbiAgICBjb2RlOiAzMDAzLFxuICAgIG5hbWU6ICdIZWFydGJlYXQgUG9uZyBUaW1lb3V0IEVycm9yJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY2xpZW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2Ugbm8gaGVhcnRiZWF0IHJlc3BvbnNlIGlzIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlcidcbiAgfSxcbiAgMzA1MDoge1xuICAgIGNvZGU6IDMwNTAsXG4gICAgbmFtZTogJ1NlcnZlciBDbG9zZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGNsaWVudCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIG5vIGhlYXJ0YmVhdCByZXNwb25zZSBpcyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXInXG4gIH1cbn1cblxuZXhwb3J0IGVudW0gQ0xPU0VfRVZFTlRfQ09ERSB7XG4gIC8vIHNwZWNcbiAgTm9ybWFsQ2xvc3VyZSA9IDEwMDAsXG4gIEdvaW5nQXdheSA9IDEwMDEsXG4gIFByb3RvY29sRXJyb3IgPSAxMDAyLFxuICBVbnN1cHBvcnRlZERhdGEgPSAxMDAzLFxuICBOb1N0YXR1c1JlY2VpdmVkID0gMTAwNSxcbiAgQWJub3JtYWxDbG9zdXJlID0gMTAwNixcbiAgSW52YWxpZEZyYW1lUGF5bG9hZERhdGEgPSAxMDA3LFxuICBQb2xpY3lWaW9sYXRpb24gPSAxMDA4LFxuICBNZXNzYWdlVG9vQmlnID0gMTAwOSxcbiAgTWlzc2luZ0V4dGVuc2lvbiA9IDEwMTAsXG4gIEludGVybmFsRXJyb3IgPSAxMDExLFxuICBTZXJ2aWNlUmVzdGFydCA9IDEwMTIsXG4gIFRyeUFnYWluTGF0ZXIgPSAxMDEzLFxuICBCYWRHYXRld2F5ID0gMTAxNCxcbiAgVExTSGFuZHNoYWtlID0gMTAxNSxcbiAgLy8gY3VzdG9tIC0gY2xpZW50IGNsb3NlIGl0c2VsZlxuICBSZWNvbm5lY3RXZWJTb2NrZXQgPSAzMDAwLFxuICBOb1JlYWx0aW1lTGlzdGVuZXJzID0gMzAwMSxcbiAgSGVhcnRiZWF0UGluZ0Vycm9yID0gMzAwMixcbiAgSGVhcnRiZWF0UG9uZ1RpbWVvdXRFcnJvciA9IDMwMDMsXG4gIC8vIGN1c3RvbSAtIHNlcnZlciBjbG9zZVxuICBOb0F1dGhlbnRpY2F0aW9uID0gMzA1MFxufVxuXG5leHBvcnQgY29uc3QgZ2V0V1NDbG9zZUVycm9yID0gKGNvZGU6IENMT1NFX0VWRU5UX0NPREUsIHJlYXNvbj86IHN0cmluZykgPT4ge1xuICBjb25zdCBpbmZvID0gQ0xPU0VfRVZFTlRfQ09ERV9JTkZPW2NvZGVdXG4gIGNvbnN0IGVyck1zZyA9ICFpbmZvXG4gICAgPyBgY29kZSAke2NvZGV9YFxuICAgIDogYCR7aW5mby5uYW1lfSwgY29kZSAke2NvZGV9LCByZWFzb24gJHtyZWFzb24gfHwgaW5mby5kZXNjcmlwdGlvbn1gXG4gIHJldHVybiBuZXcgQ2xvdWRTREtFcnJvcih7XG4gICAgZXJyQ29kZTogRVJSX0NPREUuU0RLX0RBVEFCQVNFX1JFQUxUSU1FX0xJU1RFTkVSX1dFQlNPQ0tFVF9DT05ORUNUSU9OX0NMT1NFRCBhcyBzdHJpbmcsXG4gICAgZXJyTXNnXG4gIH0pXG59XG4iXX0=
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd3MtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEQsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUc7SUFDbkMsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFdBQVcsRUFDVCxrR0FBa0c7S0FDckc7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLFdBQVcsRUFDVCxvSkFBb0o7S0FDdko7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsV0FBVyxFQUNULHFFQUFxRTtLQUN4RTtJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQ1QsNEpBQTRKO0tBQy9KO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFDVCwwRUFBMEU7S0FDN0U7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsV0FBVyxFQUNULG9JQUFvSTtLQUN2STtJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxXQUFXLEVBQ1QsMEpBQTBKO0tBQzdKO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFDVCxtTEFBbUw7S0FDdEw7SUFDRCxJQUFJLEVBQUU7UUFDSixJ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QUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFUlJfQ09ERSwgQ2xvdWRTREtFcnJvciB9IGZyb20gJy4vZXJyb3InO1xuXG5leHBvcnQgY29uc3QgQ0xPU0VfRVZFTlRfQ09ERV9JTkZPID0ge1xuICAxMDAwOiB7XG4gICAgY29kZTogMTAwMCxcbiAgICBuYW1lOiAnTm9ybWFsIENsb3N1cmUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ05vcm1hbCBjbG9zdXJlOyB0aGUgY29ubmVjdGlvbiBzdWNjZXNzZnVsbHkgY29tcGxldGVkIHdoYXRldmVyIHB1cnBvc2UgZm9yIHdoaWNoIGl0IHdhcyBjcmVhdGVkLicsXG4gIH0sXG4gIDEwMDE6IHtcbiAgICBjb2RlOiAxMDAxLFxuICAgIG5hbWU6ICdHb2luZyBBd2F5JyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgZW5kcG9pbnQgaXMgZ29pbmcgYXdheSwgZWl0aGVyIGJlY2F1c2Ugb2YgYSBzZXJ2ZXIgZmFpbHVyZSBvciBiZWNhdXNlIHRoZSBicm93c2VyIGlzIG5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBwYWdlIHRoYXQgb3BlbmVkIHRoZSBjb25uZWN0aW9uLicsXG4gIH0sXG4gIDEwMDI6IHtcbiAgICBjb2RlOiAxMDAyLFxuICAgIG5hbWU6ICdQcm90b2NvbCBFcnJvcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGVuZHBvaW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGR1ZSB0byBhIHByb3RvY29sIGVycm9yLicsXG4gIH0sXG4gIDEwMDM6IHtcbiAgICBjb2RlOiAxMDAzLFxuICAgIG5hbWU6ICdVbnN1cHBvcnRlZCBEYXRhJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY29ubmVjdGlvbiBpcyBiZWluZyB0ZXJtaW5hdGVkIGJlY2F1c2UgdGhlIGVuZHBvaW50IHJlY2VpdmVkIGRhdGEgb2YgYSB0eXBlIGl0IGNhbm5vdCBhY2NlcHQgKGZvciBleGFtcGxlLCBhIHRleHQtb25seSBlbmRwb2ludCByZWNlaXZlZCBiaW5hcnkgZGF0YSkuJyxcbiAgfSxcbiAgMTAwNToge1xuICAgIGNvZGU6IDEwMDUsXG4gICAgbmFtZTogJ05vIFN0YXR1cyBSZWNlaXZlZCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnSW5kaWNhdGVzIHRoYXQgbm8gc3RhdHVzIGNvZGUgd2FzIHByb3ZpZGVkIGV2ZW4gdGhvdWdoIG9uZSB3YXMgZXhwZWN0ZWQuJyxcbiAgfSxcbiAgMTAwNjoge1xuICAgIGNvZGU6IDEwMDYsXG4gICAgbmFtZTogJ0Fibm9ybWFsIENsb3N1cmUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGNvbm5lY3Rpb24gd2FzIGNsb3NlZCBhYm5vcm1hbGx5ICh0aGF0IGlzLCB3aXRoIG5vIGNsb3NlIGZyYW1lIGJlaW5nIHNlbnQpIHdoZW4gYSBzdGF0dXMgY29kZSBpcyBleHBlY3RlZC4nLFxuICB9LFxuICAxMDA3OiB7XG4gICAgY29kZTogMTAwNyxcbiAgICBuYW1lOiAnSW52YWxpZCBmcmFtZSBwYXlsb2FkIGRhdGEnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBlbmRwb2ludCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGEgbWVzc2FnZSB3YXMgcmVjZWl2ZWQgdGhhdCBjb250YWluZWQgaW5jb25zaXN0ZW50IGRhdGEgKGUuZy4sIG5vbi1VVEYtOCBkYXRhIHdpdGhpbiBhIHRleHQgbWVzc2FnZSkuJyxcbiAgfSxcbiAgMTAwODoge1xuICAgIGNvZGU6IDEwMDgsXG4gICAgbmFtZTogJ1BvbGljeSBWaW9sYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBlbmRwb2ludCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGl0IHJlY2VpdmVkIGEgbWVzc2FnZSB0aGF0IHZpb2xhdGVzIGl0cyBwb2xpY3kuIFRoaXMgaXMgYSBnZW5lcmljIHN0YXR1cyBjb2RlLCB1c2VkIHdoZW4gY29kZXMgMTAwMyBhbmQgMTAwOSBhcmUgbm90IHN1aXRhYmxlLicsXG4gIH0sXG4gIDEwMDk6IHtcbiAgICBjb2RlOiAxMDA5LFxuICAgIG5hbWU6ICdNZXNzYWdlIHRvbyBiaWcnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBlbmRwb2ludCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGEgZGF0YSBmcmFtZSB3YXMgcmVjZWl2ZWQgdGhhdCBpcyB0b28gbGFyZ2UuJyxcbiAgfSxcbiAgMTAxMDoge1xuICAgIGNvZGU6IDEwMTAsXG4gICAgbmFtZTogJ01pc3NpbmcgRXh0ZW5zaW9uJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY2xpZW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgZXhwZWN0ZWQgdGhlIHNlcnZlciB0byBuZWdvdGlhdGUgb25lIG9yIG1vcmUgZXh0ZW5zaW9uLCBidXQgdGhlIHNlcnZlciBkaWRuXFwndC4nLFxuICB9LFxuICAxMDExOiB7XG4gICAgY29kZTogMTAxMSxcbiAgICBuYW1lOiAnSW50ZXJuYWwgRXJyb3InLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBzZXJ2ZXIgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBpdCBlbmNvdW50ZXJlZCBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbiB0aGF0IHByZXZlbnRlZCBpdCBmcm9tIGZ1bGZpbGxpbmcgdGhlIHJlcXVlc3QuJyxcbiAgfSxcbiAgMTAxMjoge1xuICAgIGNvZGU6IDEwMTIsXG4gICAgbmFtZTogJ1NlcnZpY2UgUmVzdGFydCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIHNlcnZlciBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGl0IGlzIHJlc3RhcnRpbmcuJyxcbiAgfSxcbiAgMTAxMzoge1xuICAgIGNvZGU6IDEwMTMsXG4gICAgbmFtZTogJ1RyeSBBZ2FpbiBMYXRlcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIHNlcnZlciBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBkdWUgdG8gYSB0ZW1wb3JhcnkgY29uZGl0aW9uLCBlLmcuIGl0IGlzIG92ZXJsb2FkZWQgYW5kIGlzIGNhc3Rpbmcgb2ZmIHNvbWUgb2YgaXRzIGNsaWVudHMuJyxcbiAgfSxcbiAgMTAxNDoge1xuICAgIGNvZGU6IDEwMTQsXG4gICAgbmFtZTogJ0JhZCBHYXRld2F5JyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgc2VydmVyIHdhcyBhY3RpbmcgYXMgYSBnYXRld2F5IG9yIHByb3h5IGFuZCByZWNlaXZlZCBhbiBpbnZhbGlkIHJlc3BvbnNlIGZyb20gdGhlIHVwc3RyZWFtIHNlcnZlci4gVGhpcyBpcyBzaW1pbGFyIHRvIDUwMiBIVFRQIFN0YXR1cyBDb2RlLicsXG4gIH0sXG4gIDEwMTU6IHtcbiAgICBjb2RlOiAxMDE1LFxuICAgIG5hbWU6ICdUTFMgSGFuZHNoYWtlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdJbmRpY2F0ZXMgdGhhdCB0aGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkIGR1ZSB0byBhIGZhaWx1cmUgdG8gcGVyZm9ybSBhIFRMUyBoYW5kc2hha2UgKGUuZy4sIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2FuXFwndCBiZSB2ZXJpZmllZCkuJyxcbiAgfSxcbiAgLy8gY3VzdG9tXG4gIDMwMDA6IHtcbiAgICBjb2RlOiAzMDAwLFxuICAgIG5hbWU6ICdSZWNvbm5lY3QgV2ViU29ja2V0JyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY2xpZW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgd2FudHMgdG8gcmVjb25uZWN0JyxcbiAgfSxcbiAgMzAwMToge1xuICAgIGNvZGU6IDMwMDEsXG4gICAgbmFtZTogJ05vIFJlYWx0aW1lIExpc3RlbmVycycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhlIGNsaWVudCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIG5vIG1vcmUgcmVhbHRpbWUgbGlzdGVuZXJzIGV4aXN0JyxcbiAgfSxcbiAgMzAwMjoge1xuICAgIGNvZGU6IDMwMDIsXG4gICAgbmFtZTogJ0hlYXJ0YmVhdCBQaW5nIEVycm9yJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY2xpZW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGR1ZSB0byBpdHMgZmFpbHVyZSBpbiBzZW5kaW5nIGhlYXJ0YmVhdCBtZXNzYWdlcycsXG4gIH0sXG4gIDMwMDM6IHtcbiAgICBjb2RlOiAzMDAzLFxuICAgIG5hbWU6ICdIZWFydGJlYXQgUG9uZyBUaW1lb3V0IEVycm9yJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdUaGUgY2xpZW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2Ugbm8gaGVhcnRiZWF0IHJlc3BvbnNlIGlzIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlcicsXG4gIH0sXG4gIDMwNTA6IHtcbiAgICBjb2RlOiAzMDUwLFxuICAgIG5hbWU6ICdTZXJ2ZXIgQ2xvc2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoZSBjbGllbnQgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBubyBoZWFydGJlYXQgcmVzcG9uc2UgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBlbnVtIENMT1NFX0VWRU5UX0NPREUge1xuICAvLyBzcGVjXG4gIE5vcm1hbENsb3N1cmUgPSAxMDAwLFxuICBHb2luZ0F3YXkgPSAxMDAxLFxuICBQcm90b2NvbEVycm9yID0gMTAwMixcbiAgVW5zdXBwb3J0ZWREYXRhID0gMTAwMyxcbiAgTm9TdGF0dXNSZWNlaXZlZCA9IDEwMDUsXG4gIEFibm9ybWFsQ2xvc3VyZSA9IDEwMDYsXG4gIEludmFsaWRGcmFtZVBheWxvYWREYXRhID0gMTAwNyxcbiAgUG9saWN5VmlvbGF0aW9uID0gMTAwOCxcbiAgTWVzc2FnZVRvb0JpZyA9IDEwMDksXG4gIE1pc3NpbmdFeHRlbnNpb24gPSAxMDEwLFxuICBJbnRlcm5hbEVycm9yID0gMTAxMSxcbiAgU2VydmljZVJlc3RhcnQgPSAxMDEyLFxuICBUcnlBZ2FpbkxhdGVyID0gMTAxMyxcbiAgQmFkR2F0ZXdheSA9IDEwMTQsXG4gIFRMU0hhbmRzaGFrZSA9IDEwMTUsXG4gIC8vIGN1c3RvbSAtIGNsaWVudCBjbG9zZSBpdHNlbGZcbiAgUmVjb25uZWN0V2ViU29ja2V0ID0gMzAwMCxcbiAgTm9SZWFsdGltZUxpc3RlbmVycyA9IDMwMDEsXG4gIEhlYXJ0YmVhdFBpbmdFcnJvciA9IDMwMDIsXG4gIEhlYXJ0YmVhdFBvbmdUaW1lb3V0RXJyb3IgPSAzMDAzLFxuICAvLyBjdXN0b20gLSBzZXJ2ZXIgY2xvc2VcbiAgTm9BdXRoZW50aWNhdGlvbiA9IDMwNTBcbn1cblxuZXhwb3J0IGNvbnN0IGdldFdTQ2xvc2VFcnJvciA9IChjb2RlOiBDTE9TRV9FVkVOVF9DT0RFLCByZWFzb24/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgaW5mbyA9IENMT1NFX0VWRU5UX0NPREVfSU5GT1tjb2RlXTtcbiAgY29uc3QgZXJyTXNnID0gIWluZm9cbiAgICA/IGBjb2RlICR7Y29kZX1gXG4gICAgOiBgJHtpbmZvLm5hbWV9LCBjb2RlICR7Y29kZX0sIHJlYXNvbiAke3JlYXNvbiB8fCBpbmZvLmRlc2NyaXB0aW9ufWA7XG4gIHJldHVybiBuZXcgQ2xvdWRTREtFcnJvcih7XG4gICAgZXJyQ29kZTogRVJSX0NPREUuU0RLX0RBVEFCQVNFX1JFQUxUSU1FX0xJU1RFTkVSX1dFQlNPQ0tFVF9DT05ORUNUSU9OX0NMT1NFRCBhcyBzdHJpbmcsXG4gICAgZXJyTXNnLFxuICB9KTtcbn07XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/realtime",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "cloudbase javascript sdk functions componets",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -27,26 +27,10 @@
|
|
|
27
27
|
"author": "",
|
|
28
28
|
"license": "ISC",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@cloudbase/types": "^1.
|
|
30
|
+
"@cloudbase/types": "^1.8.1",
|
|
31
|
+
"lodash.clonedeep": "^4.5.0",
|
|
32
|
+
"lodash.set": "^4.3.2",
|
|
33
|
+
"lodash.unset": "^4.5.2"
|
|
31
34
|
},
|
|
32
|
-
"
|
|
33
|
-
"@typescript-eslint/eslint-plugin": "^2.30.0",
|
|
34
|
-
"@typescript-eslint/parser": "^2.30.0",
|
|
35
|
-
"eslint": "^6.8.0",
|
|
36
|
-
"eslint-config-alloy": "^3.7.2",
|
|
37
|
-
"husky": "^4.2.5",
|
|
38
|
-
"lint-staged": "^10.1.7",
|
|
39
|
-
"typescript": "^3.8.3"
|
|
40
|
-
},
|
|
41
|
-
"husky": {
|
|
42
|
-
"hooks": {
|
|
43
|
-
"pre-commit": "lint-staged"
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"lint-staged": {
|
|
47
|
-
"**/*.ts": [
|
|
48
|
-
"eslint --fix"
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
"gitHead": "d158e30a395d8fcd6b7c7e78a66006b194a3eddb"
|
|
35
|
+
"gitHead": "1becff3801c6dda6e3cd45127d2881aef987c7bf"
|
|
52
36
|
}
|
package/src/common.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
let wsClass = null;
|
|
2
2
|
let runtime = 'web';
|
|
3
3
|
|
|
4
|
-
export function getWsClass(){
|
|
4
|
+
export function getWsClass() {
|
|
5
5
|
return wsClass;
|
|
6
6
|
}
|
|
7
|
-
export function setWsClass(val:any){
|
|
7
|
+
export function setWsClass(val: any) {
|
|
8
8
|
wsClass = val;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export function getRuntime(){
|
|
11
|
+
export function getRuntime() {
|
|
12
12
|
return runtime;
|
|
13
13
|
}
|
|
14
|
-
export function setRuntime(val:string){
|
|
14
|
+
export function setRuntime(val: string) {
|
|
15
15
|
runtime = val;
|
|
16
|
-
}
|
|
16
|
+
}
|
package/src/error.ts
CHANGED
|
@@ -1,77 +1,71 @@
|
|
|
1
|
-
import { IGenericError } from '@cloudbase/types'
|
|
2
|
-
import { IResponseMessageErrorMsg } from '@cloudbase/types/realtime'
|
|
1
|
+
import { IGenericError } from '@cloudbase/types';
|
|
2
|
+
import { IResponseMessageErrorMsg } from '@cloudbase/types/realtime';
|
|
3
3
|
|
|
4
4
|
export class RealtimeErrorMessageError extends Error {
|
|
5
|
-
isRealtimeErrorMessageError = true
|
|
6
|
-
payload: IResponseMessageErrorMsg
|
|
5
|
+
isRealtimeErrorMessageError = true;
|
|
6
|
+
payload: IResponseMessageErrorMsg;
|
|
7
7
|
|
|
8
8
|
constructor(serverErrorMsg: IResponseMessageErrorMsg) {
|
|
9
|
-
super(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
)
|
|
14
|
-
this.payload = serverErrorMsg
|
|
9
|
+
super(`Watch Error ${JSON.stringify(serverErrorMsg.msgData)} (requestid: ${
|
|
10
|
+
serverErrorMsg.requestId
|
|
11
|
+
})`);
|
|
12
|
+
this.payload = serverErrorMsg;
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
export const isRealtimeErrorMessageError = (
|
|
19
|
-
e: any
|
|
20
|
-
): e is RealtimeErrorMessageError => e?.isRealtimeErrorMessageError
|
|
16
|
+
export const isRealtimeErrorMessageError = (e: any): e is RealtimeErrorMessageError => e?.isRealtimeErrorMessageError;
|
|
21
17
|
|
|
22
18
|
export class TimeoutError extends Error
|
|
23
19
|
implements IGenericError<'timeout', null> {
|
|
24
|
-
type = 'timeout' as const
|
|
25
|
-
payload = null
|
|
26
|
-
generic = true
|
|
20
|
+
type = 'timeout' as const;
|
|
21
|
+
payload = null;
|
|
22
|
+
generic = true;
|
|
27
23
|
}
|
|
28
24
|
|
|
29
|
-
export const isTimeoutError = (e: any): e is TimeoutError =>
|
|
30
|
-
e.type === 'timeout'
|
|
25
|
+
export const isTimeoutError = (e: any): e is TimeoutError => e.type === 'timeout';
|
|
31
26
|
|
|
32
27
|
export class CancelledError extends Error
|
|
33
28
|
implements IGenericError<'cancelled', null> {
|
|
34
|
-
type = 'cancelled' as const
|
|
35
|
-
payload = null
|
|
36
|
-
generic = true
|
|
29
|
+
type = 'cancelled' as const;
|
|
30
|
+
payload = null;
|
|
31
|
+
generic = true;
|
|
37
32
|
}
|
|
38
33
|
|
|
39
|
-
export const isCancelledError = (e: any): e is CancelledError =>
|
|
40
|
-
e.type === 'cancelled'
|
|
34
|
+
export const isCancelledError = (e: any): e is CancelledError => e.type === 'cancelled';
|
|
41
35
|
|
|
42
36
|
export class CloudSDKError extends Error {
|
|
43
|
-
public errCode = 'UNKNOWN_ERROR'
|
|
44
|
-
public errMsg: string
|
|
37
|
+
public errCode = 'UNKNOWN_ERROR';
|
|
38
|
+
public errMsg: string;
|
|
45
39
|
|
|
46
|
-
public requestID?: string
|
|
40
|
+
public requestID?: string;
|
|
47
41
|
|
|
48
42
|
constructor(options: IErrorConstructorOptions) {
|
|
49
|
-
super(options.errMsg)
|
|
43
|
+
super(options.errMsg);
|
|
50
44
|
|
|
51
45
|
Object.defineProperties(this, {
|
|
52
46
|
message: {
|
|
53
47
|
get() {
|
|
54
48
|
return (
|
|
55
|
-
`errCode: ${this.errCode} ${ERR_CODE[this.errCode]
|
|
56
|
-
''} | errMsg:
|
|
57
|
-
)
|
|
49
|
+
`errCode: ${this.errCode} ${ERR_CODE[this.errCode]
|
|
50
|
+
|| ''} | errMsg: ${this.errMsg}`
|
|
51
|
+
);
|
|
58
52
|
},
|
|
59
53
|
set(msg: string) {
|
|
60
|
-
this.errMsg = msg
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
})
|
|
54
|
+
this.errMsg = msg;
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
});
|
|
64
58
|
|
|
65
|
-
this.errCode = options.errCode || 'UNKNOWN_ERROR'
|
|
66
|
-
this.errMsg = options.errMsg
|
|
59
|
+
this.errCode = options.errCode || 'UNKNOWN_ERROR';
|
|
60
|
+
this.errMsg = options.errMsg;
|
|
67
61
|
}
|
|
68
62
|
|
|
69
63
|
get message() {
|
|
70
|
-
return `errCode: ${this.errCode} | errMsg:
|
|
64
|
+
return `errCode: ${this.errCode} | errMsg: ${this.errMsg}`;
|
|
71
65
|
}
|
|
72
66
|
|
|
73
67
|
set message(msg: string) {
|
|
74
|
-
this.errMsg = msg
|
|
68
|
+
this.errMsg = msg;
|
|
75
69
|
}
|
|
76
70
|
}
|
|
77
71
|
|
|
@@ -111,6 +105,6 @@ export const ERR_CODE: { [key: string]: string | number } = {
|
|
|
111
105
|
'SDK_DATABASE_REALTIME_LISTENER_CHECK_LAST_FAIL',
|
|
112
106
|
// "realtime listener check last fail",
|
|
113
107
|
SDK_DATABASE_REALTIME_LISTENER_UNEXPECTED_FATAL_ERROR:
|
|
114
|
-
'SDK_DATABASE_REALTIME_LISTENER_UNEXPECTED_FATAL_ERROR'
|
|
108
|
+
'SDK_DATABASE_REALTIME_LISTENER_UNEXPECTED_FATAL_ERROR',
|
|
115
109
|
// "realtime listener unexpected fatal error"
|
|
116
|
-
}
|
|
110
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -5,33 +5,33 @@ import { ICloudbaseComponent, ICloudbaseHook } from '@cloudbase/types/component'
|
|
|
5
5
|
|
|
6
6
|
declare const cloudbase: ICloudbase;
|
|
7
7
|
|
|
8
|
-
const hook:ICloudbaseHook = {
|
|
8
|
+
const hook: ICloudbaseHook = {
|
|
9
9
|
target: 'database',
|
|
10
|
-
entity
|
|
11
|
-
const { adapter,runtime } = this.platform;
|
|
10
|
+
entity() {
|
|
11
|
+
const { adapter, runtime } = this.platform;
|
|
12
12
|
setWsClass(adapter.wsClass);
|
|
13
13
|
setRuntime(runtime);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
16
|
|
|
17
|
-
const component:ICloudbaseComponent = {
|
|
17
|
+
const component: ICloudbaseComponent = {
|
|
18
18
|
name: 'realtime',
|
|
19
19
|
IIFE: true,
|
|
20
|
-
entity
|
|
20
|
+
entity() {
|
|
21
21
|
this.prototype.wsClientClass = RealtimeWebSocketClient;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
24
|
|
|
25
|
-
try{
|
|
25
|
+
try {
|
|
26
26
|
cloudbase.registerComponent(component);
|
|
27
27
|
cloudbase.registerHook(hook);
|
|
28
|
-
}catch(e){}
|
|
28
|
+
} catch (e) {}
|
|
29
29
|
|
|
30
|
-
export function registerRealtime(app:Pick<ICloudbase, 'registerComponent'|'registerHook'>){
|
|
31
|
-
try{
|
|
30
|
+
export function registerRealtime(app: Pick<ICloudbase, 'registerComponent'|'registerHook'>) {
|
|
31
|
+
try {
|
|
32
32
|
app.registerComponent(component);
|
|
33
33
|
app.registerHook(hook);
|
|
34
|
-
}catch(e){
|
|
34
|
+
} catch (e) {
|
|
35
35
|
console.warn(e);
|
|
36
36
|
}
|
|
37
|
-
}
|
|
37
|
+
}
|
package/src/listener.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { VirtualWebSocketClient } from './virtual-websocket-client'
|
|
1
|
+
import { VirtualWebSocketClient } from './virtual-websocket-client';
|
|
2
2
|
import {
|
|
3
3
|
IRealtimeListenerConstructorOptions,
|
|
4
|
-
DBRealtimeListener
|
|
5
|
-
} from '@cloudbase/types/realtime'
|
|
4
|
+
DBRealtimeListener,
|
|
5
|
+
} from '@cloudbase/types/realtime';
|
|
6
6
|
|
|
7
7
|
// =============== Realtime Listener (Public) ====================
|
|
8
8
|
|
|
@@ -15,21 +15,19 @@ interface IRealtimeListenerOptions extends IRealtimeListenerConstructorOptions {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export class RealtimeListener implements DBRealtimeListener {
|
|
18
|
-
close: () => void
|
|
19
|
-
onChange: (res: any) => void
|
|
20
|
-
onError: (error: any) => void
|
|
18
|
+
close: () => void;
|
|
19
|
+
onChange: (res: any) => void;
|
|
20
|
+
onError: (error: any) => void;
|
|
21
21
|
|
|
22
22
|
constructor(options: IRealtimeListenerOptions) {
|
|
23
|
-
this.close = options.close
|
|
24
|
-
this.onChange = options.onChange
|
|
25
|
-
this.onError = options.onError
|
|
23
|
+
this.close = options.close;
|
|
24
|
+
this.onChange = options.onChange;
|
|
25
|
+
this.onError = options.onError;
|
|
26
26
|
|
|
27
27
|
if (options.debug) {
|
|
28
28
|
Object.defineProperty(this, 'virtualClient', {
|
|
29
|
-
get: () =>
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
})
|
|
29
|
+
get: () => options.virtualClient,
|
|
30
|
+
});
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
33
|
}
|
package/src/message.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IResponseMessage,
|
|
3
|
-
IResponseMessageInitEventMsg
|
|
4
|
-
} from '@cloudbase/types/realtime'
|
|
3
|
+
IResponseMessageInitEventMsg,
|
|
4
|
+
} from '@cloudbase/types/realtime';
|
|
5
5
|
|
|
6
6
|
export function genRequestId(prefix = '') {
|
|
7
|
-
return `${prefix ? `${prefix}_` : ''}${+new Date()}_${Math.random()}
|
|
7
|
+
return `${prefix ? `${prefix}_` : ''}${+new Date()}_${Math.random()}`;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export function isInitEventMessage(
|
|
11
|
-
msg
|
|
12
|
-
): msg is IResponseMessageInitEventMsg {
|
|
13
|
-
return msg.msgType === 'INIT_EVENT'
|
|
10
|
+
export function isInitEventMessage(msg: IResponseMessage): msg is IResponseMessageInitEventMsg {
|
|
11
|
+
return msg.msgType === 'INIT_EVENT';
|
|
14
12
|
}
|
package/src/snapshot.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SnapshotType, ISnapshot } from '@cloudbase/types/realtime'
|
|
2
|
-
import { ISingleDBEvent } from '@cloudbase/types/database'
|
|
1
|
+
import { SnapshotType, ISnapshot } from '@cloudbase/types/realtime';
|
|
2
|
+
import { ISingleDBEvent } from '@cloudbase/types/database';
|
|
3
3
|
|
|
4
4
|
// =============== Realtime Snapshot / Change Event (Public) ====================
|
|
5
5
|
|
|
@@ -13,49 +13,49 @@ interface ISnapshotConstructorOptions {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export class Snapshot implements ISnapshot {
|
|
16
|
-
id!: number
|
|
17
|
-
docChanges!: ISingleDBEvent[]
|
|
18
|
-
docs!: Record<string, any>[]
|
|
19
|
-
type?: 'init'
|
|
16
|
+
id!: number;
|
|
17
|
+
docChanges!: ISingleDBEvent[];
|
|
18
|
+
docs!: Record<string, any>[];
|
|
19
|
+
type?: 'init';
|
|
20
20
|
// EJSON: any
|
|
21
21
|
|
|
22
22
|
constructor(options: ISnapshotConstructorOptions) {
|
|
23
|
-
const { id, docChanges, docs, msgType, type } = options
|
|
23
|
+
const { id, docChanges, docs, msgType, type } = options;
|
|
24
24
|
|
|
25
|
-
let cachedDocChanges: ISingleDBEvent[]
|
|
26
|
-
let cachedDocs: Record<string, any>[]
|
|
25
|
+
let cachedDocChanges: ISingleDBEvent[];
|
|
26
|
+
let cachedDocs: Record<string, any>[];
|
|
27
27
|
|
|
28
28
|
Object.defineProperties(this, {
|
|
29
29
|
id: {
|
|
30
30
|
get: () => id,
|
|
31
|
-
enumerable: true
|
|
31
|
+
enumerable: true,
|
|
32
32
|
},
|
|
33
33
|
docChanges: {
|
|
34
34
|
get: () => {
|
|
35
35
|
if (!cachedDocChanges) {
|
|
36
|
-
cachedDocChanges = JSON.parse(JSON.stringify(docChanges))
|
|
36
|
+
cachedDocChanges = JSON.parse(JSON.stringify(docChanges));
|
|
37
37
|
}
|
|
38
|
-
return cachedDocChanges
|
|
38
|
+
return cachedDocChanges;
|
|
39
39
|
},
|
|
40
|
-
enumerable: true
|
|
40
|
+
enumerable: true,
|
|
41
41
|
},
|
|
42
42
|
docs: {
|
|
43
43
|
get: () => {
|
|
44
44
|
if (!cachedDocs) {
|
|
45
|
-
cachedDocs = JSON.parse(JSON.stringify(docs))
|
|
45
|
+
cachedDocs = JSON.parse(JSON.stringify(docs));
|
|
46
46
|
}
|
|
47
|
-
return cachedDocs
|
|
47
|
+
return cachedDocs;
|
|
48
48
|
},
|
|
49
|
-
enumerable: true
|
|
49
|
+
enumerable: true,
|
|
50
50
|
},
|
|
51
51
|
msgType: {
|
|
52
52
|
get: () => msgType,
|
|
53
|
-
enumerable: true
|
|
53
|
+
enumerable: true,
|
|
54
54
|
},
|
|
55
55
|
type: {
|
|
56
56
|
get: () => type,
|
|
57
|
-
enumerable: true
|
|
58
|
-
}
|
|
59
|
-
})
|
|
57
|
+
enumerable: true,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
60
|
}
|
|
61
61
|
}
|
package/src/utils.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const sleep = (ms = 0) => new Promise(r => setTimeout(r, ms));
|
|
1
|
+
export const sleep = (ms = 0) => new Promise(r => setTimeout(r, ms));
|