@vuu-ui/vuu-data-remote 0.11.0 → 0.11.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/cjs/inlined-worker.js +1 -0
- package/cjs/inlined-worker.js.map +1 -1
- package/esm/inlined-worker.js +1 -0
- package/esm/inlined-worker.js.map +1 -1
- package/package.json +13 -10
- package/types/ConnectionManager.d.ts +33 -0
- package/types/DedicatedWorker.d.ts +9 -0
- package/types/VuuDataSource.d.ts +53 -0
- package/types/WebSocketConnection.d.ts +68 -0
- package/types/authenticate.d.ts +1 -0
- package/types/constants.d.ts +41 -0
- package/types/data-source.d.ts +5 -0
- package/types/index.d.ts +9 -0
- package/types/inlined-worker.d.ts +1 -0
- package/types/message-utils.d.ts +11 -0
- package/types/rest-data/RestDataSource.d.ts +42 -0
- package/types/rest-data/moving-window.d.ts +14 -0
- package/types/rest-data/rest-utils.d.ts +14 -0
- package/types/server-proxy/array-backed-moving-window.d.ts +28 -0
- package/types/server-proxy/messages.d.ts +38 -0
- package/types/server-proxy/rpc-services.d.ts +2 -0
- package/types/server-proxy/server-proxy.d.ts +64 -0
- package/types/server-proxy/viewport.d.ts +117 -0
- package/types/worker.d.ts +1 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { DataSourceCallbackMessage, ServerProxySubscribeMessage, VuuUIMessageIn, VuuUIMessageOut, VuuUIMessageOutConnect, VuuUIMessageOutSubscribe, VuuUIMessageOutUnsubscribe, WithRequestId } from "@vuu-ui/vuu-data-types";
|
|
2
|
+
import type { VuuRpcMenuRequest, VuuClientMessage, VuuServerMessage, VuuLinkDescriptor, VuuRpcServiceRequest, VuuTable, VuuCreateVisualLink, VuuRemoveVisualLink } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
+
import { WebSocketConnection } from "../WebSocketConnection";
|
|
4
|
+
export type PostMessageToClientCallback = (message: VuuUIMessageIn | DataSourceCallbackMessage) => void;
|
|
5
|
+
export type MessageOptions = {
|
|
6
|
+
module?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const TEST_setRequestId: (id: number) => number;
|
|
9
|
+
export declare class ServerProxy {
|
|
10
|
+
private connection;
|
|
11
|
+
private postMessageToClient;
|
|
12
|
+
private viewports;
|
|
13
|
+
private mapClientToServerViewport;
|
|
14
|
+
private authToken;
|
|
15
|
+
private user;
|
|
16
|
+
private pendingLogin?;
|
|
17
|
+
private pendingRequests;
|
|
18
|
+
private sessionId?;
|
|
19
|
+
private queuedRequests;
|
|
20
|
+
private cachedTableMetaRequests;
|
|
21
|
+
private cachedTableSchemas;
|
|
22
|
+
private tableList;
|
|
23
|
+
constructor(connection: WebSocketConnection, callback: PostMessageToClientCallback);
|
|
24
|
+
private reconnect;
|
|
25
|
+
login(authToken?: string, user?: string): Promise<string | void>;
|
|
26
|
+
disconnect(): void;
|
|
27
|
+
subscribe(message: ServerProxySubscribeMessage): void;
|
|
28
|
+
/**
|
|
29
|
+
* Currently we only queue range requests, this may change
|
|
30
|
+
*/
|
|
31
|
+
private addRequestToQueue;
|
|
32
|
+
private processQueuedRequests;
|
|
33
|
+
unsubscribe(clientViewportId: string): void;
|
|
34
|
+
private getViewportForClient;
|
|
35
|
+
/**********************************************************************/
|
|
36
|
+
/**********************************************************************/
|
|
37
|
+
private setViewRange;
|
|
38
|
+
private setConfig;
|
|
39
|
+
private setTitle;
|
|
40
|
+
private select;
|
|
41
|
+
private disableViewport;
|
|
42
|
+
private enableViewport;
|
|
43
|
+
private suspendViewport;
|
|
44
|
+
private resumeViewport;
|
|
45
|
+
private openTreeNode;
|
|
46
|
+
private closeTreeNode;
|
|
47
|
+
private createLink;
|
|
48
|
+
private removeLink;
|
|
49
|
+
private updateTitleOnVisualLinks;
|
|
50
|
+
private removeViewportFromVisualLinks;
|
|
51
|
+
private menuRpcCall;
|
|
52
|
+
private viewportRpcCall;
|
|
53
|
+
private rpcCall;
|
|
54
|
+
handleMessageFromClient(message: Exclude<VuuUIMessageOut, VuuUIMessageOutConnect | VuuUIMessageOutSubscribe | VuuUIMessageOutUnsubscribe> | WithRequestId<VuuRpcServiceRequest> | WithRequestId<VuuRpcMenuRequest> | WithRequestId<VuuCreateVisualLink> | WithRequestId<VuuRemoveVisualLink>): void;
|
|
55
|
+
private getTableMeta;
|
|
56
|
+
private awaitResponseToMessage;
|
|
57
|
+
sendIfReady(message: VuuClientMessage["body"], requestId: string, isReady?: boolean): boolean;
|
|
58
|
+
sendMessageToServer(body: VuuClientMessage["body"], requestId?: string, options?: MessageOptions): void;
|
|
59
|
+
handleMessageFromServer(message: VuuServerMessage): void;
|
|
60
|
+
private cacheTableMeta;
|
|
61
|
+
isTableOpen(table?: VuuTable): true | undefined;
|
|
62
|
+
getActiveLinks(linkDescriptors: VuuLinkDescriptor[]): VuuLinkDescriptor[];
|
|
63
|
+
processUpdates(): void;
|
|
64
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { DataSourceFilter, DataSourceRow, DataSourceCallbackMessage, DataSourceDebounceRequest, DataSourceDisabledMessage, DataSourceEnabledMessage, DataSourceMenusMessage, DataSourceSetConfigMessage, DataSourceSubscribedMessage, DataSourceVisualLinkCreatedMessage, DataSourceVisualLinkRemovedMessage, DataSourceVisualLinksMessage, DataUpdateMode, Selection, TableSchema, WithFullConfig, ServerProxySubscribeMessage, VuuUIMessageOutOpenTreeNode, VuuUIMessageOutCloseTreeNode, WithRequestId } from "@vuu-ui/vuu-data-types";
|
|
2
|
+
import { VuuViewportChangeRequest, ClientToServerCloseTreeNode, VuuCreateVisualLink, VuuViewportCreateRequest, ClientToServerDisable, ClientToServerEnable, ClientToServerOpenTreeNode, VuuRemoveVisualLink, ClientToServerSelection, VuuViewportRangeRequest, LinkDescriptorWithLabel, VuuViewportCreateResponse, VuuMenu, VuuRange, VuuRow, VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
+
export type ViewportStatus = "" | "subscribing" | "resubscribing" | "subscribed";
|
|
4
|
+
interface Disable {
|
|
5
|
+
type: "disable";
|
|
6
|
+
}
|
|
7
|
+
interface Enable {
|
|
8
|
+
type: "enable";
|
|
9
|
+
}
|
|
10
|
+
interface ChangeViewportRange {
|
|
11
|
+
type: "CHANGE_VP_RANGE";
|
|
12
|
+
}
|
|
13
|
+
interface ViewportFilter {
|
|
14
|
+
data: DataSourceFilter;
|
|
15
|
+
type: "filter";
|
|
16
|
+
}
|
|
17
|
+
interface ConfigOperation {
|
|
18
|
+
data: WithFullConfig;
|
|
19
|
+
type: "config";
|
|
20
|
+
}
|
|
21
|
+
interface SelectionOperation {
|
|
22
|
+
data: Selection;
|
|
23
|
+
type: "selection";
|
|
24
|
+
}
|
|
25
|
+
type AsyncOperationWithData = ConfigOperation | ViewportFilter | SelectionOperation;
|
|
26
|
+
type AsyncOperation = AsyncOperationWithData | ChangeViewportRange | Disable | Enable | VuuCreateVisualLink | VuuRemoveVisualLink;
|
|
27
|
+
type RangeRequestTuple = [
|
|
28
|
+
VuuViewportRangeRequest | null,
|
|
29
|
+
DataSourceRow[]?,
|
|
30
|
+
DataSourceDebounceRequest?
|
|
31
|
+
];
|
|
32
|
+
type LinkedParent = {
|
|
33
|
+
colName: string;
|
|
34
|
+
parentViewportId: string;
|
|
35
|
+
parentColName: string;
|
|
36
|
+
};
|
|
37
|
+
export declare const NO_DATA_UPDATE: Readonly<[undefined, undefined]>;
|
|
38
|
+
export declare class Viewport {
|
|
39
|
+
#private;
|
|
40
|
+
private aggregations;
|
|
41
|
+
private batchMode;
|
|
42
|
+
private bufferSize;
|
|
43
|
+
private columns;
|
|
44
|
+
private dataWindow;
|
|
45
|
+
private filter;
|
|
46
|
+
private groupBy;
|
|
47
|
+
private sort;
|
|
48
|
+
private hasUpdates;
|
|
49
|
+
private pendingUpdates;
|
|
50
|
+
private keys;
|
|
51
|
+
private pendingLinkedParent?;
|
|
52
|
+
private pendingOperations;
|
|
53
|
+
private pendingRangeRequests;
|
|
54
|
+
private postMessageToClient;
|
|
55
|
+
private rowCountChanged;
|
|
56
|
+
private selectedRows;
|
|
57
|
+
private lastUpdateStatus;
|
|
58
|
+
private updateThrottleTimer;
|
|
59
|
+
private lastRowsReturnedToClient;
|
|
60
|
+
private rangeMonitor;
|
|
61
|
+
clientViewportId: string;
|
|
62
|
+
disabled: boolean;
|
|
63
|
+
isTree: boolean;
|
|
64
|
+
links?: LinkDescriptorWithLabel[];
|
|
65
|
+
linkedParent?: LinkedParent;
|
|
66
|
+
serverViewportId?: string;
|
|
67
|
+
suspended: boolean;
|
|
68
|
+
suspendTimer: number | null;
|
|
69
|
+
table: VuuTable;
|
|
70
|
+
title: string | undefined;
|
|
71
|
+
constructor({ aggregations, bufferSize, columns, filterSpec: filter, groupBy, table, range, sort, title, viewport, visualLink, }: ServerProxySubscribeMessage,
|
|
72
|
+
/**
|
|
73
|
+
* Viewport is given access to postMessageToClient in the event that it needs
|
|
74
|
+
* to send 'out of band' messageg, e.g cached SIZE messages when a timer
|
|
75
|
+
* expires
|
|
76
|
+
*/
|
|
77
|
+
postMessageToClient: (message: DataSourceCallbackMessage) => void);
|
|
78
|
+
private setLastSizeOnlyUpdateSize;
|
|
79
|
+
private setLastUpdate;
|
|
80
|
+
get hasUpdatesToProcess(): boolean;
|
|
81
|
+
get size(): number;
|
|
82
|
+
get clientRange(): VuuRange;
|
|
83
|
+
get status(): ViewportStatus;
|
|
84
|
+
set status(status: ViewportStatus);
|
|
85
|
+
subscribe(): VuuViewportCreateRequest;
|
|
86
|
+
handleSubscribed({ viewPortId, aggregations, columns, filterSpec: filter, range, sort, groupBy, table, }: VuuViewportCreateResponse, baseTableSchema: TableSchema): DataSourceSubscribedMessage;
|
|
87
|
+
awaitOperation(requestId: string, msg: AsyncOperation): void;
|
|
88
|
+
completeOperation(requestId: string, ...params: unknown[]): DataSourceSetConfigMessage | DataSourceDisabledMessage | DataSourceEnabledMessage | WithRequestId<DataSourceVisualLinkCreatedMessage> | WithRequestId<DataSourceVisualLinkRemovedMessage> | undefined;
|
|
89
|
+
rangeRequest(requestId: string, range: VuuRange): RangeRequestTuple;
|
|
90
|
+
setLinks(links: LinkDescriptorWithLabel[]): [DataSourceVisualLinksMessage, LinkDescriptorWithLabel | undefined];
|
|
91
|
+
setMenu(menu: VuuMenu): DataSourceMenusMessage;
|
|
92
|
+
openTreeNode(requestId: string, message: VuuUIMessageOutOpenTreeNode): ClientToServerOpenTreeNode;
|
|
93
|
+
closeTreeNode(requestId: string, message: VuuUIMessageOutCloseTreeNode): ClientToServerCloseTreeNode;
|
|
94
|
+
createLink(requestId: string, vuuCreateVisualLink: VuuCreateVisualLink): VuuCreateVisualLink;
|
|
95
|
+
removeLink(requestId: string): VuuRemoveVisualLink;
|
|
96
|
+
suspend(): void;
|
|
97
|
+
resume(): [number, DataSourceRow[]];
|
|
98
|
+
currentData(): DataSourceRow[];
|
|
99
|
+
enable(requestId: string): ClientToServerEnable;
|
|
100
|
+
disable(requestId: string): ClientToServerDisable;
|
|
101
|
+
setConfig(requestId: string, config: WithFullConfig): VuuViewportChangeRequest;
|
|
102
|
+
selectRequest(requestId: string, selected: Selection): ClientToServerSelection;
|
|
103
|
+
private removePendingRangeRequest;
|
|
104
|
+
private rangeRequestAlreadyPending;
|
|
105
|
+
updateRows(rows: VuuRow[]): void;
|
|
106
|
+
private getKeyForRowAtIndex;
|
|
107
|
+
getClientRows(): Readonly<[
|
|
108
|
+
DataSourceRow[] | undefined,
|
|
109
|
+
DataUpdateMode | undefined
|
|
110
|
+
]>;
|
|
111
|
+
private sendThrottledSizeMessage;
|
|
112
|
+
private shouldThrottleMessage;
|
|
113
|
+
private throttleMessage;
|
|
114
|
+
getNewRowCount: () => number | undefined;
|
|
115
|
+
createRequest(params: Partial<Omit<VuuViewportChangeRequest, "type" | "viewPortId">>, overWrite?: boolean): VuuViewportChangeRequest;
|
|
116
|
+
}
|
|
117
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|