@symbo.ls/sdk 3.1.2 → 3.2.6

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.
Files changed (187) hide show
  1. package/README.md +143 -2
  2. package/dist/cjs/config/environment.js +98 -30
  3. package/dist/cjs/index.js +144 -24
  4. package/dist/cjs/services/AdminService.js +351 -0
  5. package/dist/cjs/services/AuthService.js +738 -305
  6. package/dist/cjs/services/BaseService.js +158 -6
  7. package/dist/cjs/services/BranchService.js +484 -0
  8. package/dist/cjs/services/CollabService.js +743 -0
  9. package/dist/cjs/services/DnsService.js +340 -0
  10. package/dist/cjs/services/FeatureFlagService.js +175 -0
  11. package/dist/cjs/services/FileService.js +201 -0
  12. package/dist/cjs/services/IntegrationService.js +538 -0
  13. package/dist/cjs/services/MetricsService.js +62 -0
  14. package/dist/cjs/services/PaymentService.js +271 -0
  15. package/dist/cjs/services/PlanService.js +426 -0
  16. package/dist/cjs/services/ProjectService.js +1207 -0
  17. package/dist/cjs/services/PullRequestService.js +503 -0
  18. package/dist/cjs/services/ScreenshotService.js +304 -0
  19. package/dist/cjs/services/SubscriptionService.js +396 -0
  20. package/dist/cjs/services/TrackingService.js +661 -0
  21. package/dist/cjs/services/WaitlistService.js +148 -0
  22. package/dist/cjs/services/index.js +64 -16
  23. package/dist/cjs/state/RootStateManager.js +65 -0
  24. package/dist/cjs/state/rootEventBus.js +74 -0
  25. package/dist/cjs/utils/CollabClient.js +223 -0
  26. package/dist/cjs/utils/TokenManager.js +78 -30
  27. package/dist/cjs/utils/changePreprocessor.js +199 -0
  28. package/dist/cjs/utils/jsonDiff.js +145 -0
  29. package/dist/cjs/utils/ordering.js +309 -0
  30. package/dist/cjs/utils/services.js +301 -103
  31. package/dist/cjs/utils/validation.js +0 -3
  32. package/dist/esm/config/environment.js +98 -30
  33. package/dist/esm/index.js +49505 -8718
  34. package/dist/esm/services/AdminService.js +1132 -0
  35. package/dist/esm/services/AuthService.js +1493 -386
  36. package/dist/esm/services/BaseService.js +757 -6
  37. package/dist/esm/services/BranchService.js +1265 -0
  38. package/dist/esm/services/CollabService.js +26895 -0
  39. package/dist/esm/services/DnsService.js +1121 -0
  40. package/dist/esm/services/FeatureFlagService.js +956 -0
  41. package/dist/esm/services/FileService.js +982 -0
  42. package/dist/esm/services/IntegrationService.js +1319 -0
  43. package/dist/esm/services/MetricsService.js +843 -0
  44. package/dist/esm/services/PaymentService.js +1052 -0
  45. package/dist/esm/services/PlanService.js +1207 -0
  46. package/dist/esm/services/ProjectService.js +2526 -0
  47. package/dist/esm/services/PullRequestService.js +1284 -0
  48. package/dist/esm/services/ScreenshotService.js +1085 -0
  49. package/dist/esm/services/SubscriptionService.js +1177 -0
  50. package/dist/esm/services/TrackingService.js +18454 -0
  51. package/dist/esm/services/WaitlistService.js +929 -0
  52. package/dist/esm/services/index.js +49062 -8569
  53. package/dist/esm/state/RootStateManager.js +90 -0
  54. package/dist/esm/state/rootEventBus.js +56 -0
  55. package/dist/esm/utils/CollabClient.js +18889 -0
  56. package/dist/esm/utils/TokenManager.js +78 -30
  57. package/dist/esm/utils/changePreprocessor.js +542 -0
  58. package/dist/esm/utils/jsonDiff.js +7011 -0
  59. package/dist/esm/utils/ordering.js +291 -0
  60. package/dist/esm/utils/services.js +301 -103
  61. package/dist/esm/utils/validation.js +116 -50
  62. package/dist/node/config/environment.js +98 -30
  63. package/dist/node/index.js +175 -32
  64. package/dist/node/services/AdminService.js +332 -0
  65. package/dist/node/services/AuthService.js +742 -310
  66. package/dist/node/services/BaseService.js +148 -6
  67. package/dist/node/services/BranchService.js +465 -0
  68. package/dist/node/services/CollabService.js +724 -0
  69. package/dist/node/services/DnsService.js +321 -0
  70. package/dist/node/services/FeatureFlagService.js +156 -0
  71. package/dist/node/services/FileService.js +182 -0
  72. package/dist/node/services/IntegrationService.js +519 -0
  73. package/dist/node/services/MetricsService.js +43 -0
  74. package/dist/node/services/PaymentService.js +252 -0
  75. package/dist/node/services/PlanService.js +407 -0
  76. package/dist/node/services/ProjectService.js +1188 -0
  77. package/dist/node/services/PullRequestService.js +484 -0
  78. package/dist/node/services/ScreenshotService.js +285 -0
  79. package/dist/node/services/SubscriptionService.js +377 -0
  80. package/dist/node/services/TrackingService.js +632 -0
  81. package/dist/node/services/WaitlistService.js +129 -0
  82. package/dist/node/services/index.js +64 -16
  83. package/dist/node/state/RootStateManager.js +36 -0
  84. package/dist/node/state/rootEventBus.js +55 -0
  85. package/dist/node/utils/CollabClient.js +194 -0
  86. package/dist/node/utils/TokenManager.js +78 -30
  87. package/dist/node/utils/changePreprocessor.js +180 -0
  88. package/dist/node/utils/jsonDiff.js +116 -0
  89. package/dist/node/utils/ordering.js +290 -0
  90. package/dist/node/utils/services.js +301 -103
  91. package/dist/node/utils/validation.js +0 -3
  92. package/package.json +39 -21
  93. package/src/config/environment.js +99 -28
  94. package/src/index.js +181 -36
  95. package/src/services/AdminService.js +374 -0
  96. package/src/services/AuthService.js +874 -328
  97. package/src/services/BaseService.js +166 -6
  98. package/src/services/BranchService.js +536 -0
  99. package/src/services/CollabService.js +900 -0
  100. package/src/services/DnsService.js +366 -0
  101. package/src/services/FeatureFlagService.js +174 -0
  102. package/src/services/FileService.js +213 -0
  103. package/src/services/IntegrationService.js +548 -0
  104. package/src/services/MetricsService.js +40 -0
  105. package/src/services/PaymentService.js +287 -0
  106. package/src/services/PlanService.js +468 -0
  107. package/src/services/ProjectService.js +1366 -0
  108. package/src/services/PullRequestService.js +537 -0
  109. package/src/services/ScreenshotService.js +258 -0
  110. package/src/services/SubscriptionService.js +425 -0
  111. package/src/services/TrackingService.js +853 -0
  112. package/src/services/WaitlistService.js +130 -0
  113. package/src/services/index.js +80 -13
  114. package/src/services/tests/BranchService/createBranch.test.js +153 -0
  115. package/src/services/tests/BranchService/deleteBranch.test.js +173 -0
  116. package/src/services/tests/BranchService/getBranchChanges.test.js +146 -0
  117. package/src/services/tests/BranchService/listBranches.test.js +87 -0
  118. package/src/services/tests/BranchService/mergeBranch.test.js +210 -0
  119. package/src/services/tests/BranchService/publishVersion.test.js +183 -0
  120. package/src/services/tests/BranchService/renameBranch.test.js +240 -0
  121. package/src/services/tests/BranchService/resetBranch.test.js +152 -0
  122. package/src/services/tests/FeatureFlagService/adminFeatureFlags.test.js +67 -0
  123. package/src/services/tests/FeatureFlagService/getFeatureFlags.test.js +75 -0
  124. package/src/services/tests/FileService/createFileFormData.test.js +74 -0
  125. package/src/services/tests/FileService/getFileUrl.test.js +69 -0
  126. package/src/services/tests/FileService/updateProjectIcon.test.js +109 -0
  127. package/src/services/tests/FileService/uploadDocument.test.js +36 -0
  128. package/src/services/tests/FileService/uploadFile.test.js +78 -0
  129. package/src/services/tests/FileService/uploadFileWithValidation.test.js +114 -0
  130. package/src/services/tests/FileService/uploadImage.test.js +36 -0
  131. package/src/services/tests/FileService/uploadMultipleFiles.test.js +111 -0
  132. package/src/services/tests/FileService/validateFile.test.js +63 -0
  133. package/src/services/tests/PlanService/createPlan.test.js +104 -0
  134. package/src/services/tests/PlanService/createPlanWithValidation.test.js +523 -0
  135. package/src/services/tests/PlanService/deletePlan.test.js +92 -0
  136. package/src/services/tests/PlanService/getActivePlans.test.js +123 -0
  137. package/src/services/tests/PlanService/getAdminPlans.test.js +84 -0
  138. package/src/services/tests/PlanService/getPlan.test.js +50 -0
  139. package/src/services/tests/PlanService/getPlanByKey.test.js +109 -0
  140. package/src/services/tests/PlanService/getPlanWithValidation.test.js +85 -0
  141. package/src/services/tests/PlanService/getPlans.test.js +53 -0
  142. package/src/services/tests/PlanService/getPlansByPriceRange.test.js +109 -0
  143. package/src/services/tests/PlanService/getPlansWithValidation.test.js +48 -0
  144. package/src/services/tests/PlanService/initializePlans.test.js +75 -0
  145. package/src/services/tests/PlanService/updatePlan.test.js +111 -0
  146. package/src/services/tests/PlanService/updatePlanWithValidation.test.js +556 -0
  147. package/src/state/RootStateManager.js +76 -0
  148. package/src/state/rootEventBus.js +67 -0
  149. package/src/utils/CollabClient.js +248 -0
  150. package/src/utils/TokenManager.js +88 -33
  151. package/src/utils/changePreprocessor.js +239 -0
  152. package/src/utils/jsonDiff.js +144 -0
  153. package/src/utils/ordering.js +271 -0
  154. package/src/utils/services.js +326 -107
  155. package/src/utils/validation.js +0 -3
  156. package/dist/cjs/services/AIService.js +0 -155
  157. package/dist/cjs/services/BasedService.js +0 -1185
  158. package/dist/cjs/services/CoreService.js +0 -1751
  159. package/dist/cjs/services/SocketIOService.js +0 -307
  160. package/dist/cjs/services/SocketService.js +0 -161
  161. package/dist/cjs/services/SymstoryService.js +0 -571
  162. package/dist/cjs/utils/basedQuerys.js +0 -181
  163. package/dist/cjs/utils/symstoryClient.js +0 -259
  164. package/dist/esm/services/AIService.js +0 -185
  165. package/dist/esm/services/BasedService.js +0 -5278
  166. package/dist/esm/services/CoreService.js +0 -2264
  167. package/dist/esm/services/SocketIOService.js +0 -470
  168. package/dist/esm/services/SocketService.js +0 -191
  169. package/dist/esm/services/SymstoryService.js +0 -7041
  170. package/dist/esm/utils/basedQuerys.js +0 -163
  171. package/dist/esm/utils/symstoryClient.js +0 -370
  172. package/dist/node/services/AIService.js +0 -136
  173. package/dist/node/services/BasedService.js +0 -1156
  174. package/dist/node/services/CoreService.js +0 -1722
  175. package/dist/node/services/SocketIOService.js +0 -278
  176. package/dist/node/services/SocketService.js +0 -142
  177. package/dist/node/services/SymstoryService.js +0 -542
  178. package/dist/node/utils/basedQuerys.js +0 -162
  179. package/dist/node/utils/symstoryClient.js +0 -230
  180. package/src/services/AIService.js +0 -150
  181. package/src/services/BasedService.js +0 -1301
  182. package/src/services/CoreService.js +0 -1943
  183. package/src/services/SocketIOService.js +0 -334
  184. package/src/services/SocketService.js +0 -168
  185. package/src/services/SymstoryService.js +0 -649
  186. package/src/utils/basedQuerys.js +0 -164
  187. package/src/utils/symstoryClient.js +0 -252
