@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,280 +0,0 @@
1
- import { connect, send, disconnect } from "@symbo.ls/socket/client.js";
2
- import { BaseService } from "./BaseService.js";
3
- import * as utils from "@domql/utils";
4
- import { router } from "@symbo.ls/router";
5
- import environment from "../config/environment.js";
6
- const { deepStringify, deepDestringify, isString } = utils.default || utils;
7
- class SocketService extends BaseService {
8
- constructor(config) {
9
- super(config);
10
- this._socket = null;
11
- this._reconnectAttempts = 0;
12
- this._maxReconnectAttempts = (config == null ? void 0 : config.maxReconnectAttempts) || 5;
13
- this._reconnectDelay = (config == null ? void 0 : config.reconnectDelay) || 1e3;
14
- this._handlers = /* @__PURE__ */ new Map();
15
- this._sessionId = Math.random();
16
- this._ignoreSync = [
17
- "userId",
18
- "username",
19
- "usersName",
20
- "email",
21
- "projects",
22
- "feedbacks",
23
- "userRoles",
24
- "loading",
25
- "appKey",
26
- "projectName",
27
- "followingUser",
28
- "activeProject",
29
- "user",
30
- "sessionId",
31
- "clients"
32
- ];
33
- }
34
- init() {
35
- try {
36
- const { _context, _options } = this;
37
- const socketUrl = environment.socketUrl || _options.socketUrl;
38
- if (!socketUrl) {
39
- throw new Error("Socket URL is required");
40
- }
41
- this._info = {
42
- config: {
43
- url: socketUrl,
44
- hasToken: Boolean(_context.authToken),
45
- status: "initializing"
46
- }
47
- };
48
- this._setReady();
49
- } catch (error) {
50
- this._setError(error);
51
- throw error;
52
- }
53
- }
54
- connect() {
55
- var _a, _b, _c, _d, _e, _f, _g;
56
- try {
57
- if (this._socket && ["connected", "connecting"].includes((_b = (_a = this._info) == null ? void 0 : _a.config) == null ? void 0 : _b.status)) {
58
- console.warn(
59
- "Socket connection already exists:",
60
- (_d = (_c = this._info) == null ? void 0 : _c.config) == null ? void 0 : _d.status
61
- );
62
- return true;
63
- }
64
- const { _context } = this;
65
- if (!_context.appKey) {
66
- throw new Error("App key is required");
67
- }
68
- this._updateStatus("connecting");
69
- const config = {
70
- source: "platform",
71
- userId: (_e = _context.user) == null ? void 0 : _e.id,
72
- socketUrl: this._info.config.url,
73
- location: window.location.host,
74
- // onConnect: () => {
75
- // console.log('waz')
76
- // },
77
- onChange: this._handleMessage.bind(this),
78
- sessionId: this._sessionId,
79
- usersName: (_f = _context.user) == null ? void 0 : _f.name,
80
- route: window.location.pathname,
81
- onDisconnect: this._handleDisconnect.bind(this)
82
- };
83
- if (this._socket) {
84
- this.destroy();
85
- }
86
- this._socket = connect(_context.appKey, config);
87
- this._updateStatus("connected");
88
- if (environment.isDevelopment) {
89
- console.log("Socket connection established:", {
90
- appKey: _context.appKey,
91
- userId: (_g = _context.user) == null ? void 0 : _g.id,
92
- sessionId: this._sessionId,
93
- url: this._info.config.url
94
- });
95
- }
96
- return true;
97
- } catch (error) {
98
- this._updateStatus("failed");
99
- console.error("Socket connection failed:", error);
100
- throw new Error(`Socket connection failed: ${error.message}`);
101
- }
102
- }
103
- send(type, data, opts = {}) {
104
- var _a, _b;
105
- this._requireReady();
106
- if (!this._socket) {
107
- throw new Error("Socket is not connected");
108
- }
109
- const payload = {
110
- sessionId: this._sessionId,
111
- userId: (_a = this._context.user) == null ? void 0 : _a.id,
112
- usersName: (_b = this._context.user) == null ? void 0 : _b.name,
113
- ...data
114
- };
115
- send.call(
116
- this._socket,
117
- type,
118
- opts.useDeepStringify ? deepStringify(payload) : payload
119
- );
120
- }
121
- _handleMessage(event, data) {
122
- try {
123
- const d = isString(data) ? deepDestringify(JSON.parse(data)) : data;
124
- if (this._sessionId === d.sessionId) {
125
- return;
126
- }
127
- const handlers = this._handlers.get(event);
128
- if (handlers) {
129
- handlers.forEach((handler) => handler(d));
130
- }
131
- switch (event) {
132
- case "change":
133
- this._handleChangeEvent(d);
134
- break;
135
- case "clients":
136
- this._handleClientsEvent(d);
137
- break;
138
- case "route":
139
- this._handleRouteEvent(d);
140
- break;
141
- default:
142
- break;
143
- }
144
- } catch (error) {
145
- this._setError(new Error(`Failed to handle message: ${error.message}`));
146
- }
147
- }
148
- _handleChangeEvent(data) {
149
- const { type, changes, version } = data;
150
- if (version) {
151
- this._context.state.version = version;
152
- }
153
- if (changes) {
154
- window.requestAnimationFrame(async () => {
155
- await this._context.state.setPathCollection(changes, {
156
- preventReplace: type === "canvas",
157
- preventUpdate: true,
158
- fromSocket: true,
159
- userId: data.userId,
160
- changes
161
- });
162
- });
163
- }
164
- }
165
- _handleClientsEvent(data) {
166
- const { root } = this._context.state;
167
- root.replace(
168
- { clients: data },
169
- {
170
- fromSocket: true,
171
- preventUpdate: true
172
- }
173
- );
174
- }
175
- _handleRouteEvent(data) {
176
- const { element } = this._context;
177
- const { state } = this._context;
178
- if (data.userId && data.type === "routeChanged") {
179
- const isModalOpen = this.getWindow("modal");
180
- const isFollowing = state.followingUser === data.userId;
181
- const isRouteSyncEnabled = element.getUserSettings("presentMode") && data.userId === state.userId;
182
- if ((isFollowing || isRouteSyncEnabled) && !isModalOpen) {
183
- router(
184
- data.route,
185
- element.__ref.root,
186
- {},
187
- {
188
- fromSocket: true,
189
- updateStateOptions: {
190
- fromSocket: true,
191
- preventStateUpdateListener: 1
192
- // !isModalRoute(data.route, element)
193
- }
194
- }
195
- );
196
- }
197
- } else if (data.reload) {
198
- window.location.reload();
199
- } else if (data.route && data.type === "routeForced") {
200
- router(
201
- data.route,
202
- element.__ref.root,
203
- {},
204
- {
205
- fromSocket: true,
206
- updateStateOptions: {
207
- fromSocket: true
208
- }
209
- }
210
- );
211
- } else if (data.componentKey) {
212
- if (!element.getData("components")[data.componentKey]) {
213
- return;
214
- }
215
- element.activateSelected(data.componentKey);
216
- }
217
- }
218
- _handleDisconnect() {
219
- this._updateStatus("disconnected");
220
- this._handleReconnect();
221
- }
222
- _handleReconnect() {
223
- if (this._reconnectAttempts < this._maxReconnectAttempts) {
224
- this._reconnectAttempts++;
225
- this._updateStatus("reconnecting");
226
- setTimeout(() => {
227
- try {
228
- const connected = this.connect();
229
- if (connected) {
230
- this._reconnectAttempts = 0;
231
- } else {
232
- this._handleReconnect();
233
- }
234
- } catch (error) {
235
- console.error("Reconnection failed:", error);
236
- this._handleReconnect();
237
- }
238
- }, this._reconnectDelay * this._reconnectAttempts);
239
- } else {
240
- this._updateStatus("failed");
241
- this._setError(new Error("Max reconnection attempts reached"));
242
- }
243
- }
244
- _updateStatus(status) {
245
- this._info = {
246
- ...this._info,
247
- config: {
248
- ...this._info.config,
249
- status
250
- }
251
- };
252
- }
253
- destroy() {
254
- if (this._socket) {
255
- disconnect.call(this._socket);
256
- this._socket = null;
257
- }
258
- this._handlers.clear();
259
- this._setReady(false);
260
- }
261
- reconnect() {
262
- this.destroy();
263
- this.connect();
264
- }
265
- _checkRequiredContext() {
266
- var _a, _b;
267
- return Boolean(
268
- ((_a = this._context) == null ? void 0 : _a.appKey) && ((_b = this._context) == null ? void 0 : _b.authToken) && this._socket
269
- );
270
- }
271
- isReady() {
272
- if (this._checkRequiredContext()) {
273
- this._setReady(true);
274
- }
275
- return this._ready;
276
- }
277
- }
278
- export {
279
- SocketService
280
- };