@symbo.ls/sdk 2.34.35 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +2 -143
  2. package/dist/cjs/config/environment.js +30 -98
  3. package/dist/cjs/index.js +24 -144
  4. package/dist/cjs/services/AIService.js +155 -0
  5. package/dist/cjs/services/AuthService.js +305 -738
  6. package/dist/cjs/services/BaseService.js +6 -158
  7. package/dist/cjs/services/BasedService.js +1185 -0
  8. package/dist/cjs/services/CoreService.js +1751 -0
  9. package/dist/cjs/services/SocketIOService.js +307 -0
  10. package/dist/cjs/services/SocketService.js +161 -0
  11. package/dist/cjs/services/SymstoryService.js +571 -0
  12. package/dist/cjs/services/index.js +16 -64
  13. package/dist/cjs/utils/TokenManager.js +30 -78
  14. package/dist/cjs/utils/basedQuerys.js +181 -0
  15. package/dist/cjs/utils/services.js +103 -301
  16. package/dist/cjs/utils/symstoryClient.js +259 -0
  17. package/dist/cjs/utils/validation.js +3 -0
  18. package/dist/esm/config/environment.js +30 -98
  19. package/dist/esm/index.js +8797 -49416
  20. package/dist/esm/services/AIService.js +185 -0
  21. package/dist/esm/services/AuthService.js +386 -1493
  22. package/dist/esm/services/BaseService.js +6 -757
  23. package/dist/esm/services/BasedService.js +5278 -0
  24. package/dist/esm/services/CoreService.js +2264 -0
  25. package/dist/esm/services/SocketIOService.js +470 -0
  26. package/dist/esm/services/SocketService.js +191 -0
  27. package/dist/esm/services/SymstoryService.js +7041 -0
  28. package/dist/esm/services/index.js +8690 -49015
  29. package/dist/esm/utils/TokenManager.js +30 -78
  30. package/dist/esm/utils/basedQuerys.js +163 -0
  31. package/dist/esm/utils/services.js +103 -301
  32. package/dist/esm/utils/symstoryClient.js +370 -0
  33. package/dist/esm/utils/validation.js +7 -4
  34. package/dist/node/config/environment.js +30 -98
  35. package/dist/node/index.js +32 -175
  36. package/dist/node/services/AIService.js +136 -0
  37. package/dist/node/services/AuthService.js +310 -742
  38. package/dist/node/services/BaseService.js +6 -148
  39. package/dist/node/services/BasedService.js +1156 -0
  40. package/dist/node/services/CoreService.js +1722 -0
  41. package/dist/node/services/SocketIOService.js +278 -0
  42. package/dist/node/services/SocketService.js +142 -0
  43. package/dist/node/services/SymstoryService.js +542 -0
  44. package/dist/node/services/index.js +16 -64
  45. package/dist/node/utils/TokenManager.js +30 -78
  46. package/dist/node/utils/basedQuerys.js +162 -0
  47. package/dist/node/utils/services.js +103 -301
  48. package/dist/node/utils/symstoryClient.js +230 -0
  49. package/dist/node/utils/validation.js +3 -0
  50. package/package.json +16 -35
  51. package/src/config/environment.js +28 -99
  52. package/src/index.js +36 -181
  53. package/src/services/AIService.js +150 -0
  54. package/src/services/AuthService.js +328 -874
  55. package/src/services/BaseService.js +6 -166
  56. package/src/services/BasedService.js +1301 -0
  57. package/src/services/CoreService.js +1943 -0
  58. package/src/services/SocketIOService.js +334 -0
  59. package/src/services/SocketService.js +168 -0
  60. package/src/services/SymstoryService.js +649 -0
  61. package/src/services/index.js +13 -80
  62. package/src/utils/TokenManager.js +33 -88
  63. package/src/utils/basedQuerys.js +164 -0
  64. package/src/utils/services.js +107 -326
  65. package/src/utils/symstoryClient.js +252 -0
  66. package/src/utils/validation.js +3 -0
  67. package/dist/cjs/services/AdminService.js +0 -351
  68. package/dist/cjs/services/BranchService.js +0 -484
  69. package/dist/cjs/services/CollabService.js +0 -743
  70. package/dist/cjs/services/DnsService.js +0 -340
  71. package/dist/cjs/services/FeatureFlagService.js +0 -175
  72. package/dist/cjs/services/FileService.js +0 -201
  73. package/dist/cjs/services/IntegrationService.js +0 -538
  74. package/dist/cjs/services/MetricsService.js +0 -62
  75. package/dist/cjs/services/PaymentService.js +0 -271
  76. package/dist/cjs/services/PlanService.js +0 -426
  77. package/dist/cjs/services/ProjectService.js +0 -1207
  78. package/dist/cjs/services/PullRequestService.js +0 -503
  79. package/dist/cjs/services/ScreenshotService.js +0 -304
  80. package/dist/cjs/services/SubscriptionService.js +0 -396
  81. package/dist/cjs/services/TrackingService.js +0 -661
  82. package/dist/cjs/services/WaitlistService.js +0 -148
  83. package/dist/cjs/state/RootStateManager.js +0 -65
  84. package/dist/cjs/state/rootEventBus.js +0 -74
  85. package/dist/cjs/utils/CollabClient.js +0 -223
  86. package/dist/cjs/utils/changePreprocessor.js +0 -199
  87. package/dist/cjs/utils/jsonDiff.js +0 -145
  88. package/dist/cjs/utils/ordering.js +0 -309
  89. package/dist/esm/services/AdminService.js +0 -1132
  90. package/dist/esm/services/BranchService.js +0 -1265
  91. package/dist/esm/services/CollabService.js +0 -26838
  92. package/dist/esm/services/DnsService.js +0 -1121
  93. package/dist/esm/services/FeatureFlagService.js +0 -956
  94. package/dist/esm/services/FileService.js +0 -982
  95. package/dist/esm/services/IntegrationService.js +0 -1319
  96. package/dist/esm/services/MetricsService.js +0 -843
  97. package/dist/esm/services/PaymentService.js +0 -1052
  98. package/dist/esm/services/PlanService.js +0 -1207
  99. package/dist/esm/services/ProjectService.js +0 -2526
  100. package/dist/esm/services/PullRequestService.js +0 -1284
  101. package/dist/esm/services/ScreenshotService.js +0 -1085
  102. package/dist/esm/services/SubscriptionService.js +0 -1177
  103. package/dist/esm/services/TrackingService.js +0 -18343
  104. package/dist/esm/services/WaitlistService.js +0 -929
  105. package/dist/esm/state/RootStateManager.js +0 -90
  106. package/dist/esm/state/rootEventBus.js +0 -56
  107. package/dist/esm/utils/CollabClient.js +0 -18901
  108. package/dist/esm/utils/changePreprocessor.js +0 -542
  109. package/dist/esm/utils/jsonDiff.js +0 -7011
  110. package/dist/esm/utils/ordering.js +0 -291
  111. package/dist/node/services/AdminService.js +0 -332
  112. package/dist/node/services/BranchService.js +0 -465
  113. package/dist/node/services/CollabService.js +0 -724
  114. package/dist/node/services/DnsService.js +0 -321
  115. package/dist/node/services/FeatureFlagService.js +0 -156
  116. package/dist/node/services/FileService.js +0 -182
  117. package/dist/node/services/IntegrationService.js +0 -519
  118. package/dist/node/services/MetricsService.js +0 -43
  119. package/dist/node/services/PaymentService.js +0 -252
  120. package/dist/node/services/PlanService.js +0 -407
  121. package/dist/node/services/ProjectService.js +0 -1188
  122. package/dist/node/services/PullRequestService.js +0 -484
  123. package/dist/node/services/ScreenshotService.js +0 -285
  124. package/dist/node/services/SubscriptionService.js +0 -377
  125. package/dist/node/services/TrackingService.js +0 -632
  126. package/dist/node/services/WaitlistService.js +0 -129
  127. package/dist/node/state/RootStateManager.js +0 -36
  128. package/dist/node/state/rootEventBus.js +0 -55
  129. package/dist/node/utils/CollabClient.js +0 -194
  130. package/dist/node/utils/changePreprocessor.js +0 -180
  131. package/dist/node/utils/jsonDiff.js +0 -116
  132. package/dist/node/utils/ordering.js +0 -290
  133. package/src/services/AdminService.js +0 -374
  134. package/src/services/BranchService.js +0 -536
  135. package/src/services/CollabService.js +0 -900
  136. package/src/services/DnsService.js +0 -366
  137. package/src/services/FeatureFlagService.js +0 -174
  138. package/src/services/FileService.js +0 -213
  139. package/src/services/IntegrationService.js +0 -548
  140. package/src/services/MetricsService.js +0 -40
  141. package/src/services/PaymentService.js +0 -287
  142. package/src/services/PlanService.js +0 -468
  143. package/src/services/ProjectService.js +0 -1366
  144. package/src/services/PullRequestService.js +0 -537
  145. package/src/services/ScreenshotService.js +0 -258
  146. package/src/services/SubscriptionService.js +0 -425
  147. package/src/services/TrackingService.js +0 -853
  148. package/src/services/WaitlistService.js +0 -130
  149. package/src/services/tests/BranchService/createBranch.test.js +0 -153
  150. package/src/services/tests/BranchService/deleteBranch.test.js +0 -173
  151. package/src/services/tests/BranchService/getBranchChanges.test.js +0 -146
  152. package/src/services/tests/BranchService/listBranches.test.js +0 -87
  153. package/src/services/tests/BranchService/mergeBranch.test.js +0 -210
  154. package/src/services/tests/BranchService/publishVersion.test.js +0 -183
  155. package/src/services/tests/BranchService/renameBranch.test.js +0 -240
  156. package/src/services/tests/BranchService/resetBranch.test.js +0 -152
  157. package/src/services/tests/FeatureFlagService/adminFeatureFlags.test.js +0 -67
  158. package/src/services/tests/FeatureFlagService/getFeatureFlags.test.js +0 -75
  159. package/src/services/tests/FileService/createFileFormData.test.js +0 -74
  160. package/src/services/tests/FileService/getFileUrl.test.js +0 -69
  161. package/src/services/tests/FileService/updateProjectIcon.test.js +0 -109
  162. package/src/services/tests/FileService/uploadDocument.test.js +0 -36
  163. package/src/services/tests/FileService/uploadFile.test.js +0 -78
  164. package/src/services/tests/FileService/uploadFileWithValidation.test.js +0 -114
  165. package/src/services/tests/FileService/uploadImage.test.js +0 -36
  166. package/src/services/tests/FileService/uploadMultipleFiles.test.js +0 -111
  167. package/src/services/tests/FileService/validateFile.test.js +0 -63
  168. package/src/services/tests/PlanService/createPlan.test.js +0 -104
  169. package/src/services/tests/PlanService/createPlanWithValidation.test.js +0 -523
  170. package/src/services/tests/PlanService/deletePlan.test.js +0 -92
  171. package/src/services/tests/PlanService/getActivePlans.test.js +0 -123
  172. package/src/services/tests/PlanService/getAdminPlans.test.js +0 -84
  173. package/src/services/tests/PlanService/getPlan.test.js +0 -50
  174. package/src/services/tests/PlanService/getPlanByKey.test.js +0 -109
  175. package/src/services/tests/PlanService/getPlanWithValidation.test.js +0 -85
  176. package/src/services/tests/PlanService/getPlans.test.js +0 -53
  177. package/src/services/tests/PlanService/getPlansByPriceRange.test.js +0 -109
  178. package/src/services/tests/PlanService/getPlansWithValidation.test.js +0 -48
  179. package/src/services/tests/PlanService/initializePlans.test.js +0 -75
  180. package/src/services/tests/PlanService/updatePlan.test.js +0 -111
  181. package/src/services/tests/PlanService/updatePlanWithValidation.test.js +0 -556
  182. package/src/state/RootStateManager.js +0 -76
  183. package/src/state/rootEventBus.js +0 -67
  184. package/src/utils/CollabClient.js +0 -248
  185. package/src/utils/changePreprocessor.js +0 -239
  186. package/src/utils/jsonDiff.js +0 -144
  187. package/src/utils/ordering.js +0 -271