@@ -21,112 +21,310 @@ __export(services_exports, {
21
21
  });
22
22
  module.exports = __toCommonJS(services_exports);
23
23
  const SERVICE_METHODS = {
24
- // Auth service methods (legacy - keeping for backward compatibility)
25
- auth: "auth",
26
- login: "auth",
24
+ hasPermission: "auth",
25
+ hasGlobalPermission: "auth",
26
+ // Collab service methods
27
+ connect: "collab",
28
+ disconnect: "collab",
29
+ isConnected: "collab",
30
+ updateData: "collab",
31
+ addItem: "collab",
32
+ addMultipleItems: "collab",
33
+ updateItem: "collab",
34
+ deleteItem: "collab",
35
+ undo: "collab",
36
+ redo: "collab",
37
+ checkpoint: "collab",
38
+ // Realtime collaboration helper methods
39
+ sendCursor: "collab",
40
+ sendPresence: "collab",
41
+ toggleLive: "collab",
42
+ // Core service methods (new - replaces most based/auth functionality)
43
+ // Auth methods
44
+ getStoredAuthState: "auth",
45
+ getAuthToken: "auth",
27
46
  register: "auth",
47
+ login: "auth",
48
+ logout: "auth",
49
+ refreshToken: "auth",
28
50
  googleAuth: "auth",
29
51
  googleAuthCallback: "auth",
30
52
  githubAuth: "auth",
53
+ requestPasswordReset: "auth",
54
+ confirmPasswordReset: "auth",
31
55
  confirmRegistration: "auth",
32
- logout: "auth",
33
- updateUserRole: "auth",
34
- hasPermission: "auth",
35
- hasGlobalPermission: "auth",
36
- getProjectMembers: "auth",
37
- inviteMember: "auth",
38
- acceptInvite: "auth",
39
- updateMemberRole: "auth",
40
- removeMember: "auth",
41
- updateProjectTier: "auth",
42
- subscribeToAuthChanges: "auth",
43
- getStoredAuthState: "core",
44
- // AI service methods
45
- prompt: "ai",
46
- // Based service methods
47
- query: "based",
48
- setProject: "based",
49
- setUser: "based",
50
- setUserForced: "based",
51
- subscribe: "based",
52
- call: "based",
53
- getProject: "based",
54
- getProjectByKey: "based",
55
- createProject: "based",
56
- fetchUser: "based",
57
- fetchProject: "based",
58
- setBucket: "based",
59
- getUser: "based",
60
- getUserByEmail: "based",
61
- setProjectDomains: "based",
62
- checkProjectKeyAvailability: "based",
63
- removeProject: "based",
64
- getAvailableLibraries: "based",
65
- addProjectLibraries: "based",
66
- removeProjectLibraries: "based",
67
- getProjectLibraries: "based",
68
- checkout: "based",
69
- uploadFile: "based",
70
- updateProjectIcon: "based",
71
- updateProject: "based",
72
- updateProjectSettings: "based",
73
- updateProjectComponents: "based",
74
- updateProjectName: "based",
75
- updateProjectPackage: "based",
76
- createDnsRecord: "based",
77
- getDnsRecord: "based",
78
- removeDnsRecord: "based",
79
- createStorageBucket: "based",
80
- getStorageBucket: "based",
81
- removeStorageBucket: "based",
82
- requestPasswordChange: "based",
83
- confirmPasswordChange: "based",
84
- updateUserProfile: "based",
85
- duplicateProject: "based",
86
- listPlans: "based",
87
- subscribeToPlan: "based",
88
- getSubscriptionDetails: "based",
89
- checkSubscriptionStatus: "based",
90
- upgradeSubscription: "based",
91
- downgradeSubscription: "based",
92
- cancelSubscription: "based",
93
- reactivateSubscription: "based",
94
- generateInvoice: "based",
95
- getUsageReport: "based",
96
- inviteAccountOwner: "based",
97
- acceptOwnerInvitation: "based",
98
- removeAccountOwner: "based",
99
- checkResourceLimit: "based",
100
- checkFeatureAccess: "based",
101
- getUserFeatures: "based",
102
- getAvailableFeatures: "based",
103
- listFeatureFlags: "based",
104
- updateFeatureFlag: "based",
105
- removeFeatureFlag: "based",
106
- batchUpdateFeatureFlags: "based",
107
- updatePlanDetails: "based",
108
- updatePlanStatus: "based",
109
- // Symstory service methods
110
- set: "symstory",
111
- getData: "symstory",
112
- updateData: "symstory",
113
- getBranches: "symstory",
114
- editBranch: "symstory",
115
- restoreVersion: "symstory",
116
- getItem: "symstory",
117
- addItem: "symstory",
118
- addMultipleItems: "symstory",
119
- updateItem: "symstory",
120
- deleteItem: "symstory",
121
- switchVersion: "symstory",
122
- switchBranch: "symstory",
123
- undo: "symstory",
124
- redo: "symstory",
125
- publish: "symstory",
126
- getChanges: "symstory",
127
- // Socket service methods
128
- send: "socket",
129
- subscribeChannel: "socket",
130
- connect: "socket",
131
- reconnect: "socket"
56
+ requestPasswordChange: "auth",
57
+ confirmPasswordChange: "auth",
58
+ getMe: "auth",
59
+ getTokenDebugInfo: "auth",
60
+ getMyProjectRoleByKey: "auth",
61
+ getProjectRoleWithFallback: "auth",
62
+ getProjectRoleByKeyWithFallback: "auth",
63
+ // User methods
64
+ getUserProfile: "auth",
65
+ updateUserProfile: "auth",
66
+ getUserProjects: "auth",
67
+ getUser: "auth",
68
+ getUserByEmail: "auth",
69
+ // Project methods (moved to project service)
70
+ createProject: "project",
71
+ getProjects: "project",
72
+ getProject: "project",
73
+ getProjectByKey: "project",
74
+ getProjectDataByKey: "project",
75
+ getPublicProject: "project",
76
+ listPublicProjects: "project",
77
+ listProjects: "project",
78
+ updateProject: "project",
79
+ updateProjectComponents: "project",
80
+ updateProjectSettings: "project",
81
+ updateProjectName: "project",
82
+ updateProjectPackage: "project",
83
+ duplicateProject: "project",
84
+ removeProject: "project",
85
+ checkProjectKeyAvailability: "project",
86
+ getProjectRolePermissionsConfig: "project",
87
+ updateProjectRolePermissionsConfig: "project",
88
+ listEnvironments: "project",
89
+ activateMultipleEnvironments: "project",
90
+ upsertEnvironment: "project",
91
+ updateEnvironment: "project",
92
+ publishToEnvironment: "project",
93
+ deleteEnvironment: "project",
94
+ promoteEnvironment: "project",
95
+ // Project member methods (moved to project service)
96
+ getProjectMembers: "project",
97
+ inviteMember: "project",
98
+ acceptInvite: "project",
99
+ createMagicInviteLink: "project",
100
+ updateMemberRole: "project",
101
+ removeMember: "project",
102
+ // Project library methods (moved to project service)
103
+ getAvailableLibraries: "project",
104
+ getProjectLibraries: "project",
105
+ addProjectLibraries: "project",
106
+ removeProjectLibraries: "project",
107
+ // Project data methods (moved to project service)
108
+ applyProjectChanges: "project",
109
+ getProjectData: "project",
110
+ getProjectVersions: "project",
111
+ restoreProjectVersion: "project",
112
+ updateProjectItem: "project",
113
+ deleteProjectItem: "project",
114
+ setProjectValue: "project",
115
+ addProjectItems: "project",
116
+ getProjectItemByPath: "project",
117
+ setProjectAccess: "project",
118
+ setProjectVisibility: "project",
119
+ // Favorite project methods (moved to project service)
120
+ getFavoriteProjects: "project",
121
+ addFavoriteProject: "project",
122
+ removeFavoriteProject: "project",
123
+ // Recent project methods (moved to project service)
124
+ getRecentProjects: "project",
125
+ // Plan methods (moved to plan service)
126
+ getPlans: "plan",
127
+ getPlan: "plan",
128
+ getAdminPlans: "plan",
129
+ createPlan: "plan",
130
+ updatePlan: "plan",
131
+ deletePlan: "plan",
132
+ initializePlans: "plan",
133
+ getPlansWithValidation: "plan",
134
+ getPlanWithValidation: "plan",
135
+ createPlanWithValidation: "plan",
136
+ updatePlanWithValidation: "plan",
137
+ getActivePlans: "plan",
138
+ getPlansByPriceRange: "plan",
139
+ getPlanByKey: "plan",
140
+ getPlansWithPricing: "plan",
141
+ // Subscription methods (moved to subscription service)
142
+ createSubscription: "subscription",
143
+ getProjectStatus: "subscription",
144
+ getUsage: "subscription",
145
+ cancelSubscription: "subscription",
146
+ listInvoices: "subscription",
147
+ getPortalUrl: "subscription",
148
+ createSubscriptionWithValidation: "subscription",
149
+ hasActiveSubscription: "subscription",
150
+ getProjectSubscription: "subscription",
151
+ getProjectUsage: "subscription",
152
+ getInvoicesWithPagination: "subscription",
153
+ isSubscriptionActive: "subscription",
154
+ getSubscriptionLimits: "subscription",
155
+ changeSubscription: "subscription",
156
+ downgrade: "subscription",
157
+ changeSubscriptionWithValidation: "subscription",
158
+ downgradeWithValidation: "subscription",
159
+ // File methods (moved to file service)
160
+ uploadFile: "file",
161
+ updateProjectIcon: "file",
162
+ uploadFileWithValidation: "file",
163
+ uploadImage: "file",
164
+ uploadDocument: "file",
165
+ getFileUrl: "file",
166
+ validateFile: "file",
167
+ createFileFormData: "file",
168
+ uploadMultipleFiles: "file",
169
+ // Payment methods (Use subscription service instead)
170
+ checkout: "payment",
171
+ getSubscriptionStatus: "payment",
172
+ checkoutWithValidation: "payment",
173
+ getSubscriptionStatusWithValidation: "payment",
174
+ getSubscriptionDetails: "payment",
175
+ checkoutForPlan: "payment",
176
+ checkoutForTeam: "payment",
177
+ validateSubscriptionStatus: "payment",
178
+ formatSubscriptionAmount: "payment",
179
+ getSubscriptionSummary: "payment",
180
+ // DNS methods (moved to dns service)
181
+ createDnsRecord: "dns",
182
+ getDnsRecord: "dns",
183
+ removeDnsRecord: "dns",
184
+ getCustomHost: "dns",
185
+ addProjectCustomDomains: "dns",
186
+ validateDomain: "dns",
187
+ createDnsRecordWithValidation: "dns",
188
+ getDnsRecordWithValidation: "dns",
189
+ removeDnsRecordWithValidation: "dns",
190
+ addProjectCustomDomainsWithValidation: "dns",
191
+ isDomainAvailable: "dns",
192
+ getDomainStatus: "dns",
193
+ verifyDomainOwnership: "dns",
194
+ getProjectDomains: "dns",
195
+ removeProjectCustomDomain: "dns",
196
+ formatDomain: "dns",
197
+ extractDomainFromUrl: "dns",
198
+ // Branch Management methods (moved to branch service)
199
+ listBranches: "branch",
200
+ createBranch: "branch",
201
+ deleteBranch: "branch",
202
+ renameBranch: "branch",
203
+ getBranchChanges: "branch",
204
+ mergeBranch: "branch",
205
+ resetBranch: "branch",
206
+ publishVersion: "branch",
207
+ createBranchWithValidation: "branch",
208
+ branchExists: "branch",
209
+ previewMerge: "branch",
210
+ commitMerge: "branch",
211
+ createFeatureBranch: "branch",
212
+ createHotfixBranch: "branch",
213
+ getBranchStatus: "branch",
214
+ deleteBranchSafely: "branch",
215
+ getBranchesWithStatus: "branch",
216
+ validateBranchName: "branch",
217
+ sanitizeBranchName: "branch",
218
+ // Pull Request methods (moved to pullRequest service)
219
+ createPullRequest: "pullRequest",
220
+ listPullRequests: "pullRequest",
221
+ getPullRequest: "pullRequest",
222
+ reviewPullRequest: "pullRequest",
223
+ addPullRequestComment: "pullRequest",
224
+ mergePullRequest: "pullRequest",
225
+ getPullRequestDiff: "pullRequest",
226
+ createPullRequestWithValidation: "pullRequest",
227
+ approvePullRequest: "pullRequest",
228
+ requestPullRequestChanges: "pullRequest",
229
+ getOpenPullRequests: "pullRequest",
230
+ getClosedPullRequests: "pullRequest",
231
+ getMergedPullRequests: "pullRequest",
232
+ isPullRequestMergeable: "pullRequest",
233
+ getPullRequestStatusSummary: "pullRequest",
234
+ validatePullRequestData: "pullRequest",
235
+ validateReviewData: "pullRequest",
236
+ getPullRequestStats: "pullRequest",
237
+ closePullRequest: "pullRequest",
238
+ reopenPullRequest: "pullRequest",
239
+ // Admin methods (moved to admin service)
240
+ getAdminUsers: "admin",
241
+ assignProjectsToUser: "admin",
242
+ updateUser: "admin",
243
+ searchAdminUsers: "admin",
244
+ getAdminUsersByEmails: "admin",
245
+ getAdminUsersByIds: "admin",
246
+ assignSpecificProjectsToUser: "admin",
247
+ assignAllProjectsToUser: "admin",
248
+ validateUserData: "admin",
249
+ updateUserWithValidation: "admin",
250
+ getUserStats: "admin",
251
+ bulkUpdateUsers: "admin",
252
+ getUsersByRole: "admin",
253
+ getUsersByStatus: "admin",
254
+ activateUser: "admin",
255
+ deactivateUser: "admin",
256
+ suspendUser: "admin",
257
+ promoteToAdmin: "admin",
258
+ demoteFromAdmin: "admin",
259
+ // Screenshot methods
260
+ createScreenshotProject: "screenshot",
261
+ getProjectScreenshots: "screenshot",
262
+ reprocessProjectScreenshots: "screenshot",
263
+ recreateProjectScreenshots: "screenshot",
264
+ deleteProjectScreenshots: "screenshot",
265
+ getThumbnailCandidate: "screenshot",
266
+ updateProjectThumbnail: "screenshot",
267
+ getPageScreenshot: "screenshot",
268
+ getComponentScreenshot: "screenshot",
269
+ getScreenshotByKey: "screenshot",
270
+ getQueueStatistics: "screenshot",
271
+ refreshThumbnail: "screenshot",
272
+ // Tracking methods
273
+ configureTracking: "tracking",
274
+ trackEvent: "tracking",
275
+ trackError: "tracking",
276
+ captureException: "tracking",
277
+ logMessage: "tracking",
278
+ logDebug: "tracking",
279
+ logInfo: "tracking",
280
+ logWarning: "tracking",
281
+ logWarn: "tracking",
282
+ logErrorMessage: "tracking",
283
+ logError: "tracking",
284
+ addBreadcrumb: "tracking",
285
+ trackMeasurement: "tracking",
286
+ trackView: "tracking",
287
+ setUser: "tracking",
288
+ clearUser: "tracking",
289
+ setSession: "tracking",
290
+ clearSession: "tracking",
291
+ setGlobalAttributes: "tracking",
292
+ setGlobalAttribute: "tracking",
293
+ removeGlobalAttribute: "tracking",
294
+ flushQueue: "tracking",
295
+ getClient: "tracking",
296
+ isEnabled: "tracking",
297
+ isInitialized: "tracking",
298
+ // Waitlist methods
299
+ joinWaitlist: "waitlist",
300
+ listWaitlistEntries: "waitlist",
301
+ updateWaitlistEntry: "waitlist",
302
+ inviteWaitlistEntry: "waitlist",
303
+ // Metrics methods
304
+ getContributions: "metrics",
305
+ // Integration methods
306
+ integrationWhoami: "integration",
307
+ listIntegrations: "integration",
308
+ createIntegration: "integration",
309
+ updateIntegration: "integration",
310
+ createIntegrationApiKey: "integration",
311
+ listIntegrationApiKeys: "integration",
312
+ revokeIntegrationApiKey: "integration",
313
+ createIntegrationWebhook: "integration",
314
+ listIntegrationWebhooks: "integration",
315
+ updateIntegrationWebhook: "integration",
316
+ deleteIntegrationWebhook: "integration",
317
+ listIntegrationWebhookDeliveries: "integration",
318
+ replayIntegrationWebhookDelivery: "integration",
319
+ listGitHubConnectors: "integration",
320
+ createGitHubConnector: "integration",
321
+ updateGitHubConnector: "integration",
322
+ deleteGitHubConnector: "integration",
323
+ // Feature flag methods (system-level + experiments)
324
+ getFeatureFlags: "featureFlag",
325
+ getFeatureFlag: "featureFlag",
326
+ getAdminFeatureFlags: "featureFlag",
327
+ createFeatureFlag: "featureFlag",
328
+ updateFeatureFlag: "featureFlag",
329
+ archiveFeatureFlag: "featureFlag"
132
330
  };
