@symbo.ls/sdk 3.1.2 → 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 (187) hide show
  1. package/README.md +143 -2
  2. package/dist/cjs/config/environment.js +98 -30
  3. package/dist/cjs/index.js +144 -24
  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 +743 -0
  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 +64 -16
  23. package/dist/cjs/state/RootStateManager.js +65 -0
  24. package/dist/cjs/state/rootEventBus.js +74 -0
  25. package/dist/cjs/utils/CollabClient.js +223 -0
  26. package/dist/cjs/utils/TokenManager.js +78 -30
  27. package/dist/cjs/utils/changePreprocessor.js +199 -0
  28. package/dist/cjs/utils/jsonDiff.js +145 -0
  29. package/dist/cjs/utils/ordering.js +309 -0
  30. package/dist/cjs/utils/services.js +301 -103
  31. package/dist/cjs/utils/validation.js +0 -3
  32. package/dist/esm/config/environment.js +98 -30
  33. package/dist/esm/index.js +49505 -8718
  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 +26895 -0
  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 +49062 -8569
  53. package/dist/esm/state/RootStateManager.js +90 -0
  54. package/dist/esm/state/rootEventBus.js +56 -0
  55. package/dist/esm/utils/CollabClient.js +18889 -0
  56. package/dist/esm/utils/TokenManager.js +78 -30
  57. package/dist/esm/utils/changePreprocessor.js +542 -0
  58. package/dist/esm/utils/jsonDiff.js +7011 -0
  59. package/dist/esm/utils/ordering.js +291 -0
  60. package/dist/esm/utils/services.js +301 -103
  61. package/dist/esm/utils/validation.js +116 -50
  62. package/dist/node/config/environment.js +98 -30
  63. package/dist/node/index.js +175 -32
  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 +724 -0
  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 +64 -16
  83. package/dist/node/state/RootStateManager.js +36 -0
  84. package/dist/node/state/rootEventBus.js +55 -0
  85. package/dist/node/utils/CollabClient.js +194 -0
  86. package/dist/node/utils/TokenManager.js +78 -30
  87. package/dist/node/utils/changePreprocessor.js +180 -0
  88. package/dist/node/utils/jsonDiff.js +116 -0
  89. package/dist/node/utils/ordering.js +290 -0
  90. package/dist/node/utils/services.js +301 -103
  91. package/dist/node/utils/validation.js +0 -3
  92. package/package.json +39 -21
  93. package/src/config/environment.js +99 -28
  94. package/src/index.js +181 -36
  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 +900 -0
  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 +80 -13
  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 +76 -0
  148. package/src/state/rootEventBus.js +67 -0
  149. package/src/utils/CollabClient.js +248 -0
  150. package/src/utils/TokenManager.js +88 -33
  151. package/src/utils/changePreprocessor.js +239 -0
  152. package/src/utils/jsonDiff.js +144 -0
  153. package/src/utils/ordering.js +271 -0
  154. package/src/utils/services.js +326 -107
  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 -1751
  159. package/dist/cjs/services/SocketIOService.js +0 -307
  160. package/dist/cjs/services/SocketService.js +0 -161
  161. package/dist/cjs/services/SymstoryService.js +0 -571
  162. package/dist/cjs/utils/basedQuerys.js +0 -181
  163. package/dist/cjs/utils/symstoryClient.js +0 -259
  164. package/dist/esm/services/AIService.js +0 -185
  165. package/dist/esm/services/BasedService.js +0 -5278
  166. package/dist/esm/services/CoreService.js +0 -2264
  167. package/dist/esm/services/SocketIOService.js +0 -470
  168. package/dist/esm/services/SocketService.js +0 -191
  169. package/dist/esm/services/SymstoryService.js +0 -7041
  170. package/dist/esm/utils/basedQuerys.js +0 -163
  171. package/dist/esm/utils/symstoryClient.js +0 -370
  172. package/dist/node/services/AIService.js +0 -136
  173. package/dist/node/services/BasedService.js +0 -1156
  174. package/dist/node/services/CoreService.js +0 -1722
  175. package/dist/node/services/SocketIOService.js +0 -278
  176. package/dist/node/services/SocketService.js +0 -142
  177. package/dist/node/services/SymstoryService.js +0 -542
  178. package/dist/node/utils/basedQuerys.js +0 -162
  179. package/dist/node/utils/symstoryClient.js +0 -230
  180. package/src/services/AIService.js +0 -150
  181. package/src/services/BasedService.js +0 -1301
  182. package/src/services/CoreService.js +0 -1943
  183. package/src/services/SocketIOService.js +0 -334
  184. package/src/services/SocketService.js +0 -168
  185. package/src/services/SymstoryService.js +0 -649
  186. package/src/utils/basedQuerys.js +0 -164
  187. package/src/utils/symstoryClient.js +0 -252
