@superblocksteam/sdk 1.7.0 → 1.8.2

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/client.d.ts CHANGED
@@ -19,10 +19,12 @@ export interface MultiPageApplicationWrapper {
19
19
  export type PushApplicationWithCommitConfig = ApplicationWrapper & {
20
20
  commitId: string;
21
21
  commitMessage: string;
22
+ gitState: LocalGitRepoState;
22
23
  };
23
24
  export type PushMultiPageApplicationWithCommitConfig = MultiPageApplicationWrapper & {
24
25
  commitId: string;
25
26
  commitMessage: string;
27
+ gitState: LocalGitRepoState;
26
28
  };
27
29
  export interface ApiWrapper {
28
30
  apiPb: Record<string, any>;
@@ -32,6 +34,7 @@ export type PushApiWithCommitConfig = {
32
34
  apiPb: Record<string, any>;
33
35
  commitId: string;
34
36
  commitMessage: string;
37
+ gitState: LocalGitRepoState;
35
38
  };
36
39
  export type Branches = {
37
40
  branches: Branch[];
package/dist/client.js CHANGED
@@ -249,7 +249,7 @@ async function validateGitSetup(cliVersion, resourceId, resourceType, event, loc
249
249
  else {
250
250
  message = `${e?.message ? e.message : e}`;
251
251
  }
252
- const errorMessage = `Could not validate your git setup against Superblocks for the ${resourceType.toLowerCase()} ${resourceName ?? resourceId}${message ? "\n" + message : ""}`;
252
+ const errorMessage = `Could not validate your git setup against Superblocks for ${resourceType.toLowerCase()} ${resourceName ?? resourceId}${message ? "\n" + message : ""}`;
253
253
  // TODO(@taha-au @gpoulios-sb) Replace this check with a more robust one that uses error codes once
254
254
  // the backend starts returning them as part of the response body
255
255
  if (message.includes("Please initialize git locally")) {
@@ -477,6 +477,7 @@ async function pushApplication({ cliVersion, applicationId, token, superblocksBa
477
477
  commitId: applicationConfig.commitId,
478
478
  commitMessage: applicationConfig.commitMessage,
479
479
  pages: applicationConfig.pages,
480
+ gitState: applicationConfig.gitState,
480
481
  })
481
482
  : await socket.call.v1.public.application.pushCommit({
482
483
  applicationId,
@@ -486,6 +487,7 @@ async function pushApplication({ cliVersion, applicationId, token, superblocksBa
486
487
  commitId: applicationConfig.commitId,
487
488
  commitMessage: applicationConfig.commitMessage,
488
489
  page: applicationConfig.page,
490
+ gitState: applicationConfig.gitState,
489
491
  });
490
492
  socket.close();
491
493
  handleHttpError(resp.responseMeta.status);
@@ -565,6 +567,7 @@ async function pushApi({ cliVersion, apiId, token, superblocksBaseUrl, apiConfig
565
567
  branchName: branch,
566
568
  commitId: apiConfig.commitId,
567
569
  commitMessage: apiConfig.commitMessage,
570
+ gitState: apiConfig.gitState,
568
571
  });
569
572
  socket.close();
570
573
  handleHttpError(resp.responseMeta.status);
@@ -1,3 +1,4 @@
1
+ import { LocalGitRepoState } from "@superblocksteam/util";
1
2
  import { ApiToSign, ApiToVerify, AppToSign, AppToVerify, MethodHandlers, RemoteCommitDto, Signature } from "../types";
2
3
  type MethodSchema<Params, Response> = (params: Params) => Promise<Response>;
3
4
  export interface ClientMethods {
@@ -85,6 +86,7 @@ export interface ServerMethods {
85
86
  application: Record<string, unknown>;
86
87
  page: Record<string, unknown>;
87
88
  apis: Record<string, unknown>[];
89
+ gitState: LocalGitRepoState;
88
90
  }, RemoteCommitDto>;
89
91
  };
90
92
  api: {
@@ -94,6 +96,7 @@ export interface ServerMethods {
94
96
  commitId: string;
95
97
  commitMessage: string;
96
98
  apiPb: Record<string, unknown>;
99
+ gitState: LocalGitRepoState;
97
100
  }, RemoteCommitDto>;
98
101
  };
99
102
  };
@@ -109,6 +112,7 @@ export interface ServerMethods {
109
112
  application: Record<string, unknown>;
110
113
  pages: Record<string, unknown>[];
111
114
  apis: Record<string, unknown>[];
115
+ gitState: LocalGitRepoState;
112
116
  }, RemoteCommitDto>;
113
117
  };
114
118
  };
@@ -1,5 +1,4 @@
1
- /// <reference types="ws" />
2
- import WebSocket from "isomorphic-ws";
1
+ import WebSocket from "ws";
3
2
  import { ServerMethods } from "./handlers";
4
3
  export type StdISocketRPCClient = ISocketClient<ServerMethods>;
5
4
  export declare function connectToISocketRPCServer({ superblocksBaseUrl, agentUrl, token, }: {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.connectWebSocket = exports.connectISocket = exports.connectToISocketRPCServer = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const isomorphic_ws_1 = tslib_1.__importDefault(require("isomorphic-ws"));
5
+ const ws_1 = tslib_1.__importDefault(require("ws"));
6
6
  const handlers_1 = require("./handlers");
7
7
  const socket_1 = require("./socket");
8
8
  async function connectToISocketRPCServer({ superblocksBaseUrl, agentUrl, token, }) {
@@ -53,7 +53,7 @@ async function connectISocket(wsUrl, authorization, requestHandlers) {
53
53
  exports.connectISocket = connectISocket;
54
54
  function connectWebSocket(wsUrl) {
55
55
  return new Promise((resolve, reject) => {
56
- const ws = new isomorphic_ws_1.default(wsUrl);
56
+ const ws = new ws_1.default(wsUrl);
57
57
  ws.addEventListener("open", () => {
58
58
  // Resolve the promise with the WebSocket instance when the connection is open
59
59
  resolve(ws);
@@ -1,5 +1,4 @@
1
- /// <reference types="ws" />
2
- import WebSocket from "isomorphic-ws";
1
+ import WebSocket from "ws";
3
2
  import { ISocketClient, MethodHandlers } from "../types";
4
3
  export declare class ISocket<ImplementedMethods, CallableMethods, RequestContext> {
5
4
  private readonly ws;
@@ -8,6 +7,7 @@ export declare class ISocket<ImplementedMethods, CallableMethods, RequestContext
8
7
  private peerAuthorization?;
9
8
  private nxtRequestId;
10
9
  constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>);
10
+ private handleEvent;
11
11
  request<Params, Result>(method: string, params: Params, authorization?: string): Promise<Result>;
12
12
  private respond;
13
13
  private respondError;
@@ -7,71 +7,73 @@ class ISocket {
7
7
  this.ws = ws;
8
8
  this.requestHandlers = requestHandlers;
9
9
  this.nxtRequestId = 0;
10
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
- // @ts-ignore
12
- this.ws.addEventListener("message", async (event) => {
10
+ this.ws.addEventListener("message", (event) => {
13
11
  const eventData = JSON.parse(event.data.toString());
14
- if (eventData.request) {
15
- // Split the method string into parts
16
- const parts = eventData.request.method.split(".");
17
- let handlers = this.requestHandlers;
18
- for (const part of parts) {
19
- // @ts-ignore
20
- handlers = handlers[part];
21
- if (!handlers) {
22
- return await this.respondError(eventData.request.id, {
23
- code: 2,
24
- message: `unknown method ${eventData.request.method}`,
25
- });
26
- }
27
- }
28
- if (!Array.isArray(handlers)) {
29
- return await this.respondError(eventData.request.id, {
12
+ void this.handleEvent(eventData);
13
+ });
14
+ }
15
+ async handleEvent(eventData) {
16
+ if (eventData.request) {
17
+ // Split the method string into parts
18
+ const parts = eventData.request.method.split(".");
19
+ let handlers = this.requestHandlers;
20
+ for (const part of parts) {
21
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
22
+ // @ts-ignore
23
+ handlers = handlers[part];
24
+ if (!handlers) {
25
+ return this.respondError(eventData.request.id, {
30
26
  code: 2,
31
- message: "unknown method",
32
- });
33
- }
34
- if (eventData.request.setAuthorization) {
35
- this.peerAuthorization = eventData.request.setAuthorization;
36
- }
37
- const middlewareHandlers = handlers.slice(0, -1);
38
- const handler = handlers[handlers.length - 1];
39
- const reqCtx = {};
40
- let response;
41
- // TODO(george): maybe we should not create a new client for each request
42
- const client = createISocketClient(this);
43
- try {
44
- for (const middlewareHandler of middlewareHandlers) {
45
- await middlewareHandler(eventData.request.payload, this.peerAuthorization, client, reqCtx);
46
- }
47
- response = await handler(eventData.request.payload, client, reqCtx);
48
- }
49
- catch (error) {
50
- return await this.respondError(eventData.request.id, {
51
- code: 3,
52
- message: error.toString(),
27
+ message: `unknown method ${eventData.request.method}`,
53
28
  });
54
29
  }
55
- await this.respond(eventData.request.id, response);
56
30
  }
57
- else if (eventData.response && eventData.response.id) {
58
- if (!this.responseHandler[eventData.response.id]) {
59
- return;
60
- }
61
- if (eventData.response.error) {
62
- this.responseHandler[eventData.response.id].reject(eventData.response.error);
31
+ if (!Array.isArray(handlers)) {
32
+ return this.respondError(eventData.request.id, {
33
+ code: 2,
34
+ message: "unknown method",
35
+ });
36
+ }
37
+ if (eventData.request.setAuthorization) {
38
+ this.peerAuthorization = eventData.request.setAuthorization;
39
+ }
40
+ const middlewareHandlers = handlers.slice(0, -1);
41
+ const handler = handlers[handlers.length - 1];
42
+ const reqCtx = {};
43
+ let response;
44
+ // TODO(george): maybe we should not create a new client for each request
45
+ const client = createISocketClient(this);
46
+ try {
47
+ for (const middlewareHandler of middlewareHandlers) {
48
+ await middlewareHandler(eventData.request.payload, this.peerAuthorization, client, reqCtx);
63
49
  }
64
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
- this.responseHandler[eventData.response.id].resolve(eventData.response.payload);
66
- delete this.responseHandler[eventData.response.id];
50
+ response = await handler(eventData.request.payload, client, reqCtx);
67
51
  }
68
- else {
69
- return await this.respondError(-1, {
52
+ catch (error) {
53
+ return this.respondError(eventData.request.id, {
70
54
  code: 3,
71
- message: "unknown request id",
55
+ message: error.toString(),
72
56
  });
73
57
  }
74
- });
58
+ this.respond(eventData.request.id, response);
59
+ }
60
+ else if (eventData.response && eventData.response.id) {
61
+ if (!this.responseHandler[eventData.response.id]) {
62
+ return;
63
+ }
64
+ if (eventData.response.error) {
65
+ this.responseHandler[eventData.response.id].reject(eventData.response.error);
66
+ }
67
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+ this.responseHandler[eventData.response.id].resolve(eventData.response.payload);
69
+ delete this.responseHandler[eventData.response.id];
70
+ }
71
+ else {
72
+ return this.respondError(-1, {
73
+ code: 3,
74
+ message: "unknown request id",
75
+ });
76
+ }
75
77
  }
76
78
  request(method, params, authorization) {
77
79
  return new Promise((resolve, reject) => {
@@ -91,7 +93,7 @@ class ISocket {
91
93
  this.ws.send(JSON.stringify(toSend));
92
94
  });
93
95
  }
94
- async respond(requestId, result) {
96
+ respond(requestId, result) {
95
97
  const toSend = {
96
98
  response: {
97
99
  payload: result,
@@ -101,7 +103,7 @@ class ISocket {
101
103
  };
102
104
  return this.ws.send(JSON.stringify(toSend));
103
105
  }
104
- async respondError(requestId, error) {
106
+ respondError(requestId, error) {
105
107
  const toSend = {
106
108
  response: {
107
109
  payload: null,
@@ -6,7 +6,7 @@ export interface UserMeDto {
6
6
  }
7
7
  export interface FlagBootstrap {
8
8
  "ui.enable-resource-signing"?: boolean;
9
- "server.multipage.enabled"?: boolean;
9
+ "ui.multi-page.enabled"?: boolean;
10
10
  }
11
11
  export type User = {
12
12
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superblocksteam/sdk",
3
- "version": "1.7.0",
3
+ "version": "1.8.2",
4
4
  "description": "Superblocks JS SDK",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -31,9 +31,9 @@
31
31
  "typescript": "^5.1.3"
32
32
  },
33
33
  "dependencies": {
34
- "@superblocksteam/util": "1.7.0",
34
+ "@superblocksteam/util": "1.8.2",
35
35
  "axios": "^1.3.5",
36
- "isomorphic-ws": "^5.0.0"
36
+ "ws": "^8.17.0"
37
37
  },
38
38
  "homepage": "https://www.superblocks.com",
39
39
  "engines": {
package/src/client.ts CHANGED
@@ -61,12 +61,14 @@ export interface MultiPageApplicationWrapper {
61
61
  export type PushApplicationWithCommitConfig = ApplicationWrapper & {
62
62
  commitId: string;
63
63
  commitMessage: string;
64
+ gitState: LocalGitRepoState;
64
65
  };
65
66
 
66
67
  export type PushMultiPageApplicationWithCommitConfig =
67
68
  MultiPageApplicationWrapper & {
68
69
  commitId: string;
69
70
  commitMessage: string;
71
+ gitState: LocalGitRepoState;
70
72
  };
71
73
 
72
74
  export interface ApiWrapper {
@@ -78,6 +80,7 @@ export type PushApiWithCommitConfig = {
78
80
  apiPb: Record<string, any>;
79
81
  commitId: string;
80
82
  commitMessage: string;
83
+ gitState: LocalGitRepoState;
81
84
  };
82
85
 
83
86
  export type Branches = {
@@ -114,7 +117,6 @@ export async function fetchApplication({
114
117
  const baseServerUrl = fetchSinglePageApplication
115
118
  ? BASE_SERVER_PUBLIC_API_URL_V1
116
119
  : BASE_SERVER_PUBLIC_API_URL_v2;
117
-
118
120
  const serverURL = branch
119
121
  ? new URL(
120
122
  `${baseServerUrl}/applications/${applicationId}/branches/${encodeURIComponent(
@@ -435,7 +437,7 @@ export async function validateGitSetup(
435
437
  message = `${e?.message ? e.message : e}`;
436
438
  }
437
439
 
438
- const errorMessage = `Could not validate your git setup against Superblocks for the ${resourceType.toLowerCase()} ${
440
+ const errorMessage = `Could not validate your git setup against Superblocks for ${resourceType.toLowerCase()} ${
439
441
  resourceName ?? resourceId
440
442
  }${message ? "\n" + message : ""}`;
441
443
 
@@ -765,6 +767,7 @@ export async function pushApplication({
765
767
  pages: (
766
768
  applicationConfig as unknown as PushMultiPageApplicationWithCommitConfig
767
769
  ).pages,
770
+ gitState: applicationConfig.gitState,
768
771
  })
769
772
  : await socket.call.v1.public.application.pushCommit({
770
773
  applicationId,
@@ -776,6 +779,7 @@ export async function pushApplication({
776
779
  page: (
777
780
  applicationConfig as unknown as PushApplicationWithCommitConfig
778
781
  ).page,
782
+ gitState: applicationConfig.gitState,
779
783
  });
780
784
  socket.close();
781
785
  handleHttpError(resp.responseMeta.status);
@@ -897,6 +901,7 @@ export async function pushApi({
897
901
  branchName: branch,
898
902
  commitId: apiConfig.commitId,
899
903
  commitMessage: apiConfig.commitMessage,
904
+ gitState: apiConfig.gitState,
900
905
  });
901
906
  socket.close();
902
907
  handleHttpError(resp.responseMeta.status);
@@ -1,3 +1,4 @@
1
+ import { LocalGitRepoState } from "@superblocksteam/util";
1
2
  import {
2
3
  ApiToSign,
3
4
  ApiToVerify,
@@ -97,6 +98,7 @@ export interface ServerMethods {
97
98
  application: Record<string, unknown>;
98
99
  page: Record<string, unknown>;
99
100
  apis: Record<string, unknown>[];
101
+ gitState: LocalGitRepoState;
100
102
  },
101
103
  RemoteCommitDto
102
104
  >;
@@ -109,6 +111,7 @@ export interface ServerMethods {
109
111
  commitId: string;
110
112
  commitMessage: string;
111
113
  apiPb: Record<string, unknown>;
114
+ gitState: LocalGitRepoState;
112
115
  },
113
116
  RemoteCommitDto
114
117
  >;
@@ -127,6 +130,7 @@ export interface ServerMethods {
127
130
  application: Record<string, unknown>;
128
131
  pages: Record<string, unknown>[];
129
132
  apis: Record<string, unknown>[];
133
+ gitState: LocalGitRepoState;
130
134
  },
131
135
  RemoteCommitDto
132
136
  >;
@@ -1,4 +1,4 @@
1
- import WebSocket from "isomorphic-ws";
1
+ import WebSocket from "ws";
2
2
  import {
3
3
  ClientMethods,
4
4
  createRequestHandlers,
@@ -1,4 +1,4 @@
1
- import WebSocket from "isomorphic-ws";
1
+ import WebSocket from "ws";
2
2
  import {
3
3
  ISocketClient,
4
4
  MethodHandler,
@@ -57,87 +57,90 @@ export class ISocket<ImplementedMethods, CallableMethods, RequestContext> {
57
57
  this.requestHandlers = requestHandlers;
58
58
  this.nxtRequestId = 0;
59
59
 
60
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
61
- // @ts-ignore
62
- this.ws.addEventListener("message", async (event: MessageEvent) => {
60
+ this.ws.addEventListener("message", (event: WebSocket.MessageEvent) => {
63
61
  const eventData: SocketMessage = JSON.parse(event.data.toString());
64
- if (eventData.request) {
65
- // Split the method string into parts
66
- const parts = eventData.request.method.split(".");
67
- let handlers = this.requestHandlers;
68
- for (const part of parts) {
69
- // @ts-ignore
70
- handlers = handlers[part];
71
- if (!handlers) {
72
- return await this.respondError(eventData.request.id, {
73
- code: 2,
74
- message: `unknown method ${eventData.request.method}`,
75
- });
76
- }
77
- }
62
+ void this.handleEvent(eventData);
63
+ });
64
+ }
78
65
 
79
- if (!Array.isArray(handlers)) {
80
- return await this.respondError(eventData.request.id, {
66
+ private async handleEvent(eventData: SocketMessage<unknown, unknown>) {
67
+ if (eventData.request) {
68
+ // Split the method string into parts
69
+ const parts = eventData.request.method.split(".");
70
+ let handlers = this.requestHandlers;
71
+ for (const part of parts) {
72
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
73
+ // @ts-ignore
74
+ handlers = handlers[part];
75
+ if (!handlers) {
76
+ return this.respondError(eventData.request.id, {
81
77
  code: 2,
82
- message: "unknown method",
78
+ message: `unknown method ${eventData.request.method}`,
83
79
  });
84
80
  }
85
- if (eventData.request.setAuthorization) {
86
- this.peerAuthorization = eventData.request.setAuthorization;
87
- }
88
- const middlewareHandlers = handlers.slice(0, -1) as MiddlewareHandler<
89
- unknown,
90
- CallableMethods,
91
- RequestContext
92
- >[];
93
- const handler = handlers[handlers.length - 1] as MethodHandler<
94
- unknown,
95
- unknown,
96
- CallableMethods,
97
- RequestContext
98
- >;
99
- const reqCtx = {} as RequestContext;
100
- let response: unknown;
101
- // TODO(george): maybe we should not create a new client for each request
102
- const client = createISocketClient(this);
103
- try {
104
- for (const middlewareHandler of middlewareHandlers) {
105
- await middlewareHandler(
106
- eventData.request.payload,
107
- this.peerAuthorization,
108
- client,
109
- reqCtx
110
- );
111
- }
112
- response = await handler(eventData.request.payload, client, reqCtx);
113
- } catch (error: any) {
114
- return await this.respondError(eventData.request.id, {
115
- code: 3,
116
- message: error.toString(),
117
- });
118
- }
119
- await this.respond(eventData.request.id, response);
120
- } else if (eventData.response && eventData.response.id) {
121
- if (!this.responseHandler[eventData.response.id]) {
122
- return;
123
- }
124
- if (eventData.response.error) {
125
- this.responseHandler[eventData.response.id].reject(
126
- eventData.response.error
81
+ }
82
+
83
+ if (!Array.isArray(handlers)) {
84
+ return this.respondError(eventData.request.id, {
85
+ code: 2,
86
+ message: "unknown method",
87
+ });
88
+ }
89
+ if (eventData.request.setAuthorization) {
90
+ this.peerAuthorization = eventData.request.setAuthorization;
91
+ }
92
+ const middlewareHandlers = handlers.slice(0, -1) as MiddlewareHandler<
93
+ unknown,
94
+ CallableMethods,
95
+ RequestContext
96
+ >[];
97
+ const handler = handlers[handlers.length - 1] as MethodHandler<
98
+ unknown,
99
+ unknown,
100
+ CallableMethods,
101
+ RequestContext
102
+ >;
103
+ const reqCtx = {} as RequestContext;
104
+ let response: unknown;
105
+ // TODO(george): maybe we should not create a new client for each request
106
+ const client = createISocketClient(this);
107
+ try {
108
+ for (const middlewareHandler of middlewareHandlers) {
109
+ await middlewareHandler(
110
+ eventData.request.payload,
111
+ this.peerAuthorization,
112
+ client,
113
+ reqCtx
127
114
  );
128
115
  }
129
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
- this.responseHandler[eventData.response.id].resolve(
131
- eventData.response.payload as any
132
- );
133
- delete this.responseHandler[eventData.response.id];
134
- } else {
135
- return await this.respondError(-1, {
116
+ response = await handler(eventData.request.payload, client, reqCtx);
117
+ } catch (error: any) {
118
+ return this.respondError(eventData.request.id, {
136
119
  code: 3,
137
- message: "unknown request id",
120
+ message: error.toString(),
138
121
  });
139
122
  }
140
- });
123
+ this.respond(eventData.request.id, response);
124
+ } else if (eventData.response && eventData.response.id) {
125
+ if (!this.responseHandler[eventData.response.id]) {
126
+ return;
127
+ }
128
+ if (eventData.response.error) {
129
+ this.responseHandler[eventData.response.id].reject(
130
+ eventData.response.error
131
+ );
132
+ }
133
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
134
+ this.responseHandler[eventData.response.id].resolve(
135
+ eventData.response.payload as any
136
+ );
137
+ delete this.responseHandler[eventData.response.id];
138
+ } else {
139
+ return this.respondError(-1, {
140
+ code: 3,
141
+ message: "unknown request id",
142
+ });
143
+ }
141
144
  }
142
145
 
143
146
  public request<Params, Result>(
@@ -163,10 +166,7 @@ export class ISocket<ImplementedMethods, CallableMethods, RequestContext> {
163
166
  });
164
167
  }
165
168
 
166
- private async respond<Result>(
167
- requestId: number,
168
- result: Result
169
- ): Promise<void> {
169
+ private respond<Result>(requestId: number, result: Result): void {
170
170
  const toSend: SocketMessage = {
171
171
  response: {
172
172
  payload: result,
@@ -177,10 +177,7 @@ export class ISocket<ImplementedMethods, CallableMethods, RequestContext> {
177
177
  return this.ws.send(JSON.stringify(toSend));
178
178
  }
179
179
 
180
- private async respondError(
181
- requestId: number,
182
- error: SocketError
183
- ): Promise<void> {
180
+ private respondError(requestId: number, error: SocketError): void {
184
181
  const toSend: SocketMessage = {
185
182
  response: {
186
183
  payload: null,
@@ -7,7 +7,8 @@ export interface UserMeDto {
7
7
 
8
8
  export interface FlagBootstrap {
9
9
  "ui.enable-resource-signing"?: boolean;
10
- "server.multipage.enabled"?: boolean;
10
+ // BE and UI flags are merged so we are using UI flag here
11
+ "ui.multi-page.enabled"?: boolean;
11
12
  }
12
13
 
13
14
  export type User = {