@@ -184,9 +184,6 @@ const validateParams = {
184
184
  if (!data.key) {
185
185
  throw new Error("Data must contain a key property");
186
186
  }
187
- if (!data.value) {
188
- throw new Error("Data must contain a value property");
189
- }
190
187
  if (CODE_TYPES.includes(type)) {
191
188
  if (RESERVED_KEYWORDS.includes(data.key)) {
192
189
  throw new Error(
@@ -8,18 +8,16 @@ var CONFIG = {
8
8
  // Feature toggles that apply across all environments by default
9
9
  features: {
10
10
  newUserOnboarding: true,
11
- betaFeatures: false
11
+ betaFeatures: false,
12
+ // Tracking is enabled by default unless overridden per environment
13
+ trackingEnabled: true
12
14
  }
13
15
  },
14
16
  // Environment-specific configurations
15
17
  local: {
16
18
  // local
17
- baseUrl: "http://localhost:8080",
18
- // For symstory api
19
19
  socketUrl: "http://localhost:8080",
20
20
  // For socket api
21
- routerUrl: "http://localhost:8080",
22
- // For router api
23
21
  apiUrl: "http://localhost:8080",
24
22
  // For server api
25
23
  basedEnv: "development",
@@ -28,53 +26,115 @@ var CONFIG = {
28
26
  // For based api
29
27
  basedOrg: "symbols",
30
28
  // For based api
31
- githubClientId: "Ov23liHxyWFBxS8f1gnF",
29
+ githubClientId: "Ov23liAFrsR0StbAO6PO",
32
30
  // For github api
31
+ grafanaUrl: "",
32
+ // For grafana tracing
33
+ grafanaAppName: "Symbols Localhost",
33
34
  // Environment-specific feature toggles (override common)
34
35
  features: {
35
- betaFeatures: true
36
+ // Disable tracking by default on localhost/dev machines
37
+ trackingEnabled: false,
36
38
  // Enable beta features in local dev
37
- }
39
+ betaFeatures: true,
40
+ // Preserve common defaults explicitly for local
41
+ newUserOnboarding: true
42
+ },
43
+ typesenseCollectionName: "docs",
44
+ typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
45
+ typesenseHost: "localhost",
46
+ typesensePort: "8108",
47
+ typesenseProtocol: "http"
38
48
  },
39
49
  development: {
40
- baseUrl: "https://dev.api.symbols.app",
41
50
  socketUrl: "https://dev.api.symbols.app",
42
- routerUrl: "https://dev.api.symbols.app",
43
51
  apiUrl: "https://dev.api.symbols.app",
44
- basedEnv: "development",
45
- basedProject: "platform-v2-sm",
46
- basedOrg: "symbols",
47
- githubClientId: "Ov23liHxyWFBxS8f1gnF"
52
+ githubClientId: "Ov23liHxyWFBxS8f1gnF",
53
+ grafanaUrl: "https://faro-collector-prod-us-east-0.grafana.net/collect/7a3ba473cee2025c68513667024316b8",
54
+ // For grafana tracing
55
+ grafanaAppName: "Symbols Dev",
56
+ typesenseCollectionName: "docs",
57
+ typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
58
+ typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
59
+ typesensePort: "443",
60
+ typesenseProtocol: "https"
48
61
  },
49
62
  testing: {
50
- baseUrl: "https://test.api.symbols.app",
51
63
  socketUrl: "https://test.api.symbols.app",
52
- routerUrl: "https://test.api.symbols.app",
53
64
  apiUrl: "https://test.api.symbols.app",
54
65
  basedEnv: "testing",
55
66
  basedProject: "platform-v2-sm",
56
67
  basedOrg: "symbols",
57
- githubClientId: "Ov23liHxyWFBxS8f1gnF"
68
+ githubClientId: "Ov23liHxyWFBxS8f1gnF",
69
+ grafanaUrl: "",
70
+ // For grafana tracing
71
+ grafanaAppName: "Symbols Test",
72
+ typesenseCollectionName: "docs",
73
+ typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
74
+ typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
75
+ typesensePort: "443",
76
+ typesenseProtocol: "https"
77
+ },
78
+ upcoming: {
79
+ socketUrl: "https://upcoming.api.symbols.app",
80
+ apiUrl: "https://upcoming.api.symbols.app",
81
+ githubClientId: "Ov23liWF7NvdZ056RV5J",
82
+ grafanaUrl: "",
83
+ // For grafana tracing
84
+ grafanaAppName: "Symbols Upcoming",
85
+ typesenseCollectionName: "docs",
86
+ typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
87
+ typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
88
+ typesensePort: "443",
89
+ typesenseProtocol: "https"
58
90
  },
59
91
  staging: {
60
- baseUrl: "https://staging.api.symbols.app",
61
92
  socketUrl: "https://staging.api.symbols.app",
62
- routerUrl: "https://staging.api.symbols.app",
63
93
  apiUrl: "https://staging.api.symbols.app",
64
94
  basedEnv: "staging",
65
95
  basedProject: "platform-v2-sm",
66
96
  basedOrg: "symbols",
67
- githubClientId: "Ov23ligwZDQVD0VfuWNa"
97
+ githubClientId: "Ov23ligwZDQVD0VfuWNa",
98
+ grafanaUrl: "",
99
+ // For grafana tracing
100
+ grafanaAppName: "Symbols Staging",
101
+ typesenseCollectionName: "docs",
102
+ typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
103
+ typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
104
+ typesensePort: "443",
105
+ typesenseProtocol: "https"
106
+ },
107
+ preview: {
108
+ socketUrl: "https://api.symbols.app",
109
+ apiUrl: "https://api.symbols.app",
110
+ basedEnv: "production",
111
+ basedProject: "platform-v2-sm",
112
+ basedOrg: "symbols",
113
+ githubClientId: "Ov23liFAlOEIXtX3dBtR",
114
+ grafanaUrl: "https://faro-collector-prod-us-east-0.grafana.net/collect/5c1089f3c3eea4ec5658e05c3f53baae",
115
+ // For grafana tracing
116
+ grafanaAppName: "Symbols Preview",
117
+ typesenseCollectionName: "docs",
118
+ typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
119
+ typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
120
+ typesensePort: "443",
121
+ typesenseProtocol: "https"
68
122
  },
69
123
  production: {
70
- baseUrl: "https://api.symbols.app",
71
124
  socketUrl: "https://api.symbols.app",
72
- routerUrl: "https://api.symbols.app",
73
125
  apiUrl: "https://api.symbols.app",
74
126
  basedEnv: "production",
75
127
  basedProject: "platform-v2-sm",
76
128
  basedOrg: "symbols",
77
- githubClientId: "Ov23liFAlOEIXtX3dBtR"
129
+ githubClientId: "Ov23liFAlOEIXtX3dBtR",
130
+ grafanaUrl: "https://faro-collector-prod-us-east-0.grafana.net/collect/5c1089f3c3eea4ec5658e05c3f53baae",
131
+ // For grafana tracing
132
+ grafanaAppName: "Symbols",
133
+ typesenseCollectionName: "docs",
134
+ typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
135
+ typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
136
+ typesensePort: "443",
137
+ typesenseProtocol: "https"
78
138
  }
79
139
  };
80
140
  var getEnvironment = () => {
@@ -90,27 +150,33 @@ var getConfig = () => {
90
150
  const envConfig = { ...CONFIG.common, ...CONFIG[env] };
91
151
  const finalConfig = {
92
152
  ...envConfig,
93
- baseUrl: process.env.SYMBOLS_APP_BASE_URL || envConfig.baseUrl,
153
+ // Deep-merge feature flags so env-specific overrides don't drop common defaults
154
+ features: {
155
+ ...CONFIG.common.features || {},
156
+ ...CONFIG[env] && CONFIG[env].features || {}
157
+ },
94
158
  socketUrl: process.env.SYMBOLS_APP_SOCKET_URL || envConfig.socketUrl,
95
- routerUrl: process.env.SYMBOLS_APP_ROUTER_URL || envConfig.routerUrl,
96
159
  apiUrl: process.env.SYMBOLS_APP_API_URL || envConfig.apiUrl,
97
160
  basedEnv: process.env.SYMBOLS_APP_BASED_ENV || envConfig.basedEnv,
98
161
  basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
99
162
  basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
100
163
  githubClientId: process.env.SYMBOLS_APP_GITHUB_CLIENT_ID || envConfig.githubClientId,
164
+ grafanaUrl: process.env.SYMBOLS_APP_GRAFANA_URL || envConfig.grafanaUrl,
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,
101
170
  isDevelopment: isDevelopment(env),
102
171
  isTesting: env === "testing",
103
172
  isStaging: env === "staging",
173
+ isPreview: env === "preview",
104
174
  isProduction: env === "production"
105
175
  // Store all environment variables for potential future use
106
176
  };
107
177
  const requiredFields = [
108
- "baseUrl",
109
178
  "socketUrl",
110
179
  "apiUrl",
111
- "basedEnv",
112
- "basedProject",
113
- "basedOrg",
114
180
  "githubClientId",
115
181
  "googleClientId"
116
182
  ];
@@ -121,11 +187,13 @@ var getConfig = () => {
121
187
  );
122
188
  }
123
189
  if (finalConfig.isDevelopment) {
124
- console.log(
190
+ console.warn(
125
191
  "environment in SDK:",
126
192
  env || process.env.NODE_ENV || process.env.NODE_ENV
127
193
  );
128
194
  console.log(finalConfig);
195
+ } else if (global.window) {
196
+ global.window.finalConfig = finalConfig;
129
197
  }
130
198
  return finalConfig;
131
199
  } catch (error) {