@symbo.ls/sdk 2.32.0 → 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 +18 -114
- 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 +300 -907
- 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 +50 -452
- 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 -375
- package/dist/esm/services/PullRequestService.js +38 -71
- package/dist/esm/services/SubscriptionService.js +45 -78
- package/dist/esm/services/index.js +295 -884
- 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 +19 -115
- 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 +19 -142
- 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 -295
- package/dist/esm/services/ScreenshotService.js +0 -992
- package/dist/esm/utils/ordering.js +0 -277
- package/dist/node/services/ScreenshotService.js +0 -285
- package/dist/node/utils/ordering.js +0 -276
- package/src/services/ScreenshotService.js +0 -258
- package/src/utils/ordering.js +0 -240
|
@@ -4,9 +4,7 @@ import { RootStateManager } from '../state/RootStateManager.js'
|
|
|
4
4
|
import { rootBus } from '../state/rootEventBus.js'
|
|
5
5
|
import { validateParams } from '../utils/validation.js'
|
|
6
6
|
// Direct import to allow deep stringification in non-browser (Node) environments
|
|
7
|
-
import {
|
|
8
|
-
import { diffJson } from '../utils/jsonDiff.js'
|
|
9
|
-
import { computeOrdersForTuples } from '../utils/ordering.js'
|
|
7
|
+
import { deepStringify } from '@domql/utils'
|
|
10
8
|
// (helper conversions reserved for future features)
|
|
11
9
|
|
|
12
10
|
export class CollabService extends BaseService {
|
|
@@ -73,7 +71,7 @@ export class CollabService extends BaseService {
|
|
|
73
71
|
}
|
|
74
72
|
|
|
75
73
|
// 🌐 Ensure we always have a usable `__element` stub so that calls like
|
|
76
|
-
// `el.call('openNotification', …)` or `el.call('
|
|
74
|
+
// `el.call('openNotification', …)` or `el.call('deepStringify', …)` do not
|
|
77
75
|
// crash in headless / Node.js environments (e.g. integration tests).
|
|
78
76
|
const root = this._stateManager?.root
|
|
79
77
|
|
|
@@ -94,9 +92,9 @@ export class CollabService extends BaseService {
|
|
|
94
92
|
logger(`[Notification] ${title}${message ? ` – ${message}` : ''}`)
|
|
95
93
|
return
|
|
96
94
|
}
|
|
97
|
-
case '
|
|
95
|
+
case 'deepStringify': {
|
|
98
96
|
// Pass-through to the shared utility from `smbls`
|
|
99
|
-
return
|
|
97
|
+
return deepStringify(...args)
|
|
100
98
|
}
|
|
101
99
|
default:
|
|
102
100
|
return {}
|
|
@@ -158,9 +156,12 @@ export class CollabService extends BaseService {
|
|
|
158
156
|
}
|
|
159
157
|
})
|
|
160
158
|
|
|
159
|
+
console.log('[CollabService] socket connected')
|
|
160
|
+
|
|
161
161
|
// Set up event listeners
|
|
162
162
|
this._client.socket?.on('ops', ({ changes }) => {
|
|
163
163
|
console.log(`ops event`)
|
|
164
|
+
console.log(changes)
|
|
164
165
|
this._stateManager.applyChanges(changes, { fromSocket: true })
|
|
165
166
|
})
|
|
166
167
|
|
|
@@ -191,16 +192,16 @@ export class CollabService extends BaseService {
|
|
|
191
192
|
console.log(
|
|
192
193
|
`[CollabService] Flushing ${this._pendingOps.length} offline operation batch(es)`
|
|
193
194
|
)
|
|
194
|
-
this._pendingOps.forEach(({
|
|
195
|
-
this.socket.emit('ops', { changes
|
|
195
|
+
this._pendingOps.forEach(({ tuples }) => {
|
|
196
|
+
this.socket.emit('ops', { changes: tuples, ts: Date.now() })
|
|
196
197
|
})
|
|
197
198
|
this._pendingOps.length = 0
|
|
198
199
|
}
|
|
199
200
|
|
|
200
201
|
this._connected = true
|
|
201
|
-
|
|
202
|
+
console.log('[CollabService] Connected to project:', projectId)
|
|
202
203
|
} catch (err) {
|
|
203
|
-
|
|
204
|
+
console.error('[CollabService] Connection failed:', err)
|
|
204
205
|
throw err
|
|
205
206
|
}
|
|
206
207
|
}
|
|
@@ -248,146 +249,26 @@ export class CollabService extends BaseService {
|
|
|
248
249
|
this._trackForUndo(tuples, options)
|
|
249
250
|
}
|
|
250
251
|
|
|
251
|
-
// Minimize broad updates into granular update/delete tuples
|
|
252
|
-
// Rules:
|
|
253
|
-
// - Only transform ['update', [<rootKey>, ...], <object>] where <object> is a plain object
|
|
254
|
-
// - Use current root state at the same path as baseline
|
|
255
|
-
// - Emit ['delete', path] for missing keys and ['update', path, value] for changed keys
|
|
256
|
-
// - Preserve non-object updates as-is
|
|
257
|
-
// - Preserve explicit ['delete', ...] tuples as-is
|
|
258
|
-
// - Keep schema updates untouched
|
|
259
|
-
const processedTuples = (() => {
|
|
260
|
-
try {
|
|
261
|
-
const root = this._stateManager?.root
|
|
262
|
-
const isPlainObject = (o) =>
|
|
263
|
-
o && typeof o === 'object' && !Array.isArray(o)
|
|
264
|
-
|
|
265
|
-
const getByPath = (state, path) => {
|
|
266
|
-
if (!state || typeof state.getByPath !== 'function') {
|
|
267
|
-
return null
|
|
268
|
-
}
|
|
269
|
-
try {
|
|
270
|
-
return state.getByPath(path)
|
|
271
|
-
} catch {
|
|
272
|
-
return null
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
const expandTuple = (t) => {
|
|
277
|
-
const [action, path, value] = t || []
|
|
278
|
-
const isSchemaPath = Array.isArray(path) && path[0] === 'schema'
|
|
279
|
-
if (action === 'delete' || isSchemaPath) {
|
|
280
|
-
return [t]
|
|
281
|
-
}
|
|
282
|
-
const canConsiderExpansion =
|
|
283
|
-
action === 'update' &&
|
|
284
|
-
Array.isArray(path) &&
|
|
285
|
-
(path.length === 1 || path.length === 2) &&
|
|
286
|
-
isPlainObject(value)
|
|
287
|
-
if (!canConsiderExpansion) {
|
|
288
|
-
return [t]
|
|
289
|
-
}
|
|
290
|
-
const prev = getByPath(root, path) || {}
|
|
291
|
-
const next = value || {}
|
|
292
|
-
if (!isPlainObject(prev) || !isPlainObject(next)) {
|
|
293
|
-
return [t]
|
|
294
|
-
}
|
|
295
|
-
const ops = diffJson(prev, next, [])
|
|
296
|
-
if (!ops.length) {
|
|
297
|
-
return []
|
|
298
|
-
}
|
|
299
|
-
const arr = []
|
|
300
|
-
for (let j = 0; j < ops.length; j++) {
|
|
301
|
-
const op = ops[j]
|
|
302
|
-
const fullPath = [...path, ...op.path]
|
|
303
|
-
const last = fullPath[fullPath.length - 1]
|
|
304
|
-
if (op.action === 'set') {
|
|
305
|
-
arr.push(['update', fullPath, op.value])
|
|
306
|
-
} else if (op.action === 'del') {
|
|
307
|
-
// Do not generate deletes for __order keys
|
|
308
|
-
if (last !== '__order') {
|
|
309
|
-
arr.push(['delete', fullPath])
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return arr
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
const minimizeTuples = (inputTuples) => {
|
|
317
|
-
const out = []
|
|
318
|
-
for (let i = 0; i < inputTuples.length; i++) {
|
|
319
|
-
const expanded = expandTuple(inputTuples[i])
|
|
320
|
-
for (let k = 0; k < expanded.length; k++) {
|
|
321
|
-
const tuple = expanded[k]
|
|
322
|
-
// Filter out any explicit deletes targeting __order keys
|
|
323
|
-
const isDelete = Array.isArray(tuple) && tuple[0] === 'delete'
|
|
324
|
-
const isOrderKey =
|
|
325
|
-
isDelete &&
|
|
326
|
-
Array.isArray(tuple[1]) &&
|
|
327
|
-
tuple[1][tuple[1].length - 1] === '__order'
|
|
328
|
-
if (!isOrderKey) {
|
|
329
|
-
out.push(tuple)
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
console.log(`Minimized tuples`, out)
|
|
334
|
-
return out
|
|
335
|
-
}
|
|
336
|
-
console.log(`Processing tuples`, tuples)
|
|
337
|
-
return minimizeTuples(tuples)
|
|
338
|
-
} catch (err) {
|
|
339
|
-
console.warn(
|
|
340
|
-
'[CollabService] Minimal diff expansion failed – using original tuples',
|
|
341
|
-
err
|
|
342
|
-
)
|
|
343
|
-
return tuples
|
|
344
|
-
}
|
|
345
|
-
})()
|
|
346
|
-
|
|
347
252
|
// Include any additional changes passed via opts
|
|
348
253
|
if (options.append && options.append.length) {
|
|
349
|
-
|
|
254
|
+
tuples.push(...options.append)
|
|
350
255
|
}
|
|
351
256
|
|
|
352
257
|
// Apply changes to local state tree immediately.
|
|
353
258
|
this._stateManager.applyChanges(tuples, { ...options })
|
|
354
259
|
|
|
355
|
-
|
|
356
|
-
const el = state?.__element
|
|
357
|
-
|
|
358
|
-
// Derive ordering info for parent objects affected by these tuples
|
|
359
|
-
const orders = computeOrdersForTuples(state, processedTuples)
|
|
360
|
-
|
|
361
|
-
const stringifiedTuples = el?.call
|
|
362
|
-
? el.call(
|
|
363
|
-
'deepStringifyFunctions',
|
|
364
|
-
processedTuples,
|
|
365
|
-
Array.isArray(processedTuples) ? [] : {}
|
|
366
|
-
)
|
|
367
|
-
: deepStringifyFunctions(
|
|
368
|
-
processedTuples,
|
|
369
|
-
Array.isArray(processedTuples) ? [] : {}
|
|
370
|
-
)
|
|
260
|
+
tuples = deepStringify(tuples, [])
|
|
371
261
|
|
|
372
262
|
// If not connected yet, queue the operations for later synchronisation.
|
|
373
263
|
if (!this.isConnected()) {
|
|
374
264
|
console.warn('[CollabService] Not connected, queuing real-time update')
|
|
375
|
-
this._pendingOps.push({
|
|
265
|
+
this._pendingOps.push({ tuples, options })
|
|
376
266
|
return
|
|
377
267
|
}
|
|
378
268
|
|
|
379
269
|
// When connected, send the operations to the backend.
|
|
380
270
|
if (this.socket?.connected) {
|
|
381
|
-
|
|
382
|
-
changes: stringifiedTuples,
|
|
383
|
-
orders,
|
|
384
|
-
ts: Date.now()
|
|
385
|
-
})
|
|
386
|
-
this.socket.emit('ops', {
|
|
387
|
-
changes: stringifiedTuples,
|
|
388
|
-
orders,
|
|
389
|
-
ts: Date.now()
|
|
390
|
-
})
|
|
271
|
+
this.socket.emit('ops', { changes: tuples, ts: Date.now() })
|
|
391
272
|
}
|
|
392
273
|
|
|
393
274
|
return { success: true }
|
|
@@ -565,7 +446,7 @@ export class CollabService extends BaseService {
|
|
|
565
446
|
|
|
566
447
|
return this.updateData(tuples, updatedOpts)
|
|
567
448
|
} catch (error) {
|
|
568
|
-
throw new Error(`Failed to add item: ${error.message}
|
|
449
|
+
throw new Error(`Failed to add item: ${error.message}`)
|
|
569
450
|
}
|
|
570
451
|
}
|
|
571
452
|
|
|
@@ -598,7 +479,7 @@ export class CollabService extends BaseService {
|
|
|
598
479
|
title: 'Failed to add item',
|
|
599
480
|
message: error.message
|
|
600
481
|
})
|
|
601
|
-
throw new Error(`Failed to add item: ${error.message}
|
|
482
|
+
throw new Error(`Failed to add item: ${error.message}`)
|
|
602
483
|
}
|
|
603
484
|
}
|
|
604
485
|
|
|
@@ -621,9 +502,7 @@ export class CollabService extends BaseService {
|
|
|
621
502
|
title: 'Failed to update item',
|
|
622
503
|
message: error.message
|
|
623
504
|
})
|
|
624
|
-
throw new Error(`Failed to update item: ${error.message}
|
|
625
|
-
cause: error
|
|
626
|
-
})
|
|
505
|
+
throw new Error(`Failed to update item: ${error.message}`)
|
|
627
506
|
}
|
|
628
507
|
}
|
|
629
508
|
|
|
@@ -649,9 +528,7 @@ export class CollabService extends BaseService {
|
|
|
649
528
|
title: 'Failed to delete item',
|
|
650
529
|
message: error.message
|
|
651
530
|
})
|
|
652
|
-
throw new Error(`Failed to delete item: ${error.message}
|
|
653
|
-
cause: error
|
|
654
|
-
})
|
|
531
|
+
throw new Error(`Failed to delete item: ${error.message}`)
|
|
655
532
|
}
|
|
656
533
|
}
|
|
657
534
|
|
|
@@ -186,12 +186,12 @@ export class CoreService extends BaseService {
|
|
|
186
186
|
} catch {
|
|
187
187
|
// Use default error message
|
|
188
188
|
}
|
|
189
|
-
throw new Error(error.message || error.error || 'Request failed'
|
|
189
|
+
throw new Error(error.message || error.error || 'Request failed')
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
return response.status === 204 ? null : response.json()
|
|
193
193
|
} catch (error) {
|
|
194
|
-
throw new Error(`Request failed: ${error.message}
|
|
194
|
+
throw new Error(`Request failed: ${error.message}`)
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
|
|
@@ -209,7 +209,7 @@ export class CoreService extends BaseService {
|
|
|
209
209
|
}
|
|
210
210
|
throw new Error(response.message)
|
|
211
211
|
} catch (error) {
|
|
212
|
-
throw new Error(`Registration failed: ${error.message}
|
|
212
|
+
throw new Error(`Registration failed: ${error.message}`)
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
|
|
@@ -245,7 +245,7 @@ export class CoreService extends BaseService {
|
|
|
245
245
|
}
|
|
246
246
|
throw new Error(response.message)
|
|
247
247
|
} catch (error) {
|
|
248
|
-
throw new Error(`Login failed: ${error.message}
|
|
248
|
+
throw new Error(`Login failed: ${error.message}`)
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
|
|
@@ -270,7 +270,7 @@ export class CoreService extends BaseService {
|
|
|
270
270
|
}
|
|
271
271
|
this.updateContext({ authToken: null })
|
|
272
272
|
|
|
273
|
-
throw new Error(`Logout failed: ${error.message}
|
|
273
|
+
throw new Error(`Logout failed: ${error.message}`)
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
|
|
@@ -286,7 +286,7 @@ export class CoreService extends BaseService {
|
|
|
286
286
|
}
|
|
287
287
|
throw new Error(response.message)
|
|
288
288
|
} catch (error) {
|
|
289
|
-
throw new Error(`Token refresh failed: ${error.message}
|
|
289
|
+
throw new Error(`Token refresh failed: ${error.message}`)
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
|
|
@@ -325,7 +325,7 @@ export class CoreService extends BaseService {
|
|
|
325
325
|
}
|
|
326
326
|
throw new Error(response.message)
|
|
327
327
|
} catch (error) {
|
|
328
|
-
throw new Error(`Google auth failed: ${error.message}
|
|
328
|
+
throw new Error(`Google auth failed: ${error.message}`)
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
|
|
@@ -364,7 +364,7 @@ export class CoreService extends BaseService {
|
|
|
364
364
|
}
|
|
365
365
|
throw new Error(response.message)
|
|
366
366
|
} catch (error) {
|
|
367
|
-
throw new Error(`GitHub auth failed: ${error.message}
|
|
367
|
+
throw new Error(`GitHub auth failed: ${error.message}`)
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
370
|
|
|
@@ -405,7 +405,7 @@ export class CoreService extends BaseService {
|
|
|
405
405
|
}
|
|
406
406
|
throw new Error(response.message)
|
|
407
407
|
} catch (error) {
|
|
408
|
-
throw new Error(`Google auth callback failed: ${error.message}
|
|
408
|
+
throw new Error(`Google auth callback failed: ${error.message}`)
|
|
409
409
|
}
|
|
410
410
|
}
|
|
411
411
|
|
|
@@ -421,7 +421,7 @@ export class CoreService extends BaseService {
|
|
|
421
421
|
}
|
|
422
422
|
throw new Error(response.message)
|
|
423
423
|
} catch (error) {
|
|
424
|
-
throw new Error(`Password reset request failed: ${error.message}
|
|
424
|
+
throw new Error(`Password reset request failed: ${error.message}`)
|
|
425
425
|
}
|
|
426
426
|
}
|
|
427
427
|
|
|
@@ -437,7 +437,7 @@ export class CoreService extends BaseService {
|
|
|
437
437
|
}
|
|
438
438
|
throw new Error(response.message)
|
|
439
439
|
} catch (error) {
|
|
440
|
-
throw new Error(`Password reset confirmation failed: ${error.message}
|
|
440
|
+
throw new Error(`Password reset confirmation failed: ${error.message}`)
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
443
|
|
|
@@ -453,7 +453,7 @@ export class CoreService extends BaseService {
|
|
|
453
453
|
}
|
|
454
454
|
throw new Error(response.message)
|
|
455
455
|
} catch (error) {
|
|
456
|
-
throw new Error(`Registration confirmation failed: ${error.message}
|
|
456
|
+
throw new Error(`Registration confirmation failed: ${error.message}`)
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
|
|
@@ -469,7 +469,7 @@ export class CoreService extends BaseService {
|
|
|
469
469
|
}
|
|
470
470
|
throw new Error(response.message)
|
|
471
471
|
} catch (error) {
|
|
472
|
-
throw new Error(`Password change request failed: ${error.message}
|
|
472
|
+
throw new Error(`Password change request failed: ${error.message}`)
|
|
473
473
|
}
|
|
474
474
|
}
|
|
475
475
|
|
|
@@ -486,7 +486,7 @@ export class CoreService extends BaseService {
|
|
|
486
486
|
}
|
|
487
487
|
throw new Error(response.message)
|
|
488
488
|
} catch (error) {
|
|
489
|
-
throw new Error(`Password change confirmation failed: ${error.message}
|
|
489
|
+
throw new Error(`Password change confirmation failed: ${error.message}`)
|
|
490
490
|
}
|
|
491
491
|
}
|
|
492
492
|
|
|
@@ -502,7 +502,7 @@ export class CoreService extends BaseService {
|
|
|
502
502
|
}
|
|
503
503
|
throw new Error(response.message)
|
|
504
504
|
} catch (error) {
|
|
505
|
-
throw new Error(`Failed to get user profile: ${error.message}
|
|
505
|
+
throw new Error(`Failed to get user profile: ${error.message}`)
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
|
|
@@ -643,7 +643,7 @@ export class CoreService extends BaseService {
|
|
|
643
643
|
}
|
|
644
644
|
throw new Error(response.message)
|
|
645
645
|
} catch (error) {
|
|
646
|
-
throw new Error(`Failed to update user profile: ${error.message}
|
|
646
|
+
throw new Error(`Failed to update user profile: ${error.message}`)
|
|
647
647
|
}
|
|
648
648
|
}
|
|
649
649
|
|
|
@@ -667,7 +667,7 @@ export class CoreService extends BaseService {
|
|
|
667
667
|
}
|
|
668
668
|
throw new Error(response.message)
|
|
669
669
|
} catch (error) {
|
|
670
|
-
throw new Error(`Failed to get user projects: ${error.message}
|
|
670
|
+
throw new Error(`Failed to get user projects: ${error.message}`)
|
|
671
671
|
}
|
|
672
672
|
}
|
|
673
673
|
|
|
@@ -686,7 +686,7 @@ export class CoreService extends BaseService {
|
|
|
686
686
|
}
|
|
687
687
|
throw new Error(response.message)
|
|
688
688
|
} catch (error) {
|
|
689
|
-
throw new Error(`Failed to get user: ${error.message}
|
|
689
|
+
throw new Error(`Failed to get user: ${error.message}`)
|
|
690
690
|
}
|
|
691
691
|
}
|
|
692
692
|
|
|
@@ -705,7 +705,7 @@ export class CoreService extends BaseService {
|
|
|
705
705
|
}
|
|
706
706
|
throw new Error(response.message)
|
|
707
707
|
} catch (error) {
|
|
708
|
-
throw new Error(`Failed to get user by email: ${error.message}
|
|
708
|
+
throw new Error(`Failed to get user by email: ${error.message}`)
|
|
709
709
|
}
|
|
710
710
|
}
|
|
711
711
|
|
|
@@ -19,7 +19,7 @@ export class DnsService extends BaseService {
|
|
|
19
19
|
}
|
|
20
20
|
throw new Error(response.message)
|
|
21
21
|
} catch (error) {
|
|
22
|
-
throw new Error(`Failed to create DNS record: ${error.message}
|
|
22
|
+
throw new Error(`Failed to create DNS record: ${error.message}`)
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -38,7 +38,7 @@ export class DnsService extends BaseService {
|
|
|
38
38
|
}
|
|
39
39
|
throw new Error(response.message)
|
|
40
40
|
} catch (error) {
|
|
41
|
-
throw new Error(`Failed to get DNS record: ${error.message}
|
|
41
|
+
throw new Error(`Failed to get DNS record: ${error.message}`)
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -76,7 +76,7 @@ export class DnsService extends BaseService {
|
|
|
76
76
|
}
|
|
77
77
|
throw new Error(response.message)
|
|
78
78
|
} catch (error) {
|
|
79
|
-
throw new Error(`Failed to remove DNS record: ${error.message}
|
|
79
|
+
throw new Error(`Failed to remove DNS record: ${error.message}`)
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -105,7 +105,7 @@ export class DnsService extends BaseService {
|
|
|
105
105
|
}
|
|
106
106
|
throw new Error(response.message)
|
|
107
107
|
} catch (error) {
|
|
108
|
-
throw new Error(`Failed to set project domains: ${error.message}
|
|
108
|
+
throw new Error(`Failed to set project domains: ${error.message}`)
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -45,7 +45,7 @@ export class FileService extends BaseService {
|
|
|
45
45
|
message: response.message
|
|
46
46
|
}
|
|
47
47
|
} catch (error) {
|
|
48
|
-
throw new Error(`File upload failed: ${error.message}
|
|
48
|
+
throw new Error(`File upload failed: ${error.message}`)
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -71,7 +71,7 @@ export class FileService extends BaseService {
|
|
|
71
71
|
}
|
|
72
72
|
throw new Error(response.message)
|
|
73
73
|
} catch (error) {
|
|
74
|
-
throw new Error(`Failed to update project icon: ${error.message}
|
|
74
|
+
throw new Error(`Failed to update project icon: ${error.message}`)
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -34,7 +34,7 @@ export class PaymentService extends BaseService {
|
|
|
34
34
|
}
|
|
35
35
|
throw new Error(response.message)
|
|
36
36
|
} catch (error) {
|
|
37
|
-
throw new Error(`Failed to checkout: ${error.message}
|
|
37
|
+
throw new Error(`Failed to checkout: ${error.message}`)
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -56,7 +56,7 @@ export class PaymentService extends BaseService {
|
|
|
56
56
|
}
|
|
57
57
|
throw new Error(response.message)
|
|
58
58
|
} catch (error) {
|
|
59
|
-
throw new Error(`Failed to get subscription status: ${error.message}
|
|
59
|
+
throw new Error(`Failed to get subscription status: ${error.message}`)
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -17,7 +17,7 @@ export class PlanService extends BaseService {
|
|
|
17
17
|
}
|
|
18
18
|
throw new Error(response.message)
|
|
19
19
|
} catch (error) {
|
|
20
|
-
throw new Error(`Failed to get plans: ${error.message}
|
|
20
|
+
throw new Error(`Failed to get plans: ${error.message}`)
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -38,7 +38,7 @@ export class PlanService extends BaseService {
|
|
|
38
38
|
}
|
|
39
39
|
throw new Error(response.message)
|
|
40
40
|
} catch (error) {
|
|
41
|
-
throw new Error(`Failed to get plan: ${error.message}
|
|
41
|
+
throw new Error(`Failed to get plan: ${error.message}`)
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -59,7 +59,7 @@ export class PlanService extends BaseService {
|
|
|
59
59
|
}
|
|
60
60
|
throw new Error(response.message)
|
|
61
61
|
} catch (error) {
|
|
62
|
-
throw new Error(`Failed to get admin plans: ${error.message}
|
|
62
|
+
throw new Error(`Failed to get admin plans: ${error.message}`)
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -82,7 +82,7 @@ export class PlanService extends BaseService {
|
|
|
82
82
|
}
|
|
83
83
|
throw new Error(response.message)
|
|
84
84
|
} catch (error) {
|
|
85
|
-
throw new Error(`Failed to create plan: ${error.message}
|
|
85
|
+
throw new Error(`Failed to create plan: ${error.message}`)
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
|
|
@@ -108,7 +108,7 @@ export class PlanService extends BaseService {
|
|
|
108
108
|
}
|
|
109
109
|
throw new Error(response.message)
|
|
110
110
|
} catch (error) {
|
|
111
|
-
throw new Error(`Failed to update plan: ${error.message}
|
|
111
|
+
throw new Error(`Failed to update plan: ${error.message}`)
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -130,7 +130,7 @@ export class PlanService extends BaseService {
|
|
|
130
130
|
}
|
|
131
131
|
throw new Error(response.message)
|
|
132
132
|
} catch (error) {
|
|
133
|
-
throw new Error(`Failed to delete plan: ${error.message}
|
|
133
|
+
throw new Error(`Failed to delete plan: ${error.message}`)
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -149,7 +149,7 @@ export class PlanService extends BaseService {
|
|
|
149
149
|
}
|
|
150
150
|
throw new Error(response.message)
|
|
151
151
|
} catch (error) {
|
|
152
|
-
throw new Error(`Failed to initialize plans: ${error.message}
|
|
152
|
+
throw new Error(`Failed to initialize plans: ${error.message}`)
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
|
|
@@ -166,7 +166,7 @@ export class PlanService extends BaseService {
|
|
|
166
166
|
}
|
|
167
167
|
return plans
|
|
168
168
|
} catch (error) {
|
|
169
|
-
throw new Error(`Failed to get plans with validation: ${error.message}
|
|
169
|
+
throw new Error(`Failed to get plans with validation: ${error.message}`)
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
|
|
@@ -185,7 +185,7 @@ export class PlanService extends BaseService {
|
|
|
185
185
|
}
|
|
186
186
|
return plan
|
|
187
187
|
} catch (error) {
|
|
188
|
-
throw new Error(`Failed to get plan with validation: ${error.message}
|
|
188
|
+
throw new Error(`Failed to get plan with validation: ${error.message}`)
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
|
|
@@ -252,7 +252,7 @@ export class PlanService extends BaseService {
|
|
|
252
252
|
const plans = await this.getPlans()
|
|
253
253
|
return plans.filter(plan => plan.active !== false)
|
|
254
254
|
} catch (error) {
|
|
255
|
-
throw new Error(`Failed to get active plans: ${error.message}
|
|
255
|
+
throw new Error(`Failed to get active plans: ${error.message}`)
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
258
|
|
|
@@ -267,7 +267,7 @@ export class PlanService extends BaseService {
|
|
|
267
267
|
return price >= minPrice && price <= maxPrice
|
|
268
268
|
})
|
|
269
269
|
} catch (error) {
|
|
270
|
-
throw new Error(`Failed to get plans by price range: ${error.message}
|
|
270
|
+
throw new Error(`Failed to get plans by price range: ${error.message}`)
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
|
|
@@ -289,7 +289,7 @@ export class PlanService extends BaseService {
|
|
|
289
289
|
|
|
290
290
|
return plan
|
|
291
291
|
} catch (error) {
|
|
292
|
-
throw new Error(`Failed to get plan by key: ${error.message}
|
|
292
|
+
throw new Error(`Failed to get plan by key: ${error.message}`)
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
295
|
}
|