@@ -1,90 +1,23 @@
1
+ import { SymstoryService } from './SymstoryService.js'
1
2
  import { AuthService } from './AuthService.js'
2
- import { CollabService } from './CollabService.js'
3
- import { ProjectService } from './ProjectService.js'
4
- import { PlanService } from './PlanService.js'
5
- import { SubscriptionService } from './SubscriptionService.js'
6
- import { FileService } from './FileService.js'
7
- import { PaymentService } from './PaymentService.js'
8
- import { DnsService } from './DnsService.js'
9
- import { BranchService } from './BranchService.js'
10
- import { PullRequestService } from './PullRequestService.js'
11
- import { AdminService } from './AdminService.js'
12
- import { ScreenshotService } from './ScreenshotService.js'
13
- import { TrackingService } from './TrackingService.js'
14
- import { WaitlistService } from './WaitlistService.js'
15
- import { MetricsService } from './MetricsService.js'
16
- import { IntegrationService } from './IntegrationService.js'
17
- import { FeatureFlagService } from './FeatureFlagService.js'
3
+ import { AIService } from './AIService.js'
4
+ import { SocketService } from './SocketIOService.js'
5
+ import { CoreService } from './CoreService.js'
18
6
 
19
7
  const createService = (ServiceClass, config) => new ServiceClass(config)
