@symbo.ls/sdk 2.32.11 → 2.32.13
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 +18 -7
- package/dist/cjs/index.js +38 -12
- package/dist/cjs/services/BaseService.js +46 -0
- package/dist/cjs/services/DnsService.js +6 -5
- package/dist/cjs/services/TrackingService.js +661 -0
- package/dist/cjs/services/index.js +5 -5
- package/dist/cjs/utils/changePreprocessor.js +8 -1
- package/dist/cjs/utils/services.js +27 -3
- package/dist/esm/config/environment.js +18 -7
- package/dist/esm/index.js +20747 -5912
- package/dist/esm/services/AdminService.js +64 -7
- package/dist/esm/services/AuthService.js +64 -7
- package/dist/esm/services/BaseService.js +64 -7
- package/dist/esm/services/BranchService.js +64 -7
- package/dist/esm/services/CollabService.js +72 -8
- package/dist/esm/services/DnsService.js +70 -12
- package/dist/esm/services/FileService.js +64 -7
- package/dist/esm/services/PaymentService.js +64 -7
- package/dist/esm/services/PlanService.js +64 -7
- package/dist/esm/services/ProjectService.js +72 -8
- package/dist/esm/services/PullRequestService.js +64 -7
- package/dist/esm/services/ScreenshotService.js +64 -7
- package/dist/esm/services/SubscriptionService.js +64 -7
- package/dist/esm/services/TrackingService.js +18321 -0
- package/dist/esm/services/index.js +20667 -5882
- package/dist/esm/utils/CollabClient.js +18 -7
- package/dist/esm/utils/changePreprocessor.js +8 -1
- package/dist/esm/utils/services.js +27 -3
- package/dist/node/config/environment.js +18 -7
- package/dist/node/index.js +42 -16
- package/dist/node/services/BaseService.js +46 -0
- package/dist/node/services/DnsService.js +6 -5
- package/dist/node/services/TrackingService.js +632 -0
- package/dist/node/services/index.js +5 -5
- package/dist/node/utils/changePreprocessor.js +8 -1
- package/dist/node/utils/services.js +27 -3
- package/package.json +8 -6
- package/src/config/environment.js +19 -11
- package/src/index.js +44 -14
- package/src/services/BaseService.js +43 -0
- package/src/services/DnsService.js +5 -5
- package/src/services/TrackingService.js +853 -0
- package/src/services/index.js +6 -5
- package/src/utils/changePreprocessor.js +25 -1
- package/src/utils/services.js +28 -4
- package/dist/cjs/services/CoreService.js +0 -2818
- package/dist/esm/services/CoreService.js +0 -3513
- package/dist/node/services/CoreService.js +0 -2789
- package/src/services/CoreService.js +0 -3208
|
@@ -17472,7 +17472,9 @@ var CONFIG = {
|
|
|
17472
17472
|
// Feature toggles that apply across all environments by default
|
|
17473
17473
|
features: {
|
|
17474
17474
|
newUserOnboarding: true,
|
|
17475
|
-
betaFeatures: false
|
|
17475
|
+
betaFeatures: false,
|
|
17476
|
+
// Tracking is enabled by default unless overridden per environment
|
|
17477
|
+
trackingEnabled: true
|
|
17476
17478
|
}
|
|
17477
17479
|
},
|
|
17478
17480
|
// Environment-specific configurations
|
|
@@ -17490,13 +17492,17 @@ var CONFIG = {
|
|
|
17490
17492
|
// For based api
|
|
17491
17493
|
githubClientId: "Ov23liAFrsR0StbAO6PO",
|
|
17492
17494
|
// For github api
|
|
17493
|
-
grafanaUrl: "
|
|
17495
|
+
grafanaUrl: "",
|
|
17494
17496
|
// For grafana tracing
|
|
17495
|
-
grafanaAppName: "Localhost
|
|
17497
|
+
grafanaAppName: "Symbols Localhost",
|
|
17496
17498
|
// Environment-specific feature toggles (override common)
|
|
17497
17499
|
features: {
|
|
17498
|
-
|
|
17500
|
+
// Disable tracking by default on localhost/dev machines
|
|
17501
|
+
trackingEnabled: false,
|
|
17499
17502
|
// Enable beta features in local dev
|
|
17503
|
+
betaFeatures: true,
|
|
17504
|
+
// Preserve common defaults explicitly for local
|
|
17505
|
+
newUserOnboarding: true
|
|
17500
17506
|
},
|
|
17501
17507
|
typesenseCollectionName: "docs",
|
|
17502
17508
|
typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
|
|
@@ -17524,7 +17530,7 @@ var CONFIG = {
|
|
|
17524
17530
|
basedProject: "platform-v2-sm",
|
|
17525
17531
|
basedOrg: "symbols",
|
|
17526
17532
|
githubClientId: "Ov23liHxyWFBxS8f1gnF",
|
|
17527
|
-
grafanaUrl: "
|
|
17533
|
+
grafanaUrl: "",
|
|
17528
17534
|
// For grafana tracing
|
|
17529
17535
|
grafanaAppName: "Symbols Test",
|
|
17530
17536
|
typesenseCollectionName: "docs",
|
|
@@ -17537,7 +17543,7 @@ var CONFIG = {
|
|
|
17537
17543
|
socketUrl: "https://upcoming.api.symbols.app",
|
|
17538
17544
|
apiUrl: "https://upcoming.api.symbols.app",
|
|
17539
17545
|
githubClientId: "Ov23liWF7NvdZ056RV5J",
|
|
17540
|
-
grafanaUrl: "
|
|
17546
|
+
grafanaUrl: "",
|
|
17541
17547
|
// For grafana tracing
|
|
17542
17548
|
grafanaAppName: "Symbols Upcoming",
|
|
17543
17549
|
typesenseCollectionName: "docs",
|
|
@@ -17553,7 +17559,7 @@ var CONFIG = {
|
|
|
17553
17559
|
basedProject: "platform-v2-sm",
|
|
17554
17560
|
basedOrg: "symbols",
|
|
17555
17561
|
githubClientId: "Ov23ligwZDQVD0VfuWNa",
|
|
17556
|
-
grafanaUrl: "
|
|
17562
|
+
grafanaUrl: "",
|
|
17557
17563
|
// For grafana tracing
|
|
17558
17564
|
grafanaAppName: "Symbols Staging",
|
|
17559
17565
|
typesenseCollectionName: "docs",
|
|
@@ -17592,6 +17598,11 @@ var getConfig = () => {
|
|
|
17592
17598
|
const envConfig = { ...CONFIG.common, ...CONFIG[env] };
|
|
17593
17599
|
const finalConfig = {
|
|
17594
17600
|
...envConfig,
|
|
17601
|
+
// Deep-merge feature flags so env-specific overrides don't drop common defaults
|
|
17602
|
+
features: {
|
|
17603
|
+
...CONFIG.common.features || {},
|
|
17604
|
+
...CONFIG[env] && CONFIG[env].features || {}
|
|
17605
|
+
},
|
|
17595
17606
|
socketUrl: process.env.SYMBOLS_APP_SOCKET_URL || envConfig.socketUrl,
|
|
17596
17607
|
apiUrl: process.env.SYMBOLS_APP_API_URL || envConfig.apiUrl,
|
|
17597
17608
|
basedEnv: process.env.SYMBOLS_APP_BASED_ENV || envConfig.basedEnv,
|
|
@@ -352,7 +352,14 @@ function preprocessChanges(root, tuples = [], options = {}) {
|
|
|
352
352
|
if (!canConsiderExpansion || isFilesPath || value && value.type === "files") {
|
|
353
353
|
return [t];
|
|
354
354
|
}
|
|
355
|
-
const
|
|
355
|
+
const prevRaw = getByPathSafe(root, path);
|
|
356
|
+
const isCreatePath = Array.isArray(path) && action === "update" && // e.g. ['update', ['components', 'NewKey'], {...}]
|
|
357
|
+
(!isSchemaPath && path.length === 2 || // e.g. ['update', ['schema', 'components', 'NewKey'], {...}]
|
|
358
|
+
isSchemaPath && path.length === 3) && (prevRaw === null || typeof prevRaw === "undefined");
|
|
359
|
+
if (isCreatePath) {
|
|
360
|
+
return [t];
|
|
361
|
+
}
|
|
362
|
+
const prev = prevRaw || {};
|
|
356
363
|
const next = value || {};
|
|
357
364
|
if (!isPlainObject2(prev) || !isPlainObject2(next)) {
|
|
358
365
|
return [t];
|
|
@@ -223,8 +223,6 @@ var SERVICE_METHODS = {
|
|
|
223
223
|
suspendUser: "admin",
|
|
224
224
|
promoteToAdmin: "admin",
|
|
225
225
|
demoteFromAdmin: "admin",
|
|
226
|
-
// Utility methods
|
|
227
|
-
getHealthStatus: "core",
|
|
228
226
|
// Screenshot methods
|
|
229
227
|
createScreenshotProject: "screenshot",
|
|
230
228
|
getProjectScreenshots: "screenshot",
|
|
@@ -237,7 +235,33 @@ var SERVICE_METHODS = {
|
|
|
237
235
|
getComponentScreenshot: "screenshot",
|
|
238
236
|
getScreenshotByKey: "screenshot",
|
|
239
237
|
getQueueStatistics: "screenshot",
|
|
240
|
-
refreshThumbnail: "screenshot"
|
|
238
|
+
refreshThumbnail: "screenshot",
|
|
239
|
+
// Tracking methods
|
|
240
|
+
configureTracking: "tracking",
|
|
241
|
+
trackEvent: "tracking",
|
|
242
|
+
trackError: "tracking",
|
|
243
|
+
captureException: "tracking",
|
|
244
|
+
logMessage: "tracking",
|
|
245
|
+
logDebug: "tracking",
|
|
246
|
+
logInfo: "tracking",
|
|
247
|
+
logWarning: "tracking",
|
|
248
|
+
logWarn: "tracking",
|
|
249
|
+
logErrorMessage: "tracking",
|
|
250
|
+
logError: "tracking",
|
|
251
|
+
addBreadcrumb: "tracking",
|
|
252
|
+
trackMeasurement: "tracking",
|
|
253
|
+
trackView: "tracking",
|
|
254
|
+
setUser: "tracking",
|
|
255
|
+
clearUser: "tracking",
|
|
256
|
+
setSession: "tracking",
|
|
257
|
+
clearSession: "tracking",
|
|
258
|
+
setGlobalAttributes: "tracking",
|
|
259
|
+
setGlobalAttribute: "tracking",
|
|
260
|
+
removeGlobalAttribute: "tracking",
|
|
261
|
+
flushQueue: "tracking",
|
|
262
|
+
getClient: "tracking",
|
|
263
|
+
isEnabled: "tracking",
|
|
264
|
+
isInitialized: "tracking"
|
|
241
265
|
};
|
|
242
266
|
export {
|
|
243
267
|
SERVICE_METHODS
|
|
@@ -7,7 +7,9 @@ const CONFIG = {
|
|
|
7
7
|
// Feature toggles that apply across all environments by default
|
|
8
8
|
features: {
|
|
9
9
|
newUserOnboarding: true,
|
|
10
|
-
betaFeatures: false
|
|
10
|
+
betaFeatures: false,
|
|
11
|
+
// Tracking is enabled by default unless overridden per environment
|
|
12
|
+
trackingEnabled: true
|
|
11
13
|
}
|
|
12
14
|
},
|
|
13
15
|
// Environment-specific configurations
|
|
@@ -25,13 +27,17 @@ const CONFIG = {
|
|
|
25
27
|
// For based api
|
|
26
28
|
githubClientId: "Ov23liAFrsR0StbAO6PO",
|
|
27
29
|
// For github api
|
|
28
|
-
grafanaUrl: "
|
|
30
|
+
grafanaUrl: "",
|
|
29
31
|
// For grafana tracing
|
|
30
|
-
grafanaAppName: "Localhost
|
|
32
|
+
grafanaAppName: "Symbols Localhost",
|
|
31
33
|
// Environment-specific feature toggles (override common)
|
|
32
34
|
features: {
|
|
33
|
-
|
|
35
|
+
// Disable tracking by default on localhost/dev machines
|
|
36
|
+
trackingEnabled: false,
|
|
34
37
|
// Enable beta features in local dev
|
|
38
|
+
betaFeatures: true,
|
|
39
|
+
// Preserve common defaults explicitly for local
|
|
40
|
+
newUserOnboarding: true
|
|
35
41
|
},
|
|
36
42
|
typesenseCollectionName: "docs",
|
|
37
43
|
typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
|
|
@@ -59,7 +65,7 @@ const CONFIG = {
|
|
|
59
65
|
basedProject: "platform-v2-sm",
|
|
60
66
|
basedOrg: "symbols",
|
|
61
67
|
githubClientId: "Ov23liHxyWFBxS8f1gnF",
|
|
62
|
-
grafanaUrl: "
|
|
68
|
+
grafanaUrl: "",
|
|
63
69
|
// For grafana tracing
|
|
64
70
|
grafanaAppName: "Symbols Test",
|
|
65
71
|
typesenseCollectionName: "docs",
|
|
@@ -72,7 +78,7 @@ const CONFIG = {
|
|
|
72
78
|
socketUrl: "https://upcoming.api.symbols.app",
|
|
73
79
|
apiUrl: "https://upcoming.api.symbols.app",
|
|
74
80
|
githubClientId: "Ov23liWF7NvdZ056RV5J",
|
|
75
|
-
grafanaUrl: "
|
|
81
|
+
grafanaUrl: "",
|
|
76
82
|
// For grafana tracing
|
|
77
83
|
grafanaAppName: "Symbols Upcoming",
|
|
78
84
|
typesenseCollectionName: "docs",
|
|
@@ -88,7 +94,7 @@ const CONFIG = {
|
|
|
88
94
|
basedProject: "platform-v2-sm",
|
|
89
95
|
basedOrg: "symbols",
|
|
90
96
|
githubClientId: "Ov23ligwZDQVD0VfuWNa",
|
|
91
|
-
grafanaUrl: "
|
|
97
|
+
grafanaUrl: "",
|
|
92
98
|
// For grafana tracing
|
|
93
99
|
grafanaAppName: "Symbols Staging",
|
|
94
100
|
typesenseCollectionName: "docs",
|
|
@@ -128,6 +134,11 @@ const getConfig = () => {
|
|
|
128
134
|
const envConfig = { ...CONFIG.common, ...CONFIG[env] };
|
|
129
135
|
const finalConfig = {
|
|
130
136
|
...envConfig,
|
|
137
|
+
// Deep-merge feature flags so env-specific overrides don't drop common defaults
|
|
138
|
+
features: {
|
|
139
|
+
...CONFIG.common.features || {},
|
|
140
|
+
...CONFIG[env] && CONFIG[env].features || {}
|
|
141
|
+
},
|
|
131
142
|
socketUrl: process.env.SYMBOLS_APP_SOCKET_URL || envConfig.socketUrl,
|
|
132
143
|
apiUrl: process.env.SYMBOLS_APP_API_URL || envConfig.apiUrl,
|
|
133
144
|
basedEnv: process.env.SYMBOLS_APP_BASED_ENV || envConfig.basedEnv,
|
package/dist/node/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createAuthService,
|
|
3
|
-
createCoreService,
|
|
4
3
|
createCollabService,
|
|
5
4
|
createProjectService,
|
|
6
5
|
createPlanService,
|
|
@@ -11,11 +10,20 @@ import {
|
|
|
11
10
|
createPullRequestService,
|
|
12
11
|
createAdminService,
|
|
13
12
|
createSubscriptionService,
|
|
14
|
-
createScreenshotService
|
|
13
|
+
createScreenshotService,
|
|
14
|
+
createTrackingService
|
|
15
15
|
} from "./services/index.js";
|
|
16
16
|
import { SERVICE_METHODS } from "./utils/services.js";
|
|
17
17
|
import environment from "./config/environment.js";
|
|
18
18
|
import { rootBus } from "./state/rootEventBus.js";
|
|
19
|
+
const isBrowserEnvironment = () => typeof window !== "undefined";
|
|
20
|
+
const isLocalhost = () => {
|
|
21
|
+
if (!isBrowserEnvironment()) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const host = window.location && window.location.hostname;
|
|
25
|
+
return host === "localhost" || host === "127.0.0.1" || host === "::1" || host === "" || !host;
|
|
26
|
+
};
|
|
19
27
|
class SDK {
|
|
20
28
|
constructor(options = {}) {
|
|
21
29
|
this._services = /* @__PURE__ */ new Map();
|
|
@@ -38,13 +46,6 @@ class SDK {
|
|
|
38
46
|
options: this._options
|
|
39
47
|
})
|
|
40
48
|
),
|
|
41
|
-
this._initService(
|
|
42
|
-
"core",
|
|
43
|
-
createCoreService({
|
|
44
|
-
context: this._context,
|
|
45
|
-
options: this._options
|
|
46
|
-
})
|
|
47
|
-
),
|
|
48
49
|
this._initService(
|
|
49
50
|
"collab",
|
|
50
51
|
createCollabService({
|
|
@@ -122,6 +123,13 @@ class SDK {
|
|
|
122
123
|
context: this._context,
|
|
123
124
|
options: this._options
|
|
124
125
|
})
|
|
126
|
+
),
|
|
127
|
+
this._initService(
|
|
128
|
+
"tracking",
|
|
129
|
+
createTrackingService({
|
|
130
|
+
context: this._context,
|
|
131
|
+
options: this._options
|
|
132
|
+
})
|
|
125
133
|
)
|
|
126
134
|
]);
|
|
127
135
|
return this;
|
|
@@ -139,6 +147,8 @@ class SDK {
|
|
|
139
147
|
this._services.set(name, service);
|
|
140
148
|
}
|
|
141
149
|
_validateOptions(options) {
|
|
150
|
+
const onLocalhost = isLocalhost();
|
|
151
|
+
const hasGrafanaUrl = Boolean(environment.grafanaUrl);
|
|
142
152
|
const defaults = {
|
|
143
153
|
useNewServices: true,
|
|
144
154
|
// Use new service implementations by default
|
|
@@ -146,9 +156,24 @@ class SDK {
|
|
|
146
156
|
socketUrl: environment.socketUrl,
|
|
147
157
|
timeout: 3e4,
|
|
148
158
|
retryAttempts: 3,
|
|
149
|
-
debug: false
|
|
159
|
+
debug: false,
|
|
160
|
+
tracking: {
|
|
161
|
+
// Force-disabled on localhost or when no Grafana URL is configured
|
|
162
|
+
enabled: onLocalhost ? false : hasGrafanaUrl ? environment.features.trackingEnabled : false
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
const merged = {
|
|
166
|
+
...defaults,
|
|
167
|
+
...options,
|
|
168
|
+
tracking: {
|
|
169
|
+
...defaults.tracking,
|
|
170
|
+
...options.tracking || {}
|
|
171
|
+
}
|
|
150
172
|
};
|
|
151
|
-
|
|
173
|
+
if (onLocalhost || !hasGrafanaUrl) {
|
|
174
|
+
merged.tracking.enabled = false;
|
|
175
|
+
}
|
|
176
|
+
return merged;
|
|
152
177
|
}
|
|
153
178
|
// Get service instance
|
|
154
179
|
getService(name) {
|
|
@@ -159,7 +184,7 @@ class SDK {
|
|
|
159
184
|
}
|
|
160
185
|
// Update context
|
|
161
186
|
updateContext(newContext) {
|
|
162
|
-
const {
|
|
187
|
+
const { ...sanitized } = newContext || {};
|
|
163
188
|
this._context = {
|
|
164
189
|
...this._context,
|
|
165
190
|
...sanitized
|
|
@@ -223,7 +248,6 @@ class SDK {
|
|
|
223
248
|
var index_default = SDK;
|
|
224
249
|
import {
|
|
225
250
|
createAuthService as createAuthService2,
|
|
226
|
-
createCoreService as createCoreService2,
|
|
227
251
|
createCollabService as createCollabService2,
|
|
228
252
|
createProjectService as createProjectService2,
|
|
229
253
|
createPlanService as createPlanService2,
|
|
@@ -233,7 +257,8 @@ import {
|
|
|
233
257
|
createBranchService as createBranchService2,
|
|
234
258
|
createPullRequestService as createPullRequestService2,
|
|
235
259
|
createAdminService as createAdminService2,
|
|
236
|
-
createSubscriptionService as createSubscriptionService2
|
|
260
|
+
createSubscriptionService as createSubscriptionService2,
|
|
261
|
+
createTrackingService as createTrackingService2
|
|
237
262
|
} from "./services/index.js";
|
|
238
263
|
import { default as default2 } from "./config/environment.js";
|
|
239
264
|
export {
|
|
@@ -242,7 +267,6 @@ export {
|
|
|
242
267
|
createAuthService2 as createAuthService,
|
|
243
268
|
createBranchService2 as createBranchService,
|
|
244
269
|
createCollabService2 as createCollabService,
|
|
245
|
-
createCoreService2 as createCoreService,
|
|
246
270
|
createDnsService2 as createDnsService,
|
|
247
271
|
createFileService2 as createFileService,
|
|
248
272
|
createPaymentService2 as createPaymentService,
|
|
@@ -250,6 +274,8 @@ export {
|
|
|
250
274
|
createProjectService2 as createProjectService,
|
|
251
275
|
createPullRequestService2 as createPullRequestService,
|
|
252
276
|
createSubscriptionService2 as createSubscriptionService,
|
|
277
|
+
createTrackingService2 as createTrackingService,
|
|
253
278
|
index_default as default,
|
|
254
|
-
default2 as environment
|
|
279
|
+
default2 as environment,
|
|
280
|
+
isLocalhost
|
|
255
281
|
};
|
|
@@ -56,6 +56,39 @@ class BaseService {
|
|
|
56
56
|
this._ready = false;
|
|
57
57
|
this._error = error;
|
|
58
58
|
}
|
|
59
|
+
_getTrackingService() {
|
|
60
|
+
var _a;
|
|
61
|
+
const services = (_a = this._context) == null ? void 0 : _a.services;
|
|
62
|
+
const tracking = services == null ? void 0 : services.tracking;
|
|
63
|
+
if (!tracking || typeof tracking.trackError !== "function") {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return tracking;
|
|
67
|
+
}
|
|
68
|
+
_shouldTrackErrors() {
|
|
69
|
+
var _a;
|
|
70
|
+
const name = (_a = this == null ? void 0 : this.constructor) == null ? void 0 : _a.name;
|
|
71
|
+
return name !== "TrackingService";
|
|
72
|
+
}
|
|
73
|
+
_trackServiceError(error, details = {}) {
|
|
74
|
+
var _a;
|
|
75
|
+
if (!this._shouldTrackErrors()) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const tracking = this._getTrackingService();
|
|
80
|
+
if (!tracking) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const context = {
|
|
84
|
+
service: ((_a = this == null ? void 0 : this.constructor) == null ? void 0 : _a.name) || "UnknownService",
|
|
85
|
+
apiUrl: this._apiUrl || null,
|
|
86
|
+
...details
|
|
87
|
+
};
|
|
88
|
+
tracking.trackError(error instanceof Error ? error : new Error(String(error)), context);
|
|
89
|
+
} catch {
|
|
90
|
+
}
|
|
91
|
+
}
|
|
59
92
|
_requireAuth() {
|
|
60
93
|
if (!this._context.authToken) {
|
|
61
94
|
throw new Error("Authentication required");
|
|
@@ -105,10 +138,23 @@ class BaseService {
|
|
|
105
138
|
error = await response.json();
|
|
106
139
|
} catch {
|
|
107
140
|
}
|
|
141
|
+
this._trackServiceError(
|
|
142
|
+
new Error(error.message || error.error || `HTTP ${response.status}: ${response.statusText}`),
|
|
143
|
+
{
|
|
144
|
+
endpoint,
|
|
145
|
+
methodName: options.methodName,
|
|
146
|
+
status: response.status,
|
|
147
|
+
statusText: response.statusText
|
|
148
|
+
}
|
|
149
|
+
);
|
|
108
150
|
throw new Error(error.message || error.error || "Request failed", { cause: error });
|
|
109
151
|
}
|
|
110
152
|
return response.status === 204 ? null : response.json();
|
|
111
153
|
} catch (error) {
|
|
154
|
+
this._trackServiceError(error, {
|
|
155
|
+
endpoint,
|
|
156
|
+
methodName: options.methodName
|
|
157
|
+
});
|
|
112
158
|
throw new Error(`Request failed: ${error.message}`, { cause: error });
|
|
113
159
|
}
|
|
114
160
|
}
|
|
@@ -53,7 +53,7 @@ class DnsService extends BaseService {
|
|
|
53
53
|
}
|
|
54
54
|
throw new Error(response.message);
|
|
55
55
|
} catch (error) {
|
|
56
|
-
throw new Error(`Failed to get custom host: ${error.message}
|
|
56
|
+
throw new Error(`Failed to get custom host: ${error.message}`, { cause: error });
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
async removeDnsRecord(domain) {
|
|
@@ -121,7 +121,8 @@ class DnsService extends BaseService {
|
|
|
121
121
|
throw new Error(response.message);
|
|
122
122
|
} catch (error) {
|
|
123
123
|
throw new Error(
|
|
124
|
-
`Failed to update project custom domains: ${error.message}
|
|
124
|
+
`Failed to update project custom domains: ${error.message}`,
|
|
125
|
+
{ cause: error }
|
|
125
126
|
);
|
|
126
127
|
}
|
|
127
128
|
}
|
|
@@ -279,7 +280,7 @@ class DnsService extends BaseService {
|
|
|
279
280
|
needsVerification: false
|
|
280
281
|
};
|
|
281
282
|
} catch (error) {
|
|
282
|
-
throw new Error(`Failed to verify domain ownership: ${error.message}
|
|
283
|
+
throw new Error(`Failed to verify domain ownership: ${error.message}`, { cause: error });
|
|
283
284
|
}
|
|
284
285
|
}
|
|
285
286
|
/**
|
|
@@ -300,7 +301,7 @@ class DnsService extends BaseService {
|
|
|
300
301
|
}
|
|
301
302
|
throw new Error(response.message);
|
|
302
303
|
} catch (error) {
|
|
303
|
-
throw new Error(`Failed to get project domains: ${error.message}
|
|
304
|
+
throw new Error(`Failed to get project domains: ${error.message}`, { cause: error });
|
|
304
305
|
}
|
|
305
306
|
}
|
|
306
307
|
/**
|
|
@@ -324,7 +325,7 @@ class DnsService extends BaseService {
|
|
|
324
325
|
}
|
|
325
326
|
throw new Error(response.message);
|
|
326
327
|
} catch (error) {
|
|
327
|
-
throw new Error(`Failed to remove project custom domain: ${error.message}
|
|
328
|
+
throw new Error(`Failed to remove project custom domain: ${error.message}`, { cause: error });
|
|
328
329
|
}
|
|
329
330
|
}
|
|
330
331
|
/**
|