@symbo.ls/sdk 3.2.3 → 3.2.6

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.
Files changed (183) hide show
  1. package/README.md +141 -0
  2. package/dist/cjs/config/environment.js +94 -10
  3. package/dist/cjs/index.js +152 -12
  4. package/dist/cjs/services/AdminService.js +351 -0
  5. package/dist/cjs/services/AuthService.js +738 -305
  6. package/dist/cjs/services/BaseService.js +158 -6
  7. package/dist/cjs/services/BranchService.js +484 -0
  8. package/dist/cjs/services/CollabService.js +439 -116
  9. package/dist/cjs/services/DnsService.js +340 -0
  10. package/dist/cjs/services/FeatureFlagService.js +175 -0
  11. package/dist/cjs/services/FileService.js +201 -0
  12. package/dist/cjs/services/IntegrationService.js +538 -0
  13. package/dist/cjs/services/MetricsService.js +62 -0
  14. package/dist/cjs/services/PaymentService.js +271 -0
  15. package/dist/cjs/services/PlanService.js +426 -0
  16. package/dist/cjs/services/ProjectService.js +1207 -0
  17. package/dist/cjs/services/PullRequestService.js +503 -0
  18. package/dist/cjs/services/ScreenshotService.js +304 -0
  19. package/dist/cjs/services/SubscriptionService.js +396 -0
  20. package/dist/cjs/services/TrackingService.js +661 -0
  21. package/dist/cjs/services/WaitlistService.js +148 -0
  22. package/dist/cjs/services/index.js +60 -4
  23. package/dist/cjs/state/RootStateManager.js +2 -23
  24. package/dist/cjs/state/rootEventBus.js +9 -0
  25. package/dist/cjs/utils/CollabClient.js +78 -12
  26. package/dist/cjs/utils/TokenManager.js +16 -3
  27. package/dist/cjs/utils/changePreprocessor.js +199 -0
  28. package/dist/cjs/utils/jsonDiff.js +46 -4
  29. package/dist/cjs/utils/ordering.js +309 -0
  30. package/dist/cjs/utils/services.js +285 -128
  31. package/dist/cjs/utils/validation.js +0 -3
  32. package/dist/esm/config/environment.js +94 -10
  33. package/dist/esm/index.js +47862 -18248
  34. package/dist/esm/services/AdminService.js +1132 -0
  35. package/dist/esm/services/AuthService.js +1493 -386
  36. package/dist/esm/services/BaseService.js +757 -6
  37. package/dist/esm/services/BranchService.js +1265 -0
  38. package/dist/esm/services/CollabService.js +24956 -16089
  39. package/dist/esm/services/DnsService.js +1121 -0
  40. package/dist/esm/services/FeatureFlagService.js +956 -0
  41. package/dist/esm/services/FileService.js +982 -0
  42. package/dist/esm/services/IntegrationService.js +1319 -0
  43. package/dist/esm/services/MetricsService.js +843 -0
  44. package/dist/esm/services/PaymentService.js +1052 -0
  45. package/dist/esm/services/PlanService.js +1207 -0
  46. package/dist/esm/services/ProjectService.js +2526 -0
  47. package/dist/esm/services/PullRequestService.js +1284 -0
  48. package/dist/esm/services/ScreenshotService.js +1085 -0
  49. package/dist/esm/services/SubscriptionService.js +1177 -0
  50. package/dist/esm/services/TrackingService.js +18454 -0
  51. package/dist/esm/services/WaitlistService.js +929 -0
  52. package/dist/esm/services/index.js +47373 -18027
  53. package/dist/esm/state/RootStateManager.js +11 -23
  54. package/dist/esm/state/rootEventBus.js +9 -0
  55. package/dist/esm/utils/CollabClient.js +17526 -16120
  56. package/dist/esm/utils/TokenManager.js +16 -3
  57. package/dist/esm/utils/changePreprocessor.js +542 -0
  58. package/dist/esm/utils/jsonDiff.js +958 -43
  59. package/dist/esm/utils/ordering.js +291 -0
  60. package/dist/esm/utils/services.js +285 -128
  61. package/dist/esm/utils/validation.js +116 -50
  62. package/dist/node/config/environment.js +94 -10
  63. package/dist/node/index.js +183 -16
  64. package/dist/node/services/AdminService.js +332 -0
  65. package/dist/node/services/AuthService.js +742 -310
  66. package/dist/node/services/BaseService.js +148 -6
  67. package/dist/node/services/BranchService.js +465 -0
  68. package/dist/node/services/CollabService.js +439 -116
  69. package/dist/node/services/DnsService.js +321 -0
  70. package/dist/node/services/FeatureFlagService.js +156 -0
  71. package/dist/node/services/FileService.js +182 -0
  72. package/dist/node/services/IntegrationService.js +519 -0
  73. package/dist/node/services/MetricsService.js +43 -0
  74. package/dist/node/services/PaymentService.js +252 -0
  75. package/dist/node/services/PlanService.js +407 -0
  76. package/dist/node/services/ProjectService.js +1188 -0
  77. package/dist/node/services/PullRequestService.js +484 -0
  78. package/dist/node/services/ScreenshotService.js +285 -0
  79. package/dist/node/services/SubscriptionService.js +377 -0
  80. package/dist/node/services/TrackingService.js +632 -0
  81. package/dist/node/services/WaitlistService.js +129 -0
  82. package/dist/node/services/index.js +60 -4
  83. package/dist/node/state/RootStateManager.js +2 -23
  84. package/dist/node/state/rootEventBus.js +9 -0
  85. package/dist/node/utils/CollabClient.js +77 -11
  86. package/dist/node/utils/TokenManager.js +16 -3
  87. package/dist/node/utils/changePreprocessor.js +180 -0
  88. package/dist/node/utils/jsonDiff.js +46 -4
  89. package/dist/node/utils/ordering.js +290 -0
  90. package/dist/node/utils/services.js +285 -128
  91. package/dist/node/utils/validation.js +0 -3
  92. package/package.json +30 -18
  93. package/src/config/environment.js +95 -10
  94. package/src/index.js +190 -23
  95. package/src/services/AdminService.js +374 -0
  96. package/src/services/AuthService.js +874 -328
  97. package/src/services/BaseService.js +166 -6
  98. package/src/services/BranchService.js +536 -0
  99. package/src/services/CollabService.js +557 -148
  100. package/src/services/DnsService.js +366 -0
  101. package/src/services/FeatureFlagService.js +174 -0
  102. package/src/services/FileService.js +213 -0
  103. package/src/services/IntegrationService.js +548 -0
  104. package/src/services/MetricsService.js +40 -0
  105. package/src/services/PaymentService.js +287 -0
  106. package/src/services/PlanService.js +468 -0
  107. package/src/services/ProjectService.js +1366 -0
  108. package/src/services/PullRequestService.js +537 -0
  109. package/src/services/ScreenshotService.js +258 -0
  110. package/src/services/SubscriptionService.js +425 -0
  111. package/src/services/TrackingService.js +853 -0
  112. package/src/services/WaitlistService.js +130 -0
  113. package/src/services/index.js +79 -5
  114. package/src/services/tests/BranchService/createBranch.test.js +153 -0
  115. package/src/services/tests/BranchService/deleteBranch.test.js +173 -0
  116. package/src/services/tests/BranchService/getBranchChanges.test.js +146 -0
  117. package/src/services/tests/BranchService/listBranches.test.js +87 -0
  118. package/src/services/tests/BranchService/mergeBranch.test.js +210 -0
  119. package/src/services/tests/BranchService/publishVersion.test.js +183 -0
  120. package/src/services/tests/BranchService/renameBranch.test.js +240 -0
  121. package/src/services/tests/BranchService/resetBranch.test.js +152 -0
  122. package/src/services/tests/FeatureFlagService/adminFeatureFlags.test.js +67 -0
  123. package/src/services/tests/FeatureFlagService/getFeatureFlags.test.js +75 -0
  124. package/src/services/tests/FileService/createFileFormData.test.js +74 -0
  125. package/src/services/tests/FileService/getFileUrl.test.js +69 -0
  126. package/src/services/tests/FileService/updateProjectIcon.test.js +109 -0
  127. package/src/services/tests/FileService/uploadDocument.test.js +36 -0
  128. package/src/services/tests/FileService/uploadFile.test.js +78 -0
  129. package/src/services/tests/FileService/uploadFileWithValidation.test.js +114 -0
  130. package/src/services/tests/FileService/uploadImage.test.js +36 -0
  131. package/src/services/tests/FileService/uploadMultipleFiles.test.js +111 -0
  132. package/src/services/tests/FileService/validateFile.test.js +63 -0
  133. package/src/services/tests/PlanService/createPlan.test.js +104 -0
  134. package/src/services/tests/PlanService/createPlanWithValidation.test.js +523 -0
  135. package/src/services/tests/PlanService/deletePlan.test.js +92 -0
  136. package/src/services/tests/PlanService/getActivePlans.test.js +123 -0
  137. package/src/services/tests/PlanService/getAdminPlans.test.js +84 -0
  138. package/src/services/tests/PlanService/getPlan.test.js +50 -0
  139. package/src/services/tests/PlanService/getPlanByKey.test.js +109 -0
  140. package/src/services/tests/PlanService/getPlanWithValidation.test.js +85 -0
  141. package/src/services/tests/PlanService/getPlans.test.js +53 -0
  142. package/src/services/tests/PlanService/getPlansByPriceRange.test.js +109 -0
  143. package/src/services/tests/PlanService/getPlansWithValidation.test.js +48 -0
  144. package/src/services/tests/PlanService/initializePlans.test.js +75 -0
  145. package/src/services/tests/PlanService/updatePlan.test.js +111 -0
  146. package/src/services/tests/PlanService/updatePlanWithValidation.test.js +556 -0
  147. package/src/state/RootStateManager.js +37 -32
  148. package/src/state/rootEventBus.js +19 -0
  149. package/src/utils/CollabClient.js +99 -12
  150. package/src/utils/TokenManager.js +20 -3
  151. package/src/utils/changePreprocessor.js +239 -0
  152. package/src/utils/jsonDiff.js +40 -5
  153. package/src/utils/ordering.js +271 -0
  154. package/src/utils/services.js +306 -139
  155. package/src/utils/validation.js +0 -3
  156. package/dist/cjs/services/AIService.js +0 -155
  157. package/dist/cjs/services/BasedService.js +0 -1185
  158. package/dist/cjs/services/CoreService.js +0 -2295
  159. package/dist/cjs/services/SocketService.js +0 -309
  160. package/dist/cjs/services/SymstoryService.js +0 -571
  161. package/dist/cjs/utils/basedQuerys.js +0 -181
  162. package/dist/cjs/utils/symstoryClient.js +0 -259
  163. package/dist/esm/services/AIService.js +0 -185
  164. package/dist/esm/services/BasedService.js +0 -5262
  165. package/dist/esm/services/CoreService.js +0 -2827
  166. package/dist/esm/services/SocketService.js +0 -456
  167. package/dist/esm/services/SymstoryService.js +0 -7025
  168. package/dist/esm/utils/basedQuerys.js +0 -163
  169. package/dist/esm/utils/symstoryClient.js +0 -354
  170. package/dist/node/services/AIService.js +0 -136
  171. package/dist/node/services/BasedService.js +0 -1156
  172. package/dist/node/services/CoreService.js +0 -2266
  173. package/dist/node/services/SocketService.js +0 -280
  174. package/dist/node/services/SymstoryService.js +0 -542
  175. package/dist/node/utils/basedQuerys.js +0 -162
  176. package/dist/node/utils/symstoryClient.js +0 -230
  177. package/src/services/AIService.js +0 -150
  178. package/src/services/BasedService.js +0 -1302
  179. package/src/services/CoreService.js +0 -2548
  180. package/src/services/SocketService.js +0 -336
  181. package/src/services/SymstoryService.js +0 -649
  182. package/src/utils/basedQuerys.js +0 -164
  183. package/src/utils/symstoryClient.js +0 -252
