@based/client 3.2.2 → 4.0.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/README.md +28 -330
- package/dist/Emitter.d.ts +7 -6
- package/dist/Emitter.js +31 -6
- package/dist/Emitter.js.map +1 -1
- package/dist/authState/parseAuthState.d.ts +3 -0
- package/dist/authState/parseAuthState.js +51 -0
- package/dist/authState/parseAuthState.js.map +1 -0
- package/dist/authState/updateAuthState.d.ts +3 -0
- package/dist/authState/updateAuthState.js +15 -0
- package/dist/authState/updateAuthState.js.map +1 -0
- package/dist/channel/cleanUp.d.ts +2 -0
- package/dist/channel/cleanUp.js +32 -0
- package/dist/channel/cleanUp.js.map +1 -0
- package/dist/channel/index.d.ts +12 -0
- package/dist/channel/index.js +67 -0
- package/dist/channel/index.js.map +1 -0
- package/dist/genObserveId.d.ts +1 -0
- package/dist/genObserveId.js +12 -0
- package/dist/genObserveId.js.map +1 -0
- package/dist/getTargetInfo.d.ts +6 -0
- package/dist/getTargetInfo.js +14 -0
- package/dist/getTargetInfo.js.map +1 -0
- package/dist/getUrlFromOpts.d.ts +3 -0
- package/dist/getUrlFromOpts.js +24 -0
- package/dist/getUrlFromOpts.js.map +1 -0
- package/dist/incoming/debug.d.ts +9 -0
- package/dist/incoming/debug.js +132 -0
- package/dist/incoming/debug.js.map +1 -0
- package/dist/incoming/index.d.ts +2 -0
- package/dist/incoming/index.js +341 -0
- package/dist/incoming/index.js.map +1 -0
- package/dist/incoming/protocol.d.ts +9 -0
- package/dist/incoming/protocol.js +62 -0
- package/dist/incoming/protocol.js.map +1 -0
- package/dist/index.d.ts +69 -127
- package/dist/index.js +224 -15
- package/dist/index.js.map +1 -1
- package/dist/outgoing/debug.d.ts +8 -0
- package/dist/outgoing/debug.js +70 -0
- package/dist/outgoing/debug.js.map +1 -0
- package/dist/outgoing/index.d.ts +14 -0
- package/dist/outgoing/index.js +227 -0
- package/dist/outgoing/index.js.map +1 -0
- package/dist/outgoing/protocol.d.ts +24 -0
- package/dist/outgoing/protocol.js +200 -0
- package/dist/outgoing/protocol.js.map +1 -0
- package/dist/persistentStorage/browser.d.ts +5 -0
- package/dist/persistentStorage/browser.js +150 -0
- package/dist/persistentStorage/browser.js.map +1 -0
- package/dist/persistentStorage/index.d.ts +6 -0
- package/dist/persistentStorage/index.js +56 -0
- package/dist/persistentStorage/index.js.map +1 -0
- package/dist/persistentStorage/node.d.ts +6 -0
- package/dist/persistentStorage/node.js +104 -0
- package/dist/persistentStorage/node.js.map +1 -0
- package/dist/query/index.d.ts +17 -0
- package/dist/query/index.js +112 -0
- package/dist/query/index.js.map +1 -0
- package/dist/stream/fetch.d.ts +4 -0
- package/dist/stream/fetch.js +42 -0
- package/dist/stream/fetch.js.map +1 -0
- package/dist/stream/index.d.ts +4 -0
- package/dist/stream/index.js +65 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/stream/nodeStream.d.ts +7 -0
- package/dist/stream/nodeStream.js +117 -0
- package/dist/stream/nodeStream.js.map +1 -0
- package/dist/stream/types.d.ts +37 -0
- package/dist/stream/types.js +8 -0
- package/dist/stream/types.js.map +1 -0
- package/dist/stream/uploadFileBrowser.d.ts +4 -0
- package/dist/stream/uploadFileBrowser.js +113 -0
- package/dist/stream/uploadFileBrowser.js.map +1 -0
- package/dist/types/auth.d.ts +11 -0
- package/dist/{selvaTypes/get.js → types/auth.js} +1 -1
- package/dist/types/auth.js.map +1 -0
- package/dist/types/cache.d.ts +6 -0
- package/dist/{selvaTypes/set.js → types/cache.js} +1 -1
- package/dist/types/cache.js.map +1 -0
- package/dist/types/channel.d.ts +25 -0
- package/dist/types/channel.js +3 -0
- package/dist/types/channel.js.map +1 -0
- package/dist/types/error.d.ts +36 -0
- package/dist/types/error.js +40 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/events.d.ts +34 -0
- package/dist/{selvaTypes/schema.js → types/events.js} +1 -1
- package/dist/types/events.js.map +1 -0
- package/dist/types/functions.d.ts +8 -0
- package/dist/types/functions.js +3 -0
- package/dist/types/functions.js.map +1 -0
- package/dist/types/generic.d.ts +20 -0
- package/dist/types/generic.js +3 -0
- package/dist/types/generic.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/{subscriptions → types}/index.js +6 -10
- package/dist/types/index.js.map +1 -0
- package/dist/types/observe.d.ts +46 -0
- package/dist/types/observe.js +3 -0
- package/dist/types/observe.js.map +1 -0
- package/dist/websocket/index.d.ts +1 -1
- package/dist/websocket/index.js +14 -5
- package/dist/websocket/index.js.map +1 -1
- package/package.json +17 -27
- package/dist/Client.d.ts +0 -80
- package/dist/Client.js +0 -271
- package/dist/Client.js.map +0 -1
- package/dist/auth.d.ts +0 -13
- package/dist/auth.js +0 -87
- package/dist/auth.js.map +0 -1
- package/dist/createError.d.ts +0 -3
- package/dist/createError.js +0 -67
- package/dist/createError.js.map +0 -1
- package/dist/debug.d.ts +0 -2
- package/dist/debug.js +0 -21
- package/dist/debug.js.map +0 -1
- package/dist/file/fetch.d.ts +0 -6
- package/dist/file/fetch.js +0 -27
- package/dist/file/fetch.js.map +0 -1
- package/dist/file/getUrl.d.ts +0 -4
- package/dist/file/getUrl.js +0 -42
- package/dist/file/getUrl.js.map +0 -1
- package/dist/file/index.d.ts +0 -6
- package/dist/file/index.js +0 -95
- package/dist/file/index.js.map +0 -1
- package/dist/file/stream/browser.d.ts +0 -7
- package/dist/file/stream/browser.js +0 -17
- package/dist/file/stream/browser.js.map +0 -1
- package/dist/file/stream/index.d.ts +0 -7
- package/dist/file/stream/index.js +0 -86
- package/dist/file/stream/index.js.map +0 -1
- package/dist/file/uploadFileBrowser.d.ts +0 -3
- package/dist/file/uploadFileBrowser.js +0 -72
- package/dist/file/uploadFileBrowser.js.map +0 -1
- package/dist/findPrefix.d.ts +0 -3
- package/dist/findPrefix.js +0 -20
- package/dist/findPrefix.js.map +0 -1
- package/dist/idleTimeout.d.ts +0 -3
- package/dist/idleTimeout.js +0 -17
- package/dist/idleTimeout.js.map +0 -1
- package/dist/observable/index.d.ts +0 -28
- package/dist/observable/index.js +0 -84
- package/dist/observable/index.js.map +0 -1
- package/dist/printBasedObject.d.ts +0 -4
- package/dist/printBasedObject.js +0 -76
- package/dist/printBasedObject.js.map +0 -1
- package/dist/queue.d.ts +0 -5
- package/dist/queue.js +0 -53
- package/dist/queue.js.map +0 -1
- package/dist/request.d.ts +0 -6
- package/dist/request.js +0 -67
- package/dist/request.js.map +0 -1
- package/dist/selvaTypes/get.d.ts +0 -97
- package/dist/selvaTypes/get.js.map +0 -1
- package/dist/selvaTypes/schema.d.ts +0 -89
- package/dist/selvaTypes/schema.js.map +0 -1
- package/dist/selvaTypes/set.d.ts +0 -73
- package/dist/selvaTypes/set.js.map +0 -1
- package/dist/subscriptions/addGetSubscriber.d.ts +0 -3
- package/dist/subscriptions/addGetSubscriber.js +0 -87
- package/dist/subscriptions/addGetSubscriber.js.map +0 -1
- package/dist/subscriptions/addSubscriber.d.ts +0 -2
- package/dist/subscriptions/addSubscriber.js +0 -136
- package/dist/subscriptions/addSubscriber.js.map +0 -1
- package/dist/subscriptions/generateId.d.ts +0 -1
- package/dist/subscriptions/generateId.js +0 -11
- package/dist/subscriptions/generateId.js.map +0 -1
- package/dist/subscriptions/incomingSubscription.d.ts +0 -3
- package/dist/subscriptions/incomingSubscription.js +0 -87
- package/dist/subscriptions/incomingSubscription.js.map +0 -1
- package/dist/subscriptions/incomingSubscriptionDiff.d.ts +0 -3
- package/dist/subscriptions/incomingSubscriptionDiff.js +0 -85
- package/dist/subscriptions/incomingSubscriptionDiff.js.map +0 -1
- package/dist/subscriptions/index.d.ts +0 -10
- package/dist/subscriptions/index.js.map +0 -1
- package/dist/subscriptions/logoutSubscriptions.d.ts +0 -3
- package/dist/subscriptions/logoutSubscriptions.js +0 -36
- package/dist/subscriptions/logoutSubscriptions.js.map +0 -1
- package/dist/subscriptions/removeSendSubscriptionDataFromQueue.d.ts +0 -2
- package/dist/subscriptions/removeSendSubscriptionDataFromQueue.js +0 -14
- package/dist/subscriptions/removeSendSubscriptionDataFromQueue.js.map +0 -1
- package/dist/subscriptions/removeSubscriber.d.ts +0 -2
- package/dist/subscriptions/removeSubscriber.js +0 -44
- package/dist/subscriptions/removeSubscriber.js.map +0 -1
- package/dist/subscriptions/removeUnsubscribesFromQueue.d.ts +0 -2
- package/dist/subscriptions/removeUnsubscribesFromQueue.js +0 -14
- package/dist/subscriptions/removeUnsubscribesFromQueue.js.map +0 -1
- package/dist/subscriptions/sendAllSubscriptions.d.ts +0 -2
- package/dist/subscriptions/sendAllSubscriptions.js +0 -114
- package/dist/subscriptions/sendAllSubscriptions.js.map +0 -1
- package/dist/token.d.ts +0 -4
- package/dist/token.js +0 -35
- package/dist/token.js.map +0 -1
- package/dist/track.d.ts +0 -8
- package/dist/track.js +0 -71
- package/dist/track.js.map +0 -1
- package/docs/auth-based-ui-howto.md +0 -74
- package/docs/auth-howto.md +0 -166
- package/docs/auth.md +0 -93
- package/docs/authorize.md +0 -56
- package/docs/files.md +0 -66
- package/docs/get-started.md +0 -60
- package/docs/get.md +0 -759
- package/docs/schema.md +0 -244
- package/docs/set.md +0 -652
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/incoming/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BasedClient } from '..';
|
|
2
|
+
export declare const decodeHeader: (nr: number) => {
|
|
3
|
+
type: number;
|
|
4
|
+
isDeflate: boolean;
|
|
5
|
+
len: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const readUint8: (buff: Uint8Array, start: number, len: number) => number;
|
|
8
|
+
export declare const parseArrayBuffer: (d: any) => Promise<Uint8Array>;
|
|
9
|
+
export declare const requestFullData: (client: BasedClient, id: number) => void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestFullData = exports.parseArrayBuffer = exports.readUint8 = exports.decodeHeader = void 0;
|
|
4
|
+
const outgoing_1 = require("../outgoing");
|
|
5
|
+
const decodeHeader = (nr) => {
|
|
6
|
+
// 4 bytes
|
|
7
|
+
// type (3 bits)
|
|
8
|
+
// 0 = functionData
|
|
9
|
+
// 1 = subscriptionData
|
|
10
|
+
// 2 = subscriptionDiffData
|
|
11
|
+
// 3 = get
|
|
12
|
+
// 4 = authData
|
|
13
|
+
// 5 = errorData // TODO: make this 7.0 and channelMessage 5
|
|
14
|
+
// 6 = publish requesChannelName
|
|
15
|
+
// 7.0 = channelMessage
|
|
16
|
+
// isDeflate (1 bit)
|
|
17
|
+
// len (28 bits)
|
|
18
|
+
const len = nr >> 4;
|
|
19
|
+
const meta = nr & 15;
|
|
20
|
+
const type = meta >> 1;
|
|
21
|
+
const isDeflate = meta & 1;
|
|
22
|
+
return {
|
|
23
|
+
type,
|
|
24
|
+
isDeflate: isDeflate === 1,
|
|
25
|
+
len,
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
exports.decodeHeader = decodeHeader;
|
|
29
|
+
const readUint8 = (buff, start, len) => {
|
|
30
|
+
let n = 0;
|
|
31
|
+
const s = len - 1 + start;
|
|
32
|
+
for (let i = s; i >= start; i--) {
|
|
33
|
+
n = n * 256 + buff[i];
|
|
34
|
+
}
|
|
35
|
+
return n;
|
|
36
|
+
};
|
|
37
|
+
exports.readUint8 = readUint8;
|
|
38
|
+
const parseArrayBuffer = async (d) => {
|
|
39
|
+
if (typeof window === 'undefined') {
|
|
40
|
+
if (d instanceof Buffer) {
|
|
41
|
+
return new Uint8Array(d);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
if (d instanceof Blob) {
|
|
46
|
+
const buffer = await d.arrayBuffer();
|
|
47
|
+
return new Uint8Array(buffer);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
throw new Error('Recieved incorrect data');
|
|
51
|
+
};
|
|
52
|
+
exports.parseArrayBuffer = parseArrayBuffer;
|
|
53
|
+
const requestFullData = (client, id) => {
|
|
54
|
+
const sub = client.observeState.get(id);
|
|
55
|
+
if (!sub) {
|
|
56
|
+
console.warn(`Cannot find query function name for id from diff [id]`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
(0, outgoing_1.addGetToQueue)(client, sub.name, id, sub.payload);
|
|
60
|
+
};
|
|
61
|
+
exports.requestFullData = requestFullData;
|
|
62
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/incoming/protocol.ts"],"names":[],"mappings":";;;AACA,0CAA2C;AAEpC,MAAM,YAAY,GAAG,CAC1B,EAAU,EACyC,EAAE;IACrD,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,yBAAyB;IACzB,6BAA6B;IAC7B,YAAY;IACZ,iBAAiB;IACjB,8DAA8D;IAC9D,kCAAkC;IAClC,yBAAyB;IACzB,oBAAoB;IACpB,gBAAgB;IAChB,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,CAAA;IACnB,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAA;IACpB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAA;IACtB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAA;IAC1B,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,SAAS,KAAK,CAAC;QAC1B,GAAG;KACJ,CAAA;AACH,CAAC,CAAA;AAxBY,QAAA,YAAY,gBAwBxB;AAEM,MAAM,SAAS,GAAG,CACvB,IAAgB,EAChB,KAAa,EACb,GAAW,EACH,EAAE;IACV,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACtB;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAXY,QAAA,SAAS,aAWrB;AAEM,MAAM,gBAAgB,GAAG,KAAK,EAAE,CAAM,EAAuB,EAAE;IACpE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,IAAI,CAAC,YAAY,MAAM,EAAE;YACvB,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;SACzB;KACF;SAAM;QACL,IAAI,CAAC,YAAY,IAAI,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;YACpC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;SAC9B;KACF;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAC5C,CAAC,CAAA;AAZY,QAAA,gBAAgB,oBAY5B;AAEM,MAAM,eAAe,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAE;IACjE,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;QACrE,OAAM;KACP;IACD,IAAA,wBAAa,EAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AAClD,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,132 +1,74 @@
|
|
|
1
|
+
import { BasedOpts, AuthState, FunctionResponseListeners, Settings, FunctionQueue, ObserveState, ObserveQueue, Cache, GetObserveQueue } from './types';
|
|
2
|
+
import { GetState } from './types/observe';
|
|
3
|
+
import { Connection } from './websocket/types';
|
|
1
4
|
import Emitter from './Emitter';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
on(event: 'disconnect', listener: Function): this;
|
|
16
|
-
on(event: 'reconnect', listener: Function): this;
|
|
17
|
-
on(event: 'renewToken', listener: Function): this;
|
|
18
|
-
once(event: 'schema', listener: Function): this;
|
|
19
|
-
once(event: 'auth', listener: Function): this;
|
|
20
|
-
once(event: 'connect', listener: Function): this;
|
|
21
|
-
once(event: 'disconnect', listener: Function): this;
|
|
22
|
-
once(event: 'reconnect', listener: Function): this;
|
|
23
|
-
once(event: 'renewToken', listener: Function): this;
|
|
24
|
-
}
|
|
25
|
-
export declare class Based extends Emitter {
|
|
26
|
-
client: BasedClient;
|
|
27
|
-
graphql: {
|
|
28
|
-
query: (q: string | BasedGraphQL, variables?: Record<string, any>) => Promise<GenericObject>;
|
|
29
|
-
live: (q: string | BasedGraphQL, variables?: Record<string, any>) => Promise<IObservable>;
|
|
30
|
-
};
|
|
31
|
-
constructor(opts?: {
|
|
32
|
-
url: string | (() => Promise<string>);
|
|
33
|
-
});
|
|
34
|
-
connect(url?: string | (() => Promise<string>)): void;
|
|
35
|
-
private _url;
|
|
5
|
+
import { BasedQuery } from './query';
|
|
6
|
+
import { StreamFunctionOpts } from './stream/types';
|
|
7
|
+
import { BasedChannel } from './channel';
|
|
8
|
+
import { ChannelQueue, ChannelPublishQueue, ChannelState } from './types/channel';
|
|
9
|
+
export * from './authState/parseAuthState';
|
|
10
|
+
export { AuthState, BasedQuery };
|
|
11
|
+
export declare class BasedClient extends Emitter {
|
|
12
|
+
constructor(opts?: BasedOpts, settings?: Settings);
|
|
13
|
+
storageSize: number;
|
|
14
|
+
maxStorageSize: number;
|
|
15
|
+
storageEnvKey: number;
|
|
16
|
+
storagePath?: string;
|
|
17
|
+
storageBeingWritten?: ReturnType<typeof setTimeout>;
|
|
36
18
|
opts: BasedOpts;
|
|
19
|
+
connected: boolean;
|
|
20
|
+
connection: Connection;
|
|
21
|
+
url: string | (() => Promise<string>);
|
|
22
|
+
outgoingStreams: Map<string, {
|
|
23
|
+
stream: any;
|
|
24
|
+
resolve: (result: any) => void;
|
|
25
|
+
reject: (err: Error) => void;
|
|
26
|
+
}[]>;
|
|
27
|
+
isDrainingStreams: boolean;
|
|
28
|
+
publishQueue: ChannelPublishQueue;
|
|
29
|
+
functionQueue: FunctionQueue;
|
|
30
|
+
observeQueue: ObserveQueue;
|
|
31
|
+
channelQueue: ChannelQueue;
|
|
32
|
+
getObserveQueue: GetObserveQueue;
|
|
33
|
+
drainInProgress: boolean;
|
|
34
|
+
drainTimeout: ReturnType<typeof setTimeout>;
|
|
35
|
+
idlePing: ReturnType<typeof setTimeout>;
|
|
36
|
+
localStorage: boolean;
|
|
37
|
+
maxCacheSize: number;
|
|
38
|
+
cache: Cache;
|
|
39
|
+
functionResponseListeners: FunctionResponseListeners;
|
|
40
|
+
requestId: number;
|
|
41
|
+
channelState: ChannelState;
|
|
42
|
+
channelCleanTimeout?: ReturnType<typeof setTimeout>;
|
|
43
|
+
channelCleanupCycle: number;
|
|
44
|
+
observeState: ObserveState;
|
|
45
|
+
getState: GetState;
|
|
46
|
+
authState: AuthState;
|
|
47
|
+
authRequest: {
|
|
48
|
+
authState: AuthState;
|
|
49
|
+
promise: Promise<AuthState>;
|
|
50
|
+
resolve: (result: AuthState) => void;
|
|
51
|
+
reject: (err: Error) => void;
|
|
52
|
+
inProgress: boolean;
|
|
53
|
+
};
|
|
54
|
+
onClose(): void;
|
|
55
|
+
onReconnect(): void;
|
|
56
|
+
onOpen(): void;
|
|
57
|
+
onData(data: any): void;
|
|
58
|
+
connect(opts?: BasedOpts): Promise<void>;
|
|
37
59
|
disconnect(): void;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
createObservable(query: Query): Observable;
|
|
45
|
-
createObservable(name: string, payload?: any): Observable;
|
|
46
|
-
observeSchema(name: string, onData: (data: any, checksum: number) => void, onErr?: (err: Error) => void): Promise<() => void>;
|
|
47
|
-
observeSchema(onData: (data: any, checksum: number) => void, onErr?: (err: Error) => void): Promise<() => void>;
|
|
48
|
-
get(query: Query): Promise<GenericObject>;
|
|
49
|
-
get(name: string, payload?: any): Promise<GenericObject>;
|
|
50
|
-
file(opts: FileUploadOptions | File | FileUploadSrc | FileUploadPath | FileUploadStream): Promise<any>;
|
|
60
|
+
isDestroyed?: boolean;
|
|
61
|
+
destroy(noStorage?: boolean): Promise<void>;
|
|
62
|
+
channel(name: string, payload?: any): BasedChannel;
|
|
63
|
+
query(name: string, payload?: any, opts?: {
|
|
64
|
+
persistent: boolean;
|
|
65
|
+
}): BasedQuery;
|
|
51
66
|
call(name: string, payload?: any): Promise<any>;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
id: string;
|
|
58
|
-
}>;
|
|
59
|
-
bulkUpdate(payload: SetOptions, query: any): Promise<{
|
|
60
|
-
id: string;
|
|
61
|
-
}>;
|
|
62
|
-
copy(payload: Copy): Promise<{
|
|
63
|
-
ids: string[];
|
|
64
|
-
}>;
|
|
65
|
-
private gqlQuery;
|
|
66
|
-
private gqlLive;
|
|
67
|
-
analytics(opts: AnalyticsHistoryOpts): Promise<AnalyticsHistoryResult>;
|
|
68
|
-
analytics(opts: AnalyticsTypesOpts): Promise<AnalyticsTypes>;
|
|
69
|
-
analytics(opts: AnalyticsOpts): Promise<AnalyticsResult>;
|
|
70
|
-
analytics(opts: AnalyticsTypesOpts, onData: (data: AnalyticsTypes, checksum: number) => void): Promise<() => void>;
|
|
71
|
-
analytics(opts: AnalyticsOpts, onData: (data: AnalyticsResult, checksum: number) => void): Promise<() => void>;
|
|
72
|
-
analytics(opts: AnalyticsHistoryOpts, onData: (data: AnalyticsHistoryResult, checksum: number) => void): Promise<() => void>;
|
|
73
|
-
track(type: string, params?: {
|
|
74
|
-
[key: string]: number | string | boolean;
|
|
75
|
-
}): void;
|
|
76
|
-
clearAnalytics(type: string, params?: {
|
|
77
|
-
[key: string]: number | string | boolean;
|
|
78
|
-
}): void;
|
|
79
|
-
untrack(type: string, params?: {
|
|
80
|
-
[key: string]: number | string | boolean;
|
|
81
|
-
}): void;
|
|
82
|
-
event(type: string, params?: {
|
|
83
|
-
[key: string]: number | string | boolean;
|
|
84
|
-
}, opts?: TrackOpts): void;
|
|
85
|
-
delete(payload: {
|
|
86
|
-
$id: string;
|
|
87
|
-
$db?: string;
|
|
88
|
-
}): Promise<{
|
|
89
|
-
isDeleted: boolean;
|
|
90
|
-
}>;
|
|
91
|
-
schema(): Promise<Configuration>;
|
|
92
|
-
removeType(type: string, db?: string): Promise<{
|
|
93
|
-
removed: boolean;
|
|
94
|
-
}>;
|
|
95
|
-
removeField(type: string, path: string | string[], db?: string): Promise<{
|
|
96
|
-
removed: boolean;
|
|
97
|
-
}>;
|
|
98
|
-
updateSchema(configuration: {
|
|
99
|
-
schema?: GenericObject;
|
|
100
|
-
db?: string;
|
|
101
|
-
} | {
|
|
102
|
-
schema?: GenericObject;
|
|
103
|
-
db?: string;
|
|
104
|
-
}[]): Promise<GenericObject>;
|
|
105
|
-
getToken(): string;
|
|
106
|
-
auth(token: string | false, options?: SendTokenOptions): Promise<false | string | number>;
|
|
107
|
-
login(opts: LoginOpts & {
|
|
108
|
-
localStorage?: boolean;
|
|
109
|
-
}): Promise<GenericObject>;
|
|
110
|
-
register(opts: RegisterOpts & {
|
|
111
|
-
localStorage?: boolean;
|
|
112
|
-
}): Promise<GenericObject>;
|
|
113
|
-
logout(): Promise<GenericObject>;
|
|
114
|
-
observeAuth(userDataListener: (data: {
|
|
115
|
-
id: string;
|
|
116
|
-
token: string;
|
|
117
|
-
} | false) => void): Promise<() => void>;
|
|
67
|
+
stream(name: string, stream: StreamFunctionOpts, progressListener?: (progress: number) => void): Promise<any>;
|
|
68
|
+
setAuthState(authState: AuthState): Promise<AuthState>;
|
|
69
|
+
clearAuthState(): Promise<AuthState>;
|
|
70
|
+
clearStorage(): Promise<void>;
|
|
71
|
+
saveStorage(): Promise<void>;
|
|
118
72
|
}
|
|
119
|
-
export
|
|
120
|
-
|
|
121
|
-
project?: string;
|
|
122
|
-
org?: string;
|
|
123
|
-
cluster?: string;
|
|
124
|
-
name?: string;
|
|
125
|
-
key?: string;
|
|
126
|
-
url?: string | (() => Promise<string>);
|
|
127
|
-
params?: {
|
|
128
|
-
[key: string]: string | number;
|
|
129
|
-
};
|
|
130
|
-
};
|
|
131
|
-
declare const based: (opts: BasedOpts, BasedClass?: typeof Based) => Based;
|
|
132
|
-
export default based;
|
|
73
|
+
export { BasedOpts };
|
|
74
|
+
export default function based(opts: BasedOpts, settings?: Settings): BasedClient;
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,224 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
`),delete t.cache[e],b(t,[Z.RequestTypes.SendSubscriptionData,e]);else{c.checksum=n;for(let u in o.subscribers){let l=o.subscribers[u];l.onInitial&&(l.onInitial(null,Number(e),Number(u),c.value),delete l.onInitial,l.onData||S(t,e,Number(u))),l.onData&&l.onData(c.value,c.checksum)}}}}};var Me=(t,s)=>{for(let e of s[1]){delete t.cache[e];let r=t.subscriptions[e];if(r){let i={type:"AuthorizationError",name:r.name?`observe "${r.name}"`:"observe",message:"Unauthorized request",payload:r.query,auth:!0},n=w(i);r.authError={token:t.token,error:n};for(let o in r.subscribers){let c=r.subscribers[o];c.onError&&c.onError(n)}}}};var Ne=require("@based/types");var ft=0,y=(t,s,e,r,i,n,o)=>{let c=++ft;t.requestCallbacks[c]={resolve:r,reject:i,type:s,payload:e,name:n,isRetry:o},s===Ne.RequestTypes.Call?b(t,[s,n,c,e]):b(t,[s,c,e])};var He=(t,s)=>{let[,e,r,i]=s,n=t.requestCallbacks[e];n&&(delete t.requestCallbacks[e],i?n.reject(w(i)):n.resolve(r))};var k={};Be(k,{BasedClient:()=>x});var g=require("@based/types");var be=require("@based/types");var bt=t=>typeof t!="undefined"&&t!==null,mt=(t,s,e)=>{if(t.beingAuth=!0,s)t.token=s,t.sendTokenOptions=e;else{for(let r in t.cache)t.subscriptions[r]||delete t.cache[r];delete t.token,delete t.sendTokenOptions}if(t.connected){let r=s?[be.RequestTypes.Token,s,e].filter(bt):[be.RequestTypes.Token];t.connection.ws.send(JSON.stringify(r)),W(t),M(t,!0)}},E=mt;var B=require("@based/types");var me=0,_e=(t,s)=>{let e=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.Login,e,s]),new Promise((r,i)=>{t.authCallbacks[e]={resolve:n=>{n.id&&n.token?t.updateUserState(n.id,n.token,n.refreshToken):t.updateUserState(!1),r(n)},reject:i}})},ze=(t,s)=>new Promise((e,r)=>{y(t,B.RequestTypes.Call,s,i=>{i.id&&i.token?t.updateUserState(i.id,i.token,i.refreshToken):t.updateUserState(!1),e(i)},r,"registerUser")}),Je=(t,s)=>{let e=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.RenewToken,e,s]),new Promise((r,i)=>{t.authCallbacks[e]={resolve:r,reject:i}})},Ke=(t,s)=>{let[,e,r,i]=s,n=t.authCallbacks[e];n&&(delete t.authCallbacks[e],i?n.reject(w(i)):n.resolve(r))},We=t=>{let s=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.Logout,s]),new Promise((e,r)=>{t.authCallbacks[s]={resolve:i=>{t.updateUserState(!1),e(i)},reject:r}})};var Ve=(t,s)=>{let e=new Date,r=e.getHours()+":"+e.getMinutes()+":"+e.getSeconds()+":"+e.getMilliseconds();if(s==="incoming"){let i=`\u25BC ${r} -- `;console.info(i,t)}else{let i=`\u25B2 ${r} -- `;console.info(i,t)}};var he=require("@saulx/hash");p(k,require("@based/types"));var x=class{constructor(s){this.tokenToLocalStorage=!1;this.auth=[];this.subscriptions={};this.cache={};this.requestCallbacks={};this.authCallbacks={};this.connected=!1;this.subscriptionQueue=[];this.queue=[];this.drainInProgress=!1;this.based=s}get debug(){return this.debugInternal}set debug(s){s===!0?this.debugInternal=Ve:this.debugInternal=s}initUserState(){if(typeof window!="undefined"){if(this.based.opts){let s=(0,he.hash)({cluster:this.based.opts.cluster,project:this.based.opts.project,env:this.based.opts.project,org:this.based.opts.org});this.optsId=s}else this.optsId=(0,he.hash)("un-specified-env");try{let s=global.localStorage.getItem("based-"+this.optsId+"-uid");if(s){this.tokenToLocalStorage=!0;try{let[e,r,i]=JSON.parse(s);r&&e&&this.updateUserState(e,r,i)}catch(e){global.localStorage.removeItem("based-"+this.optsId+"-uid")}}}catch(s){}}}updateUserState(s,e,r){if(this.user=s,!this.tokenToLocalStorage&&typeof window!="undefined")try{global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(i){}if(e)r&&(this.renewOptions={refreshToken:r}),r&&(this.renewOptions=J(G({},this.renewOptions),{refreshToken:r})),E(this,e,{refreshToken:r}),this.auth.push(i=>{if(i){if(typeof window!="undefined")try{this.tokenToLocalStorage&&global.localStorage.setItem("based-"+this.optsId+"-uid",JSON.stringify([s,e,r]))}catch(n){}this.based.emit("auth",e)}else{if(typeof window!="undefined")try{this.tokenToLocalStorage&&global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(n){}this.based.emit("auth",!1)}});else{if(typeof window!="undefined"){this.user=!1;try{this.tokenToLocalStorage&&global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(i){}}E(this),this.based.emit("auth",!1)}}onClose(){this.connected=!1,Fe(this),xe(this),De(this),this.based.listeners.disconnect&&this.based.listeners.disconnect.forEach(s=>s())}onReconnect(){if(this.based.listeners.reconnect&&this.based.listeners.reconnect.forEach(s=>s()),this.tracking)for(let s of this.tracking)b(this,[g.RequestTypes.Track,{t:s}])}onOpen(){this.connected=!0,this.based.listeners.connect&&this.based.listeners.connect.forEach(s=>s()),this.token&&E(this,this.token,this.sendTokenOptions),M(this),de(this)}onData(s){var e,r;try{let i=JSON.parse(s.data);this.debugInternal&&this.debugInternal(i,"incoming");let[n,o,c,a,u]=i;if(n===g.RequestTypes.Token){this.retryingRenewToken=!1,o.length&&Me(this,i),!c&&typeof a=="string"&&this.user&&this.renewOptions.refreshToken&&(this.token=a);for(let l of this.auth)l(!c);this.beingAuth=!1,this.auth=[]}else if(n===g.RequestTypes.Auth)Ke(this,i);else if((((e=u||a)==null?void 0:e.code)===g.BasedErrorCodes.TokenExpired||((r=u||a)==null?void 0:r.message)==="Token expired")&&!this.retryingRenewToken){this.retryingRenewToken=!0;let l=this.user;Je(this,this.renewOptions).then(d=>{E(this,d.token,this.sendTokenOptions),n===g.RequestTypes.Subscription||n===g.RequestTypes.SubscriptionDiff?M(this):y(this,n,a==null?void 0:a.payload,this.requestCallbacks[o].resolve,this.requestCallbacks[o].reject),this.based.emit("renewToken",d),d&&this.updateUserState(l,d.token,this.renewOptions.refreshToken)}).catch(d=>{var f;(f=this.requestCallbacks[o])==null||f.reject(d)})}else n===g.RequestTypes.Set||n===g.RequestTypes.Get||n===g.RequestTypes.Configuration||n===g.RequestTypes.GetConfiguration||n===g.RequestTypes.Call||n===g.RequestTypes.Delete||n===g.RequestTypes.Copy||n===g.RequestTypes.Digest||n===g.RequestTypes.RemoveType||n===g.RequestTypes.RemoveField||n===g.RequestTypes.BulkUpdate?He(this,i):n===g.RequestTypes.Subscription?je(this,i):n===g.RequestTypes.SubscriptionDiff&&Le(this,i)}catch(i){console.error("Received incorrect data ",s.data)}}};var ge=(t,s)=>{let e;if(t.configuration&&t.configuration.schema)for(let r in t.configuration.schema){let i=t.configuration.schema[r];if(i.prefixToTypeMapping){for(let n in i.prefixToTypeMapping)if(i.prefixToTypeMapping[n]===s){e=n;break}}}return e};var Te=require("@saulx/hash");var Ye=require("@based/types"),Ze=require("@saulx/hash"),Xe=new Set,ht=t=>{if(typeof window!="undefined"){if(Xe.has(t))return!1;Xe.add(t);try{let s="_ba:"+(0,Ze.hashCompact)(t);return localStorage.getItem(s)?!1:(localStorage.setItem(s,"1"),!0)}catch(s){return!1}}return!1},ye=(t,s)=>{if(s){let e=`${t}`,r=Object.keys(s).sort();for(let i of r)e+="_"+i+"_"+s[i];return e}else return t},N=(t,s,e,r,i,n,o)=>{let c=ye(s,e),a={t:c};o&&(a.r=1),i&&(a.e=1,n&&(a.o=n)),r?(a.s=1,t.tracking.delete(c)):o||(i||(t.tracking||(t.tracking=new Set),t.tracking.add(c)),ht(c)&&(a.u=1)),b(t,[Ye.RequestTypes.Track,a])};var ve=class{constructor(s,e,r){this.closed=!1;this.client=s,this.subId=r,this.subscriberId=e}unsubscribe(){this.closed=!0,S(this.client,this.subId,this.subscriberId)}},Se=class{constructor(s,e){this.closed=!1;this.client=s,this.subs=e}unsubscribe(){if(!this.closed){this.closed=!0;for(let s of this.subs)s.unsubscribe()}}},ee=class{constructor(s,e){this.client=s,this.components=e}subscribe(s,e,r){let i={data:{}},n=[];for(let{key:o,obs:c}of this.components){let a=c.subscribe(u=>{if(o===""){Object.assign(i.data,u),s(i);return}i.data[o]=u,s(i)},e);n.push(a)}return new Se(this.client,n)}},C=class{constructor(s,e,r){this.client=s,this.subId=typeof e=="string"?P(r,e):P(e),this.name=typeof e=="string"?e:null,this.payload=typeof e=="string"?r:e}subscribe(s,e,r){let[,i]=I(this.client,this.payload,s,n=>{n&&(console.error(n),e&&e(n))},e,this.subId,this.name);return new ve(this.client,i,this.subId)}};var ke={},H={},gt=(t,s)=>{ke[t]||(ke[t]=!0,setTimeout(()=>{console.info("Drain file q"),ke[t]=!1;let e=H[t];H[t]=[];let r=new global.FormData;for(let i of e){let{raw:n,name:o,id:c,file:a,functionName:u}=i,l=`${u||""}|${n?1:0}|${c}|${a.size}${o?`|${o}`:""}`;r.append(l,a)}try{let i=new global.XMLHttpRequest;i.upload.onprogress=n=>{let o=100*(n.loaded||n.position)/(n.totalSize||n.total);console.info(o,"upload...")},i.onerror=n=>{console.error("error!",n,"flap",i.responseText)},i.timeout=1e3*60*60*24,i.onabort=n=>{console.error("abort",n)},i.ontimeout=n=>{console.error("on timeout",n)},i.onload=()=>{try{JSON.parse(i.response)}catch(n){console.error("something wrong with file upload",n)}},i.open("POST",t+"/file"),i.setRequestHeader("Content-Type","multipart/form-data"),i.setRequestHeader("Authorization",s),i.send(r)}catch(i){console.error("Something wrong with xhr upload",i)}},500))},et=async(t,s,e,r,i,n,o)=>{H[e]||(H[e]=[]),H[e].push({file:s,id:r,url:e,raw:i,name:n,functionName:o}),gt(e,t.getToken())};var tt=K(require("@based/get-service")),te={},se={},yt=async(t,s)=>{if(s.url)return typeof s.url=="string"?s.url:await s.url();if(!t.opts.env&&t.opts.url)return typeof t.opts.url=="string"?t.opts.url:await t.opts.url();let{env:e,project:r,org:i}=t.opts,n=e+"/"+r+"/"+i+"/"+t.opts.cluster;if(te[n])return te[n];if(se[n])return(await se[n]).url;let o=await(se[n]=(0,tt.default)({env:e,project:r,org:i,name:"@based/hub",key:"file-upload",optionalKey:!0},0,t.opts.cluster));return delete se[n],setTimeout(()=>{delete te[n]},2e3),te[n]=o.url},st=yt;var it=K(require("cross-fetch")),ie=(t,s,e)=>((0,it.default)(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":e.mimeType||"text/plain","File-Id":e.id,"File-Is-Raw":e.raw?"1":"0","File-Name":e.name||"","Function-Name":e.functionName||"",Authorization:t.getToken()},body:e.contents}).then(r=>{}).catch(r=>{console.error("Error while uploading file",r)}),{id:e.id});var A=require("./file/stream"),re=typeof window!="undefined",vt=t=>"src"in t&&typeof t.src=="string",St=t=>"path"in t&&typeof t.path=="string",kt=t=>"contents"in t&&(0,A.isStream)(t.contents),rt=async(t,s)=>{if(vt(s)){let i=s.id?{$id:s.id}:{type:"file"};return s.src?(i.src=s.src,i.origin=s.src,s.size&&(i.size=s.size),s.name&&(i.name=s.name),s.parents&&(i.parents=s.parents),await t.set(i)):void 0}let e=s.id;if(!e){let i={type:"file",progress:0};s.name?i.name=s.name:global.File&&"contents"in s&&s.contents instanceof global.File&&(i.name=s.contents.name),s.parents&&(i.parents=s.parents),e=(await t.set(i)).id}s.id=e;let r=(await st(t,s)).replace(/^ws/,"http");if(St(s))return(0,A.uploadFilePath)(t,r,s),{id:e};if(kt(s))return(0,A.uploadFileStream)(t,r,s),{id:e};if(s.contents instanceof ArrayBuffer)return s.contents=re?new global.Blob([s.contents],{type:s.mimeType||"text/plain"}):global.Buffer.from(s.contents),ie(t,r+"/file",s);if(re&&s.contents instanceof global.Blob)return s.mimeType||(s.mimeType=s.contents.type),ie(t,r+"/file",s);if(typeof s.contents=="string"||!re&&s.contents instanceof global.Buffer)return ie(t,r+"/file",s);if(re&&s.contents instanceof File)return et(t,s.contents,r,s.id,s.raw||!1,s.name,s.functionName),{id:e};throw s.id||await t.delete({$id:e}),new Error(`Invalid contents for file api ${JSON.stringify(s,null,2)}`)};var oe=K(require("@based/get-service")),Oe=require("@saulx/utils"),T=require("@based/graphql");p(m,require("@based/types"),module.exports);var ne=class extends Re{constructor(e){super();this.client=new x(this),Object.defineProperty(this,"client",{enumerable:!1,writable:!0}),e&&e.url&&this.connect(e.url),this.graphql={query:this.gqlQuery.bind(this),live:this.gqlLive.bind(this)}}connect(e){!e&&this._url?this.client.connection||(this.client.connection=le(this.client,this._url)):(this._url=e,this.client.connection=le(this.client,e))}disconnect(){this.client.connection&&(this.client.connection.disconnected=!0,this.client.connection.destroy(),this.client.connection.ws&&this.client.connection.ws.close(),this.client.connected&&this.client.onClose(),delete this.client.connection),this.client.connected=!1}observeUntil(e,r,i){return new Promise((n,o)=>{let c,a=!1;this.observe(e,(u,l)=>{i&&i(u,l),r(u,l)&&(a=!0,c&&c(),n(u))}).then(u=>{a?c():c=u}).catch(u=>{o(u)})})}gql(e,...r){typeof e=="string"&&(e=[e]);let i=e[0];return r.forEach((n,o)=>{n&&n.kind==="Document"?i+=n.loc.source.body:i+=n,i+=e[o+1]}),(0,T.createOperations)({schemas:this.client.configuration.schema},(0,T.parseGraphql)(i))}gqlDb(e="default"){return(r,...i)=>{typeof r=="string"&&(r=[r]);let n=r[0];return i.forEach((o,c)=>{o&&o.kind==="Document"?n+=o.loc.source.body:n+=o,n+=r[c+1]}),(0,T.createOperations)({schemas:this.client.configuration.schema,db:e},(0,T.parseGraphql)(n))}}observe(e,r,i,n){return typeof e=="string"?new Promise((o,c)=>{let a=typeof r=="function",u=a?r:i,l=a?i:n;I(this.client,a?void 0:r,u,(d,f,h,O,R)=>{d&&!R?c(d):o(()=>{S(this.client,f,h)})},l,void 0,e)}):new Promise((o,c)=>{I(this.client,e,r,(a,u,l,d,f)=>{a&&!f?c(a):o(()=>{S(this.client,u,l)})},i)})}createObservable(e,r){return typeof e=="string"?new C(this.client,e,r):new C(this.client,e)}observeSchema(e,r,i){return new Promise((n,o)=>{let c=typeof e=="string"?e:"default",a=typeof e=="string"?r:e,u=typeof e=="string"?i:r;I(this.client,{$subscribe_schema:c},(l,d)=>{this.client.configuration||(this.client.configuration={dbs:[],schema:{},functions:{}}),this.client.configuration.schema[c]=l,a(l,d)},(l,d,f,h,O)=>{l&&!O?o(l):n(()=>{S(this.client,d,f)})},u)})}get(e,r){return typeof e=="string"?new Promise((i,n)=>{V(this.client,r,(o,c,a,u)=>{o?n(o):i(u)},0,e)}):new Promise((i,n)=>{y(this.client,v.RequestTypes.Get,e,i,n)})}file(e){return global.File&&e instanceof File&&(e={contents:e}),rt(this,e)}call(e,r){return new Promise((i,n)=>{y(this.client,v.RequestTypes.Call,r,i,n,e)})}async id(e,r){let i=ge(this.client,e);if(i||(await this.schema(),i=ge(this.client,e)),!i)throw w({message:`Type does not exist ${e}`,type:"Invalid type",payload:r?{type:e,opts:r}:{type:e}});if(r){let n=(0,Te.hashCompact)(r,8,!0);return i+n}else return i+(0,Te.hashCompact)(Math.floor(Math.random()*99999999999)+""+Date.now())}digest(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Digest,e,r,i)})}set(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Set,e,r,i)})}bulkUpdate(e,r){return new Promise((i,n)=>{y(this.client,v.RequestTypes.BulkUpdate,{payload:e,query:r},i,n)})}copy(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Copy,e,r,i)})}async gqlQuery(e,r={}){let i;typeof e=="string"?i=this.gql(e):i=e;try{if(i=(0,T.handleGraphqlVariables)(i,i,r),i.opType==="GET"){let o={$db:i.db},c=[];for(let u in i.ops){if(i.ops[u].fnObserve){let l=await this.get(i.ops[u].fnObserve.name,i.ops[u].fnObserve.payload);c.push({key:u,reply:l});continue}i.ops[u].get&&(o[u]=i.ops[u].get)}let a=await this.get(o);for(let{key:u,reply:l}of c)a[u]=l;return{data:a}}let n={};return await Promise.all(Object.entries(i.ops).map(async([o,c])=>{var d,f,h,O,R;if(c.delete){n[o]=await this.delete(c.delete);return}else if(c.fnCall){n[o]=await this.call(c.fnCall.name,c.fnCall.payload);return}let{id:a}=await this.set(c.set);if(!c.get){let Q={};Q.id=a;let we=(R=(O=(h=(f=(d=this.client)==null?void 0:d.configuration)==null?void 0:f.schema)==null?void 0:h[i.db])==null?void 0:O.prefixToTypeMapping)==null?void 0:R[a.slice(0,2)];we&&(Q.type=we),n[o]=Q;return}let u=(0,Oe.deepCopy)(c.get);u.$id=a;let l=await this.get(u);n[o]=l})),{data:n}}catch(n){return{errors:[{message:n.message,locations:n.locations}]}}}async gqlLive(e,r={}){let i;if(typeof e=="string"?i=this.gql(e):i=e,i=(0,T.handleGraphqlVariables)(i,i,r),i.opType==="GET"){let o=[],c={};for(let a in i.ops){if(i.ops[a].fnObserve){let{name:u,payload:l}=i.ops[a].fnObserve;o.push({key:a,fn:{name:u,payload:l}});continue}c[a]=i.ops[a].get}if(o!=null&&o.length){let a=o.map(l=>({obs:new C(this.client,l.fn.name,l.fn.payload),key:l.key})),u=new C(this.client,G({$db:i.db},c));return a.push({key:"",obs:u}),new ee(this.client,a)}return new C(this.client,{$db:i.db,data:c})}let n={};return await Promise.all(Object.entries(i.ops).map(async([o,c])=>{if(c.delete){n[o]=await this.delete(c.delete);return}else if(c.fnCall){n[o]=await this.call(c.fnCall.name,c.fnCall.payload);return}let{id:a}=await this.set(c.set),u=(0,Oe.deepCopy)(c.get);u.$id=a,n[o]=u})),new C(this.client,{$db:i.db,data:n})}analytics(e,r){return new Promise((i,n)=>{r?I(this.client,e,r,(o,c,a,u,l)=>{o&&!l?n(o):i(()=>{S(this.client,c,a)})},o=>console.error(o),void 0,"analytics"):V(this.client,e,(o,c,a,u)=>{o?n(o):((0,v.isAnalyticsHistoryOpts)(e)||(0,v.isAnalyticsTypesOpts)(e),i(u))},0,"analytics")})}track(e,r){N(this.client,e,r)}clearAnalytics(e,r){N(this.client,e,r,!1,!1,void 0,!0)}untrack(e,r){N(this.client,e,r,!0)}event(e,r,i){N(this.client,e,r,!1,!0,i)}delete(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Delete,e,r,i)})}schema(){return new Promise((e,r)=>{let i=n=>{this.client.configuration=n,e(n)};y(this.client,v.RequestTypes.GetConfiguration,0,i,r)})}removeType(e,r="default"){return new Promise((i,n)=>{y(this.client,v.RequestTypes.RemoveType,{type:e,db:r},i,n)})}removeField(e,r,i="default"){return new Promise((n,o)=>{!r||r.length===0?o(new Error("Path cannot be empty")):(Array.isArray(r)||(r=[r]),y(this.client,v.RequestTypes.RemoveField,{type:e,db:i,path:r},n,o))})}updateSchema(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Configuration,e,r,i)})}getToken(){return this.client.token}auth(e,r){return new Promise(i=>{if(e&&e===this.client.token)this.client.beingAuth?this.client.auth.push(o=>{i(o?e:!1)}):i(e);else if(this.client.auth.push(i),e&&e!==this.client.token||e===!1&&this.client.token)if(typeof e=="string"&&(r==null?void 0:r.id)&&r.refreshToken)r.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,this.client.updateUserState(r.id,e,r.refreshToken);else{if(typeof e=="string"){let n=r||{},{renewOptions:o,refreshToken:c}=n,a=qe(n,["renewOptions","refreshToken"]);o&&(this.client.renewOptions=o),c&&(this.client.renewOptions=J(G({},this.client.renewOptions),{refreshToken:c})),E(this.client,e,a)}else E(this.client);this.emit("auth",e)}})}async login(e){return e.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,_e(this.client,e)}async register(e){return e.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,ze(this.client,e)}logout(){return We(this.client)}observeAuth(e){return new Promise(r=>{this.client.user&&this.client.token?e({id:this.client.user,token:this.client.token}):e(!1);let i=n=>{n&&this.client.user&&this.client.token?e({id:this.client.user,token:this.client.token}):e(!1)};this.on("auth",i),r(()=>{this.removeListener("auth",i)})})}},Tt=(t,s)=>{if(s){let e;t+=/\?/.test(t)?"&":"?";for(let r in s){let i=s[r];t+=e?`&${r}=${i}`:`${r}=${i}`,e=!0}}return t},Ot=(t,s=ne)=>{let{env:e,project:r,org:i,url:n,key:o,name:c="@based/hub",cluster:a,params:u}=t;if(n||(a=t.cluster=(0,oe.getClusterUrl)(a),n=async()=>{let{url:l}=await(0,oe.default)({env:e,project:r,org:i,key:o,name:c,optionalKey:!0},0,a);return Tt(l,u)}),n){let l=new s;return l.opts=t,l.client.initUserState(),l.connect(n),l}},wt=Ot;0&&(module.exports={Based,BasedClient,BasedGraphQL,Observable,addGetSubscriber,addRequest,addSubscriber,createGraphqlOperations,generateSubscriptionId,generateTrackingKey,handleGraphqlVariables,parseGraphql,removeSubscriber});
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.BasedClient = exports.BasedQuery = void 0;
|
|
21
|
+
const websocket_1 = __importDefault(require("./websocket"));
|
|
22
|
+
const Emitter_1 = __importDefault(require("./Emitter"));
|
|
23
|
+
const getUrlFromOpts_1 = __importDefault(require("./getUrlFromOpts"));
|
|
24
|
+
const outgoing_1 = require("./outgoing");
|
|
25
|
+
const incoming_1 = require("./incoming");
|
|
26
|
+
const query_1 = require("./query");
|
|
27
|
+
Object.defineProperty(exports, "BasedQuery", { enumerable: true, get: function () { return query_1.BasedQuery; } });
|
|
28
|
+
const stream_1 = __importDefault(require("./stream"));
|
|
29
|
+
const persistentStorage_1 = require("./persistentStorage");
|
|
30
|
+
const channel_1 = require("./channel");
|
|
31
|
+
const hash_1 = require("@saulx/hash");
|
|
32
|
+
__exportStar(require("./authState/parseAuthState"), exports);
|
|
33
|
+
class BasedClient extends Emitter_1.default {
|
|
34
|
+
constructor(opts, settings) {
|
|
35
|
+
super();
|
|
36
|
+
// --------- Persistent Storage
|
|
37
|
+
this.storageSize = 0;
|
|
38
|
+
this.maxStorageSize = 5e6 - 500; // ~5mb
|
|
39
|
+
this.storageEnvKey = 0;
|
|
40
|
+
this.connected = false;
|
|
41
|
+
// --------- Stream
|
|
42
|
+
this.outgoingStreams = new Map();
|
|
43
|
+
this.isDrainingStreams = false;
|
|
44
|
+
// --------- Queue
|
|
45
|
+
this.publishQueue = [];
|
|
46
|
+
this.functionQueue = [];
|
|
47
|
+
this.observeQueue = new Map();
|
|
48
|
+
this.channelQueue = new Map();
|
|
49
|
+
this.getObserveQueue = new Map();
|
|
50
|
+
this.drainInProgress = false;
|
|
51
|
+
// --------- Cache State
|
|
52
|
+
this.localStorage = false;
|
|
53
|
+
this.maxCacheSize = 4e6; // in bytes
|
|
54
|
+
this.cache = new Map();
|
|
55
|
+
// --------- Function State
|
|
56
|
+
this.functionResponseListeners = new Map();
|
|
57
|
+
this.requestId = 0; // max 3 bytes (0 to 16777215)
|
|
58
|
+
// --------- Channel State
|
|
59
|
+
this.channelState = new Map();
|
|
60
|
+
this.channelCleanupCycle = 30e3;
|
|
61
|
+
// --------- Observe State
|
|
62
|
+
this.observeState = new Map();
|
|
63
|
+
// --------- Get State
|
|
64
|
+
this.getState = new Map();
|
|
65
|
+
// -------- Auth state
|
|
66
|
+
this.authState = {};
|
|
67
|
+
this.authRequest = {
|
|
68
|
+
authState: null,
|
|
69
|
+
promise: null,
|
|
70
|
+
resolve: null,
|
|
71
|
+
reject: null,
|
|
72
|
+
inProgress: false,
|
|
73
|
+
};
|
|
74
|
+
if (opts && Object.keys(opts).length > 0) {
|
|
75
|
+
this.storageEnvKey = (0, hash_1.hashObjectIgnoreKeyOrder)(opts);
|
|
76
|
+
this.connect(opts);
|
|
77
|
+
}
|
|
78
|
+
if (settings?.persistentStorage) {
|
|
79
|
+
this.storagePath = settings.persistentStorage;
|
|
80
|
+
}
|
|
81
|
+
if (settings?.maxCacheSize) {
|
|
82
|
+
console.warn('MaxCacheSize setting not implemented yet...');
|
|
83
|
+
this.maxCacheSize = settings.maxCacheSize;
|
|
84
|
+
}
|
|
85
|
+
(0, persistentStorage_1.initStorage)(this);
|
|
86
|
+
}
|
|
87
|
+
// --------- Internal Events
|
|
88
|
+
onClose() {
|
|
89
|
+
this.connected = false;
|
|
90
|
+
// Rare edge case where server got dc'ed while sending the queue - before recieving result)
|
|
91
|
+
if (this.functionResponseListeners.size > this.functionQueue.length) {
|
|
92
|
+
this.functionResponseListeners.forEach((p, k) => {
|
|
93
|
+
if (!this.functionQueue.find(([id]) => {
|
|
94
|
+
if (id === k) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
})) {
|
|
99
|
+
p[1](new Error(`Server disconnected before function result was processed`));
|
|
100
|
+
this.functionResponseListeners.delete(k);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
this.emit('disconnect', true);
|
|
105
|
+
}
|
|
106
|
+
onReconnect() {
|
|
107
|
+
this.connected = true;
|
|
108
|
+
this.emit('reconnect', true);
|
|
109
|
+
}
|
|
110
|
+
onOpen() {
|
|
111
|
+
this.connected = true;
|
|
112
|
+
this.emit('connect', true);
|
|
113
|
+
// Resend all subscriptions
|
|
114
|
+
for (const [id, obs] of this.observeState) {
|
|
115
|
+
if (!this.observeQueue.has(id)) {
|
|
116
|
+
const cachedData = this.cache.get(id);
|
|
117
|
+
(0, outgoing_1.addObsToQueue)(this, obs.name, id, obs.payload, cachedData?.checksum || 0);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Resend all channels
|
|
121
|
+
for (const [id, channel] of this.channelState) {
|
|
122
|
+
if (!this.channelQueue.has(id)) {
|
|
123
|
+
if (channel.subscribers.size) {
|
|
124
|
+
(0, outgoing_1.addChannelSubscribeToQueue)(this, channel.name, id, channel.payload);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
(0, outgoing_1.addChannelPublishIdentifier)(this, channel.name, id, channel.payload);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
(0, outgoing_1.drainQueue)(this);
|
|
132
|
+
}
|
|
133
|
+
onData(data) {
|
|
134
|
+
(0, incoming_1.incoming)(this, data);
|
|
135
|
+
}
|
|
136
|
+
// --------- Connect
|
|
137
|
+
async connect(opts) {
|
|
138
|
+
if (opts) {
|
|
139
|
+
if (this.opts) {
|
|
140
|
+
this.disconnect();
|
|
141
|
+
}
|
|
142
|
+
this.opts = opts;
|
|
143
|
+
this.url = await (0, getUrlFromOpts_1.default)(opts);
|
|
144
|
+
}
|
|
145
|
+
if (!this.opts) {
|
|
146
|
+
console.error('Configure opts to connect');
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (this.url && !this.connection) {
|
|
150
|
+
this.connection = (0, websocket_1.default)(this, this.url);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
disconnect() {
|
|
154
|
+
if (this.connection) {
|
|
155
|
+
this.connection.disconnected = true;
|
|
156
|
+
this.connection.destroy();
|
|
157
|
+
if (this.connection.ws) {
|
|
158
|
+
this.connection.ws.close();
|
|
159
|
+
}
|
|
160
|
+
if (this.connected) {
|
|
161
|
+
this.onClose();
|
|
162
|
+
}
|
|
163
|
+
delete this.connection;
|
|
164
|
+
}
|
|
165
|
+
clearTimeout(this.drainTimeout);
|
|
166
|
+
clearTimeout(this.idlePing);
|
|
167
|
+
this.connected = false;
|
|
168
|
+
}
|
|
169
|
+
async destroy(noStorage) {
|
|
170
|
+
if (!noStorage) {
|
|
171
|
+
await (0, persistentStorage_1.updateStorage)(this);
|
|
172
|
+
}
|
|
173
|
+
clearTimeout(this.storageBeingWritten);
|
|
174
|
+
clearTimeout(this.channelCleanTimeout);
|
|
175
|
+
this.disconnect();
|
|
176
|
+
this.isDestroyed = true;
|
|
177
|
+
for (const i in this) {
|
|
178
|
+
delete this[i];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// ---------- Channel
|
|
182
|
+
channel(name, payload) {
|
|
183
|
+
return new channel_1.BasedChannel(this, name, payload);
|
|
184
|
+
}
|
|
185
|
+
// ---------- Query
|
|
186
|
+
query(name, payload, opts) {
|
|
187
|
+
return new query_1.BasedQuery(this, name, payload, opts);
|
|
188
|
+
}
|
|
189
|
+
// -------- Function
|
|
190
|
+
call(name, payload) {
|
|
191
|
+
return new Promise((resolve, reject) => {
|
|
192
|
+
(0, outgoing_1.addToFunctionQueue)(this, payload, name, resolve, reject);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
// -------- Stream
|
|
196
|
+
stream(name, stream, progressListener) {
|
|
197
|
+
return (0, stream_1.default)(this, name, stream, progressListener);
|
|
198
|
+
}
|
|
199
|
+
// -------- Auth
|
|
200
|
+
setAuthState(authState) {
|
|
201
|
+
if (typeof authState === 'object') {
|
|
202
|
+
return (0, outgoing_1.sendAuth)(this, authState);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
throw new Error('Invalid auth() arguments');
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
clearAuthState() {
|
|
209
|
+
return (0, outgoing_1.sendAuth)(this, {});
|
|
210
|
+
}
|
|
211
|
+
// -------- Storage layer
|
|
212
|
+
clearStorage() {
|
|
213
|
+
return (0, persistentStorage_1.clearStorage)(this);
|
|
214
|
+
}
|
|
215
|
+
saveStorage() {
|
|
216
|
+
return (0, persistentStorage_1.updateStorage)(this);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
exports.BasedClient = BasedClient;
|
|
220
|
+
function based(opts, settings) {
|
|
221
|
+
return new BasedClient(opts, settings);
|
|
222
|
+
}
|
|
223
|
+
exports.default = based;
|
|
224
|
+
//# sourceMappingURL=index.js.map
|