@symbo.ls/sdk 3.1.1 → 3.2.3

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 (83) hide show
  1. package/README.md +174 -13
  2. package/dist/cjs/config/environment.js +32 -42
  3. package/dist/cjs/index.js +31 -24
  4. package/dist/cjs/services/AIService.js +3 -3
  5. package/dist/cjs/services/AuthService.js +44 -3
  6. package/dist/cjs/services/BasedService.js +530 -24
  7. package/dist/cjs/services/CollabService.js +420 -0
  8. package/dist/cjs/services/CoreService.js +2295 -0
  9. package/dist/cjs/services/SocketService.js +207 -59
  10. package/dist/cjs/services/SymstoryService.js +135 -49
  11. package/dist/cjs/services/index.js +8 -16
  12. package/dist/cjs/state/RootStateManager.js +86 -0
  13. package/dist/cjs/state/rootEventBus.js +65 -0
  14. package/dist/cjs/utils/CollabClient.js +157 -0
  15. package/dist/cjs/utils/TokenManager.js +409 -0
  16. package/dist/cjs/utils/basedQuerys.js +120 -0
  17. package/dist/cjs/utils/jsonDiff.js +103 -0
  18. package/dist/cjs/utils/permission.js +4 -4
  19. package/dist/cjs/utils/services.js +133 -69
  20. package/dist/cjs/utils/symstoryClient.js +33 -2
  21. package/dist/esm/config/environment.js +32 -42
  22. package/dist/esm/index.js +20586 -11525
  23. package/dist/esm/services/AIService.js +3 -3
  24. package/dist/esm/services/AuthService.js +48 -7
  25. package/dist/esm/services/BasedService.js +676 -65
  26. package/dist/esm/services/CollabService.js +18028 -0
  27. package/dist/esm/services/CoreService.js +2827 -0
  28. package/dist/esm/services/SocketService.js +323 -58
  29. package/dist/esm/services/SymstoryService.js +287 -111
  30. package/dist/esm/services/index.js +20456 -11470
  31. package/dist/esm/state/RootStateManager.js +102 -0
  32. package/dist/esm/state/rootEventBus.js +47 -0
  33. package/dist/esm/utils/CollabClient.js +17483 -0
  34. package/dist/esm/utils/TokenManager.js +395 -0
  35. package/dist/esm/utils/basedQuerys.js +120 -0
  36. package/dist/esm/utils/jsonDiff.js +6096 -0
  37. package/dist/esm/utils/permission.js +4 -4
  38. package/dist/esm/utils/services.js +133 -69
  39. package/dist/esm/utils/symstoryClient.js +63 -43
  40. package/dist/esm/utils/validation.js +89 -19
  41. package/dist/node/config/environment.js +32 -42
  42. package/dist/node/index.js +37 -28
  43. package/dist/node/services/AIService.js +3 -3
  44. package/dist/node/services/AuthService.js +44 -3
  45. package/dist/node/services/BasedService.js +531 -25
  46. package/dist/node/services/CollabService.js +401 -0
  47. package/dist/node/services/CoreService.js +2266 -0
  48. package/dist/node/services/SocketService.js +197 -59
  49. package/dist/node/services/SymstoryService.js +135 -49
  50. package/dist/node/services/index.js +8 -16
  51. package/dist/node/state/RootStateManager.js +57 -0
  52. package/dist/node/state/rootEventBus.js +46 -0
  53. package/dist/node/utils/CollabClient.js +128 -0
  54. package/dist/node/utils/TokenManager.js +390 -0
  55. package/dist/node/utils/basedQuerys.js +120 -0
  56. package/dist/node/utils/jsonDiff.js +74 -0
  57. package/dist/node/utils/permission.js +4 -4
  58. package/dist/node/utils/services.js +133 -69
  59. package/dist/node/utils/symstoryClient.js +33 -2
  60. package/package.json +23 -14
  61. package/src/config/environment.js +33 -42
  62. package/src/index.js +45 -28
  63. package/src/services/AIService.js +3 -3
  64. package/src/services/AuthService.js +52 -3
  65. package/src/services/BasedService.js +603 -23
  66. package/src/services/CollabService.js +491 -0
  67. package/src/services/CoreService.js +2548 -0
  68. package/src/services/SocketService.js +227 -59
  69. package/src/services/SymstoryService.js +150 -64
  70. package/src/services/index.js +7 -14
  71. package/src/state/RootStateManager.js +71 -0
  72. package/src/state/rootEventBus.js +48 -0
  73. package/src/utils/CollabClient.js +161 -0
  74. package/src/utils/TokenManager.js +462 -0
  75. package/src/utils/basedQuerys.js +123 -0
  76. package/src/utils/jsonDiff.js +109 -0
  77. package/src/utils/permission.js +4 -4
  78. package/src/utils/services.js +144 -69
  79. package/src/utils/symstoryClient.js +36 -2
  80. package/dist/cjs/services/SocketIOService.js +0 -309
  81. package/dist/esm/services/SocketIOService.js +0 -467
  82. package/dist/node/services/SocketIOService.js +0 -280
  83. package/src/services/SocketIOService.js +0 -356