@@ -0,0 +1,201 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var FileService_exports = {};
19
+ __export(FileService_exports, {
20
+ FileService: () => FileService
21
+ });
22
+ module.exports = __toCommonJS(FileService_exports);
23
+ var import_BaseService = require("./BaseService.js");
24
+ class FileService extends import_BaseService.BaseService {
25
+ // ==================== FILE METHODS ====================
26
+ async uploadFile(file, options = {}) {
27
+ var _a;
28
+ this._requireReady("uploadFile");
29
+ if (!file) {
30
+ throw new Error("File is required for upload");
31
+ }
32
+ const formData = new FormData();
33
+ formData.append("file", file);
34
+ const hasProjectIdOption = Object.hasOwn(options, "projectId");
35
+ const projectId = hasProjectIdOption ? options.projectId : (_a = this._context.project) == null ? void 0 : _a.id;
36
+ if (projectId != null && projectId !== "") {
37
+ formData.append("projectId", projectId);
38
+ }
39
+ if (options.tags) {
40
+ formData.append("tags", JSON.stringify(options.tags));
41
+ }
42
+ if (options.visibility) {
43
+ formData.append("visibility", options.visibility || "public");
44
+ }
45
+ if (options.metadata) {
46
+ formData.append("metadata", JSON.stringify(options.metadata));
47
+ }
48
+ try {
49
+ const response = await this._request("/files/upload", {
50
+ method: "POST",
51
+ body: formData,
52
+ headers: {},
53
+ // Let browser set Content-Type for FormData
54
+ methodName: "uploadFile"
55
+ });
56
+ if (!response.success) {
57
+ throw new Error(response.message);
58
+ }
59
+ return response.data;
60
+ } catch (error) {
61
+ throw new Error(`File upload failed: ${error.message}`, { cause: error });
62
+ }
63
+ }
64
+ async updateProjectIcon(projectId, iconFile) {
65
+ this._requireReady("updateProjectIcon");
66
+ if (!projectId || !iconFile) {
67
+ throw new Error("Project ID and icon file are required");
68
+ }
69
+ const formData = new FormData();
70
+ formData.append("icon", iconFile);
71
+ formData.append("projectId", projectId);
72
+ try {
73
+ const response = await this._request("/files/upload-project-icon", {
74
+ method: "POST",
75
+ body: formData,
76
+ headers: {},
77
+ // Let browser set Content-Type for FormData
78
+ methodName: "updateProjectIcon"
79
+ });
80
+ if (response.success) {
81
+ return response.data;
82
+ }
83
+ throw new Error(response.message);
84
+ } catch (error) {
85
+ throw new Error(`Failed to update project icon: ${error.message}`, { cause: error });
86
+ }
87
+ }
88
+ // ==================== FILE HELPER METHODS ====================
89
+ /**
90
+ * Helper method to upload file with validation
91
+ */
92
+ async uploadFileWithValidation(file, options = {}) {
93
+ if (!file) {
94
+ throw new Error("File is required");
95
+ }
96
+ const maxSize = options.maxSize || 10 * 1024 * 1024;
97
+ if (file.size > maxSize) {
98
+ throw new Error(`File size exceeds maximum allowed size of ${maxSize / (1024 * 1024)}MB`);
99
+ }
100
+ const allowedTypes = options.allowedTypes || ["image/*", "application/pdf", "text/*"];
101
+ if (allowedTypes.length > 0) {
102
+ const isValidType = allowedTypes.some((type) => {
103
+ if (type.endsWith("/*")) {
104
+ return file.type.startsWith(type.replace("/*", ""));
105
+ }
106
+ return file.type === type;
107
+ });
108
+ if (!isValidType) {
109
+ throw new Error(`File type '${file.type}' is not allowed. Allowed types: ${allowedTypes.join(", ")}`);
110
+ }
111
+ }
112
+ return await this.uploadFile(file, options);
113
+ }
114
+ /**
115
+ * Helper method to upload image file specifically
116
+ */
117
+ async uploadImage(imageFile, options = {}) {
118
+ const imageOptions = {
119
+ ...options,
120
+ allowedTypes: ["image/jpeg", "image/png", "image/gif", "image/webp"],
121
+ maxSize: options.maxSize || 5 * 1024 * 1024
122
+ // 5MB for images
123
+ };
124
+ return await this.uploadFileWithValidation(imageFile, imageOptions);
125
+ }
126
+ /**
127
+ * Helper method to upload document file
128
+ */
129
+ async uploadDocument(documentFile, options = {}) {
130
+ const documentOptions = {
131
+ ...options,
132
+ allowedTypes: ["application/pdf", "text/plain", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
133
+ maxSize: options.maxSize || 20 * 1024 * 1024
134
+ // 20MB for documents
135
+ };
136
+ return await this.uploadFileWithValidation(documentFile, documentOptions);
137
+ }
138
+ /**
139
+ * Helper method to get file URL by ID
140
+ */
141
+ getFileUrl(fileId) {
142
+ if (!fileId) {
143
+ throw new Error("File ID is required");
144
+ }
145
+ return `${this._apiUrl}/core/files/public/${fileId}/download`;
146
+ }
147
+ /**
148
+ * Helper method to validate file before upload
149
+ */
150
+ validateFile(file, options = {}) {
151
+ const errors = [];
152
+ if (!file) {
153
+ errors.push("File is required");
154
+ return errors;
155
+ }
156
+ const maxSize = options.maxSize || 10 * 1024 * 1024;
157
+ if (file.size > maxSize) {
158
+ errors.push(`File size (${(file.size / (1024 * 1024)).toFixed(2)}MB) exceeds maximum allowed size of ${maxSize / (1024 * 1024)}MB`);
159
+ }
160
+ const allowedTypes = options.allowedTypes || [];
161
+ if (allowedTypes.length > 0) {
162
+ const isValidType = allowedTypes.some((type) => {
163
+ if (type.endsWith("/*")) {
164
+ return file.type.startsWith(type.replace("/*", ""));
165
+ }
166
+ return file.type === type;
167
+ });
168
+ if (!isValidType) {
169
+ errors.push(`File type '${file.type}' is not allowed. Allowed types: ${allowedTypes.join(", ")}`);
170
+ }
171
+ }
172
+ return errors;
173
+ }
174
+ /**
175
+ * Helper method to create FormData with file and metadata
176
+ */
177
+ createFileFormData(file, metadata = {}) {
178
+ const formData = new FormData();
179
+ formData.append("file", file);
180
+ if (Object.keys(metadata).length > 0) {
181
+ formData.append("metadata", JSON.stringify(metadata));
182
+ }
183
+ return formData;
184
+ }
185
+ /**
186
+ * Helper method to upload multiple files
187
+ */
188
+ async uploadMultipleFiles(files, options = {}) {
189
+ if (!Array.isArray(files) || files.length === 0) {
190
+ throw new Error("Files array is required and must not be empty");
191
+ }
192
+ const uploadPromises = files.map((file) => this.uploadFile(file, options));
193
+ const results = await Promise.allSettled(uploadPromises);
194
+ return results.map((result, index) => ({
195
+ file: files[index],
196
+ success: result.status === "fulfilled",
197
+ data: result.status === "fulfilled" ? result.value : null,
198
+ error: result.status === "rejected" ? result.reason.message : null
199
+ }));
200
+ }
201
+ }