@symbo.ls/sdk 2.32.1 → 2.32.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/cjs/config/environment.js +8 -43
- package/dist/cjs/index.js +4 -12
- package/dist/cjs/services/AdminService.js +4 -4
- package/dist/cjs/services/AuthService.js +149 -36
- package/dist/cjs/services/BaseService.js +18 -5
- package/dist/cjs/services/BranchService.js +10 -10
- package/dist/cjs/services/CollabService.js +61 -163
- package/dist/cjs/services/CoreService.js +19 -19
- package/dist/cjs/services/DnsService.js +4 -4
- package/dist/cjs/services/FileService.js +2 -2
- package/dist/cjs/services/PaymentService.js +2 -2
- package/dist/cjs/services/PlanService.js +12 -12
- package/dist/cjs/services/ProjectService.js +34 -39
- package/dist/cjs/services/PullRequestService.js +7 -7
- package/dist/cjs/services/SubscriptionService.js +14 -14
- package/dist/cjs/services/index.js +0 -4
- package/dist/cjs/utils/TokenManager.js +5 -16
- package/dist/cjs/utils/services.js +1 -14
- package/dist/esm/config/environment.js +8 -43
- package/dist/esm/index.js +343 -937
- package/dist/esm/services/AdminService.js +35 -68
- package/dist/esm/services/AuthService.js +168 -100
- package/dist/esm/services/BaseService.js +31 -64
- package/dist/esm/services/BranchService.js +41 -74
- package/dist/esm/services/CollabService.js +93 -482
- package/dist/esm/services/CoreService.js +50 -83
- package/dist/esm/services/DnsService.js +35 -68
- package/dist/esm/services/FileService.js +33 -66
- package/dist/esm/services/PaymentService.js +33 -66
- package/dist/esm/services/PlanService.js +43 -76
- package/dist/esm/services/ProjectService.js +65 -356
- package/dist/esm/services/PullRequestService.js +38 -71
- package/dist/esm/services/SubscriptionService.js +45 -78
- package/dist/esm/services/index.js +338 -914
- package/dist/esm/utils/CollabClient.js +8 -43
- package/dist/esm/utils/TokenManager.js +5 -16
- package/dist/esm/utils/services.js +1 -14
- package/dist/node/config/environment.js +8 -43
- package/dist/node/index.js +5 -14
- package/dist/node/services/AdminService.js +4 -4
- package/dist/node/services/AuthService.js +139 -36
- package/dist/node/services/BaseService.js +18 -5
- package/dist/node/services/BranchService.js +10 -10
- package/dist/node/services/CollabService.js +62 -164
- package/dist/node/services/CoreService.js +19 -19
- package/dist/node/services/DnsService.js +4 -4
- package/dist/node/services/FileService.js +2 -2
- package/dist/node/services/PaymentService.js +2 -2
- package/dist/node/services/PlanService.js +12 -12
- package/dist/node/services/ProjectService.js +34 -39
- package/dist/node/services/PullRequestService.js +7 -7
- package/dist/node/services/SubscriptionService.js +14 -14
- package/dist/node/services/index.js +0 -4
- package/dist/node/utils/TokenManager.js +5 -16
- package/dist/node/utils/services.js +1 -14
- package/package.json +6 -7
- package/src/config/environment.js +9 -48
- package/src/index.js +22 -38
- package/src/services/AdminService.js +4 -4
- package/src/services/AuthService.js +175 -42
- package/src/services/BaseService.js +24 -7
- package/src/services/BranchService.js +10 -10
- package/src/services/CollabService.js +72 -203
- package/src/services/CoreService.js +19 -19
- package/src/services/DnsService.js +4 -4
- package/src/services/FileService.js +2 -2
- package/src/services/PaymentService.js +2 -2
- package/src/services/PlanService.js +12 -12
- package/src/services/ProjectService.js +34 -41
- package/src/services/PullRequestService.js +7 -7
- package/src/services/SubscriptionService.js +14 -14
- package/src/services/index.js +1 -6
- package/src/utils/TokenManager.js +5 -19
- package/src/utils/services.js +1 -15
- package/dist/cjs/services/ScreenshotService.js +0 -304
- package/dist/cjs/utils/ordering.js +0 -276
- package/dist/esm/services/ScreenshotService.js +0 -992
- package/dist/esm/utils/ordering.js +0 -258
- package/dist/node/services/ScreenshotService.js +0 -285
- package/dist/node/utils/ordering.js +0 -257
- package/src/services/ScreenshotService.js +0 -258
- package/src/utils/ordering.js +0 -244
|
@@ -41,7 +41,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
41
41
|
}
|
|
42
42
|
throw new Error(response.message);
|
|
43
43
|
} catch (error) {
|
|
44
|
-
throw new Error(`Failed to list branches: ${error.message}
|
|
44
|
+
throw new Error(`Failed to list branches: ${error.message}`);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
@@ -67,7 +67,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
67
67
|
}
|
|
68
68
|
throw new Error(response.message);
|
|
69
69
|
} catch (error) {
|
|
70
|
-
throw new Error(`Failed to create branch: ${error.message}
|
|
70
|
+
throw new Error(`Failed to create branch: ${error.message}`);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
@@ -97,7 +97,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
97
97
|
}
|
|
98
98
|
throw new Error(response.message);
|
|
99
99
|
} catch (error) {
|
|
100
|
-
throw new Error(`Failed to delete branch: ${error.message}
|
|
100
|
+
throw new Error(`Failed to delete branch: ${error.message}`);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
@@ -133,7 +133,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
133
133
|
}
|
|
134
134
|
throw new Error(response.message);
|
|
135
135
|
} catch (error) {
|
|
136
|
-
throw new Error(`Failed to rename branch: ${error.message}
|
|
136
|
+
throw new Error(`Failed to rename branch: ${error.message}`);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
@@ -172,7 +172,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
172
172
|
}
|
|
173
173
|
throw new Error(response.message);
|
|
174
174
|
} catch (error) {
|
|
175
|
-
throw new Error(`Failed to get branch changes: ${error.message}
|
|
175
|
+
throw new Error(`Failed to get branch changes: ${error.message}`);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
/**
|
|
@@ -219,7 +219,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
219
219
|
if (error.message.includes("conflicts") || error.message.includes("409")) {
|
|
220
220
|
throw new Error(`Merge conflicts detected: ${error.message}`);
|
|
221
221
|
}
|
|
222
|
-
throw new Error(`Failed to merge branch: ${error.message}
|
|
222
|
+
throw new Error(`Failed to merge branch: ${error.message}`);
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
/**
|
|
@@ -248,7 +248,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
248
248
|
}
|
|
249
249
|
throw new Error(response.message);
|
|
250
250
|
} catch (error) {
|
|
251
|
-
throw new Error(`Failed to reset branch: ${error.message}
|
|
251
|
+
throw new Error(`Failed to reset branch: ${error.message}`);
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
/**
|
|
@@ -274,7 +274,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
274
274
|
}
|
|
275
275
|
throw new Error(response.message);
|
|
276
276
|
} catch (error) {
|
|
277
|
-
throw new Error(`Failed to publish version: ${error.message}
|
|
277
|
+
throw new Error(`Failed to publish version: ${error.message}`);
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
// ==================== BRANCH HELPER METHODS ====================
|
|
@@ -306,7 +306,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
306
306
|
const branches = await this.listBranches(projectId);
|
|
307
307
|
return ((_a = branches == null ? void 0 : branches.data) == null ? void 0 : _a.includes(branchName)) || false;
|
|
308
308
|
} catch (error) {
|
|
309
|
-
throw new Error(`Failed to check if branch exists: ${error.message}
|
|
309
|
+
throw new Error(`Failed to check if branch exists: ${error.message}`);
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
/**
|
|
@@ -376,7 +376,7 @@ class BranchService extends import_BaseService.BaseService {
|
|
|
376
376
|
canRename: exists && branchName !== "main"
|
|
377
377
|
};
|
|
378
378
|
} catch (error) {
|
|
379
|
-
throw new Error(`Failed to get branch status: ${error.message}
|
|
379
|
+
throw new Error(`Failed to get branch status: ${error.message}`);
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
/**
|
|
@@ -26,8 +26,6 @@ var import_RootStateManager = require("../state/RootStateManager.js");
|
|
|
26
26
|
var import_rootEventBus = require("../state/rootEventBus.js");
|
|
27
27
|
var import_validation = require("../utils/validation.js");
|
|
28
28
|
var import_utils = require("@domql/utils");
|
|
29
|
-
var import_jsonDiff = require("../utils/jsonDiff.js");
|
|
30
|
-
var import_ordering = require("../utils/ordering.js");
|
|
31
29
|
class CollabService extends import_BaseService.BaseService {
|
|
32
30
|
constructor(config) {
|
|
33
31
|
super(config);
|
|
@@ -91,8 +89,8 @@ class CollabService extends import_BaseService.BaseService {
|
|
|
91
89
|
logger(`[Notification] ${title}${message ? ` \u2013 ${message}` : ""}`);
|
|
92
90
|
return;
|
|
93
91
|
}
|
|
94
|
-
case "
|
|
95
|
-
return (0, import_utils.
|
|
92
|
+
case "deepStringify": {
|
|
93
|
+
return (0, import_utils.deepStringify)(...args);
|
|
96
94
|
}
|
|
97
95
|
default:
|
|
98
96
|
return {};
|
|
@@ -127,49 +125,57 @@ class CollabService extends import_BaseService.BaseService {
|
|
|
127
125
|
if (this._client) {
|
|
128
126
|
await this.disconnect();
|
|
129
127
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
console.log(
|
|
146
|
-
this.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this._stateManager.setVersion(version);
|
|
151
|
-
}
|
|
152
|
-
import_rootEventBus.rootBus.emit("checkpoint:done", { version, origin: "auto" });
|
|
153
|
-
});
|
|
154
|
-
(_d = this._client.socket) == null ? void 0 : _d.on("clients", this._handleClientsEvent.bind(this));
|
|
155
|
-
(_e = this._client.socket) == null ? void 0 : _e.on(
|
|
156
|
-
"bundle:done",
|
|
157
|
-
this._handleBundleDoneEvent.bind(this)
|
|
158
|
-
);
|
|
159
|
-
(_f = this._client.socket) == null ? void 0 : _f.on(
|
|
160
|
-
"bundle:error",
|
|
161
|
-
this._handleBundleErrorEvent.bind(this)
|
|
162
|
-
);
|
|
163
|
-
if (this._pendingOps.length) {
|
|
164
|
-
console.log(
|
|
165
|
-
`[CollabService] Flushing ${this._pendingOps.length} offline operation batch(es)`
|
|
166
|
-
);
|
|
167
|
-
this._pendingOps.forEach(({ changes, orders }) => {
|
|
168
|
-
this.socket.emit("ops", { changes, orders, ts: Date.now() });
|
|
128
|
+
try {
|
|
129
|
+
this._client = new import_CollabClient.CollabClient({
|
|
130
|
+
jwt,
|
|
131
|
+
projectId,
|
|
132
|
+
branch,
|
|
133
|
+
live: Boolean(pro)
|
|
134
|
+
});
|
|
135
|
+
await new Promise((resolve) => {
|
|
136
|
+
var _a2, _b2;
|
|
137
|
+
if ((_a2 = this._client.socket) == null ? void 0 : _a2.connected) {
|
|
138
|
+
resolve();
|
|
139
|
+
} else {
|
|
140
|
+
(_b2 = this._client.socket) == null ? void 0 : _b2.once("connect", resolve);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
console.log("[CollabService] socket connected");
|
|
144
|
+
(_b = this._client.socket) == null ? void 0 : _b.on("ops", ({ changes }) => {
|
|
145
|
+
console.log(`ops event`);
|
|
146
|
+
console.log(changes);
|
|
147
|
+
this._stateManager.applyChanges(changes, { fromSocket: true });
|
|
169
148
|
});
|
|
170
|
-
this.
|
|
149
|
+
(_c = this._client.socket) == null ? void 0 : _c.on("commit", ({ version }) => {
|
|
150
|
+
if (version) {
|
|
151
|
+
this._stateManager.setVersion(version);
|
|
152
|
+
}
|
|
153
|
+
import_rootEventBus.rootBus.emit("checkpoint:done", { version, origin: "auto" });
|
|
154
|
+
});
|
|
155
|
+
(_d = this._client.socket) == null ? void 0 : _d.on("clients", this._handleClientsEvent.bind(this));
|
|
156
|
+
(_e = this._client.socket) == null ? void 0 : _e.on(
|
|
157
|
+
"bundle:done",
|
|
158
|
+
this._handleBundleDoneEvent.bind(this)
|
|
159
|
+
);
|
|
160
|
+
(_f = this._client.socket) == null ? void 0 : _f.on(
|
|
161
|
+
"bundle:error",
|
|
162
|
+
this._handleBundleErrorEvent.bind(this)
|
|
163
|
+
);
|
|
164
|
+
if (this._pendingOps.length) {
|
|
165
|
+
console.log(
|
|
166
|
+
`[CollabService] Flushing ${this._pendingOps.length} offline operation batch(es)`
|
|
167
|
+
);
|
|
168
|
+
this._pendingOps.forEach(({ tuples }) => {
|
|
169
|
+
this.socket.emit("ops", { changes: tuples, ts: Date.now() });
|
|
170
|
+
});
|
|
171
|
+
this._pendingOps.length = 0;
|
|
172
|
+
}
|
|
173
|
+
this._connected = true;
|
|
174
|
+
console.log("[CollabService] Connected to project:", projectId);
|
|
175
|
+
} catch (err) {
|
|
176
|
+
console.error("[CollabService] Connection failed:", err);
|
|
177
|
+
throw err;
|
|
171
178
|
}
|
|
172
|
-
this._connected = true;
|
|
173
179
|
}
|
|
174
180
|
disconnect() {
|
|
175
181
|
var _a;
|
|
@@ -207,128 +213,24 @@ class CollabService extends import_BaseService.BaseService {
|
|
|
207
213
|
}
|
|
208
214
|
/* ---------- data helpers ---------- */
|
|
209
215
|
updateData(tuples, options = {}) {
|
|
210
|
-
var _a
|
|
216
|
+
var _a;
|
|
211
217
|
this._ensureStateManager();
|
|
212
218
|
const { isUndo = false, isRedo = false } = options;
|
|
213
219
|
if (!isUndo && !isRedo && !this._isUndoRedo) {
|
|
214
220
|
this._trackForUndo(tuples, options);
|
|
215
221
|
}
|
|
216
|
-
const processedTuples = (() => {
|
|
217
|
-
var _a2;
|
|
218
|
-
try {
|
|
219
|
-
const root = (_a2 = this._stateManager) == null ? void 0 : _a2.root;
|
|
220
|
-
const isPlainObject = (o) => o && typeof o === "object" && !Array.isArray(o);
|
|
221
|
-
const getByPath = (state2, path) => {
|
|
222
|
-
if (!state2 || typeof state2.getByPath !== "function") {
|
|
223
|
-
return null;
|
|
224
|
-
}
|
|
225
|
-
try {
|
|
226
|
-
return state2.getByPath(path);
|
|
227
|
-
} catch {
|
|
228
|
-
return null;
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
const expandTuple = (t) => {
|
|
232
|
-
const [action, path, value] = t || [];
|
|
233
|
-
const isSchemaPath = Array.isArray(path) && path[0] === "schema";
|
|
234
|
-
if (action === "delete" || isSchemaPath) {
|
|
235
|
-
return [t];
|
|
236
|
-
}
|
|
237
|
-
const canConsiderExpansion = action === "update" && Array.isArray(path) && (path.length === 1 || path.length === 2) && isPlainObject(value);
|
|
238
|
-
if (!canConsiderExpansion) {
|
|
239
|
-
return [t];
|
|
240
|
-
}
|
|
241
|
-
const prev = getByPath(root, path) || {};
|
|
242
|
-
const next = value || {};
|
|
243
|
-
if (!isPlainObject(prev) || !isPlainObject(next)) {
|
|
244
|
-
return [t];
|
|
245
|
-
}
|
|
246
|
-
const ops = (0, import_jsonDiff.diffJson)(prev, next, []);
|
|
247
|
-
if (!ops.length) {
|
|
248
|
-
return [];
|
|
249
|
-
}
|
|
250
|
-
const arr = [];
|
|
251
|
-
for (let j = 0; j < ops.length; j++) {
|
|
252
|
-
const op = ops[j];
|
|
253
|
-
const fullPath = [...path, ...op.path];
|
|
254
|
-
const last = fullPath[fullPath.length - 1];
|
|
255
|
-
if (op.action === "set") {
|
|
256
|
-
arr.push(["update", fullPath, op.value]);
|
|
257
|
-
} else if (op.action === "del") {
|
|
258
|
-
if (last !== "__order") {
|
|
259
|
-
arr.push(["delete", fullPath]);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
return arr;
|
|
264
|
-
};
|
|
265
|
-
const minimizeTuples = (inputTuples) => {
|
|
266
|
-
const out = [];
|
|
267
|
-
for (let i = 0; i < inputTuples.length; i++) {
|
|
268
|
-
const expanded = expandTuple(inputTuples[i]);
|
|
269
|
-
for (let k = 0; k < expanded.length; k++) {
|
|
270
|
-
const tuple = expanded[k];
|
|
271
|
-
const isDelete = Array.isArray(tuple) && tuple[0] === "delete";
|
|
272
|
-
const isOrderKey = isDelete && Array.isArray(tuple[1]) && tuple[1][tuple[1].length - 1] === "__order";
|
|
273
|
-
if (!isOrderKey) {
|
|
274
|
-
out.push(tuple);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
console.log(`Minimized tuples`, out);
|
|
279
|
-
return out;
|
|
280
|
-
};
|
|
281
|
-
console.log(`Processing tuples`, tuples);
|
|
282
|
-
return minimizeTuples(tuples);
|
|
283
|
-
} catch (err) {
|
|
284
|
-
console.warn(
|
|
285
|
-
"[CollabService] Minimal diff expansion failed \u2013 using original tuples",
|
|
286
|
-
err
|
|
287
|
-
);
|
|
288
|
-
return tuples;
|
|
289
|
-
}
|
|
290
|
-
})();
|
|
291
222
|
if (options.append && options.append.length) {
|
|
292
|
-
|
|
223
|
+
tuples.push(...options.append);
|
|
293
224
|
}
|
|
294
225
|
this._stateManager.applyChanges(tuples, { ...options });
|
|
295
|
-
|
|
296
|
-
const el = state == null ? void 0 : state.__element;
|
|
297
|
-
const orders = (0, import_ordering.computeOrdersForTuples)(state, processedTuples);
|
|
298
|
-
const stringifiedGranularTuples = (el == null ? void 0 : el.call) ? el.call(
|
|
299
|
-
"deepStringifyFunctions",
|
|
300
|
-
processedTuples,
|
|
301
|
-
Array.isArray(processedTuples) ? [] : {}
|
|
302
|
-
) : (0, import_utils.deepStringifyFunctions)(
|
|
303
|
-
processedTuples,
|
|
304
|
-
Array.isArray(processedTuples) ? [] : {}
|
|
305
|
-
);
|
|
306
|
-
const stringifiedTuples = (el == null ? void 0 : el.call) ? el.call(
|
|
307
|
-
"deepStringifyFunctions",
|
|
308
|
-
tuples,
|
|
309
|
-
Array.isArray(tuples) ? [] : {}
|
|
310
|
-
) : (0, import_utils.deepStringifyFunctions)(
|
|
311
|
-
tuples,
|
|
312
|
-
Array.isArray(tuples) ? [] : {}
|
|
313
|
-
);
|
|
226
|
+
tuples = (0, import_utils.deepStringify)(tuples, []);
|
|
314
227
|
if (!this.isConnected()) {
|
|
315
228
|
console.warn("[CollabService] Not connected, queuing real-time update");
|
|
316
|
-
this._pendingOps.push({
|
|
229
|
+
this._pendingOps.push({ tuples, options });
|
|
317
230
|
return;
|
|
318
231
|
}
|
|
319
|
-
if ((
|
|
320
|
-
|
|
321
|
-
changes: stringifiedTuples,
|
|
322
|
-
granularChanges: stringifiedGranularTuples,
|
|
323
|
-
orders,
|
|
324
|
-
ts: Date.now()
|
|
325
|
-
});
|
|
326
|
-
this.socket.emit("ops", {
|
|
327
|
-
changes: stringifiedTuples,
|
|
328
|
-
granularChanges: stringifiedGranularTuples,
|
|
329
|
-
orders,
|
|
330
|
-
ts: Date.now()
|
|
331
|
-
});
|
|
232
|
+
if ((_a = this.socket) == null ? void 0 : _a.connected) {
|
|
233
|
+
this.socket.emit("ops", { changes: tuples, ts: Date.now() });
|
|
332
234
|
}
|
|
333
235
|
return { success: true };
|
|
334
236
|
}
|
|
@@ -469,7 +371,7 @@ class CollabService extends import_BaseService.BaseService {
|
|
|
469
371
|
const updatedOpts = { ...opts, skipComponentsChangedEvent: true };
|
|
470
372
|
return this.updateData(tuples, updatedOpts);
|
|
471
373
|
} catch (error) {
|
|
472
|
-
throw new Error(`Failed to add item: ${error.message}
|
|
374
|
+
throw new Error(`Failed to add item: ${error.message}`);
|
|
473
375
|
}
|
|
474
376
|
}
|
|
475
377
|
addMultipleItems(items, opts = {}) {
|
|
@@ -498,7 +400,7 @@ class CollabService extends import_BaseService.BaseService {
|
|
|
498
400
|
title: "Failed to add item",
|
|
499
401
|
message: error.message
|
|
500
402
|
});
|
|
501
|
-
throw new Error(`Failed to add item: ${error.message}
|
|
403
|
+
throw new Error(`Failed to add item: ${error.message}`);
|
|
502
404
|
}
|
|
503
405
|
}
|
|
504
406
|
updateItem(type, data, opts = {}) {
|
|
@@ -520,9 +422,7 @@ class CollabService extends import_BaseService.BaseService {
|
|
|
520
422
|
title: "Failed to update item",
|
|
521
423
|
message: error.message
|
|
522
424
|
});
|
|
523
|
-
throw new Error(`Failed to update item: ${error.message}
|
|
524
|
-
cause: error
|
|
525
|
-
});
|
|
425
|
+
throw new Error(`Failed to update item: ${error.message}`);
|
|
526
426
|
}
|
|
527
427
|
}
|
|
528
428
|
deleteItem(type, key, opts = {}) {
|
|
@@ -547,9 +447,7 @@ class CollabService extends import_BaseService.BaseService {
|
|
|
547
447
|
title: "Failed to delete item",
|
|
548
448
|
message: error.message
|
|
549
449
|
});
|
|
550
|
-
throw new Error(`Failed to delete item: ${error.message}
|
|
551
|
-
cause: error
|
|
552
|
-
});
|
|
450
|
+
throw new Error(`Failed to delete item: ${error.message}`);
|
|
553
451
|
}
|
|
554
452
|
}
|
|
555
453
|
/* ---------- socket event helpers ---------- */
|
|
@@ -180,11 +180,11 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
180
180
|
error = await response.json();
|
|
181
181
|
} catch {
|
|
182
182
|
}
|
|
183
|
-
throw new Error(error.message || error.error || "Request failed"
|
|
183
|
+
throw new Error(error.message || error.error || "Request failed");
|
|
184
184
|
}
|
|
185
185
|
return response.status === 204 ? null : response.json();
|
|
186
186
|
} catch (error) {
|
|
187
|
-
throw new Error(`Request failed: ${error.message}
|
|
187
|
+
throw new Error(`Request failed: ${error.message}`);
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
// ==================== AUTH METHODS ====================
|
|
@@ -200,7 +200,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
200
200
|
}
|
|
201
201
|
throw new Error(response.message);
|
|
202
202
|
} catch (error) {
|
|
203
|
-
throw new Error(`Registration failed: ${error.message}
|
|
203
|
+
throw new Error(`Registration failed: ${error.message}`);
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
async login(email, password) {
|
|
@@ -229,7 +229,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
229
229
|
}
|
|
230
230
|
throw new Error(response.message);
|
|
231
231
|
} catch (error) {
|
|
232
|
-
throw new Error(`Login failed: ${error.message}
|
|
232
|
+
throw new Error(`Login failed: ${error.message}`);
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
async logout() {
|
|
@@ -248,7 +248,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
248
248
|
this._tokenManager.clearTokens();
|
|
249
249
|
}
|
|
250
250
|
this.updateContext({ authToken: null });
|
|
251
|
-
throw new Error(`Logout failed: ${error.message}
|
|
251
|
+
throw new Error(`Logout failed: ${error.message}`);
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
async refreshToken(refreshToken) {
|
|
@@ -263,7 +263,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
263
263
|
}
|
|
264
264
|
throw new Error(response.message);
|
|
265
265
|
} catch (error) {
|
|
266
|
-
throw new Error(`Token refresh failed: ${error.message}
|
|
266
|
+
throw new Error(`Token refresh failed: ${error.message}`);
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
async googleAuth(idToken, inviteToken = null) {
|
|
@@ -296,7 +296,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
296
296
|
}
|
|
297
297
|
throw new Error(response.message);
|
|
298
298
|
} catch (error) {
|
|
299
|
-
throw new Error(`Google auth failed: ${error.message}
|
|
299
|
+
throw new Error(`Google auth failed: ${error.message}`);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
async githubAuth(code, inviteToken = null) {
|
|
@@ -329,7 +329,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
329
329
|
}
|
|
330
330
|
throw new Error(response.message);
|
|
331
331
|
} catch (error) {
|
|
332
|
-
throw new Error(`GitHub auth failed: ${error.message}
|
|
332
|
+
throw new Error(`GitHub auth failed: ${error.message}`);
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
async googleAuthCallback(code, redirectUri, inviteToken = null) {
|
|
@@ -362,7 +362,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
362
362
|
}
|
|
363
363
|
throw new Error(response.message);
|
|
364
364
|
} catch (error) {
|
|
365
|
-
throw new Error(`Google auth callback failed: ${error.message}
|
|
365
|
+
throw new Error(`Google auth callback failed: ${error.message}`);
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
368
|
async requestPasswordReset(email) {
|
|
@@ -377,7 +377,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
377
377
|
}
|
|
378
378
|
throw new Error(response.message);
|
|
379
379
|
} catch (error) {
|
|
380
|
-
throw new Error(`Password reset request failed: ${error.message}
|
|
380
|
+
throw new Error(`Password reset request failed: ${error.message}`);
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
383
|
async confirmPasswordReset(token, password) {
|
|
@@ -392,7 +392,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
392
392
|
}
|
|
393
393
|
throw new Error(response.message);
|
|
394
394
|
} catch (error) {
|
|
395
|
-
throw new Error(`Password reset confirmation failed: ${error.message}
|
|
395
|
+
throw new Error(`Password reset confirmation failed: ${error.message}`);
|
|
396
396
|
}
|
|
397
397
|
}
|
|
398
398
|
async confirmRegistration(token) {
|
|
@@ -407,7 +407,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
407
407
|
}
|
|
408
408
|
throw new Error(response.message);
|
|
409
409
|
} catch (error) {
|
|
410
|
-
throw new Error(`Registration confirmation failed: ${error.message}
|
|
410
|
+
throw new Error(`Registration confirmation failed: ${error.message}`);
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
413
|
async requestPasswordChange() {
|
|
@@ -422,7 +422,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
422
422
|
}
|
|
423
423
|
throw new Error(response.message);
|
|
424
424
|
} catch (error) {
|
|
425
|
-
throw new Error(`Password change request failed: ${error.message}
|
|
425
|
+
throw new Error(`Password change request failed: ${error.message}`);
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
428
|
async confirmPasswordChange(currentPassword, newPassword, code) {
|
|
@@ -438,7 +438,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
438
438
|
}
|
|
439
439
|
throw new Error(response.message);
|
|
440
440
|
} catch (error) {
|
|
441
|
-
throw new Error(`Password change confirmation failed: ${error.message}
|
|
441
|
+
throw new Error(`Password change confirmation failed: ${error.message}`);
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
async getMe() {
|
|
@@ -453,7 +453,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
453
453
|
}
|
|
454
454
|
throw new Error(response.message);
|
|
455
455
|
} catch (error) {
|
|
456
|
-
throw new Error(`Failed to get user profile: ${error.message}
|
|
456
|
+
throw new Error(`Failed to get user profile: ${error.message}`);
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
/**
|
|
@@ -569,7 +569,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
569
569
|
}
|
|
570
570
|
throw new Error(response.message);
|
|
571
571
|
} catch (error) {
|
|
572
|
-
throw new Error(`Failed to update user profile: ${error.message}
|
|
572
|
+
throw new Error(`Failed to update user profile: ${error.message}`);
|
|
573
573
|
}
|
|
574
574
|
}
|
|
575
575
|
async getUserProjects() {
|
|
@@ -592,7 +592,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
592
592
|
}
|
|
593
593
|
throw new Error(response.message);
|
|
594
594
|
} catch (error) {
|
|
595
|
-
throw new Error(`Failed to get user projects: ${error.message}
|
|
595
|
+
throw new Error(`Failed to get user projects: ${error.message}`);
|
|
596
596
|
}
|
|
597
597
|
}
|
|
598
598
|
async getUser(userId) {
|
|
@@ -610,7 +610,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
610
610
|
}
|
|
611
611
|
throw new Error(response.message);
|
|
612
612
|
} catch (error) {
|
|
613
|
-
throw new Error(`Failed to get user: ${error.message}
|
|
613
|
+
throw new Error(`Failed to get user: ${error.message}`);
|
|
614
614
|
}
|
|
615
615
|
}
|
|
616
616
|
async getUserByEmail(email) {
|
|
@@ -628,7 +628,7 @@ class CoreService extends import_BaseService.BaseService {
|
|
|
628
628
|
}
|
|
629
629
|
throw new Error(response.message);
|
|
630
630
|
} catch (error) {
|
|
631
|
-
throw new Error(`Failed to get user by email: ${error.message}
|
|
631
|
+
throw new Error(`Failed to get user by email: ${error.message}`);
|
|
632
632
|
}
|
|
633
633
|
}
|
|
634
634
|
// ==================== PROJECT METHODS ====================
|
|
@@ -39,7 +39,7 @@ class DnsService extends import_BaseService.BaseService {
|
|
|
39
39
|
}
|
|
40
40
|
throw new Error(response.message);
|
|
41
41
|
} catch (error) {
|
|
42
|
-
throw new Error(`Failed to create DNS record: ${error.message}
|
|
42
|
+
throw new Error(`Failed to create DNS record: ${error.message}`);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
async getDnsRecord(domain) {
|
|
@@ -57,7 +57,7 @@ class DnsService extends import_BaseService.BaseService {
|
|
|
57
57
|
}
|
|
58
58
|
throw new Error(response.message);
|
|
59
59
|
} catch (error) {
|
|
60
|
-
throw new Error(`Failed to get DNS record: ${error.message}
|
|
60
|
+
throw new Error(`Failed to get DNS record: ${error.message}`);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
async getCustomHost(hostname) {
|
|
@@ -93,7 +93,7 @@ class DnsService extends import_BaseService.BaseService {
|
|
|
93
93
|
}
|
|
94
94
|
throw new Error(response.message);
|
|
95
95
|
} catch (error) {
|
|
96
|
-
throw new Error(`Failed to remove DNS record: ${error.message}
|
|
96
|
+
throw new Error(`Failed to remove DNS record: ${error.message}`);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
// Deprecated, use addProjectCustomDomains instead
|
|
@@ -117,7 +117,7 @@ class DnsService extends import_BaseService.BaseService {
|
|
|
117
117
|
}
|
|
118
118
|
throw new Error(response.message);
|
|
119
119
|
} catch (error) {
|
|
120
|
-
throw new Error(`Failed to set project domains: ${error.message}
|
|
120
|
+
throw new Error(`Failed to set project domains: ${error.message}`);
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
// customDomains could be a string or an array of strings
|
|
@@ -60,7 +60,7 @@ class FileService extends import_BaseService.BaseService {
|
|
|
60
60
|
message: response.message
|
|
61
61
|
};
|
|
62
62
|
} catch (error) {
|
|
63
|
-
throw new Error(`File upload failed: ${error.message}
|
|
63
|
+
throw new Error(`File upload failed: ${error.message}`);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
async updateProjectIcon(projectId, iconFile) {
|
|
@@ -84,7 +84,7 @@ class FileService extends import_BaseService.BaseService {
|
|
|
84
84
|
}
|
|
85
85
|
throw new Error(response.message);
|
|
86
86
|
} catch (error) {
|
|
87
|
-
throw new Error(`Failed to update project icon: ${error.message}
|
|
87
|
+
throw new Error(`Failed to update project icon: ${error.message}`);
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
// ==================== FILE HELPER METHODS ====================
|
|
@@ -52,7 +52,7 @@ class PaymentService extends import_BaseService.BaseService {
|
|
|
52
52
|
}
|
|
53
53
|
throw new Error(response.message);
|
|
54
54
|
} catch (error) {
|
|
55
|
-
throw new Error(`Failed to checkout: ${error.message}
|
|
55
|
+
throw new Error(`Failed to checkout: ${error.message}`);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
async getSubscriptionStatus(projectId) {
|
|
@@ -73,7 +73,7 @@ class PaymentService extends import_BaseService.BaseService {
|
|
|
73
73
|
}
|
|
74
74
|
throw new Error(response.message);
|
|
75
75
|
} catch (error) {
|
|
76
|
-
throw new Error(`Failed to get subscription status: ${error.message}
|
|
76
|
+
throw new Error(`Failed to get subscription status: ${error.message}`);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
// ==================== PAYMENT HELPER METHODS ====================
|