@vertexvis/stream-api 0.12.0-canary.26 → 0.12.0-canary.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  */
4
4
  export * from './connection';
5
5
  export * from './encoder';
6
+ export * from './errors';
6
7
  export { Settings, FrameDeliverySettings, AdaptiveRenderingSettings, QualityOfServiceSettings, } from './settings';
7
8
  export * from './streamApi';
8
9
  export * from './testing';
@@ -7,17 +7,21 @@ import { Settings } from './settings';
7
7
  export declare type RequestMessageHandler = (msg: RequestMessage) => void;
8
8
  export declare type ResponseMessageHandler = (msg: ResponseMessage) => void;
9
9
  export declare type EventMessageHandler = (msg: EventMessage) => void;
10
+ export declare type CloseEventHandler = (evt: CloseEvent) => void;
11
+ export interface StreamApiOptions {
12
+ loggingEnabled?: boolean;
13
+ }
10
14
  /**
11
15
  * The API client to interact with Vertex's streaming API.
12
16
  */
13
17
  export declare class StreamApi {
14
18
  private websocket;
15
- private loggingEnabled;
16
19
  private onResponseDispatcher;
17
20
  private onRequestDispatcher;
18
21
  private onEventDispatcher;
19
22
  private messageSubscription?;
20
- constructor(websocket?: WebSocketClient, loggingEnabled?: boolean);
23
+ private opts;
24
+ constructor(websocket?: WebSocketClient, opts?: StreamApiOptions);
21
25
  /**
22
26
  * Initiates a websocket connection to Vertex's streaming API. Returns a
23
27
  * promise that resolves once the connection is established and can begin
@@ -46,6 +50,12 @@ export declare class StreamApi {
46
50
  * @param handler - A handler function.
47
51
  */
48
52
  onEvent(handler: EventMessageHandler): Disposable;
53
+ /**
54
+ * Adds a callback that is invoked when the websocket connection is closed.
55
+ *
56
+ * @param handler A handler function.
57
+ */
58
+ onClose(handler: CloseEventHandler): Disposable;
49
59
  /**
50
60
  * Sends a request to initiate a streaming session.
51
61
  *
@@ -256,6 +266,14 @@ export declare class StreamApi {
256
266
  * Sends a request to get a stencil buffer image for the current scene view.
257
267
  */
258
268
  getStencilBuffer(payload: GetStencilBufferPayload, withResponse?: boolean): Promise<vertexvis.protobuf.stream.IStreamResponse>;
269
+ /**
270
+ * Sends a request to retrieve a new token. This token can be used to
271
+ * authenticate with other Vertex services.
272
+ *
273
+ * @param withResponse Indicates if the server should reply with a response.
274
+ * @returns A promise that completes with the refreshed token.
275
+ */
276
+ refreshToken(withResponse?: boolean): Promise<vertexvis.protobuf.stream.IStreamResponse>;
259
277
  /**
260
278
  * Acknowledges a successful request by sending a reply back to the server
261
279
  * with an optional result body.
@@ -1,3 +1,4 @@
1
- import * as Requests from './requests';
2
1
  import * as Events from './events';
3
- export { Requests, Events };
2
+ import * as Requests from './requests';
3
+ import * as Responses from './responses';
4
+ export { Events, Requests, Responses };
@@ -0,0 +1,20 @@
1
+ import { vertexvis } from '@vertexvis/frame-streaming-protos';
2
+ import { ResponseMessage } from '../../types';
3
+ declare type Metadata = Partial<Pick<ResponseMessage, 'sentAtTime'>>;
4
+ interface RequestId {
5
+ requestId?: string;
6
+ }
7
+ interface Result<T> {
8
+ result?: T;
9
+ }
10
+ declare type StartStreamResponse = RequestId & Result<vertexvis.protobuf.stream.IStartStreamResult>;
11
+ declare type SyncTimeResponse = RequestId & Result<vertexvis.protobuf.stream.ISyncTimeResult>;
12
+ declare type ReconnectResponse = RequestId & Result<vertexvis.protobuf.stream.IReconnectResult>;
13
+ declare type LoadSceneViewStateResponse = RequestId & Result<vertexvis.protobuf.stream.ILoadSceneViewStateResult>;
14
+ declare type RefreshTokenResponse = RequestId & Result<vertexvis.protobuf.stream.IRefreshTokenResult>;
15
+ export declare function startStream(res?: StartStreamResponse, meta?: Metadata): ResponseMessage;
16
+ export declare function syncTime(res?: SyncTimeResponse, meta?: Metadata): ResponseMessage;
17
+ export declare function reconnect(res?: ReconnectResponse, meta?: Metadata): ResponseMessage;
18
+ export declare function loadSceneViewState(res?: LoadSceneViewStateResponse, meta?: Metadata): ResponseMessage;
19
+ export declare function refreshToken(res?: RefreshTokenResponse, meta?: Metadata): ResponseMessage;
20
+ export {};
@@ -1,11 +1,13 @@
1
- import { WebSocketClient, WebSocketSendData, MessageHandler } from '../webSocketClient';
1
+ import { WebSocketClient, WebSocketSendData, MessageHandler, CloseHandler } from '../webSocketClient';
2
2
  import { ConnectionDescriptor } from '../connection';
3
3
  import { Disposable } from '@vertexvis/utils';
4
4
  export declare class WebSocketClientMock implements WebSocketClient {
5
- private handlers;
5
+ private closeHandlers;
6
+ private msgHandlers;
6
7
  private sentMessages;
7
8
  close(): void;
8
9
  connect(descriptor: ConnectionDescriptor): Promise<void>;
10
+ onClose(handler: CloseHandler): Disposable;
9
11
  onMessage(handler: MessageHandler): Disposable;
10
12
  send(data: WebSocketSendData): void;
11
13
  reconnect(descriptor: ConnectionDescriptor): Promise<void>;
package/dist/types.d.ts CHANGED
@@ -35,6 +35,16 @@ export declare type LoadSceneViewStatePayload = DeepRequired<vertexvis.protobuf.
35
35
  export declare type GetStencilBufferPayload = DeepRequired<vertexvis.protobuf.stream.IGetStencilBufferPayload, [
36
36
  ]>;
37
37
  export declare type DrawFrameResult = DeepRequired<Pick<vertexvis.protobuf.stream.IStreamResponse, 'drawFrame'>, ['drawFrame', 'timing', 'receiveToPaintDuration'] | ['drawFrame', 'timing', 'sendToReceiveDuration']>;
38
+ export declare type StartStreamResult = DeepRequired<vertexvis.protobuf.stream.IStartStreamResult, [
39
+ ]>;
40
+ export declare type SyncTimeResult = DeepRequired<vertexvis.protobuf.stream.ISyncTimeResult, [
41
+ ]>;
42
+ export declare type ReconnectResult = DeepRequired<vertexvis.protobuf.stream.IReconnectResult, [
43
+ ]>;
44
+ export declare type LoadSceneViewStateResult = DeepRequired<vertexvis.protobuf.stream.ILoadSceneViewStateResult, [
45
+ ]>;
46
+ export declare type RefreshTokenResult = DeepRequired<vertexvis.protobuf.stream.IRefreshTokenResult, [
47
+ ]>;
38
48
  export declare type ResponseResult = DrawFrameResult;
39
49
  export declare type ResponseError = vertexvis.protobuf.stream.IError;
40
50
  export declare type AnimationCompletedEvent = DeepRequired<Pick<vertexvis.protobuf.stream.IAnimationCompletedEvent, 'animationId'>, [
@@ -7,6 +7,7 @@ export interface WebSocketClient {
7
7
  close(): void;
8
8
  connect(descriptor: ConnectionDescriptor): Promise<void>;
9
9
  onMessage(handler: MessageHandler): Disposable;
10
+ onClose(handler: CloseHandler): Disposable;
10
11
  send(data: WebSocketSendData): void;
11
12
  }
12
13
  export declare class WebSocketClientImpl implements WebSocketClient {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertexvis/stream-api",
3
- "version": "0.12.0-canary.26",
3
+ "version": "0.12.0-canary.27",
4
4
  "description": "A websocket client for interacting with Vertex's stream API.",
5
5
  "license": "MIT",
6
6
  "author": "Vertex Developers <support@vertexvis.com> (https://developer.vertexvis.com)",
@@ -35,14 +35,14 @@
35
35
  "test:coverage": "yarn test --coverage"
36
36
  },
37
37
  "dependencies": {
38
- "@vertexvis/frame-streaming-protos": "^0.6.9"
38
+ "@vertexvis/frame-streaming-protos": "^0.6.11"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/jest": "^26.0.20",
42
42
  "@vertexvis/eslint-config-vertexvis-typescript": "^0.4.1",
43
43
  "@vertexvis/jest-config-vertexvis": "^0.5.3",
44
- "@vertexvis/utils": "^0.12.0-canary.26",
45
- "@vertexwebsdk/build": "^0.12.0-canary.26",
44
+ "@vertexvis/utils": "^0.12.0-canary.27",
45
+ "@vertexwebsdk/build": "^0.12.0-canary.27",
46
46
  "eslint": "^7.20.0",
47
47
  "jest": "^26.6.3",
48
48
  "protobufjs": "^6.9.0",
@@ -56,5 +56,5 @@
56
56
  "protobufjs": ">=6.9.0 <7.0.0",
57
57
  "tslib": ">=2.1.0"
58
58
  },
59
- "gitHead": "2217074db751c909e0b80a57d09a6cdace554b73"
59
+ "gitHead": "cac831db58760f2dd304e0d09440886a88caba9e"
60
60
  }