@symbo.ls/sdk 2.34.35 → 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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isDevelopment } from "@domql/utils";
|
|
2
1
|
const CONFIG = {
|
|
3
2
|
// Common defaults for all environments
|
|
4
3
|
common: {
|
|
@@ -7,140 +6,69 @@ const CONFIG = {
|
|
|
7
6
|
// Feature toggles that apply across all environments by default
|
|
8
7
|
features: {
|
|
9
8
|
newUserOnboarding: true,
|
|
10
|
-
betaFeatures: false
|
|
11
|
-
// Tracking is enabled by default unless overridden per environment
|
|
12
|
-
trackingEnabled: true
|
|
9
|
+
betaFeatures: false
|
|
13
10
|
}
|
|
14
11
|
},
|
|
15
12
|
// Environment-specific configurations
|
|
16
13
|
local: {
|
|
17
|
-
|
|
14
|
+
baseUrl: "http://localhost:3000",
|
|
15
|
+
// For symstory api
|
|
18
16
|
socketUrl: "http://localhost:8080",
|
|
19
17
|
// For socket api
|
|
20
|
-
|
|
18
|
+
routerUrl: "http://localhost:3090",
|
|
19
|
+
// For router api
|
|
20
|
+
apiUrl: "http://localhost:13335",
|
|
21
21
|
// For server api
|
|
22
22
|
basedEnv: "development",
|
|
23
23
|
// For based api
|
|
24
|
-
basedProject: "platform-v2
|
|
24
|
+
basedProject: "platform-v2",
|
|
25
25
|
// For based api
|
|
26
26
|
basedOrg: "symbols",
|
|
27
27
|
// For based api
|
|
28
|
-
githubClientId: "
|
|
28
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF",
|
|
29
29
|
// For github api
|
|
30
|
-
grafanaUrl: "",
|
|
31
|
-
// For grafana tracing
|
|
32
|
-
grafanaAppName: "Symbols Localhost",
|
|
33
30
|
// Environment-specific feature toggles (override common)
|
|
34
31
|
features: {
|
|
35
|
-
|
|
36
|
-
trackingEnabled: false,
|
|
32
|
+
betaFeatures: true
|
|
37
33
|
// Enable beta features in local dev
|
|
38
|
-
|
|
39
|
-
// Preserve common defaults explicitly for local
|
|
40
|
-
newUserOnboarding: true
|
|
41
|
-
},
|
|
42
|
-
typesenseCollectionName: "docs",
|
|
43
|
-
typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
|
|
44
|
-
typesenseHost: "localhost",
|
|
45
|
-
typesensePort: "8108",
|
|
46
|
-
typesenseProtocol: "http"
|
|
34
|
+
}
|
|
47
35
|
},
|
|
48
36
|
development: {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
typesenseCollectionName: "docs",
|
|
56
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
57
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
58
|
-
typesensePort: "443",
|
|
59
|
-
typesenseProtocol: "https"
|
|
60
|
-
},
|
|
61
|
-
testing: {
|
|
62
|
-
socketUrl: "https://test.api.symbols.app",
|
|
63
|
-
apiUrl: "https://test.api.symbols.app",
|
|
64
|
-
basedEnv: "testing",
|
|
65
|
-
basedProject: "platform-v2-sm",
|
|
37
|
+
baseUrl: "https://story.symbo.ls",
|
|
38
|
+
socketUrl: "https://socket.symbols.app",
|
|
39
|
+
routerUrl: "https://router.symbols.app",
|
|
40
|
+
apiUrl: "https://api.symbols.app",
|
|
41
|
+
basedEnv: "development",
|
|
42
|
+
basedProject: "platform-v2",
|
|
66
43
|
basedOrg: "symbols",
|
|
67
|
-
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
68
|
-
grafanaUrl: "",
|
|
69
|
-
// For grafana tracing
|
|
70
|
-
grafanaAppName: "Symbols Test",
|
|
71
|
-
typesenseCollectionName: "docs",
|
|
72
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
73
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
74
|
-
typesensePort: "443",
|
|
75
|
-
typesenseProtocol: "https"
|
|
76
|
-
},
|
|
77
|
-
upcoming: {
|
|
78
|
-
socketUrl: "https://upcoming.api.symbols.app",
|
|
79
|
-
apiUrl: "https://upcoming.api.symbols.app",
|
|
80
|
-
githubClientId: "Ov23liWF7NvdZ056RV5J",
|
|
81
|
-
grafanaUrl: "",
|
|
82
|
-
// For grafana tracing
|
|
83
|
-
grafanaAppName: "Symbols Upcoming",
|
|
84
|
-
typesenseCollectionName: "docs",
|
|
85
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
86
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
87
|
-
typesensePort: "443",
|
|
88
|
-
typesenseProtocol: "https"
|
|
44
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
89
45
|
},
|
|
90
46
|
staging: {
|
|
91
|
-
|
|
47
|
+
baseUrl: "https://staging.story.symbo.ls",
|
|
48
|
+
socketUrl: "https://staging.socket.symbols.app",
|
|
49
|
+
routerUrl: "https://staging.router.symbols.app",
|
|
92
50
|
apiUrl: "https://staging.api.symbols.app",
|
|
93
51
|
basedEnv: "staging",
|
|
94
|
-
basedProject: "platform-v2
|
|
95
|
-
basedOrg: "symbols",
|
|
96
|
-
githubClientId: "Ov23ligwZDQVD0VfuWNa",
|
|
97
|
-
grafanaUrl: "",
|
|
98
|
-
// For grafana tracing
|
|
99
|
-
grafanaAppName: "Symbols Staging",
|
|
100
|
-
typesenseCollectionName: "docs",
|
|
101
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
102
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
103
|
-
typesensePort: "443",
|
|
104
|
-
typesenseProtocol: "https"
|
|
105
|
-
},
|
|
106
|
-
preview: {
|
|
107
|
-
socketUrl: "https://api.symbols.app",
|
|
108
|
-
apiUrl: "https://api.symbols.app",
|
|
109
|
-
basedEnv: "production",
|
|
110
|
-
basedProject: "platform-v2-sm",
|
|
52
|
+
basedProject: "platform-v2",
|
|
111
53
|
basedOrg: "symbols",
|
|
112
|
-
githubClientId: "
|
|
113
|
-
grafanaUrl: "https://faro-collector-prod-us-east-0.grafana.net/collect/5c1089f3c3eea4ec5658e05c3f53baae",
|
|
114
|
-
// For grafana tracing
|
|
115
|
-
grafanaAppName: "Symbols Preview",
|
|
116
|
-
typesenseCollectionName: "docs",
|
|
117
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
118
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
119
|
-
typesensePort: "443",
|
|
120
|
-
typesenseProtocol: "https"
|
|
54
|
+
githubClientId: "Ov23ligwZDQVD0VfuWNa"
|
|
121
55
|
},
|
|
122
56
|
production: {
|
|
123
|
-
|
|
57
|
+
baseUrl: "https://story.symbo.ls",
|
|
58
|
+
socketUrl: "https://socket.symbols.app",
|
|
59
|
+
routerUrl: "https://router.symbols.app",
|
|
124
60
|
apiUrl: "https://api.symbols.app",
|
|
125
61
|
basedEnv: "production",
|
|
126
|
-
basedProject: "platform-v2
|
|
62
|
+
basedProject: "platform-v2",
|
|
127
63
|
basedOrg: "symbols",
|
|
128
|
-
githubClientId: "Ov23liFAlOEIXtX3dBtR"
|
|
129
|
-
grafanaUrl: "https://faro-collector-prod-us-east-0.grafana.net/collect/5c1089f3c3eea4ec5658e05c3f53baae",
|
|
130
|
-
// For grafana tracing
|
|
131
|
-
grafanaAppName: "Symbols",
|
|
132
|
-
typesenseCollectionName: "docs",
|
|
133
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
134
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
135
|
-
typesensePort: "443",
|
|
136
|
-
typesenseProtocol: "https"
|
|
64
|
+
githubClientId: "Ov23liFAlOEIXtX3dBtR"
|
|
137
65
|
}
|
|
138
66
|
};
|
|
139
67
|
const getEnvironment = () => {
|
|
140
|
-
|
|
141
|
-
const env = process.env.SYMBOLS_APP_ENV || process.env.NODE_ENV;
|
|
68
|
+
const env = process.env.SYMBOLS_APP_ENV || "" || "development";
|
|
142
69
|
if (!CONFIG[env]) {
|
|
143
|
-
|
|
70
|
+
console.warn(`Unknown environment "${env}", falling back to development`);
|
|
71
|
+
return "development";
|
|
144
72
|
}
|
|
145
73
|
return env;
|
|
146
74
|
};
|
|
@@ -150,33 +78,25 @@ const getConfig = () => {
|
|
|
150
78
|
const envConfig = { ...CONFIG.common, ...CONFIG[env] };
|
|
151
79
|
const finalConfig = {
|
|
152
80
|
...envConfig,
|
|
153
|
-
|
|
154
|
-
features: {
|
|
155
|
-
...CONFIG.common.features || {},
|
|
156
|
-
...CONFIG[env] && CONFIG[env].features || {}
|
|
157
|
-
},
|
|
81
|
+
baseUrl: process.env.SYMBOLS_APP_BASE_URL || envConfig.baseUrl,
|
|
158
82
|
socketUrl: process.env.SYMBOLS_APP_SOCKET_URL || envConfig.socketUrl,
|
|
83
|
+
routerUrl: process.env.SYMBOLS_APP_ROUTER_URL || envConfig.routerUrl,
|
|
159
84
|
apiUrl: process.env.SYMBOLS_APP_API_URL || envConfig.apiUrl,
|
|
160
85
|
basedEnv: process.env.SYMBOLS_APP_BASED_ENV || envConfig.basedEnv,
|
|
161
86
|
basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
|
|
162
87
|
basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
|
|
163
88
|
githubClientId: process.env.SYMBOLS_APP_GITHUB_CLIENT_ID || envConfig.githubClientId,
|
|
164
|
-
|
|
165
|
-
typesenseCollectionName: process.env.TYPESENSE_COLLECTION_NAME || envConfig.typesenseCollectionName,
|
|
166
|
-
typesenseApiKey: process.env.TYPESENSE_API_KEY || envConfig.typesenseApiKey,
|
|
167
|
-
typesenseHost: process.env.TYPESENSE_HOST || envConfig.typesenseHost,
|
|
168
|
-
typesensePort: process.env.TYPESENSE_PORT || envConfig.typesensePort,
|
|
169
|
-
typesenseProtocol: process.env.TYPESENSE_PROTOCOL || envConfig.typesenseProtocol,
|
|
170
|
-
isDevelopment: isDevelopment(env),
|
|
171
|
-
isTesting: env === "testing",
|
|
89
|
+
isDevelopment: env === "development" || env === "local",
|
|
172
90
|
isStaging: env === "staging",
|
|
173
|
-
isPreview: env === "preview",
|
|
174
91
|
isProduction: env === "production"
|
|
175
|
-
// Store all environment variables for potential future use
|
|
176
92
|
};
|
|
177
93
|
const requiredFields = [
|
|
94
|
+
"baseUrl",
|
|
178
95
|
"socketUrl",
|
|
179
96
|
"apiUrl",
|
|
97
|
+
"basedEnv",
|
|
98
|
+
"basedProject",
|
|
99
|
+
"basedOrg",
|
|
180
100
|
"githubClientId",
|
|
181
101
|
"googleClientId"
|
|
182
102
|
];
|
|
@@ -187,24 +107,30 @@ const getConfig = () => {
|
|
|
187
107
|
);
|
|
188
108
|
}
|
|
189
109
|
if (finalConfig.isDevelopment) {
|
|
190
|
-
console.
|
|
110
|
+
console.log(
|
|
191
111
|
"environment in SDK:",
|
|
192
|
-
env
|
|
112
|
+
env,
|
|
113
|
+
"",
|
|
114
|
+
process.env.SYMBOLS_APP_ENV
|
|
193
115
|
);
|
|
194
116
|
console.log(finalConfig);
|
|
195
|
-
} else if (global.window) {
|
|
196
|
-
global.window.finalConfig = finalConfig;
|
|
197
117
|
}
|
|
198
118
|
return finalConfig;
|
|
199
119
|
} catch (error) {
|
|
200
120
|
console.error("Failed to load environment configuration:", error);
|
|
201
121
|
return {
|
|
202
|
-
|
|
122
|
+
baseUrl: "https://story.symbo.ls",
|
|
123
|
+
socketUrl: "https://socket.symbols.app",
|
|
124
|
+
routerUrl: "https://router.symbols.app",
|
|
125
|
+
apiUrl: "https://api.symbols.app",
|
|
126
|
+
basedEnv: "development",
|
|
127
|
+
basedProject: "platform-v2",
|
|
128
|
+
basedOrg: "symbols",
|
|
129
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
203
130
|
};
|
|
204
131
|
}
|
|
205
132
|
};
|
|
206
133
|
var environment_default = getConfig();
|
|
207
134
|
export {
|
|
208
|
-
environment_default as default
|
|
209
|
-
getConfig
|
|
135
|
+
environment_default as default
|
|
210
136
|
};
|
package/dist/node/index.js
CHANGED
|
@@ -1,43 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
+
createBasedService,
|
|
3
|
+
createSymstoryService,
|
|
2
4
|
createAuthService,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
createPlanService,
|
|
6
|
-
createFileService,
|
|
7
|
-
createPaymentService,
|
|
8
|
-
createDnsService,
|
|
9
|
-
createBranchService,
|
|
10
|
-
createPullRequestService,
|
|
11
|
-
createAdminService,
|
|
12
|
-
createSubscriptionService,
|
|
13
|
-
createScreenshotService,
|
|
14
|
-
createTrackingService,
|
|
15
|
-
createWaitlistService,
|
|
16
|
-
createMetricsService,
|
|
17
|
-
createIntegrationService,
|
|
18
|
-
createFeatureFlagService
|
|
5
|
+
createAIService,
|
|
6
|
+
createSocketService
|
|
19
7
|
} from "./services/index.js";
|
|
20
8
|
import { SERVICE_METHODS } from "./utils/services.js";
|
|
9
|
+
import { SymstoryService } from "./services/SymstoryService.js";
|
|
21
10
|
import environment from "./config/environment.js";
|
|
22
|
-
import { rootBus } from "./state/rootEventBus.js";
|
|
23
|
-
const isBrowserEnvironment = () => typeof window !== "undefined";
|
|
24
|
-
const isLocalhost = () => {
|
|
25
|
-
if (!isBrowserEnvironment()) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
const host = window.location && window.location.hostname;
|
|
29
|
-
return host === "localhost" || host === "127.0.0.1" || host === "::1" || host === "" || !host;
|
|
30
|
-
};
|
|
31
11
|
class SDK {
|
|
32
12
|
constructor(options = {}) {
|
|
33
13
|
this._services = /* @__PURE__ */ new Map();
|
|
34
14
|
this._context = {};
|
|
35
15
|
this._options = this._validateOptions(options);
|
|
36
|
-
this.environment = environment;
|
|
37
|
-
this.rootBus = rootBus;
|
|
38
16
|
this._createServiceProxies();
|
|
39
17
|
}
|
|
40
|
-
// Initialize SDK with context
|
|
41
18
|
async initialize(context = {}) {
|
|
42
19
|
this._context = {
|
|
43
20
|
...this._context,
|
|
@@ -45,121 +22,36 @@ class SDK {
|
|
|
45
22
|
};
|
|
46
23
|
await Promise.all([
|
|
47
24
|
this._initService(
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
context: this._context,
|
|
51
|
-
options: this._options
|
|
52
|
-
})
|
|
53
|
-
),
|
|
54
|
-
this._initService(
|
|
55
|
-
"collab",
|
|
56
|
-
createCollabService({
|
|
57
|
-
context: this._context,
|
|
58
|
-
options: this._options
|
|
59
|
-
})
|
|
60
|
-
),
|
|
61
|
-
// Initialize new modular services
|
|
62
|
-
this._initService(
|
|
63
|
-
"project",
|
|
64
|
-
createProjectService({
|
|
65
|
-
context: this._context,
|
|
66
|
-
options: this._options
|
|
67
|
-
})
|
|
68
|
-
),
|
|
69
|
-
this._initService(
|
|
70
|
-
"plan",
|
|
71
|
-
createPlanService({
|
|
25
|
+
"based",
|
|
26
|
+
createBasedService({
|
|
72
27
|
context: this._context,
|
|
73
28
|
options: this._options
|
|
74
29
|
})
|
|
75
30
|
),
|
|
76
31
|
this._initService(
|
|
77
|
-
"
|
|
78
|
-
|
|
79
|
-
context: this._context,
|
|
80
|
-
options: this._options
|
|
81
|
-
})
|
|
82
|
-
),
|
|
83
|
-
this._initService(
|
|
84
|
-
"file",
|
|
85
|
-
createFileService({
|
|
86
|
-
context: this._context,
|
|
87
|
-
options: this._options
|
|
88
|
-
})
|
|
89
|
-
),
|
|
90
|
-
this._initService(
|
|
91
|
-
"payment",
|
|
92
|
-
createPaymentService({
|
|
93
|
-
context: this._context,
|
|
94
|
-
options: this._options
|
|
95
|
-
})
|
|
96
|
-
),
|
|
97
|
-
this._initService(
|
|
98
|
-
"dns",
|
|
99
|
-
createDnsService({
|
|
100
|
-
context: this._context,
|
|
101
|
-
options: this._options
|
|
102
|
-
})
|
|
103
|
-
),
|
|
104
|
-
this._initService(
|
|
105
|
-
"branch",
|
|
106
|
-
createBranchService({
|
|
107
|
-
context: this._context,
|
|
108
|
-
options: this._options
|
|
109
|
-
})
|
|
110
|
-
),
|
|
111
|
-
this._initService(
|
|
112
|
-
"pullRequest",
|
|
113
|
-
createPullRequestService({
|
|
114
|
-
context: this._context,
|
|
115
|
-
options: this._options
|
|
116
|
-
})
|
|
117
|
-
),
|
|
118
|
-
this._initService(
|
|
119
|
-
"admin",
|
|
120
|
-
createAdminService({
|
|
121
|
-
context: this._context,
|
|
122
|
-
options: this._options
|
|
123
|
-
})
|
|
124
|
-
),
|
|
125
|
-
this._initService(
|
|
126
|
-
"screenshot",
|
|
127
|
-
createScreenshotService({
|
|
128
|
-
context: this._context,
|
|
129
|
-
options: this._options
|
|
130
|
-
})
|
|
131
|
-
),
|
|
132
|
-
this._initService(
|
|
133
|
-
"tracking",
|
|
134
|
-
createTrackingService({
|
|
135
|
-
context: this._context,
|
|
136
|
-
options: this._options
|
|
137
|
-
})
|
|
138
|
-
),
|
|
139
|
-
this._initService(
|
|
140
|
-
"waitlist",
|
|
141
|
-
createWaitlistService({
|
|
32
|
+
"auth",
|
|
33
|
+
createAuthService({
|
|
142
34
|
context: this._context,
|
|
143
35
|
options: this._options
|
|
144
36
|
})
|
|
145
37
|
),
|
|
146
38
|
this._initService(
|
|
147
|
-
"
|
|
148
|
-
|
|
39
|
+
"socket",
|
|
40
|
+
createSocketService({
|
|
149
41
|
context: this._context,
|
|
150
42
|
options: this._options
|
|
151
43
|
})
|
|
152
44
|
),
|
|
153
45
|
this._initService(
|
|
154
|
-
"
|
|
155
|
-
|
|
46
|
+
"symstory",
|
|
47
|
+
createSymstoryService({
|
|
156
48
|
context: this._context,
|
|
157
49
|
options: this._options
|
|
158
50
|
})
|
|
159
51
|
),
|
|
160
52
|
this._initService(
|
|
161
|
-
"
|
|
162
|
-
|
|
53
|
+
"ai",
|
|
54
|
+
createAIService({
|
|
163
55
|
context: this._context,
|
|
164
56
|
options: this._options
|
|
165
57
|
})
|
|
@@ -180,33 +72,16 @@ class SDK {
|
|
|
180
72
|
this._services.set(name, service);
|
|
181
73
|
}
|
|
182
74
|
_validateOptions(options) {
|
|
183
|
-
const onLocalhost = isLocalhost();
|
|
184
|
-
const hasGrafanaUrl = Boolean(environment.grafanaUrl);
|
|
185
75
|
const defaults = {
|
|
186
76
|
useNewServices: true,
|
|
187
77
|
// Use new service implementations by default
|
|
188
|
-
|
|
78
|
+
baseUrl: environment.baseUrl,
|
|
189
79
|
socketUrl: environment.socketUrl,
|
|
190
80
|
timeout: 3e4,
|
|
191
81
|
retryAttempts: 3,
|
|
192
|
-
debug: false
|
|
193
|
-
tracking: {
|
|
194
|
-
// Force-disabled on localhost or when no Grafana URL is configured
|
|
195
|
-
enabled: onLocalhost ? false : hasGrafanaUrl ? environment.features.trackingEnabled : false
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
const merged = {
|
|
199
|
-
...defaults,
|
|
200
|
-
...options,
|
|
201
|
-
tracking: {
|
|
202
|
-
...defaults.tracking,
|
|
203
|
-
...options.tracking || {}
|
|
204
|
-
}
|
|
82
|
+
debug: false
|
|
205
83
|
};
|
|
206
|
-
|
|
207
|
-
merged.tracking.enabled = false;
|
|
208
|
-
}
|
|
209
|
-
return merged;
|
|
84
|
+
return { ...defaults, ...options };
|
|
210
85
|
}
|
|
211
86
|
// Get service instance
|
|
212
87
|
getService(name) {
|
|
@@ -217,19 +92,22 @@ class SDK {
|
|
|
217
92
|
}
|
|
218
93
|
// Update context
|
|
219
94
|
updateContext(newContext) {
|
|
220
|
-
const { ...sanitized } = newContext || {};
|
|
221
95
|
this._context = {
|
|
222
96
|
...this._context,
|
|
223
|
-
...
|
|
97
|
+
...newContext
|
|
224
98
|
};
|
|
225
99
|
for (const service of this._services.values()) {
|
|
226
100
|
service.updateContext(this._context);
|
|
101
|
+
if (service instanceof SymstoryService) {
|
|
102
|
+
service.init();
|
|
103
|
+
}
|
|
227
104
|
}
|
|
228
105
|
}
|
|
229
106
|
// Check if SDK is ready
|
|
230
107
|
isReady() {
|
|
231
|
-
|
|
232
|
-
|
|
108
|
+
return Array.from(this._services.values()).every(
|
|
109
|
+
(service) => service.isReady()
|
|
110
|
+
);
|
|
233
111
|
}
|
|
234
112
|
// Get SDK status
|
|
235
113
|
getStatus() {
|
|
@@ -258,65 +136,11 @@ class SDK {
|
|
|
258
136
|
}
|
|
259
137
|
}
|
|
260
138
|
}
|
|
261
|
-
/**
|
|
262
|
-
* Destroys all services and cleans up resources
|
|
263
|
-
* @returns {Promise<boolean>} Returns true when cleanup is complete
|
|
264
|
-
*/
|
|
265
|
-
async destroy() {
|
|
266
|
-
try {
|
|
267
|
-
const destroyPromises = Array.from(this._services.entries()).filter(([, service]) => typeof service.destroy === "function").map(async ([name, service]) => {
|
|
268
|
-
await service.destroy();
|
|
269
|
-
console.log(`Service ${name} destroyed successfully`);
|
|
270
|
-
});
|
|
271
|
-
await Promise.all(destroyPromises);
|
|
272
|
-
this._services.clear();
|
|
273
|
-
this._context = {};
|
|
274
|
-
return true;
|
|
275
|
-
} catch (error) {
|
|
276
|
-
console.error("Error during SDK destruction:", error);
|
|
277
|
-
throw error;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
139
|
}
|
|
281
140
|
var index_default = SDK;
|
|
282
|
-
import {
|
|
283
|
-
createAuthService as createAuthService2,
|
|
284
|
-
createCollabService as createCollabService2,
|
|
285
|
-
createProjectService as createProjectService2,
|
|
286
|
-
createPlanService as createPlanService2,
|
|
287
|
-
createFileService as createFileService2,
|
|
288
|
-
createPaymentService as createPaymentService2,
|
|
289
|
-
createDnsService as createDnsService2,
|
|
290
|
-
createBranchService as createBranchService2,
|
|
291
|
-
createPullRequestService as createPullRequestService2,
|
|
292
|
-
createAdminService as createAdminService2,
|
|
293
|
-
createSubscriptionService as createSubscriptionService2,
|
|
294
|
-
createTrackingService as createTrackingService2,
|
|
295
|
-
createWaitlistService as createWaitlistService2,
|
|
296
|
-
createMetricsService as createMetricsService2,
|
|
297
|
-
createIntegrationService as createIntegrationService2,
|
|
298
|
-
createFeatureFlagService as createFeatureFlagService2
|
|
299
|
-
} from "./services/index.js";
|
|
300
141
|
import { default as default2 } from "./config/environment.js";
|
|
301
142
|
export {
|
|
302
143
|
SDK,
|
|
303
|
-
createAdminService2 as createAdminService,
|
|
304
|
-
createAuthService2 as createAuthService,
|
|
305
|
-
createBranchService2 as createBranchService,
|
|
306
|
-
createCollabService2 as createCollabService,
|
|
307
|
-
createDnsService2 as createDnsService,
|
|
308
|
-
createFeatureFlagService2 as createFeatureFlagService,
|
|
309
|
-
createFileService2 as createFileService,
|
|
310
|
-
createIntegrationService2 as createIntegrationService,
|
|
311
|
-
createMetricsService2 as createMetricsService,
|
|
312
|
-
createPaymentService2 as createPaymentService,
|
|
313
|
-
createPlanService2 as createPlanService,
|
|
314
|
-
createProjectService2 as createProjectService,
|
|
315
|
-
createPullRequestService2 as createPullRequestService,
|
|
316
|
-
createSubscriptionService2 as createSubscriptionService,
|
|
317
|
-
createTrackingService2 as createTrackingService,
|
|
318
|
-
createWaitlistService2 as createWaitlistService,
|
|
319
144
|
index_default as default,
|
|
320
|
-
default2 as environment
|
|
321
|
-
isLocalhost
|
|
145
|
+
default2 as environment
|
|
322
146
|
};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { BaseService } from "./BaseService.js";
|
|
2
|
+
class AIService extends BaseService {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
super(config);
|
|
5
|
+
this._client = null;
|
|
6
|
+
this._initialized = false;
|
|
7
|
+
this._defaultConfig = {
|
|
8
|
+
baseUrl: "https://api.openai.com/v1/engines/text-curie/completions",
|
|
9
|
+
temperature: 0,
|
|
10
|
+
maxTokens: 2e3,
|
|
11
|
+
headers: {
|
|
12
|
+
"Content-Type": "application/json"
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
init() {
|
|
17
|
+
try {
|
|
18
|
+
const { appKey, authToken } = this._context;
|
|
19
|
+
this._info = {
|
|
20
|
+
config: {
|
|
21
|
+
appKey: appKey ? `${appKey.substr(0, 4)}...${appKey.substr(-4)}` : "",
|
|
22
|
+
hasToken: Boolean(authToken)
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
this._initialized = true;
|
|
26
|
+
this._setReady();
|
|
27
|
+
} catch (error) {
|
|
28
|
+
this._setError(error);
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Helper to check if method requires initialization
|
|
33
|
+
_requiresInit(methodName) {
|
|
34
|
+
const noInitMethods = /* @__PURE__ */ new Set(["getConfig", "validateConfig"]);
|
|
35
|
+
return !noInitMethods.has(methodName);
|
|
36
|
+
}
|
|
37
|
+
// Override _requireReady to be more flexible
|
|
38
|
+
_requireReady(methodName) {
|
|
39
|
+
if (this._requiresInit(methodName) && !this._initialized) {
|
|
40
|
+
throw new Error("AI service not initialized");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Configuration methods
|
|
44
|
+
getConfig() {
|
|
45
|
+
var _a;
|
|
46
|
+
return {
|
|
47
|
+
...this._defaultConfig,
|
|
48
|
+
...(_a = this._context.ai) == null ? void 0 : _a.config
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
validateConfig(config = {}) {
|
|
52
|
+
const requiredFields = ["baseUrl", "temperature", "maxTokens"];
|
|
53
|
+
const missingFields = requiredFields.filter((field) => !config[field]);
|
|
54
|
+
if (missingFields.length > 0) {
|
|
55
|
+
throw new Error(
|
|
56
|
+
`Missing required configuration fields: ${missingFields.join(", ")}`
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
// AI Methods
|
|
62
|
+
async prompt(query, opts = {}) {
|
|
63
|
+
var _a;
|
|
64
|
+
this._requireReady("prompt");
|
|
65
|
+
try {
|
|
66
|
+
const config = this.getConfig();
|
|
67
|
+
const options = {
|
|
68
|
+
method: "POST",
|
|
69
|
+
headers: {
|
|
70
|
+
...config.headers,
|
|
71
|
+
Authorization: `Bearer ${(_a = this._context.ai) == null ? void 0 : _a.authToken}`
|
|
72
|
+
},
|
|
73
|
+
body: JSON.stringify({
|
|
74
|
+
prompt: query,
|
|
75
|
+
temperature: opts.temperature || config.temperature,
|
|
76
|
+
max_tokens: opts.maxTokens || config.maxTokens,
|
|
77
|
+
...opts
|
|
78
|
+
})
|
|
79
|
+
};
|
|
80
|
+
const response = await this._request(config.baseUrl, options);
|
|
81
|
+
return response;
|
|
82
|
+
} catch (error) {
|
|
83
|
+
throw new Error(`AI prompt failed: ${error.message}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Helper methods
|
|
87
|
+
async _request(url, options = {}) {
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetch(url, {
|
|
90
|
+
...options,
|
|
91
|
+
headers: {
|
|
92
|
+
...this._defaultConfig.headers,
|
|
93
|
+
...options.headers
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
const error = await response.json();
|
|
98
|
+
throw new Error(error.message || "Request failed");
|
|
99
|
+
}
|
|
100
|
+
return response.status === 204 ? null : response.json();
|
|
101
|
+
} catch (error) {
|
|
102
|
+
throw new Error(`Request failed: ${error.message}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Context update methods
|
|
106
|
+
updateAuth(authToken) {
|
|
107
|
+
this.updateContext({
|
|
108
|
+
ai: {
|
|
109
|
+
...this._context.ai,
|
|
110
|
+
authToken
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
updateConfig(config) {
|
|
115
|
+
var _a;
|
|
116
|
+
this.validateConfig(config);
|
|
117
|
+
this.updateContext({
|
|
118
|
+
ai: {
|
|
119
|
+
...this._context.ai,
|
|
120
|
+
config: {
|
|
121
|
+
...(_a = this._context.ai) == null ? void 0 : _a.config,
|
|
122
|
+
...config
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
// Cleanup
|
|
128
|
+
destroy() {
|
|
129
|
+
this._client = null;
|
|
130
|
+
this._initialized = false;
|
|
131
|
+
this._setReady(false);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export {
|
|
135
|
+
AIService
|
|
136
|
+
};
|