20
8
 
21
9
  // Export service creators
22
- export const createAuthService = config => createService(AuthService, config)
23
-
24
- export const createCollabService = config =>
25
- createService(CollabService, config)
26
-
27
- export const createProjectService = config =>
28
- createService(ProjectService, config)
29
-
30
- export const createPlanService = config =>
31
- createService(PlanService, config)
32
-
33
- export const createSubscriptionService = config =>
34
- createService(SubscriptionService, config)
35
-
36
- export const createFileService = config =>
37
- createService(FileService, config)
38
-
39
- export const createPaymentService = config =>
40
- createService(PaymentService, config)
10
+ export const createSymstoryService = config =>
11
+ createService(SymstoryService, config)
41
12
 
42
- export const createDnsService = config =>
43
- createService(DnsService, config)
44
-
45
- export const createBranchService = config =>
46
- createService(BranchService, config)
47
-
48
- export const createPullRequestService = config =>
49
- createService(PullRequestService, config)
50
-
51
- export const createAdminService = config =>
52
- createService(AdminService, config)
53
-
54
- export const createScreenshotService = config =>
55
- createService(ScreenshotService, config)
56
-
57
- export const createTrackingService = config =>
58
- createService(TrackingService, config)
59
-
60
- export const createWaitlistService = config =>
61
- createService(WaitlistService, config)
13
+ export const createAuthService = config => createService(AuthService, config)
62
14
 