@@ -21,89 +21,153 @@ __export(services_exports, {
21
21
  });
22
22
  module.exports = __toCommonJS(services_exports);
23
23
  const SERVICE_METHODS = {
24
- // Auth service methods
24
+ // Auth service methods (legacy - keeping for backward compatibility)
25
25
  auth: "auth",
26
26
  login: "auth",
27
27
  register: "auth",
28
28
  googleAuth: "auth",
29
+ googleAuthCallback: "auth",
29
30
  githubAuth: "auth",
30
31
  confirmRegistration: "auth",
31
32
  logout: "auth",
32
33
  updateUserRole: "auth",
33
34
  hasPermission: "auth",
35
+ hasGlobalPermission: "auth",
34
36
  getProjectMembers: "auth",
35
37
  inviteMember: "auth",
36
38
  acceptInvite: "auth",
37
39
  updateMemberRole: "auth",
38
40
  removeMember: "auth",
39
41
  updateProjectTier: "auth",
40
- requestPasswordReset: "auth",
41
- confirmPasswordReset: "auth",
42
42
  subscribeToAuthChanges: "auth",
43
- getStoredAuthState: "auth",
44
- // AI service methods
45
- prompt: "ai",
46
- // Based service methods
47
- query: "based",
48
- setProject: "based",
49
- setUser: "based",
50
- subscribe: "based",
51
- call: "based",
52
- getProject: "based",
53
- getProjectByKey: "based",
54
- createProject: "based",
55
- fetchUser: "based",
56
- fetchProject: "based",
57
- setBucket: "based",
58
- getUser: "based",
59
- getUserByEmail: "based",
60
- setProjectDomains: "based",
61
- checkProjectKeyAvailability: "based",
62
- removeProject: "based",
63
- getAvailableLibraries: "based",
64
- addProjectLibraries: "based",
65
- removeProjectLibraries: "based",
66
- getProjectLibraries: "based",
67
- checkout: "based",
68
- uploadFile: "based",
69
- updateProjectIcon: "based",
70
- updateProject: "based",
71
- updateProjectSettings: "based",
72
- updateProjectComponents: "based",
73
- updateProjectName: "based",
74
- updateProjectPackage: "based",
75
- createDnsRecord: "based",
76
- getDnsRecord: "based",
77
- removeDnsRecord: "based",
78
- createStorageBucket: "based",
79
- getStorageBucket: "based",
80
- removeStorageBucket: "based",
81
- requestPasswordChange: "based",
82
- confirmPasswordChange: "based",
83
- updateUserProfile: "based",
84
- duplicateProject: "based",
85
- // Symstory service methods
86
- set: "symstory",
87
- getData: "symstory",
88
- updateData: "symstory",
89
- getBranches: "symstory",
90
- createBranch: "symstory",
91
- editBranch: "symstory",
92
- deleteBranch: "symstory",
93
- mergeBranch: "symstory",
94
- restoreVersion: "symstory",
95
- getItem: "symstory",
96
- addItem: "symstory",
97
- updateItem: "symstory",
98
- deleteItem: "symstory",
99
- switchVersion: "symstory",
100
- switchBranch: "symstory",
101
- undo: "symstory",
102
- redo: "symstory",
103
- // Socket service methods
104
- send: "socket",
105
- subscribeChannel: "socket",
106
- connect: "socket",
107
- reconnect: "socket",
108
- destroy: "socket"
43
+ getStoredAuthState: "core",
44
+ // Collab service methods
45
+ connect: "collab",
46
+ disconnect: "collab",
47
+ isConnected: "collab",
48
+ updateData: "collab",
49
+ addItem: "collab",
50
+ addMultipleItems: "collab",
51
+ updateItem: "collab",
52
+ deleteItem: "collab",
53
+ undo: "collab",
54
+ redo: "collab",
55
+ checkpoint: "collab",
56
+ // Realtime collaboration helper methods
57
+ sendCursor: "collab",
58
+ sendPresence: "collab",
59
+ toggleLive: "collab",
60
+ // Core service methods (new - replaces most based/auth functionality)
61
+ // Auth methods
62
+ register: "core",
63
+ login: "core",
64
+ logout: "core",
65
+ refreshToken: "core",
66
+ googleAuth: "core",
67
+ googleAuthCallback: "core",
68
+ githubAuth: "core",
69
+ requestPasswordReset: "core",
70
+ confirmPasswordReset: "core",
71
+ confirmRegistration: "core",
72
+ requestPasswordChange: "core",
73
+ confirmPasswordChange: "core",
74
+ getMe: "core",
75
+ // User methods
76
+ getUserProfile: "core",
77
+ updateUserProfile: "core",
78
+ getUserProjects: "core",
79
+ getUser: "core",
80
+ getUserByEmail: "core",
81
+ // Project methods
82
+ createProject: "core",
83
+ getProjects: "core",
84
+ getProject: "core",
85
+ getProjectByKey: "core",
86
+ getPublicProject: "core",
87
+ listPublicProjects: "core",
88
+ listProjects: "core",
89
+ updateProject: "core",
90
+ updateProjectComponents: "core",
91
+ updateProjectSettings: "core",
92
+ updateProjectName: "core",
93
+ updateProjectPackage: "core",
94
+ duplicateProject: "core",
95
+ removeProject: "core",
96
+ checkProjectKeyAvailability: "core",
97
+ // Project member methods
98
+ getProjectMembers: "core",
99
+ inviteMember: "core",
100
+ acceptInvite: "core",
101
+ updateMemberRole: "core",
102
+ removeMember: "core",
103
+ // Project library methods
104
+ getAvailableLibraries: "core",
105
+ getProjectLibraries: "core",
106
+ addProjectLibraries: "core",
107
+ removeProjectLibraries: "core",
108
+ // File methods
109
+ uploadFile: "core",
110
+ updateProjectIcon: "core",
111
+ // Payment methods
112
+ checkout: "core",
113
+ getSubscriptionStatus: "core",
114
+ // DNS methods
115
+ createDnsRecord: "core",
116
+ getDnsRecord: "core",
117
+ removeDnsRecord: "core",
118
+ setProjectDomains: "core",
119
+ // Utility methods
120
+ getHealthStatus: "core",
121
+ getTokenDebugInfo: "core",
122
+ // Project Data methods (Symstory replacement)
123
+ applyProjectChanges: "core",
124
+ getProjectData: "core",
125
+ getProjectVersions: "core",
126
+ restoreProjectVersion: "core",
127
+ updateProjectItem: "core",
128
+ deleteProjectItem: "core",
129
+ setProjectValue: "core",
130
+ addProjectItems: "core",
131
+ getProjectItemByPath: "core",
132
+ // Pull Request methods
133
+ createPullRequest: "core",
134
+ listPullRequests: "core",
135
+ getPullRequest: "core",
136
+ reviewPullRequest: "core",
137
+ addPullRequestComment: "core",
138
+ mergePullRequest: "core",
139
+ getPullRequestDiff: "core",
140
+ createPullRequestWithValidation: "core",
141
+ approvePullRequest: "core",
142
+ requestPullRequestChanges: "core",
143
+ getOpenPullRequests: "core",
144
+ getClosedPullRequests: "core",
145
+ getMergedPullRequests: "core",
146
+ isPullRequestMergeable: "core",
147
+ getPullRequestStatusSummary: "core",
148
+ // Branch Management methods
149
+ listBranches: "core",
150
+ createBranch: "core",
151
+ deleteBranch: "core",
152
+ renameBranch: "core",
153
+ getBranchChanges: "core",
154
+ mergeBranch: "core",
155
+ resetBranch: "core",
156
+ publishVersion: "core",
157
+ createBranchWithValidation: "core",
158
+ branchExists: "core",
159
+ previewMerge: "core",
160
+ commitMerge: "core",
161
+ createFeatureBranch: "core",
162
+ createHotfixBranch: "core",
163
+ getBranchStatus: "core",
164
+ deleteBranchSafely: "core",
165
+ // Admin methods
166
+ getAdminUsers: "core",
167
+ assignProjectsToUser: "core",
168
+ searchAdminUsers: "core",
169
+ getAdminUsersByEmails: "core",
170
+ getAdminUsersByIds: "core",
171
+ assignSpecificProjectsToUser: "core",
172
+ assignAllProjectsToUser: "core"
109
173
  };
