@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.
@@ -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 {};