63
- export const createMetricsService = config =>
64
- createService(MetricsService, config)
15
+ export const createAIService = config => createService(AIService, config)
65
16
 
66
- export const createIntegrationService = config =>
67
- createService(IntegrationService, config)
17
+ export const createSocketService = config =>
18
+ createService(SocketService, config)
68
19
 
69
- export const createFeatureFlagService = config =>
70
- createService(FeatureFlagService, config)
20
+ export const createCoreService = config => createService(CoreService, config)
71
21
 
72
- export {
73
- AuthService,
74
- CollabService,
75
- ProjectService,
76
- PlanService,
77
- SubscriptionService,
78
- FileService,
79
- PaymentService,
80
- DnsService,
81
- BranchService,
82
- PullRequestService,
83
- AdminService,
84
- ScreenshotService,
85
- TrackingService,
86
- WaitlistService,
87
- MetricsService,
88
- IntegrationService,
89
- FeatureFlagService
90
- }
22
+ // Export service classes for direct usage
23
+ export { SymstoryService, AuthService, AIService, SocketService, CoreService }
@@ -6,7 +6,7 @@ export class TokenManager {
6
6
  constructor (options = {}) {
7
7
  this.config = {
8
8
  storagePrefix: 'symbols_',
9
- storageType: (typeof window === 'undefined' || process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'testing') ? 'memory' : 'localStorage', // 'localStorage' | 'sessionStorage' | 'memory'
9
+ storageType: 'localStorage', // 'localStorage' | 'sessionStorage' | 'memory'
10
10
  refreshBuffer: 60 * 1000, // Refresh 1 minute before expiry
11
11
  maxRetries: 3,
12
12
  apiUrl: options.apiUrl || '/api',
@@ -52,30 +52,13 @@ export class TokenManager {
52
52
  return this._memoryStorage
53
53
  }
54
54
 
55
- // Guard against environments where accessing storage throws (e.g., opaque origins)
56
- const safeGetStorage = (provider) => {
57
- try {
58
- const storage = provider()
59
- // Try a simple set/remove cycle to ensure it is usable
60
- const testKey = `${this.config.storagePrefix}__tm_test__`
61
- storage.setItem(testKey, '1')
62
- storage.removeItem(testKey)
63
- return storage
64
- } catch {
65
- return null
66
- }
67
- }
68
-
69
- const localStorageInstance = safeGetStorage(() => window.localStorage)
70
- const sessionStorageInstance = safeGetStorage(() => window.sessionStorage)
71
-
72
55
  switch (this.config.storageType) {
73
56
  case 'sessionStorage':
74
- return sessionStorageInstance || this._memoryStorage
57
+ return window.sessionStorage
75
58
  case 'memory':
76
59
  return this._memoryStorage
77
60
  default:
78
- return localStorageInstance || this._memoryStorage
61
+ return window.localStorage
79
62
  }
80
63
  }
81
64
 
@@ -164,28 +147,7 @@ export class TokenManager {
164
147
  if (!this.tokens.expiresAt) {return true} // No expiry info, assume valid
165
148
 
166
149
  const now = Date.now()
167
- const isValid = now < (this.tokens.expiresAt - this.config.refreshBuffer)
168
-
169
- if (!isValid) {
170
- console.log('[TokenManager] Access token is expired or near expiry:', {
171
- now: new Date(now).toISOString(),
172
- expiresAt: new Date(this.tokens.expiresAt).toISOString(),
173
- refreshBuffer: this.config.refreshBuffer
174
- })
175
- }
176
-
177
- return isValid
178
- }
179
-
180
- /**
181
- * Check if access token exists and is not expired (without refresh buffer)
182
- */
183
- isAccessTokenActuallyValid () {
184
- if (!this.tokens.accessToken) {return false}
185
- if (!this.tokens.expiresAt) {return true} // No expiry info, assume valid
186
-
187
- const now = Date.now()
188
- return now < this.tokens.expiresAt
150
+ return now < (this.tokens.expiresAt - this.config.refreshBuffer)
189
151
  }
190
152
 
191
153
  /**
@@ -341,30 +303,23 @@ export class TokenManager {
341
303
  * Save tokens to storage
342
304
  */
343
305
  saveTokens () {
344
- try {
345
- const {storage} = this
346
- const keys = this.storageKeys
347
-
348
- if (this.tokens.accessToken) {
349
- storage.setItem(keys.accessToken, this.tokens.accessToken)
350
- }
306
+ const {storage} = this
307
+ const keys = this.storageKeys
351
308
 
352
- if (this.tokens.refreshToken) {
353
- storage.setItem(keys.refreshToken, this.tokens.refreshToken)
354
- }
309
+ if (this.tokens.accessToken) {
310
+ storage.setItem(keys.accessToken, this.tokens.accessToken)
311
+ }
355
312
 
356
- if (this.tokens.expiresAt) {
357
- storage.setItem(keys.expiresAt, this.tokens.expiresAt.toString())
358
- }
313
+ if (this.tokens.refreshToken) {
314
+ storage.setItem(keys.refreshToken, this.tokens.refreshToken)
315
+ }
359
316
 
360
- if (this.tokens.expiresIn) {
361
- storage.setItem(keys.expiresIn, this.tokens.expiresIn.toString())
362
- }
317
+ if (this.tokens.expiresAt) {
318
+ storage.setItem(keys.expiresAt, this.tokens.expiresAt.toString())
319
+ }
363
320
 
364
- } catch (error) {
365
- console.error('[TokenManager] Error saving tokens to storage:', error)
366
- // Don't throw here as it would break the token setting flow
367
- // but log the error for debugging
321
+ if (this.tokens.expiresIn) {
322
+ storage.setItem(keys.expiresIn, this.tokens.expiresIn.toString())
368
323
  }
369
324
  }
370
325
 
@@ -372,35 +327,25 @@ export class TokenManager {
372
327
  * Load tokens from storage
373
328
  */
374
329
  loadTokens () {
375
- try {
376
- const {storage} = this
377
- const keys = this.storageKeys
378
-
379
- const accessToken = storage.getItem(keys.accessToken)
380
- const refreshToken = storage.getItem(keys.refreshToken)
381
- const expiresAt = storage.getItem(keys.expiresAt)
382
- const expiresIn = storage.getItem(keys.expiresIn)
383
-
384
- if (accessToken) {
385
- this.tokens = {
386
- accessToken,
387
- refreshToken,
388
- expiresAt: expiresAt ? parseInt(expiresAt, 10) : null,
389
- expiresIn: expiresIn ? parseInt(expiresIn, 10) : null,
390
- tokenType: 'Bearer'
391
- }
330
+ const {storage} = this
331
+ const keys = this.storageKeys
392
332
 
393
- // Schedule refresh for loaded tokens
394
- this.scheduleRefresh()
395
- }
396
- } catch (error) {
397
- console.error('[TokenManager] Error loading tokens from storage:', error)
333
+ const accessToken = storage.getItem(keys.accessToken)
334
+ const refreshToken = storage.getItem(keys.refreshToken)
335
+ const expiresAt = storage.getItem(keys.expiresAt)
336
+ const expiresIn = storage.getItem(keys.expiresIn)
337
+
338
+ if (accessToken) {
398
339
  this.tokens = {
399
- accessToken: null,
400
- refreshToken: null,
401
- expiresAt: null,
402
- expiresIn: null
340
+ accessToken,
341
+ refreshToken,
342
+ expiresAt: expiresAt ? parseInt(expiresAt, 10) : null,
343
+ expiresIn: expiresIn ? parseInt(expiresIn, 10) : null,
344
+ tokenType: 'Bearer'
403
345
  }
346
+
347
+ // Schedule refresh for loaded tokens
348
+ this.scheduleRefresh()
404
349
  }
405
350
  }
406
351
 
@@ -0,0 +1,164 @@
1
+ // deprecated
2
+ export const buildProjectQuery = projectId => ({
3
+ $id: projectId,
4
+ $all: true,
5
+ createdAt: true,
6
+ updatedAt: true,
7
+ package: true,
8
+ schema: true,
9
+ bucket: true,
10
+ settings: true,
11
+ tier: true,
12
+ members: {
13
+ $list: { $inherit: true },
14
+ id: true,
15
+ name: true,
16
+ username: true,
17
+ email: true,
18
+ state: true,
19
+ roles: {
20
+ $list: { $inherit: true },
21
+ $all: true
22
+ }
23
+ },
24
+ users: {
25
+ $list: { $inherit: true },
26
+ $all: true
27
+ }
28
+ })
29
+
30
+ // deprecated
31
+ export const buildUserQuery = userId => ({
32
+ $id: userId,
33
+ name: true,
34
+ username: true,
35
+ email: true,
36
+ state: true,
37
+ roles: {
38
+ $list: { $inherit: true },
39
+ $all: true
40
+ }
41
+ })
42
+
43
+ export const buildGetUserDataQuery = userId => ({
44
+ $id: userId,
45
+ id: true,
46
+ name: true,
47
+ email: true,
48
+ username: true,
49
+ globalRole: true,
50
+ updatedAt: true,
51
+ createdAt: true,
52
+ memberProjects: {
53
+ $list: true,
54
+ id: true,
55
+ role: true,
56
+ createdAt: true,
57
+ updatedAt: true,
58
+ project: {
59
+ id: true,
60
+ key: true,
61
+ name: true,
62
+ thumbnail: true,
63
+ icon: true,
64
+ tier: true,
65
+ visibility: true,
66
+ access: true,
67
+ members: {
68
+ $list: true,
69
+ user: {
70
+ id: true,
71
+ name: true,
72
+ email: true,
73
+ globalRole: true
74
+ },
75
+ role: true,
76
+ updatedAt: true,
77
+ createdAt: true
78
+ }
79
+ }
80
+ }
81
+ })
82
+
83
+ export const buildGetProjectsByKeysQuery = keys => (
84
+ {
85
+ projects: {
86
+ id: true,
87
+ key: true,
88
+ name: true,
89
+ thumbnail: true,
90
+ icon: true,
91
+ tier: true,
92
+ visibility: true,
93
+ access: true,
94
+ members: {
95
+ $list: true,
96
+ user: {
97
+ id: true,
98
+ name: true,
99
+ email: true,
100
+ globalRole: true
101
+ },
102
+ role: true,
103
+ updatedAt: true,
104
+ createdAt: true
105
+ },
106
+ $list: {
107
+ $find: {
108
+ $traverse: "children",
109
+ $filter: [
110
+ { $field: "type", $operator: "=", $value: "project" },
111
+ { $field: "key", $operator: "=", $value: keys }
112
+ ]
113
+ }
114
+ }
115
+ }
116
+ }
117
+ )
118
+
119
+ const GetProjectFields = {
120
+ id: true,
121
+ name: true,
122
+ key: true,
123
+ tier: true,
124
+ projectType: true,
125
+ icon: true,
126
+ package: true,
127
+ seats: true,
128
+ projectPassword: true,
129
+ stripe: true,
130
+ payments:{
131
+ $list: true,
132
+ id: true,
133
+ name: true
134
+ },
135
+ access: true,
136
+ isSharedLibrary: true,
137
+ framework: true,
138
+ designTool: true,
139
+ language: true,
140
+ visibility: true,
141
+ domains: true,
142
+ subscription:{id: true},
143
+ members: {
144
+ $list: true,
145
+ user: {id: true, name: true, email: true},
146
+ role: true,
147
+ }
148
+ }
149
+
150
+ export const buildGetProjectDataQuery = projectId => ({
151
+ $id: projectId,
152
+ ...GetProjectFields
153
+ })
154
+
155
+ export const buildGetProjectByKeyDataQuery = key => ({
156
+ ...GetProjectFields,
157
+ $find: {
158
+ $traverse: 'children',
159
+ $filter: [
160
+ { $field: 'type', $operator: '=', $value: 'project' },
161
+ { $field: 'key', $operator: '=', $value: key }
162
+ ]
163
+ }
164
+ })