@@ -32,7 +32,7 @@ __export(symstoryClient_exports, {
32
32
  module.exports = __toCommonJS(symstoryClient_exports);
33
33
  var import_environment = __toESM(require("../config/environment.js"), 1);
34
34
  const DEFAULT_OPTIONS = {
35
- baseUrl: import_environment.default.baseUrl
35
+ apiUrl: import_environment.default.apiUrl
36
36
  };
37
37
  class SymstoryClient {
38
38
  /**
@@ -59,7 +59,7 @@ class SymstoryClient {
59
59
  * @returns {Promise<any>} - The response data.
60
60
  */
61
61
  async request(path = "", options = {}) {
62
- const url = `${this.options.baseUrl}/${this.appKey}${path}`;
62
+ const url = `${this.options.apiUrl}/symstory/${this.appKey}${path}`;
63
63
  const response = await fetch(url, {
64
64
  ...options,
65
65
  headers: { ...this.headers, ...options.headers }
@@ -206,6 +206,37 @@ class SymstoryClient {
206
206
  body: JSON.stringify({ branch, version, type, message })
207
207
  });
208
208
  }
209
+ /**
210
+ * Publishes an existing version of the project.
211
+ * @param {string} version - The version ID/number to publish.
212
+ * @param {object} [options={}] - The publishing options.
213
+ * @param {string} [options.branch='main'] - The branch name. (Only if version number is provided)
214
+ * @returns {Promise<any>} - The response data.
215
+ */
216
+ publishVersion(version) {
217
+ return this.request("/publish", {
218
+ method: "POST",
219
+ body: JSON.stringify({ version })
220
+ });
221
+ }
222
+ /**
223
+ * Retrieves all changes after a specific version.
224
+ * @param {object} [options={}] - The changes options.
225
+ * @param {string} [options.versionId] - The version ID to publish.
226
+ * @param {string} [options.versionValue] - The version ID to publish. (alternative to versionId)
227
+ * @param {string} [options.branch] - The branch to publish (Only in combination to versionValue)
228
+ * @returns {Promise<any>} - The changes data.
229
+ */
230
+ getChanges({ versionId, versionValue, branch } = {}) {
231
+ return this.request(
232
+ `/changes?${new URLSearchParams({
233
+ ...versionId ? { versionId } : {},
234
+ ...versionValue ? { versionValue } : {},
235
+ ...branch ? { branch } : {}
236
+ }).toString()}`,
237
+ {}
238
+ );
239
+ }
209
240
  }
210
241
  var symstoryClient_default = {
211
242
  /**
@@ -1,4 +1,5 @@
1
1
  // src/config/environment.js
2
+ import { isDevelopment } from "@domql/utils";
2
3
  var CONFIG = {
3
4
  // Common defaults for all environments
4
5
  common: {
@@ -12,17 +13,14 @@ var CONFIG = {
12
13
  },
13
14
  // Environment-specific configurations
14
15
  local: {
15
- baseUrl: "http://localhost:3000",
16
- // For symstory api
16
+ // local
17
17
  socketUrl: "http://localhost:8080",
18
18
  // For socket api
19
- routerUrl: "http://localhost:3090",
20
- // For router api
21
- apiUrl: "http://localhost:13335",
19
+ apiUrl: "http://localhost:8080",
22
20
  // For server api
23
21
  basedEnv: "development",
24
22
  // For based api
25
- basedProject: "platform-v2",
23
+ basedProject: "platform-v2-sm",
26
24
  // For based api
27
25
  basedOrg: "symbols",
28
26
  // For based api
@@ -35,41 +33,44 @@ var CONFIG = {
35
33
  }
36
34
  },
37
35
  development: {
38
- baseUrl: "https://story.symbo.ls",
39
- socketUrl: "https://socket.symbols.app",
40
- routerUrl: "https://router.symbols.app",
41
- apiUrl: "https://api.symbols.app",
42
- basedEnv: "development",
43
- basedProject: "platform-v2",
36
+ socketUrl: "https://dev.api.symbols.app",
37
+ apiUrl: "https://dev.api.symbols.app",
38
+ githubClientId: "Ov23liHxyWFBxS8f1gnF"
39
+ },
40
+ testing: {
41
+ socketUrl: "https://test.api.symbols.app",
42
+ apiUrl: "https://test.api.symbols.app",
43
+ basedEnv: "testing",
44
+ basedProject: "platform-v2-sm",
44
45
  basedOrg: "symbols",
45
46
  githubClientId: "Ov23liHxyWFBxS8f1gnF"
46
47
  },
48
+ upcoming: {
49
+ socketUrl: "https://upcoming.api.symbols.app",
50
+ apiUrl: "https://upcoming.api.symbols.app",
51
+ githubClientId: "Ov23liWF7NvdZ056RV5J"
52
+ },
47
53
  staging: {
48
- baseUrl: "https://staging.story.symbo.ls",
49
- socketUrl: "https://staging.socket.symbols.app",
50
- routerUrl: "https://staging.router.symbols.app",
54
+ socketUrl: "https://staging.api.symbols.app",
51
55
  apiUrl: "https://staging.api.symbols.app",
52
56
  basedEnv: "staging",
53
- basedProject: "platform-v2",
57
+ basedProject: "platform-v2-sm",
54
58
  basedOrg: "symbols",
55
59
  githubClientId: "Ov23ligwZDQVD0VfuWNa"
56
60
  },
57
61
  production: {
58
- baseUrl: "https://story.symbo.ls",
59
- socketUrl: "https://socket.symbols.app",
60
- routerUrl: "https://router.symbols.app",
62
+ socketUrl: "https://api.symbols.app",
61
63
  apiUrl: "https://api.symbols.app",
62
64
  basedEnv: "production",
63
- basedProject: "platform-v2",
65
+ basedProject: "platform-v2-sm",
64
66
  basedOrg: "symbols",
65
67
  githubClientId: "Ov23liFAlOEIXtX3dBtR"
66
68
  }
67
69
  };
68
70
  var getEnvironment = () => {
69
- const env = process.env.SYMBOLS_APP_ENV || "" || "development";
71
+ const env = process.env.SYMBOLS_APP_ENV || process.env.NODE_ENV;
70
72
  if (!CONFIG[env]) {
71
- console.warn(`Unknown environment "${env}", falling back to development`);
72
- return "development";
73
+ throw new Error(`Unknown environment "${env}"`);
73
74
  }
74
75
  return env;
75
76
  };
@@ -79,25 +80,21 @@ var getConfig = () => {
79
80
  const envConfig = { ...CONFIG.common, ...CONFIG[env] };
80
81
  const finalConfig = {
81
82
  ...envConfig,
82
- baseUrl: process.env.SYMBOLS_APP_BASE_URL || envConfig.baseUrl,
83
83
  socketUrl: process.env.SYMBOLS_APP_SOCKET_URL || envConfig.socketUrl,
84
- routerUrl: process.env.SYMBOLS_APP_ROUTER_URL || envConfig.routerUrl,
85
84
  apiUrl: process.env.SYMBOLS_APP_API_URL || envConfig.apiUrl,
86
85
  basedEnv: process.env.SYMBOLS_APP_BASED_ENV || envConfig.basedEnv,
87
86
  basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
88
87
  basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
89
88
  githubClientId: process.env.SYMBOLS_APP_GITHUB_CLIENT_ID || envConfig.githubClientId,
90
- isDevelopment: env === "development" || env === "local",
89
+ isDevelopment: isDevelopment(env),
90
+ isTesting: env === "testing",
91
91
  isStaging: env === "staging",
92
92
  isProduction: env === "production"
93
+ // Store all environment variables for potential future use
93
94
  };
94
95
  const requiredFields = [
95
- "baseUrl",
96
96
  "socketUrl",
97
97
  "apiUrl",
98
- "basedEnv",
99
- "basedProject",
100
- "basedOrg",
101
98
  "githubClientId",
102
99
  "googleClientId"
103
100
  ];
@@ -110,9 +107,7 @@ var getConfig = () => {
110
107
  if (finalConfig.isDevelopment) {
111
108
  console.log(
112
109
  "environment in SDK:",
113
- env,
114
- "",
115
- process.env.SYMBOLS_APP_ENV
110
+ env || process.env.NODE_ENV || process.env.NODE_ENV
116
111
  );
117
112
  console.log(finalConfig);
118
113
  }
@@ -120,18 +115,13 @@ var getConfig = () => {
120
115
  } catch (error) {
121
116
  console.error("Failed to load environment configuration:", error);
122
117
  return {
123
- baseUrl: "https://story.symbo.ls",
124
- socketUrl: "https://socket.symbols.app",
125
- routerUrl: "https://router.symbols.app",
126
- apiUrl: "https://api.symbols.app",
127
- basedEnv: "development",
128
- basedProject: "platform-v2",
129
- basedOrg: "symbols",
130
- githubClientId: "Ov23liHxyWFBxS8f1gnF"
118
+ ...CONFIG.development
131
119
  };
132
120
  }
133
121
  };
134
122
  var environment_default = getConfig();
135
123
  export {
136
- environment_default as default
124
+ environment_default as default,
125
+ getConfig
137
126
  };
127
+ // @preserve-env