@@ -1,456 +0,0 @@
1
- // src/services/SocketService.js
2
- import { connect, send, disconnect } from "@symbo.ls/socket/client.js";
3
-
4
- // src/services/BaseService.js
5
- var BaseService = class {
6
- constructor({ context, options } = {}) {
7
- this._context = context || {};
8
- this._options = options || {};
9
- this._ready = false;
10
- this._error = null;
11
- }
12
- // Initialize service
13
- init() {
14
- throw new Error("init() must be implemented by service");
15
- }
16
- // Update context
17
- updateContext(context) {
18
- this._context = { ...this._context, ...context };
19
- }
20
- // Get service status
21
- getStatus() {
22
- return {
23
- ready: this._ready,
24
- error: this._error,
25
- context: { ...this._context }
26
- };
27
- }
28
- // Check if service is ready
29
- isReady() {
30
- return this._ready;
31
- }
32
- // Protected helper methods
33
- _setReady(ready = true) {
34
- this._ready = ready;
35
- this._error = null;
36
- }
37
- _setError(error) {
38
- this._ready = false;
39
- this._error = error;
40
- }
41
- _requireAuth() {
42
- if (!this._context.authToken) {
43
- throw new Error("Authentication required");
44
- }
45
- }
46
- _requireReady() {
47
- if (!this.isReady()) {
48
- throw new Error("Service not initialized");
49
- }
50
- }
51
- };
52
-
53
- // src/services/SocketService.js
54
- import * as utils from "@domql/utils";
55
- import { router } from "@symbo.ls/router";
56
-
57
- // src/config/environment.js
58
- import { isDevelopment } from "@domql/utils";
59
- var CONFIG = {
60
- // Common defaults for all environments
61
- common: {
62
- // NOTE: Google client id for google auth, need to configure URLs for each environment in Google console
63
- googleClientId: "686286207466-bvd2fqs31rlm64fgich7rtpnc8ns2tqg.apps.googleusercontent.com",
64
- // Feature toggles that apply across all environments by default
65
- features: {
66
- newUserOnboarding: true,
67
- betaFeatures: false
68
- }
69
- },
70
- // Environment-specific configurations
71
- local: {
72
- // local
73
- socketUrl: "http://localhost:8080",
74
- // For socket api
75
- apiUrl: "http://localhost:8080",
76
- // For server api
77
- basedEnv: "development",
78
- // For based api
79
- basedProject: "platform-v2-sm",
80
- // For based api
81
- basedOrg: "symbols",
82
- // For based api
83
- githubClientId: "Ov23liHxyWFBxS8f1gnF",
84
- // For github api
85
- // Environment-specific feature toggles (override common)
86
- features: {
87
- betaFeatures: true
88
- // Enable beta features in local dev
89
- }
90
- },
91
- development: {
92
- socketUrl: "https://dev.api.symbols.app",
93
- apiUrl: "https://dev.api.symbols.app",
94
- githubClientId: "Ov23liHxyWFBxS8f1gnF"
95
- },
96
- testing: {
97
- socketUrl: "https://test.api.symbols.app",
98
- apiUrl: "https://test.api.symbols.app",
99
- basedEnv: "testing",
100
- basedProject: "platform-v2-sm",
101
- basedOrg: "symbols",
102
- githubClientId: "Ov23liHxyWFBxS8f1gnF"
103
- },
104
- upcoming: {
105
- socketUrl: "https://upcoming.api.symbols.app",
106
- apiUrl: "https://upcoming.api.symbols.app",
107
- githubClientId: "Ov23liWF7NvdZ056RV5J"
108
- },
109
- staging: {
110
- socketUrl: "https://staging.api.symbols.app",
111
- apiUrl: "https://staging.api.symbols.app",
112
- basedEnv: "staging",
113
- basedProject: "platform-v2-sm",
114
- basedOrg: "symbols",
115
- githubClientId: "Ov23ligwZDQVD0VfuWNa"
116
- },
117
- production: {
118
- socketUrl: "https://api.symbols.app",
119
- apiUrl: "https://api.symbols.app",
120
- basedEnv: "production",
121
- basedProject: "platform-v2-sm",
122
- basedOrg: "symbols",
123
- githubClientId: "Ov23liFAlOEIXtX3dBtR"
124
- }
125
- };
126
- var getEnvironment = () => {
127
- const env = process.env.SYMBOLS_APP_ENV || process.env.NODE_ENV;
128
- if (!CONFIG[env]) {
129
- throw new Error(`Unknown environment "${env}"`);
130
- }
131
- return env;
132
- };
133
- var getConfig = () => {
134
- try {
135
- const env = getEnvironment();
136
- const envConfig = { ...CONFIG.common, ...CONFIG[env] };
137
- const finalConfig = {
138
- ...envConfig,
139
- socketUrl: process.env.SYMBOLS_APP_SOCKET_URL || envConfig.socketUrl,
140
- apiUrl: process.env.SYMBOLS_APP_API_URL || envConfig.apiUrl,
141
- basedEnv: process.env.SYMBOLS_APP_BASED_ENV || envConfig.basedEnv,
142
- basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
143
- basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
144
- githubClientId: process.env.SYMBOLS_APP_GITHUB_CLIENT_ID || envConfig.githubClientId,
145
- isDevelopment: isDevelopment(env),
146
- isTesting: env === "testing",
147
- isStaging: env === "staging",
148
- isProduction: env === "production"
149
- // Store all environment variables for potential future use
150
- };
151
- const requiredFields = [
152
- "socketUrl",
153
- "apiUrl",
154
- "githubClientId",
155
- "googleClientId"
156
- ];
157
- const missingFields = requiredFields.filter((field) => !finalConfig[field]);
158
- if (missingFields.length > 0) {
159
- console.error(
160
- `Missing required configuration: ${missingFields.join(", ")}`
161
- );
162
- }
163
- if (finalConfig.isDevelopment) {
164
- console.log(
165
- "environment in SDK:",
166
- env || process.env.NODE_ENV || process.env.NODE_ENV
167
- );
168
- console.log(finalConfig);
169
- }
170
- return finalConfig;
171
- } catch (error) {
172
- console.error("Failed to load environment configuration:", error);
173
- return {
174
- ...CONFIG.development
175
- };
176
- }
177
- };
178
- var environment_default = getConfig();
179
-
180
- // src/services/SocketService.js
181
- var { deepStringify, deepDestringify, isString } = utils.default || utils;
182
- var SocketService = class extends BaseService {
183
- constructor(config) {
184
- super(config);
185
- this._socket = null;
186
- this._reconnectAttempts = 0;
187
- this._maxReconnectAttempts = (config == null ? void 0 : config.maxReconnectAttempts) || 5;
188
- this._reconnectDelay = (config == null ? void 0 : config.reconnectDelay) || 1e3;
189
- this._handlers = /* @__PURE__ */ new Map();
190
- this._sessionId = Math.random();
191
- this._ignoreSync = [
192
- "userId",
193
- "username",
194
- "usersName",
195
- "email",
196
- "projects",
197
- "feedbacks",
198
- "userRoles",
199
- "loading",
200
- "appKey",
201
- "projectName",
202
- "followingUser",
203
- "activeProject",
204
- "user",
205
- "sessionId",
206
- "clients"
207
- ];
208
- }
209
- init() {
210
- try {
211
- const { _context, _options } = this;
212
- const socketUrl = environment_default.socketUrl || _options.socketUrl;
213
- if (!socketUrl) {
214
- throw new Error("Socket URL is required");
215
- }
216
- this._info = {
217
- config: {
218
- url: socketUrl,
219
- hasToken: Boolean(_context.authToken),
220
- status: "initializing"
221
- }
222
- };
223
- this._setReady();
224
- } catch (error) {
225
- this._setError(error);
226
- throw error;
227
- }
228
- }
229
- connect() {
230
- var _a, _b, _c, _d, _e, _f, _g;
231
- try {
232
- if (this._socket && ["connected", "connecting"].includes((_b = (_a = this._info) == null ? void 0 : _a.config) == null ? void 0 : _b.status)) {
233
- console.warn(
234
- "Socket connection already exists:",
235
- (_d = (_c = this._info) == null ? void 0 : _c.config) == null ? void 0 : _d.status
236
- );
237
- return true;
238
- }
239
- const { _context } = this;
240
- if (!_context.appKey) {
241
- throw new Error("App key is required");
242
- }
243
- this._updateStatus("connecting");
244
- const config = {
245
- source: "platform",
246
- userId: (_e = _context.user) == null ? void 0 : _e.id,
247
- socketUrl: this._info.config.url,
248
- location: window.location.host,
249
- // onConnect: () => {
250
- // console.log('waz')
251
- // },
252
- onChange: this._handleMessage.bind(this),
253
- sessionId: this._sessionId,
254
- usersName: (_f = _context.user) == null ? void 0 : _f.name,
255
- route: window.location.pathname,
256
- onDisconnect: this._handleDisconnect.bind(this)
257
- };
258
- if (this._socket) {
259
- this.destroy();
260
- }
261
- this._socket = connect(_context.appKey, config);
262
- this._updateStatus("connected");
263
- if (environment_default.isDevelopment) {
264
- console.log("Socket connection established:", {
265
- appKey: _context.appKey,
266
- userId: (_g = _context.user) == null ? void 0 : _g.id,
267
- sessionId: this._sessionId,
268
- url: this._info.config.url
269
- });
270
- }
271
- return true;
272
- } catch (error) {
273
- this._updateStatus("failed");
274
- console.error("Socket connection failed:", error);
275
- throw new Error(`Socket connection failed: ${error.message}`);
276
- }
277
- }
278
- send(type, data, opts = {}) {
279
- var _a, _b;
280
- this._requireReady();
281
- if (!this._socket) {
282
- throw new Error("Socket is not connected");
283
- }
284
- const payload = {
285
- sessionId: this._sessionId,
286
- userId: (_a = this._context.user) == null ? void 0 : _a.id,
287
- usersName: (_b = this._context.user) == null ? void 0 : _b.name,
288
- ...data
289
- };
290
- send.call(
291
- this._socket,
292
- type,
293
- opts.useDeepStringify ? deepStringify(payload) : payload
294
- );
295
- }
296
- _handleMessage(event, data) {
297
- try {
298
- const d = isString(data) ? deepDestringify(JSON.parse(data)) : data;
299
- if (this._sessionId === d.sessionId) {
300
- return;
301
- }
302
- const handlers = this._handlers.get(event);
303
- if (handlers) {
304
- handlers.forEach((handler) => handler(d));
305
- }
306
- switch (event) {
307
- case "change":
308
- this._handleChangeEvent(d);
309
- break;
310
- case "clients":
311
- this._handleClientsEvent(d);
312
- break;
313
- case "route":
314
- this._handleRouteEvent(d);
315
- break;
316
- default:
317
- break;
318
- }
319
- } catch (error) {
320
- this._setError(new Error(`Failed to handle message: ${error.message}`));
321
- }
322
- }
323
- _handleChangeEvent(data) {
324
- const { type, changes, version } = data;
325
- if (version) {
326
- this._context.state.version = version;
327
- }
328
- if (changes) {
329
- window.requestAnimationFrame(async () => {
330
- await this._context.state.setPathCollection(changes, {
331
- preventReplace: type === "canvas",
332
- preventUpdate: true,
333
- fromSocket: true,
334
- userId: data.userId,
335
- changes
336
- });
337
- });
338
- }
339
- }
340
- _handleClientsEvent(data) {
341
- const { root } = this._context.state;
342
- root.replace(
343
- { clients: data },
344
- {
345
- fromSocket: true,
346
- preventUpdate: true
347
- }
348
- );
349
- }
350
- _handleRouteEvent(data) {
351
- const { element } = this._context;
352
- const { state } = this._context;
353
- if (data.userId && data.type === "routeChanged") {
354
- const isModalOpen = this.getWindow("modal");
355
- const isFollowing = state.followingUser === data.userId;
356
- const isRouteSyncEnabled = element.getUserSettings("presentMode") && data.userId === state.userId;
357
- if ((isFollowing || isRouteSyncEnabled) && !isModalOpen) {
358
- router(
359
- data.route,
360
- element.__ref.root,
361
- {},
362
- {
363
- fromSocket: true,
364
- updateStateOptions: {
365
- fromSocket: true,
366
- preventStateUpdateListener: 1
367
- // !isModalRoute(data.route, element)
368
- }
369
- }
370
- );
371
- }
372
- } else if (data.reload) {
373
- window.location.reload();
374
- } else if (data.route && data.type === "routeForced") {
375
- router(
376
- data.route,
377
- element.__ref.root,
378
- {},
379
- {
380
- fromSocket: true,
381
- updateStateOptions: {
382
- fromSocket: true
383
- }
384
- }
385
- );
386
- } else if (data.componentKey) {
387
- if (!element.getData("components")[data.componentKey]) {
388
- return;
389
- }
390
- element.activateSelected(data.componentKey);
391
- }
392
- }
393
- _handleDisconnect() {
394
- this._updateStatus("disconnected");
395
- this._handleReconnect();
396
- }
397
- _handleReconnect() {
398
- if (this._reconnectAttempts < this._maxReconnectAttempts) {
399
- this._reconnectAttempts++;
400
- this._updateStatus("reconnecting");
401
- setTimeout(() => {
402
- try {
403
- const connected = this.connect();
404
- if (connected) {
405
- this._reconnectAttempts = 0;
406
- } else {
407
- this._handleReconnect();
408
- }
409
- } catch (error) {
410
- console.error("Reconnection failed:", error);
411
- this._handleReconnect();
412
- }
413
- }, this._reconnectDelay * this._reconnectAttempts);
414
- } else {
415
- this._updateStatus("failed");
416
- this._setError(new Error("Max reconnection attempts reached"));
417
- }
418
- }
419
- _updateStatus(status) {
420
- this._info = {
421
- ...this._info,
422
- config: {
423
- ...this._info.config,
424
- status
425
- }
426
- };
427
- }
428
- destroy() {
429
- if (this._socket) {
430
- disconnect.call(this._socket);
431
- this._socket = null;
432
- }
433
- this._handlers.clear();
434
- this._setReady(false);
435
- }
436
- reconnect() {
437
- this.destroy();
438
- this.connect();
439
- }
440
- _checkRequiredContext() {
441
- var _a, _b;
442
- return Boolean(
443
- ((_a = this._context) == null ? void 0 : _a.appKey) && ((_b = this._context) == null ? void 0 : _b.authToken) && this._socket
444
- );
445
- }
446
- isReady() {
447
- if (this._checkRequiredContext()) {
448
- this._setReady(true);
449
- }
450
- return this._ready;
451
- }
452
- };
453
- export {
454
- SocketService
455
- };
456
- // @preserve-env