@symbo.ls/sdk 3.2.3 → 3.2.7
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/README.md +141 -0
- package/dist/cjs/config/environment.js +94 -10
- package/dist/cjs/index.js +152 -12
- package/dist/cjs/services/AdminService.js +351 -0
- package/dist/cjs/services/AuthService.js +738 -305
- package/dist/cjs/services/BaseService.js +158 -6
- package/dist/cjs/services/BranchService.js +484 -0
- package/dist/cjs/services/CollabService.js +439 -116
- package/dist/cjs/services/DnsService.js +340 -0
- package/dist/cjs/services/FeatureFlagService.js +175 -0
- package/dist/cjs/services/FileService.js +201 -0
- package/dist/cjs/services/IntegrationService.js +538 -0
- package/dist/cjs/services/MetricsService.js +62 -0
- package/dist/cjs/services/PaymentService.js +271 -0
- package/dist/cjs/services/PlanService.js +426 -0
- package/dist/cjs/services/ProjectService.js +1207 -0
- package/dist/cjs/services/PullRequestService.js +503 -0
- package/dist/cjs/services/ScreenshotService.js +304 -0
- package/dist/cjs/services/SubscriptionService.js +396 -0
- package/dist/cjs/services/TrackingService.js +661 -0
- package/dist/cjs/services/WaitlistService.js +148 -0
- package/dist/cjs/services/index.js +60 -4
- package/dist/cjs/state/RootStateManager.js +2 -23
- package/dist/cjs/state/rootEventBus.js +9 -0
- package/dist/cjs/utils/CollabClient.js +78 -12
- package/dist/cjs/utils/TokenManager.js +16 -3
- package/dist/cjs/utils/changePreprocessor.js +199 -0
- package/dist/cjs/utils/jsonDiff.js +46 -4
- package/dist/cjs/utils/ordering.js +309 -0
- package/dist/cjs/utils/services.js +285 -128
- package/dist/cjs/utils/validation.js +0 -3
- package/dist/esm/config/environment.js +94 -10
- package/dist/esm/index.js +47862 -18248
- package/dist/esm/services/AdminService.js +1132 -0
- package/dist/esm/services/AuthService.js +1493 -386
- package/dist/esm/services/BaseService.js +757 -6
- package/dist/esm/services/BranchService.js +1265 -0
- package/dist/esm/services/CollabService.js +24956 -16089
- package/dist/esm/services/DnsService.js +1121 -0
- package/dist/esm/services/FeatureFlagService.js +956 -0
- package/dist/esm/services/FileService.js +982 -0
- package/dist/esm/services/IntegrationService.js +1319 -0
- package/dist/esm/services/MetricsService.js +843 -0
- package/dist/esm/services/PaymentService.js +1052 -0
- package/dist/esm/services/PlanService.js +1207 -0
- package/dist/esm/services/ProjectService.js +2526 -0
- package/dist/esm/services/PullRequestService.js +1284 -0
- package/dist/esm/services/ScreenshotService.js +1085 -0
- package/dist/esm/services/SubscriptionService.js +1177 -0
- package/dist/esm/services/TrackingService.js +18454 -0
- package/dist/esm/services/WaitlistService.js +929 -0
- package/dist/esm/services/index.js +47373 -18027
- package/dist/esm/state/RootStateManager.js +11 -23
- package/dist/esm/state/rootEventBus.js +9 -0
- package/dist/esm/utils/CollabClient.js +17526 -16120
- package/dist/esm/utils/TokenManager.js +16 -3
- package/dist/esm/utils/changePreprocessor.js +542 -0
- package/dist/esm/utils/jsonDiff.js +958 -43
- package/dist/esm/utils/ordering.js +291 -0
- package/dist/esm/utils/services.js +285 -128
- package/dist/esm/utils/validation.js +116 -50
- package/dist/node/config/environment.js +94 -10
- package/dist/node/index.js +183 -16
- package/dist/node/services/AdminService.js +332 -0
- package/dist/node/services/AuthService.js +742 -310
- package/dist/node/services/BaseService.js +148 -6
- package/dist/node/services/BranchService.js +465 -0
- package/dist/node/services/CollabService.js +439 -116
- package/dist/node/services/DnsService.js +321 -0
- package/dist/node/services/FeatureFlagService.js +156 -0
- package/dist/node/services/FileService.js +182 -0
- package/dist/node/services/IntegrationService.js +519 -0
- package/dist/node/services/MetricsService.js +43 -0
- package/dist/node/services/PaymentService.js +252 -0
- package/dist/node/services/PlanService.js +407 -0
- package/dist/node/services/ProjectService.js +1188 -0
- package/dist/node/services/PullRequestService.js +484 -0
- package/dist/node/services/ScreenshotService.js +285 -0
- package/dist/node/services/SubscriptionService.js +377 -0
- package/dist/node/services/TrackingService.js +632 -0
- package/dist/node/services/WaitlistService.js +129 -0
- package/dist/node/services/index.js +60 -4
- package/dist/node/state/RootStateManager.js +2 -23
- package/dist/node/state/rootEventBus.js +9 -0
- package/dist/node/utils/CollabClient.js +77 -11
- package/dist/node/utils/TokenManager.js +16 -3
- package/dist/node/utils/changePreprocessor.js +180 -0
- package/dist/node/utils/jsonDiff.js +46 -4
- package/dist/node/utils/ordering.js +290 -0
- package/dist/node/utils/services.js +285 -128
- package/dist/node/utils/validation.js +0 -3
- package/package.json +30 -18
- package/src/config/environment.js +95 -10
- package/src/index.js +190 -23
- package/src/services/AdminService.js +374 -0
- package/src/services/AuthService.js +874 -328
- package/src/services/BaseService.js +166 -6
- package/src/services/BranchService.js +536 -0
- package/src/services/CollabService.js +557 -148
- package/src/services/DnsService.js +366 -0
- package/src/services/FeatureFlagService.js +174 -0
- package/src/services/FileService.js +213 -0
- package/src/services/IntegrationService.js +548 -0
- package/src/services/MetricsService.js +40 -0
- package/src/services/PaymentService.js +287 -0
- package/src/services/PlanService.js +468 -0
- package/src/services/ProjectService.js +1366 -0
- package/src/services/PullRequestService.js +537 -0
- package/src/services/ScreenshotService.js +258 -0
- package/src/services/SubscriptionService.js +425 -0
- package/src/services/TrackingService.js +853 -0
- package/src/services/WaitlistService.js +130 -0
- package/src/services/index.js +79 -5
- package/src/services/tests/BranchService/createBranch.test.js +153 -0
- package/src/services/tests/BranchService/deleteBranch.test.js +173 -0
- package/src/services/tests/BranchService/getBranchChanges.test.js +146 -0
- package/src/services/tests/BranchService/listBranches.test.js +87 -0
- package/src/services/tests/BranchService/mergeBranch.test.js +210 -0
- package/src/services/tests/BranchService/publishVersion.test.js +183 -0
- package/src/services/tests/BranchService/renameBranch.test.js +240 -0
- package/src/services/tests/BranchService/resetBranch.test.js +152 -0
- package/src/services/tests/FeatureFlagService/adminFeatureFlags.test.js +67 -0
- package/src/services/tests/FeatureFlagService/getFeatureFlags.test.js +75 -0
- package/src/services/tests/FileService/createFileFormData.test.js +74 -0
- package/src/services/tests/FileService/getFileUrl.test.js +69 -0
- package/src/services/tests/FileService/updateProjectIcon.test.js +109 -0
- package/src/services/tests/FileService/uploadDocument.test.js +36 -0
- package/src/services/tests/FileService/uploadFile.test.js +78 -0
- package/src/services/tests/FileService/uploadFileWithValidation.test.js +114 -0
- package/src/services/tests/FileService/uploadImage.test.js +36 -0
- package/src/services/tests/FileService/uploadMultipleFiles.test.js +111 -0
- package/src/services/tests/FileService/validateFile.test.js +63 -0
- package/src/services/tests/PlanService/createPlan.test.js +104 -0
- package/src/services/tests/PlanService/createPlanWithValidation.test.js +523 -0
- package/src/services/tests/PlanService/deletePlan.test.js +92 -0
- package/src/services/tests/PlanService/getActivePlans.test.js +123 -0
- package/src/services/tests/PlanService/getAdminPlans.test.js +84 -0
- package/src/services/tests/PlanService/getPlan.test.js +50 -0
- package/src/services/tests/PlanService/getPlanByKey.test.js +109 -0
- package/src/services/tests/PlanService/getPlanWithValidation.test.js +85 -0
- package/src/services/tests/PlanService/getPlans.test.js +53 -0
- package/src/services/tests/PlanService/getPlansByPriceRange.test.js +109 -0
- package/src/services/tests/PlanService/getPlansWithValidation.test.js +48 -0
- package/src/services/tests/PlanService/initializePlans.test.js +75 -0
- package/src/services/tests/PlanService/updatePlan.test.js +111 -0
- package/src/services/tests/PlanService/updatePlanWithValidation.test.js +556 -0
- package/src/state/RootStateManager.js +37 -32
- package/src/state/rootEventBus.js +19 -0
- package/src/utils/CollabClient.js +99 -12
- package/src/utils/TokenManager.js +20 -3
- package/src/utils/changePreprocessor.js +239 -0
- package/src/utils/jsonDiff.js +40 -5
- package/src/utils/ordering.js +271 -0
- package/src/utils/services.js +306 -139
- package/src/utils/validation.js +0 -3
- package/dist/cjs/services/AIService.js +0 -155
- package/dist/cjs/services/BasedService.js +0 -1185
- package/dist/cjs/services/CoreService.js +0 -2295
- package/dist/cjs/services/SocketService.js +0 -309
- package/dist/cjs/services/SymstoryService.js +0 -571
- package/dist/cjs/utils/basedQuerys.js +0 -181
- package/dist/cjs/utils/symstoryClient.js +0 -259
- package/dist/esm/services/AIService.js +0 -185
- package/dist/esm/services/BasedService.js +0 -5262
- package/dist/esm/services/CoreService.js +0 -2827
- package/dist/esm/services/SocketService.js +0 -456
- package/dist/esm/services/SymstoryService.js +0 -7025
- package/dist/esm/utils/basedQuerys.js +0 -163
- package/dist/esm/utils/symstoryClient.js +0 -354
- package/dist/node/services/AIService.js +0 -136
- package/dist/node/services/BasedService.js +0 -1156
- package/dist/node/services/CoreService.js +0 -2266
- package/dist/node/services/SocketService.js +0 -280
- package/dist/node/services/SymstoryService.js +0 -542
- package/dist/node/utils/basedQuerys.js +0 -162
- package/dist/node/utils/symstoryClient.js +0 -230
- package/src/services/AIService.js +0 -150
- package/src/services/BasedService.js +0 -1302
- package/src/services/CoreService.js +0 -2548
- package/src/services/SocketService.js +0 -336
- package/src/services/SymstoryService.js +0 -649
- package/src/utils/basedQuerys.js +0 -164
- 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
|
+
}
|