@symbo.ls/sdk 2.34.34 → 3.1.1
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 +13 -315
- package/dist/cjs/config/environment.js +50 -124
- package/dist/cjs/index.js +22 -169
- package/dist/cjs/services/AIService.js +155 -0
- package/dist/cjs/services/AuthService.js +277 -751
- package/dist/cjs/services/BaseService.js +6 -158
- package/dist/cjs/services/BasedService.js +679 -0
- package/dist/cjs/services/SocketIOService.js +309 -0
- package/dist/cjs/services/SocketService.js +161 -0
- package/dist/cjs/services/SymstoryService.js +485 -0
- package/dist/cjs/services/index.js +16 -64
- package/dist/cjs/utils/basedQuerys.js +61 -0
- package/dist/cjs/utils/permission.js +4 -4
- package/dist/cjs/utils/services.js +80 -301
- package/dist/cjs/utils/symstoryClient.js +228 -0
- package/dist/cjs/utils/validation.js +3 -0
- package/dist/esm/config/environment.js +50 -124
- package/dist/esm/index.js +11282 -49789
- package/dist/esm/services/AIService.js +185 -0
- package/dist/esm/services/AuthService.js +358 -1506
- package/dist/esm/services/BaseService.js +6 -757
- package/dist/esm/services/BasedService.js +4651 -0
- package/dist/esm/services/SocketIOService.js +467 -0
- package/dist/esm/services/SocketService.js +191 -0
- package/dist/esm/services/SymstoryService.js +6849 -0
- package/dist/esm/services/index.js +11188 -49352
- package/dist/esm/utils/basedQuerys.js +43 -0
- package/dist/esm/utils/permission.js +4 -4
- package/dist/esm/utils/services.js +80 -301
- package/dist/esm/utils/symstoryClient.js +334 -0
- package/dist/esm/utils/validation.js +26 -93
- package/dist/node/config/environment.js +50 -124
- package/dist/node/index.js +26 -202
- package/dist/node/services/AIService.js +136 -0
- package/dist/node/services/AuthService.js +278 -751
- package/dist/node/services/BaseService.js +6 -148
- package/dist/node/services/BasedService.js +650 -0
- package/dist/node/services/SocketIOService.js +280 -0
- package/dist/node/services/SocketService.js +142 -0
- package/dist/node/services/SymstoryService.js +456 -0
- package/dist/node/services/index.js +16 -64
- package/dist/node/utils/basedQuerys.js +42 -0
- package/dist/node/utils/permission.js +4 -4
- package/dist/node/utils/services.js +80 -301
- package/dist/node/utils/symstoryClient.js +199 -0
- package/dist/node/utils/validation.js +3 -0
- package/package.json +21 -43
- package/src/config/environment.js +50 -126
- package/src/index.js +24 -208
- package/src/services/AIService.js +150 -0
- package/src/services/AuthService.js +298 -893
- package/src/services/BaseService.js +6 -166
- package/src/services/BasedService.js +722 -0
- package/src/services/SocketIOService.js +356 -0
- package/src/services/SocketService.js +168 -0
- package/src/services/SymstoryService.js +563 -0
- package/src/services/index.js +13 -80
- package/src/utils/basedQuerys.js +41 -0
- package/src/utils/permission.js +4 -4
- package/src/utils/services.js +83 -325
- package/src/utils/symstoryClient.js +218 -0
- package/src/utils/validation.js +3 -0
- package/dist/cjs/services/AdminService.js +0 -351
- package/dist/cjs/services/BranchService.js +0 -484
- package/dist/cjs/services/CollabService.js +0 -743
- package/dist/cjs/services/DnsService.js +0 -340
- package/dist/cjs/services/FeatureFlagService.js +0 -175
- package/dist/cjs/services/FileService.js +0 -201
- package/dist/cjs/services/IntegrationService.js +0 -538
- package/dist/cjs/services/MetricsService.js +0 -62
- package/dist/cjs/services/PaymentService.js +0 -271
- package/dist/cjs/services/PlanService.js +0 -426
- package/dist/cjs/services/ProjectService.js +0 -1207
- package/dist/cjs/services/PullRequestService.js +0 -503
- package/dist/cjs/services/ScreenshotService.js +0 -304
- package/dist/cjs/services/SubscriptionService.js +0 -396
- package/dist/cjs/services/TrackingService.js +0 -661
- package/dist/cjs/services/WaitlistService.js +0 -148
- package/dist/cjs/state/RootStateManager.js +0 -65
- package/dist/cjs/state/rootEventBus.js +0 -74
- package/dist/cjs/utils/CollabClient.js +0 -223
- package/dist/cjs/utils/TokenManager.js +0 -422
- package/dist/cjs/utils/changePreprocessor.js +0 -199
- package/dist/cjs/utils/jsonDiff.js +0 -145
- package/dist/cjs/utils/ordering.js +0 -309
- package/dist/esm/services/AdminService.js +0 -1132
- package/dist/esm/services/BranchService.js +0 -1265
- package/dist/esm/services/CollabService.js +0 -26838
- package/dist/esm/services/DnsService.js +0 -1121
- package/dist/esm/services/FeatureFlagService.js +0 -956
- package/dist/esm/services/FileService.js +0 -982
- package/dist/esm/services/IntegrationService.js +0 -1319
- package/dist/esm/services/MetricsService.js +0 -843
- package/dist/esm/services/PaymentService.js +0 -1052
- package/dist/esm/services/PlanService.js +0 -1207
- package/dist/esm/services/ProjectService.js +0 -2526
- package/dist/esm/services/PullRequestService.js +0 -1284
- package/dist/esm/services/ScreenshotService.js +0 -1085
- package/dist/esm/services/SubscriptionService.js +0 -1177
- package/dist/esm/services/TrackingService.js +0 -18343
- package/dist/esm/services/WaitlistService.js +0 -929
- package/dist/esm/state/RootStateManager.js +0 -90
- package/dist/esm/state/rootEventBus.js +0 -56
- package/dist/esm/utils/CollabClient.js +0 -18901
- package/dist/esm/utils/TokenManager.js +0 -408
- package/dist/esm/utils/changePreprocessor.js +0 -542
- package/dist/esm/utils/jsonDiff.js +0 -7011
- package/dist/esm/utils/ordering.js +0 -291
- package/dist/node/services/AdminService.js +0 -332
- package/dist/node/services/BranchService.js +0 -465
- package/dist/node/services/CollabService.js +0 -724
- package/dist/node/services/DnsService.js +0 -321
- package/dist/node/services/FeatureFlagService.js +0 -156
- package/dist/node/services/FileService.js +0 -182
- package/dist/node/services/IntegrationService.js +0 -519
- package/dist/node/services/MetricsService.js +0 -43
- package/dist/node/services/PaymentService.js +0 -252
- package/dist/node/services/PlanService.js +0 -407
- package/dist/node/services/ProjectService.js +0 -1188
- package/dist/node/services/PullRequestService.js +0 -484
- package/dist/node/services/ScreenshotService.js +0 -285
- package/dist/node/services/SubscriptionService.js +0 -377
- package/dist/node/services/TrackingService.js +0 -632
- package/dist/node/services/WaitlistService.js +0 -129
- package/dist/node/state/RootStateManager.js +0 -36
- package/dist/node/state/rootEventBus.js +0 -55
- package/dist/node/utils/CollabClient.js +0 -194
- package/dist/node/utils/TokenManager.js +0 -403
- package/dist/node/utils/changePreprocessor.js +0 -180
- package/dist/node/utils/jsonDiff.js +0 -116
- package/dist/node/utils/ordering.js +0 -290
- package/src/services/AdminService.js +0 -374
- package/src/services/BranchService.js +0 -536
- package/src/services/CollabService.js +0 -900
- package/src/services/DnsService.js +0 -366
- package/src/services/FeatureFlagService.js +0 -174
- package/src/services/FileService.js +0 -213
- package/src/services/IntegrationService.js +0 -548
- package/src/services/MetricsService.js +0 -40
- package/src/services/PaymentService.js +0 -287
- package/src/services/PlanService.js +0 -468
- package/src/services/ProjectService.js +0 -1366
- package/src/services/PullRequestService.js +0 -537
- package/src/services/ScreenshotService.js +0 -258
- package/src/services/SubscriptionService.js +0 -425
- package/src/services/TrackingService.js +0 -853
- package/src/services/WaitlistService.js +0 -130
- package/src/services/tests/BranchService/createBranch.test.js +0 -153
- package/src/services/tests/BranchService/deleteBranch.test.js +0 -173
- package/src/services/tests/BranchService/getBranchChanges.test.js +0 -146
- package/src/services/tests/BranchService/listBranches.test.js +0 -87
- package/src/services/tests/BranchService/mergeBranch.test.js +0 -210
- package/src/services/tests/BranchService/publishVersion.test.js +0 -183
- package/src/services/tests/BranchService/renameBranch.test.js +0 -240
- package/src/services/tests/BranchService/resetBranch.test.js +0 -152
- package/src/services/tests/FeatureFlagService/adminFeatureFlags.test.js +0 -67
- package/src/services/tests/FeatureFlagService/getFeatureFlags.test.js +0 -75
- package/src/services/tests/FileService/createFileFormData.test.js +0 -74
- package/src/services/tests/FileService/getFileUrl.test.js +0 -69
- package/src/services/tests/FileService/updateProjectIcon.test.js +0 -109
- package/src/services/tests/FileService/uploadDocument.test.js +0 -36
- package/src/services/tests/FileService/uploadFile.test.js +0 -78
- package/src/services/tests/FileService/uploadFileWithValidation.test.js +0 -114
- package/src/services/tests/FileService/uploadImage.test.js +0 -36
- package/src/services/tests/FileService/uploadMultipleFiles.test.js +0 -111
- package/src/services/tests/FileService/validateFile.test.js +0 -63
- package/src/services/tests/PlanService/createPlan.test.js +0 -104
- package/src/services/tests/PlanService/createPlanWithValidation.test.js +0 -523
- package/src/services/tests/PlanService/deletePlan.test.js +0 -92
- package/src/services/tests/PlanService/getActivePlans.test.js +0 -123
- package/src/services/tests/PlanService/getAdminPlans.test.js +0 -84
- package/src/services/tests/PlanService/getPlan.test.js +0 -50
- package/src/services/tests/PlanService/getPlanByKey.test.js +0 -109
- package/src/services/tests/PlanService/getPlanWithValidation.test.js +0 -85
- package/src/services/tests/PlanService/getPlans.test.js +0 -53
- package/src/services/tests/PlanService/getPlansByPriceRange.test.js +0 -109
- package/src/services/tests/PlanService/getPlansWithValidation.test.js +0 -48
- package/src/services/tests/PlanService/initializePlans.test.js +0 -75
- package/src/services/tests/PlanService/updatePlan.test.js +0 -111
- package/src/services/tests/PlanService/updatePlanWithValidation.test.js +0 -556
- package/src/state/RootStateManager.js +0 -76
- package/src/state/rootEventBus.js +0 -67
- package/src/utils/CollabClient.js +0 -248
- package/src/utils/TokenManager.js +0 -479
- package/src/utils/changePreprocessor.js +0 -239
- package/src/utils/jsonDiff.js +0 -144
- package/src/utils/ordering.js +0 -271
package/dist/cjs/index.js
CHANGED
|
@@ -28,51 +28,22 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
28
28
|
var index_exports = {};
|
|
29
29
|
__export(index_exports, {
|
|
30
30
|
SDK: () => SDK,
|
|
31
|
-
createAdminService: () => import_services3.createAdminService,
|
|
32
|
-
createAuthService: () => import_services3.createAuthService,
|
|
33
|
-
createBranchService: () => import_services3.createBranchService,
|
|
34
|
-
createCollabService: () => import_services3.createCollabService,
|
|
35
|
-
createDnsService: () => import_services3.createDnsService,
|
|
36
|
-
createFeatureFlagService: () => import_services3.createFeatureFlagService,
|
|
37
|
-
createFileService: () => import_services3.createFileService,
|
|
38
|
-
createIntegrationService: () => import_services3.createIntegrationService,
|
|
39
|
-
createMetricsService: () => import_services3.createMetricsService,
|
|
40
|
-
createPaymentService: () => import_services3.createPaymentService,
|
|
41
|
-
createPlanService: () => import_services3.createPlanService,
|
|
42
|
-
createProjectService: () => import_services3.createProjectService,
|
|
43
|
-
createPullRequestService: () => import_services3.createPullRequestService,
|
|
44
|
-
createSubscriptionService: () => import_services3.createSubscriptionService,
|
|
45
|
-
createTrackingService: () => import_services3.createTrackingService,
|
|
46
|
-
createWaitlistService: () => import_services3.createWaitlistService,
|
|
47
31
|
default: () => index_default,
|
|
48
|
-
environment: () => import_environment2.default
|
|
49
|
-
isLocalhost: () => isLocalhost
|
|
32
|
+
environment: () => import_environment2.default
|
|
50
33
|
});
|
|
51
34
|
module.exports = __toCommonJS(index_exports);
|
|
52
35
|
var import_services = require("./services/index.js");
|
|
53
36
|
var import_services2 = require("./utils/services.js");
|
|
37
|
+
var import_SymstoryService = require("./services/SymstoryService.js");
|
|
54
38
|
var import_environment = __toESM(require("./config/environment.js"), 1);
|
|
55
|
-
var import_rootEventBus = require("./state/rootEventBus.js");
|
|
56
|
-
var import_services3 = require("./services/index.js");
|
|
57
39
|
var import_environment2 = __toESM(require("./config/environment.js"), 1);
|
|
58
|
-
const isBrowserEnvironment = () => typeof window !== "undefined";
|
|
59
|
-
const isLocalhost = () => {
|
|
60
|
-
if (!isBrowserEnvironment()) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
const host = window.location && window.location.hostname;
|
|
64
|
-
return host === "localhost" || host === "127.0.0.1" || host === "::1" || host === "" || !host;
|
|
65
|
-
};
|
|
66
40
|
class SDK {
|
|
67
41
|
constructor(options = {}) {
|
|
68
42
|
this._services = /* @__PURE__ */ new Map();
|
|
69
43
|
this._context = {};
|
|
70
44
|
this._options = this._validateOptions(options);
|
|
71
|
-
this.environment = import_environment.default;
|
|
72
|
-
this.rootBus = import_rootEventBus.rootBus;
|
|
73
45
|
this._createServiceProxies();
|
|
74
46
|
}
|
|
75
|
-
// Initialize SDK with context
|
|
76
47
|
async initialize(context = {}) {
|
|
77
48
|
this._context = {
|
|
78
49
|
...this._context,
|
|
@@ -80,121 +51,36 @@ class SDK {
|
|
|
80
51
|
};
|
|
81
52
|
await Promise.all([
|
|
82
53
|
this._initService(
|
|
83
|
-
"
|
|
84
|
-
(0, import_services.
|
|
85
|
-
context: this._context,
|
|
86
|
-
options: this._options
|
|
87
|
-
})
|
|
88
|
-
),
|
|
89
|
-
this._initService(
|
|
90
|
-
"collab",
|
|
91
|
-
(0, import_services.createCollabService)({
|
|
92
|
-
context: this._context,
|
|
93
|
-
options: this._options
|
|
94
|
-
})
|
|
95
|
-
),
|
|
96
|
-
// Initialize new modular services
|
|
97
|
-
this._initService(
|
|
98
|
-
"project",
|
|
99
|
-
(0, import_services.createProjectService)({
|
|
100
|
-
context: this._context,
|
|
101
|
-
options: this._options
|
|
102
|
-
})
|
|
103
|
-
),
|
|
104
|
-
this._initService(
|
|
105
|
-
"plan",
|
|
106
|
-
(0, import_services.createPlanService)({
|
|
54
|
+
"based",
|
|
55
|
+
(0, import_services.createBasedService)({
|
|
107
56
|
context: this._context,
|
|
108
57
|
options: this._options
|
|
109
58
|
})
|
|
110
59
|
),
|
|
111
60
|
this._initService(
|
|
112
|
-
"
|
|
113
|
-
(0, import_services.
|
|
114
|
-
context: this._context,
|
|
115
|
-
options: this._options
|
|
116
|
-
})
|
|
117
|
-
),
|
|
118
|
-
this._initService(
|
|
119
|
-
"file",
|
|
120
|
-
(0, import_services.createFileService)({
|
|
121
|
-
context: this._context,
|
|
122
|
-
options: this._options
|
|
123
|
-
})
|
|
124
|
-
),
|
|
125
|
-
this._initService(
|
|
126
|
-
"payment",
|
|
127
|
-
(0, import_services.createPaymentService)({
|
|
128
|
-
context: this._context,
|
|
129
|
-
options: this._options
|
|
130
|
-
})
|
|
131
|
-
),
|
|
132
|
-
this._initService(
|
|
133
|
-
"dns",
|
|
134
|
-
(0, import_services.createDnsService)({
|
|
135
|
-
context: this._context,
|
|
136
|
-
options: this._options
|
|
137
|
-
})
|
|
138
|
-
),
|
|
139
|
-
this._initService(
|
|
140
|
-
"branch",
|
|
141
|
-
(0, import_services.createBranchService)({
|
|
142
|
-
context: this._context,
|
|
143
|
-
options: this._options
|
|
144
|
-
})
|
|
145
|
-
),
|
|
146
|
-
this._initService(
|
|
147
|
-
"pullRequest",
|
|
148
|
-
(0, import_services.createPullRequestService)({
|
|
149
|
-
context: this._context,
|
|
150
|
-
options: this._options
|
|
151
|
-
})
|
|
152
|
-
),
|
|
153
|
-
this._initService(
|
|
154
|
-
"admin",
|
|
155
|
-
(0, import_services.createAdminService)({
|
|
156
|
-
context: this._context,
|
|
157
|
-
options: this._options
|
|
158
|
-
})
|
|
159
|
-
),
|
|
160
|
-
this._initService(
|
|
161
|
-
"screenshot",
|
|
162
|
-
(0, import_services.createScreenshotService)({
|
|
163
|
-
context: this._context,
|
|
164
|
-
options: this._options
|
|
165
|
-
})
|
|
166
|
-
),
|
|
167
|
-
this._initService(
|
|
168
|
-
"tracking",
|
|
169
|
-
(0, import_services.createTrackingService)({
|
|
170
|
-
context: this._context,
|
|
171
|
-
options: this._options
|
|
172
|
-
})
|
|
173
|
-
),
|
|
174
|
-
this._initService(
|
|
175
|
-
"waitlist",
|
|
176
|
-
(0, import_services.createWaitlistService)({
|
|
61
|
+
"auth",
|
|
62
|
+
(0, import_services.createAuthService)({
|
|
177
63
|
context: this._context,
|
|
178
64
|
options: this._options
|
|
179
65
|
})
|
|
180
66
|
),
|
|
181
67
|
this._initService(
|
|
182
|
-
"
|
|
183
|
-
(0, import_services.
|
|
68
|
+
"socket",
|
|
69
|
+
(0, import_services.createSocketService)({
|
|
184
70
|
context: this._context,
|
|
185
71
|
options: this._options
|
|
186
72
|
})
|
|
187
73
|
),
|
|
188
74
|
this._initService(
|
|
189
|
-
"
|
|
190
|
-
(0, import_services.
|
|
75
|
+
"symstory",
|
|
76
|
+
(0, import_services.createSymstoryService)({
|
|
191
77
|
context: this._context,
|
|
192
78
|
options: this._options
|
|
193
79
|
})
|
|
194
80
|
),
|
|
195
81
|
this._initService(
|
|
196
|
-
"
|
|
197
|
-
(0, import_services.
|
|
82
|
+
"ai",
|
|
83
|
+
(0, import_services.createAIService)({
|
|
198
84
|
context: this._context,
|
|
199
85
|
options: this._options
|
|
200
86
|
})
|
|
@@ -215,33 +101,16 @@ class SDK {
|
|
|
215
101
|
this._services.set(name, service);
|
|
216
102
|
}
|
|
217
103
|
_validateOptions(options) {
|
|
218
|
-
const onLocalhost = isLocalhost();
|
|
219
|
-
const hasGrafanaUrl = Boolean(import_environment.default.grafanaUrl);
|
|
220
104
|
const defaults = {
|
|
221
105
|
useNewServices: true,
|
|
222
106
|
// Use new service implementations by default
|
|
223
|
-
|
|
107
|
+
baseUrl: import_environment.default.baseUrl,
|
|
224
108
|
socketUrl: import_environment.default.socketUrl,
|
|
225
109
|
timeout: 3e4,
|
|
226
110
|
retryAttempts: 3,
|
|
227
|
-
debug: false
|
|
228
|
-
tracking: {
|
|
229
|
-
// Force-disabled on localhost or when no Grafana URL is configured
|
|
230
|
-
enabled: onLocalhost ? false : hasGrafanaUrl ? import_environment.default.features.trackingEnabled : false
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
const merged = {
|
|
234
|
-
...defaults,
|
|
235
|
-
...options,
|
|
236
|
-
tracking: {
|
|
237
|
-
...defaults.tracking,
|
|
238
|
-
...options.tracking || {}
|
|
239
|
-
}
|
|
111
|
+
debug: false
|
|
240
112
|
};
|
|
241
|
-
|
|
242
|
-
merged.tracking.enabled = false;
|
|
243
|
-
}
|
|
244
|
-
return merged;
|
|
113
|
+
return { ...defaults, ...options };
|
|
245
114
|
}
|
|
246
115
|
// Get service instance
|
|
247
116
|
getService(name) {
|
|
@@ -252,19 +121,22 @@ class SDK {
|
|
|
252
121
|
}
|
|
253
122
|
// Update context
|
|
254
123
|
updateContext(newContext) {
|
|
255
|
-
const { ...sanitized } = newContext || {};
|
|
256
124
|
this._context = {
|
|
257
125
|
...this._context,
|
|
258
|
-
...
|
|
126
|
+
...newContext
|
|
259
127
|
};
|
|
260
128
|
for (const service of this._services.values()) {
|
|
261
129
|
service.updateContext(this._context);
|
|
130
|
+
if (service instanceof import_SymstoryService.SymstoryService) {
|
|
131
|
+
service.init();
|
|
132
|
+
}
|
|
262
133
|
}
|
|
263
134
|
}
|
|
264
135
|
// Check if SDK is ready
|
|
265
136
|
isReady() {
|
|
266
|
-
|
|
267
|
-
|
|
137
|
+
return Array.from(this._services.values()).every(
|
|
138
|
+
(service) => service.isReady()
|
|
139
|
+
);
|
|
268
140
|
}
|
|
269
141
|
// Get SDK status
|
|
270
142
|
getStatus() {
|
|
@@ -293,24 +165,5 @@ class SDK {
|
|
|
293
165
|
}
|
|
294
166
|
}
|
|
295
167
|
}
|
|
296
|
-
/**
|
|
297
|
-
* Destroys all services and cleans up resources
|
|
298
|
-
* @returns {Promise<boolean>} Returns true when cleanup is complete
|
|
299
|
-
*/
|
|
300
|
-
async destroy() {
|
|
301
|
-
try {
|
|
302
|
-
const destroyPromises = Array.from(this._services.entries()).filter(([, service]) => typeof service.destroy === "function").map(async ([name, service]) => {
|
|
303
|
-
await service.destroy();
|
|
304
|
-
console.log(`Service ${name} destroyed successfully`);
|
|
305
|
-
});
|
|
306
|
-
await Promise.all(destroyPromises);
|
|
307
|
-
this._services.clear();
|
|
308
|
-
this._context = {};
|
|
309
|
-
return true;
|
|
310
|
-
} catch (error) {
|
|
311
|
-
console.error("Error during SDK destruction:", error);
|
|
312
|
-
throw error;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
168
|
}
|
|
316
169
|
var index_default = SDK;
|
|
@@ -0,0 +1,155 @@
|
|
|
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 AIService_exports = {};
|
|
19
|
+
__export(AIService_exports, {
|
|
20
|
+
AIService: () => AIService
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(AIService_exports);
|
|
23
|
+
var import_BaseService = require("./BaseService.js");
|
|
24
|
+
class AIService extends import_BaseService.BaseService {
|
|
25
|
+
constructor(config) {
|
|
26
|
+
super(config);
|
|
27
|
+
this._client = null;
|
|
28
|
+
this._initialized = false;
|
|
29
|
+
this._defaultConfig = {
|
|
30
|
+
baseUrl: "https://api.openai.com/v1/engines/text-curie/completions",
|
|
31
|
+
temperature: 0,
|
|
32
|
+
maxTokens: 2e3,
|
|
33
|
+
headers: {
|
|
34
|
+
"Content-Type": "application/json"
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
init() {
|
|
39
|
+
try {
|
|
40
|
+
const { appKey, authToken } = this._context;
|
|
41
|
+
this._info = {
|
|
42
|
+
config: {
|
|
43
|
+
appKey: appKey ? `${appKey.substr(0, 4)}...${appKey.substr(-4)}` : "",
|
|
44
|
+
hasToken: Boolean(authToken)
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
this._initialized = true;
|
|
48
|
+
this._setReady();
|
|
49
|
+
} catch (error) {
|
|
50
|
+
this._setError(error);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Helper to check if method requires initialization
|
|
55
|
+
_requiresInit(methodName) {
|
|
56
|
+
const noInitMethods = /* @__PURE__ */ new Set(["getConfig", "validateConfig"]);
|
|
57
|
+
return !noInitMethods.has(methodName);
|
|
58
|
+
}
|
|
59
|
+
// Override _requireReady to be more flexible
|
|
60
|
+
_requireReady(methodName) {
|
|
61
|
+
if (this._requiresInit(methodName) && !this._initialized) {
|
|
62
|
+
throw new Error("AI service not initialized");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Configuration methods
|
|
66
|
+
getConfig() {
|
|
67
|
+
var _a;
|
|
68
|
+
return {
|
|
69
|
+
...this._defaultConfig,
|
|
70
|
+
...(_a = this._context.ai) == null ? void 0 : _a.config
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
validateConfig(config = {}) {
|
|
74
|
+
const requiredFields = ["baseUrl", "temperature", "maxTokens"];
|
|
75
|
+
const missingFields = requiredFields.filter((field) => !config[field]);
|
|
76
|
+
if (missingFields.length > 0) {
|
|
77
|
+
throw new Error(
|
|
78
|
+
`Missing required configuration fields: ${missingFields.join(", ")}`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
// AI Methods
|
|
84
|
+
async prompt(query, opts = {}) {
|
|
85
|
+
var _a;
|
|
86
|
+
this._requireReady("prompt");
|
|
87
|
+
try {
|
|
88
|
+
const config = this.getConfig();
|
|
89
|
+
const options = {
|
|
90
|
+
method: "POST",
|
|
91
|
+
headers: {
|
|
92
|
+
...config.headers,
|
|
93
|
+
Authorization: `Bearer ${(_a = this._context.ai) == null ? void 0 : _a.authToken}`
|
|
94
|
+
},
|
|
95
|
+
body: JSON.stringify({
|
|
96
|
+
prompt: query,
|
|
97
|
+
temperature: opts.temperature || config.temperature,
|
|
98
|
+
max_tokens: opts.maxTokens || config.maxTokens,
|
|
99
|
+
...opts
|
|
100
|
+
})
|
|
101
|
+
};
|
|
102
|
+
const response = await this._request(config.baseUrl, options);
|
|
103
|
+
return response;
|
|
104
|
+
} catch (error) {
|
|
105
|
+
throw new Error(`AI prompt failed: ${error.message}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Helper methods
|
|
109
|
+
async _request(url, options = {}) {
|
|
110
|
+
try {
|
|
111
|
+
const response = await fetch(url, {
|
|
112
|
+
...options,
|
|
113
|
+
headers: {
|
|
114
|
+
...this._defaultConfig.headers,
|
|
115
|
+
...options.headers
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
if (!response.ok) {
|
|
119
|
+
const error = await response.json();
|
|
120
|
+
throw new Error(error.message || "Request failed");
|
|
121
|
+
}
|
|
122
|
+
return response.status === 204 ? null : response.json();
|
|
123
|
+
} catch (error) {
|
|
124
|
+
throw new Error(`Request failed: ${error.message}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Context update methods
|
|
128
|
+
updateAuth(authToken) {
|
|
129
|
+
this.updateContext({
|
|
130
|
+
ai: {
|
|
131
|
+
...this._context.ai,
|
|
132
|
+
authToken
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
updateConfig(config) {
|
|
137
|
+
var _a;
|
|
138
|
+
this.validateConfig(config);
|
|
139
|
+
this.updateContext({
|
|
140
|
+
ai: {
|
|
141
|
+
...this._context.ai,
|
|
142
|
+
config: {
|
|
143
|
+
...(_a = this._context.ai) == null ? void 0 : _a.config,
|
|
144
|
+
...config
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
// Cleanup
|
|
150
|
+
destroy() {
|
|
151
|
+
this._client = null;
|
|
152
|
+
this._initialized = false;
|
|
153
|
+
this._setReady(false);
|
|
154
|
+
}
|
|
155
|
+
}
|