@taruvi/sdk 1.5.0 → 1.5.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.
Files changed (229) hide show
  1. package/README.md +60 -1289
  2. package/dist/client.d.ts +27 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/{src/client.ts → dist/client.js} +30 -48
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +28 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +20 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/lib/analytics/AnalyticsClient.d.ts +9 -0
  11. package/dist/lib/analytics/AnalyticsClient.d.ts.map +1 -0
  12. package/dist/lib/analytics/AnalyticsClient.js +17 -0
  13. package/dist/lib/analytics/AnalyticsClient.js.map +1 -0
  14. package/dist/lib/analytics/types.d.ts +6 -0
  15. package/dist/lib/analytics/types.d.ts.map +1 -0
  16. package/dist/lib/analytics/types.js +2 -0
  17. package/dist/lib/analytics/types.js.map +1 -0
  18. package/dist/lib/app/AppClient.d.ts +15 -0
  19. package/dist/lib/app/AppClient.d.ts.map +1 -0
  20. package/dist/lib/app/AppClient.js +41 -0
  21. package/dist/lib/app/AppClient.js.map +1 -0
  22. package/dist/lib/app/types.d.ts +41 -0
  23. package/dist/lib/app/types.d.ts.map +1 -0
  24. package/dist/lib/app/types.js +2 -0
  25. package/dist/lib/app/types.js.map +1 -0
  26. package/dist/lib/auth/AuthClient.d.ts +47 -0
  27. package/dist/lib/auth/AuthClient.d.ts.map +1 -0
  28. package/{src/lib/auth/AuthClient.ts → dist/lib/auth/AuthClient.js} +58 -79
  29. package/dist/lib/auth/AuthClient.js.map +1 -0
  30. package/dist/lib/database/DatabaseClient.d.ts +76 -0
  31. package/dist/lib/database/DatabaseClient.d.ts.map +1 -0
  32. package/dist/lib/database/DatabaseClient.js +250 -0
  33. package/dist/lib/database/DatabaseClient.js.map +1 -0
  34. package/dist/lib/database/types.d.ts +66 -0
  35. package/dist/lib/database/types.d.ts.map +1 -0
  36. package/dist/lib/database/types.js +20 -0
  37. package/dist/lib/database/types.js.map +1 -0
  38. package/dist/lib/functions/FunctionsClient.d.ts +9 -0
  39. package/dist/lib/functions/FunctionsClient.d.ts.map +1 -0
  40. package/dist/lib/functions/FunctionsClient.js +20 -0
  41. package/dist/lib/functions/FunctionsClient.js.map +1 -0
  42. package/dist/lib/functions/types.d.ts +25 -0
  43. package/dist/lib/functions/types.d.ts.map +1 -0
  44. package/dist/lib/functions/types.js +2 -0
  45. package/dist/lib/functions/types.js.map +1 -0
  46. package/dist/lib/policy/PolicyClient.d.ts +25 -0
  47. package/dist/lib/policy/PolicyClient.d.ts.map +1 -0
  48. package/{src/lib/policy/PolicyClient.ts → dist/lib/policy/PolicyClient.js} +26 -40
  49. package/dist/lib/policy/PolicyClient.js.map +1 -0
  50. package/dist/lib/policy/types.d.ts +32 -0
  51. package/dist/lib/policy/types.d.ts.map +1 -0
  52. package/dist/lib/policy/types.js +2 -0
  53. package/dist/lib/policy/types.js.map +1 -0
  54. package/dist/lib/secrets/SecretsClient.d.ts +29 -0
  55. package/dist/lib/secrets/SecretsClient.d.ts.map +1 -0
  56. package/dist/lib/secrets/SecretsClient.js +66 -0
  57. package/dist/lib/secrets/SecretsClient.js.map +1 -0
  58. package/dist/lib/secrets/types.d.ts +43 -0
  59. package/dist/lib/secrets/types.d.ts.map +1 -0
  60. package/dist/lib/secrets/types.js +2 -0
  61. package/dist/lib/secrets/types.js.map +1 -0
  62. package/dist/lib/settings/SettingsClient.d.ts +9 -0
  63. package/dist/lib/settings/SettingsClient.d.ts.map +1 -0
  64. package/dist/lib/settings/SettingsClient.js +17 -0
  65. package/dist/lib/settings/SettingsClient.js.map +1 -0
  66. package/dist/lib/settings/types.d.ts +6 -0
  67. package/dist/lib/settings/types.d.ts.map +1 -0
  68. package/dist/lib/settings/types.js +2 -0
  69. package/dist/lib/settings/types.js.map +1 -0
  70. package/dist/lib/storage/StorageClient.d.ts +38 -0
  71. package/dist/lib/storage/StorageClient.d.ts.map +1 -0
  72. package/dist/lib/storage/StorageClient.js +102 -0
  73. package/dist/lib/storage/StorageClient.js.map +1 -0
  74. package/dist/lib/storage/types.d.ts +73 -0
  75. package/dist/lib/storage/types.d.ts.map +1 -0
  76. package/dist/lib/storage/types.js +2 -0
  77. package/dist/lib/storage/types.js.map +1 -0
  78. package/dist/lib/users/UserClient.d.ts +17 -0
  79. package/dist/lib/users/UserClient.d.ts.map +1 -0
  80. package/dist/lib/users/UserClient.js +40 -0
  81. package/dist/lib/users/UserClient.js.map +1 -0
  82. package/dist/lib/users/types.d.ts +108 -0
  83. package/dist/lib/users/types.d.ts.map +1 -0
  84. package/dist/lib/users/types.js +2 -0
  85. package/dist/lib/users/types.js.map +1 -0
  86. package/dist/lib-internal/errors/ErrorClient.d.ts +42 -0
  87. package/dist/lib-internal/errors/ErrorClient.d.ts.map +1 -0
  88. package/dist/lib-internal/errors/ErrorClient.js +102 -0
  89. package/dist/lib-internal/errors/ErrorClient.js.map +1 -0
  90. package/dist/lib-internal/errors/index.d.ts +4 -0
  91. package/dist/lib-internal/errors/index.d.ts.map +1 -0
  92. package/dist/lib-internal/errors/index.js +3 -0
  93. package/dist/lib-internal/errors/index.js.map +1 -0
  94. package/dist/lib-internal/errors/types.d.ts +29 -0
  95. package/dist/lib-internal/errors/types.d.ts.map +1 -0
  96. package/dist/lib-internal/errors/types.js +18 -0
  97. package/dist/lib-internal/errors/types.js.map +1 -0
  98. package/dist/lib-internal/http/HttpClient.d.ts +24 -0
  99. package/dist/lib-internal/http/HttpClient.d.ts.map +1 -0
  100. package/dist/lib-internal/http/HttpClient.js +103 -0
  101. package/dist/lib-internal/http/HttpClient.js.map +1 -0
  102. package/dist/lib-internal/http/types.d.ts +12 -0
  103. package/dist/lib-internal/http/types.d.ts.map +1 -0
  104. package/{src/lib-internal/http/types.ts → dist/lib-internal/http/types.js} +2 -3
  105. package/dist/lib-internal/http/types.js.map +1 -0
  106. package/dist/lib-internal/routes/AnalyticsRoutes.d.ts +4 -0
  107. package/dist/lib-internal/routes/AnalyticsRoutes.d.ts.map +1 -0
  108. package/dist/lib-internal/routes/AnalyticsRoutes.js +4 -0
  109. package/dist/lib-internal/routes/AnalyticsRoutes.js.map +1 -0
  110. package/dist/lib-internal/routes/AppRoutes.d.ts +10 -0
  111. package/dist/lib-internal/routes/AppRoutes.d.ts.map +1 -0
  112. package/dist/lib-internal/routes/AppRoutes.js +6 -0
  113. package/dist/lib-internal/routes/AppRoutes.js.map +1 -0
  114. package/dist/lib-internal/routes/AuthRoutes.d.ts +4 -0
  115. package/dist/lib-internal/routes/AuthRoutes.d.ts.map +1 -0
  116. package/{src/lib-internal/routes/AuthRoutes.ts → dist/lib-internal/routes/AuthRoutes.js} +2 -1
  117. package/dist/lib-internal/routes/AuthRoutes.js.map +1 -0
  118. package/dist/lib-internal/routes/DatabaseRoutes.d.ts +11 -0
  119. package/dist/lib-internal/routes/DatabaseRoutes.d.ts.map +1 -0
  120. package/dist/lib-internal/routes/DatabaseRoutes.js +7 -0
  121. package/dist/lib-internal/routes/DatabaseRoutes.js.map +1 -0
  122. package/dist/lib-internal/routes/FunctionRoutes.d.ts +4 -0
  123. package/dist/lib-internal/routes/FunctionRoutes.d.ts.map +1 -0
  124. package/dist/lib-internal/routes/FunctionRoutes.js +4 -0
  125. package/dist/lib-internal/routes/FunctionRoutes.js.map +1 -0
  126. package/dist/lib-internal/routes/PolicyRoutes.d.ts +5 -0
  127. package/dist/lib-internal/routes/PolicyRoutes.d.ts.map +1 -0
  128. package/dist/lib-internal/routes/PolicyRoutes.js +5 -0
  129. package/dist/lib-internal/routes/PolicyRoutes.js.map +1 -0
  130. package/dist/lib-internal/routes/SecretsRoutes.d.ts +6 -0
  131. package/dist/lib-internal/routes/SecretsRoutes.d.ts.map +1 -0
  132. package/dist/lib-internal/routes/SecretsRoutes.js +6 -0
  133. package/dist/lib-internal/routes/SecretsRoutes.js.map +1 -0
  134. package/dist/lib-internal/routes/SettingsRoutes.d.ts +5 -0
  135. package/dist/lib-internal/routes/SettingsRoutes.d.ts.map +1 -0
  136. package/{src/lib-internal/routes/SettingsRoutes.ts → dist/lib-internal/routes/SettingsRoutes.js} +2 -1
  137. package/dist/lib-internal/routes/SettingsRoutes.js.map +1 -0
  138. package/dist/lib-internal/routes/StorageRoutes.d.ts +11 -0
  139. package/dist/lib-internal/routes/StorageRoutes.d.ts.map +1 -0
  140. package/dist/lib-internal/routes/StorageRoutes.js +8 -0
  141. package/dist/lib-internal/routes/StorageRoutes.js.map +1 -0
  142. package/dist/lib-internal/routes/UserRoutes.d.ts +13 -0
  143. package/dist/lib-internal/routes/UserRoutes.d.ts.map +1 -0
  144. package/dist/lib-internal/routes/UserRoutes.js +13 -0
  145. package/dist/lib-internal/routes/UserRoutes.js.map +1 -0
  146. package/dist/lib-internal/routes/index.d.ts +2 -0
  147. package/dist/lib-internal/routes/index.d.ts.map +1 -0
  148. package/dist/lib-internal/routes/index.js +2 -0
  149. package/dist/lib-internal/routes/index.js.map +1 -0
  150. package/dist/lib-internal/token/TokenClient.d.ts +38 -0
  151. package/dist/lib-internal/token/TokenClient.d.ts.map +1 -0
  152. package/{src/lib-internal/token/TokenClient.ts → dist/lib-internal/token/TokenClient.js} +44 -59
  153. package/dist/lib-internal/token/TokenClient.js.map +1 -0
  154. package/dist/lib-internal/token/types.d.ts +2 -0
  155. package/dist/lib-internal/token/types.d.ts.map +1 -0
  156. package/dist/lib-internal/token/types.js +2 -0
  157. package/dist/lib-internal/token/types.js.map +1 -0
  158. package/dist/types.d.ts +74 -0
  159. package/dist/types.d.ts.map +1 -0
  160. package/dist/types.js +2 -0
  161. package/dist/types.js.map +1 -0
  162. package/dist/utils/enums.d.ts +31 -0
  163. package/dist/utils/enums.d.ts.map +1 -0
  164. package/dist/utils/enums.js +26 -0
  165. package/dist/utils/enums.js.map +1 -0
  166. package/dist/utils/utils.d.ts +6 -0
  167. package/dist/utils/utils.d.ts.map +1 -0
  168. package/dist/utils/utils.js +38 -0
  169. package/dist/utils/utils.js.map +1 -0
  170. package/package.json +11 -2
  171. package/.github/worflows/publish.yml +0 -57
  172. package/.github/workflows/publish.yml +0 -58
  173. package/.kiro/settings/lsp.json +0 -198
  174. package/MODULE_NAMING_CHANGES.md +0 -81
  175. package/PARAMETER_NAMING_CHANGES.md +0 -106
  176. package/USAGE_EXAMPLE.md +0 -86
  177. package/src/index.ts +0 -50
  178. package/src/lib/analytics/AnalyticsClient.ts +0 -24
  179. package/src/lib/analytics/types.ts +0 -8
  180. package/src/lib/app/AppClient.ts +0 -54
  181. package/src/lib/app/types.ts +0 -50
  182. package/src/lib/auth/types.ts +0 -123
  183. package/src/lib/database/DatabaseClient.ts +0 -244
  184. package/src/lib/database/types.ts +0 -90
  185. package/src/lib/functions/FunctionsClient.ts +0 -27
  186. package/src/lib/functions/types.ts +0 -27
  187. package/src/lib/policy/types.ts +0 -39
  188. package/src/lib/secrets/SecretsClient.ts +0 -75
  189. package/src/lib/secrets/types.ts +0 -59
  190. package/src/lib/settings/SettingsClient.ts +0 -22
  191. package/src/lib/settings/types.ts +0 -9
  192. package/src/lib/storage/StorageClient.ts +0 -131
  193. package/src/lib/storage/types.ts +0 -86
  194. package/src/lib/users/UserClient.ts +0 -63
  195. package/src/lib/users/types.ts +0 -123
  196. package/src/lib-internal/errors/ErrorClient.ts +0 -114
  197. package/src/lib-internal/errors/index.ts +0 -3
  198. package/src/lib-internal/errors/types.ts +0 -29
  199. package/src/lib-internal/http/HttpClient.ts +0 -117
  200. package/src/lib-internal/routes/AnalyticsRoutes.ts +0 -3
  201. package/src/lib-internal/routes/AppRoutes.ts +0 -9
  202. package/src/lib-internal/routes/DatabaseRoutes.ts +0 -10
  203. package/src/lib-internal/routes/FunctionRoutes.ts +0 -3
  204. package/src/lib-internal/routes/PolicyRoutes.ts +0 -4
  205. package/src/lib-internal/routes/SecretsRoutes.ts +0 -5
  206. package/src/lib-internal/routes/StorageRoutes.ts +0 -15
  207. package/src/lib-internal/routes/UserRoutes.ts +0 -12
  208. package/src/lib-internal/routes/index.ts +0 -0
  209. package/src/lib-internal/token/types.ts +0 -0
  210. package/src/types.ts +0 -98
  211. package/src/utils/enums.ts +0 -24
  212. package/src/utils/utils.ts +0 -37
  213. package/tests/fixtures/mockClient.ts +0 -19
  214. package/tests/mocks/db.json +0 -1
  215. package/tests/unit/analytics/AnalyticsClient.test.ts +0 -84
  216. package/tests/unit/app/AppClient.test.ts +0 -114
  217. package/tests/unit/auth/AuthClient.test.ts +0 -91
  218. package/tests/unit/client/Client.test.ts +0 -87
  219. package/tests/unit/database/DatabaseClient.test.ts +0 -565
  220. package/tests/unit/edge-cases/robustness.test.ts +0 -258
  221. package/tests/unit/errors/errors.test.ts +0 -236
  222. package/tests/unit/functions/FunctionsClient.test.ts +0 -99
  223. package/tests/unit/policy/PolicyClient.test.ts +0 -180
  224. package/tests/unit/secrets/SecretsClient.test.ts +0 -146
  225. package/tests/unit/settings/SettingsClient.test.ts +0 -50
  226. package/tests/unit/storage/StorageClient.test.ts +0 -252
  227. package/tests/unit/users/UserClient.test.ts +0 -150
  228. package/tsconfig.json +0 -44
  229. package/vitest.config.ts +0 -7
@@ -1,148 +1,127 @@
1
- import type { Client } from "../../client.js";
2
- import type { TaruviResponse } from "../../types.js";
3
- import type { UserData } from "../users/types.js";
4
1
  import { AuthRoutes } from "../../lib-internal/routes/AuthRoutes.js";
5
2
  import { UserRoutes } from "../../lib-internal/routes/UserRoutes.js";
6
-
7
3
  /**
8
4
  * Auth Client - Handles user authentication using Web UI Flow
9
5
  * Uses session token for API authentication via X-Session-Token header.
10
- * On 401/403, tokens are cleared automatically by HttpClient interceptor.
6
+ * On 401, tokens are cleared automatically by HttpClient interceptor (403 does not clear the token).
11
7
  */
12
8
  export class Auth {
13
- private client: Client
14
-
15
- constructor(client: Client) {
16
- this.client = client
9
+ client;
10
+ constructor(client) {
11
+ this.client = client;
17
12
  }
18
-
19
13
  /**
20
14
  * Redirect to login page (Web UI Flow)
21
15
  */
22
- login(callbackUrl?: string): void {
16
+ login(callbackUrl) {
23
17
  if (typeof window === "undefined") {
24
- console.error("login() can only be called in browser environment")
25
- return
18
+ console.error("login() can only be called in browser environment");
19
+ return;
26
20
  }
27
-
28
- const config = this.client.getConfig()
29
- const callback = callbackUrl || window.location.origin + window.location.pathname
30
- const deskUrl = config.deskUrl || config.apiUrl
31
- const loginUrl = `${deskUrl}/accounts/login/?redirect_to=${encodeURIComponent(callback)}`
32
-
21
+ const config = this.client.getConfig();
22
+ const callback = callbackUrl || window.location.origin + window.location.pathname;
23
+ const deskUrl = config.deskUrl || config.apiUrl;
24
+ const loginUrl = `${deskUrl}/accounts/login/?redirect_to=${encodeURIComponent(callback)}`;
33
25
  if (typeof sessionStorage !== "undefined") {
34
26
  sessionStorage.setItem("auth_state", JSON.stringify({
35
27
  returnTo: window.location.pathname,
36
28
  timestamp: Date.now()
37
- }))
29
+ }));
38
30
  }
39
-
40
- window.location.href = loginUrl
31
+ window.location.href = loginUrl;
41
32
  }
42
-
43
33
  /**
44
34
  * Redirect to signup page (Web UI Flow)
45
35
  */
46
- signup(callbackUrl?: string): void {
36
+ signup(callbackUrl) {
47
37
  if (typeof window === "undefined") {
48
- console.error("signup() can only be called in browser environment")
49
- return
38
+ console.error("signup() can only be called in browser environment");
39
+ return;
50
40
  }
51
-
52
- const config = this.client.getConfig()
53
- const callback = callbackUrl || window.location.origin + window.location.pathname
54
- const signupUrl = `${config.apiUrl}/accounts/signup/?redirect_to=${encodeURIComponent(callback)}`
55
-
41
+ const config = this.client.getConfig();
42
+ const callback = callbackUrl || window.location.origin + window.location.pathname;
43
+ const signupUrl = `${config.apiUrl}/accounts/signup/?redirect_to=${encodeURIComponent(callback)}`;
56
44
  if (typeof sessionStorage !== "undefined") {
57
45
  sessionStorage.setItem("auth_state", JSON.stringify({
58
46
  returnTo: window.location.pathname,
59
47
  timestamp: Date.now()
60
- }))
48
+ }));
61
49
  }
62
-
63
- window.location.href = signupUrl
50
+ window.location.href = signupUrl;
64
51
  }
65
-
66
52
  /**
67
53
  * Logout user and redirect to logout page
68
54
  */
69
- async logout(callbackUrl?: string): Promise<void> {
55
+ async logout(callbackUrl) {
70
56
  if (typeof window === "undefined") {
71
- console.error("logout() can only be called in browser environment")
72
- return
57
+ console.error("logout() can only be called in browser environment");
58
+ return;
73
59
  }
74
-
75
- this.client.tokenClient.clearTokens()
76
-
77
- const config = this.client.getConfig()
78
- const deskUrl = config.deskUrl || config.apiUrl
79
- let callback: string = callbackUrl || ""
80
-
60
+ this.client.tokenClient.clearTokens();
61
+ const config = this.client.getConfig();
62
+ const deskUrl = config.deskUrl || config.apiUrl;
63
+ let callback = callbackUrl || "";
81
64
  if (!callback) {
82
65
  try {
83
- const settings = await this.client.httpClient.get<{ frontend_url?: string }>(
84
- `api/sites/${config.appSlug}/metadata`
85
- )
86
- callback = settings.frontend_url || window.location.origin
87
- } catch (error) {
88
- console.error("Failed to fetch site settings, using origin:", error)
89
- callback = window.location.origin
66
+ const settings = await this.client.httpClient.get(`api/sites/${config.appSlug}/metadata`);
67
+ callback = settings.frontend_url || window.location.origin;
68
+ }
69
+ catch (error) {
70
+ console.error("Failed to fetch site settings, using origin:", error);
71
+ callback = window.location.origin;
90
72
  }
91
73
  }
92
-
93
- const logoutUrl = `${deskUrl}/accounts/logout/?redirect_to=${encodeURIComponent(callback)}`
94
- window.location.href = logoutUrl
74
+ const logoutUrl = `${deskUrl}/accounts/logout/?redirect_to=${encodeURIComponent(callback)}`;
75
+ window.location.href = logoutUrl;
95
76
  }
96
-
97
77
  /**
98
78
  * Check if a session token exists locally (does not validate with server)
99
79
  */
100
- hasToken(): boolean {
101
- return this.client.tokenClient.isAuthenticated()
80
+ hasToken() {
81
+ return this.client.tokenClient.isAuthenticated();
102
82
  }
103
-
104
83
  /**
105
84
  * Check if user is authenticated by validating session with the server
106
85
  */
107
- async isUserAuthenticated(): Promise<boolean> {
108
- if (!this.hasToken()) return false
86
+ async isUserAuthenticated() {
87
+ if (!this.hasToken())
88
+ return false;
109
89
  try {
110
- await this.validateSession()
111
- return true
112
- } catch {
113
- return false
90
+ await this.validateSession();
91
+ return true;
92
+ }
93
+ catch {
94
+ return false;
114
95
  }
115
96
  }
116
-
117
97
  /**
118
98
  * Validate current session token with auth session endpoint.
119
99
  * HttpClient injects X-Session-Token automatically.
120
100
  */
121
- async validateSession(): Promise<void> {
122
- await this.client.httpClient.get(AuthRoutes.session())
101
+ async validateSession() {
102
+ await this.client.httpClient.get(AuthRoutes.session());
123
103
  }
124
-
125
104
  /**
126
105
  * Get the current session token
127
106
  */
128
- getSessionToken(): string | null {
129
- return this.client.tokenClient.getSessionToken()
107
+ getSessionToken() {
108
+ return this.client.tokenClient.getSessionToken();
130
109
  }
131
-
132
110
  /**
133
111
  * Get current user from API
134
112
  * @returns Promise with user data or null if not authenticated
135
113
  */
136
- async getCurrentUser(): Promise<TaruviResponse<UserData> | null> {
114
+ async getCurrentUser() {
137
115
  if (!this.hasToken()) {
138
- return null
116
+ return null;
139
117
  }
140
-
141
118
  try {
142
- return await this.client.httpClient.get<TaruviResponse<UserData>>(UserRoutes.getCurrentUser())
143
- } catch (error) {
144
- console.error("Failed to fetch current user:", error)
145
- return null
119
+ return await this.client.httpClient.get(UserRoutes.getCurrentUser());
120
+ }
121
+ catch (error) {
122
+ console.error("Failed to fetch current user:", error);
123
+ return null;
146
124
  }
147
125
  }
148
126
  }
127
+ //# sourceMappingURL=AuthClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthClient.js","sourceRoot":"","sources":["../../../src/lib/auth/AuthClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import type { Client } from "../../client.js";
2
+ import { HttpMethod } from "../../lib-internal/http/types.js";
3
+ import type { DatabaseFilters, TaruviResponse } from "../../types.js";
4
+ import type { UrlParams, FilterOperator, SortOrder, GraphInclude, GraphFormat, EdgeRequest, BackendFilterTreeRoot } from "./types.js";
5
+ interface GraphQueryParams {
6
+ include?: GraphInclude;
7
+ depth?: number;
8
+ format?: GraphFormat;
9
+ relationship_type?: string[];
10
+ }
11
+ export declare class Database<T = Record<string, unknown>> {
12
+ private client;
13
+ private urlParams;
14
+ private config;
15
+ private operation;
16
+ private body;
17
+ private queryParams;
18
+ private graphParams;
19
+ private isEdges;
20
+ private isUpsert;
21
+ constructor(client: Client, urlParams?: UrlParams, operation?: HttpMethod | undefined, body?: object | undefined, queryParams?: DatabaseFilters, graphParams?: GraphQueryParams, isEdges?: boolean, isUpsert?: boolean);
22
+ from<U = Record<string, unknown>>(dataTables: string): Database<U>;
23
+ edges(): Database<T>;
24
+ include(direction: GraphInclude): Database<T>;
25
+ depth(n: number): Database<T>;
26
+ format(fmt: GraphFormat): Database<T>;
27
+ types(types: string[]): Database<T>;
28
+ /**
29
+ * JSON filter tree for the `filters` query param. Must match the platform contract:
30
+ * root is an array of logical nodes `{ operator: "and" | "or", value: [...] }`; leaves are
31
+ * `{ field, operator, value }` where `operator` is a **backend** token (`contains` = case-insensitive
32
+ * substring, `containss` = case-sensitive, `eq`, `in`, …). The SDK only JSON-stringifies this value.
33
+ */
34
+ filters(tree: BackendFilterTreeRoot): Database<T>;
35
+ /**
36
+ * DRF-style flat filter: `field` or `field__operator` query keys.
37
+ */
38
+ filters(field: string, operator: FilterOperator, value: string | number | boolean | (string | number | boolean)[]): Database<T>;
39
+ /**
40
+ * Sets the `ordering` query param (DRF-style: `-field` for desc, comma-separated for multiple).
41
+ * - `sort('created_at', 'desc')` — one column (optional second arg defaults to `'asc'`)
42
+ * - `sort([{ field: 'salary', order: 'desc' }, { field: 'hire_date' }])` — multiple columns
43
+ * - `sort('-salary,hire_date')` — raw string (e.g. from `convertRefineSorters`); omit the second arg
44
+ */
45
+ sort(fieldOrFields: string | Array<{
46
+ field: string;
47
+ order?: SortOrder;
48
+ }>, order?: SortOrder): Database<T>;
49
+ pageSize(size: number): Database<T>;
50
+ page(num: number): Database<T>;
51
+ populate(populate: string[]): Database<T>;
52
+ /** Populate all first-level relations (`?populate=*`). */
53
+ populateAll(): Database<T>;
54
+ search(query: string): Database<T>;
55
+ /** Restrict SELECT to named columns (`?fields=a,b,c`). */
56
+ fields(columns: string): Database<T>;
57
+ allowedActions(actions: string[]): Database<T>;
58
+ aggregate(...expressions: string[]): Database<T>;
59
+ groupBy(...fields: string[]): Database<T>;
60
+ having(condition: string): Database<T>;
61
+ get(recordId: string): Database<T>;
62
+ create(body: Partial<T> | Partial<T>[] | EdgeRequest[]): Database<T>;
63
+ upsert(body: Partial<T> | Partial<T>[], uniqueFields?: string[]): Database<T>;
64
+ update(body: Partial<T> | EdgeRequest): Database<T>;
65
+ bulkUpdate(body: Partial<T>[]): Database<T>;
66
+ delete(recordIdOrEdgeIds: string | number[]): Database<T>;
67
+ bulkDelete(ids: string[]): Database<T>;
68
+ deleteFiltered(): Database<T>;
69
+ first(): Promise<T | null>;
70
+ count(): Promise<number>;
71
+ private getTableName;
72
+ private buildRoute;
73
+ execute(): Promise<TaruviResponse<T | T[]>>;
74
+ }
75
+ export {};
76
+ //# sourceMappingURL=DatabaseClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseClient.d.ts","sourceRoot":"","sources":["../../../src/lib/database/DatabaseClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ import { DatabaseRoutes } from "../../lib-internal/routes/DatabaseRoutes.js";
2
+ import { HttpMethod } from "../../lib-internal/http/types.js";
3
+ import { isBackendFilterTreeRoot } from "./types.js";
4
+ import { buildQueryString } from "../../utils/utils.js";
5
+ // Used to access app data
6
+ export class Database {
7
+ client;
8
+ urlParams;
9
+ config;
10
+ operation;
11
+ body;
12
+ queryParams;
13
+ graphParams;
14
+ isEdges;
15
+ isUpsert;
16
+ constructor(client, urlParams = {}, operation, body, queryParams, graphParams = {}, isEdges = false, isUpsert = false) {
17
+ this.client = client;
18
+ this.urlParams = urlParams;
19
+ this.operation = operation;
20
+ this.body = body;
21
+ this.config = this.client.getConfig();
22
+ this.queryParams = queryParams;
23
+ this.graphParams = graphParams;
24
+ this.isEdges = isEdges;
25
+ this.isUpsert = isUpsert;
26
+ }
27
+ from(dataTables) {
28
+ return new Database(this.client, { ...this.urlParams, dataTables }, undefined, undefined, undefined, {}, this.isEdges);
29
+ }
30
+ edges() {
31
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, this.queryParams, { ...this.graphParams }, true);
32
+ }
33
+ // Graph traversal methods
34
+ include(direction) {
35
+ return new Database(this.client, { ...this.urlParams }, this.operation, this.body, this.queryParams, { ...this.graphParams, include: direction }, this.isEdges);
36
+ }
37
+ depth(n) {
38
+ return new Database(this.client, { ...this.urlParams }, this.operation, this.body, this.queryParams, { ...this.graphParams, depth: n }, this.isEdges);
39
+ }
40
+ format(fmt) {
41
+ return new Database(this.client, { ...this.urlParams }, this.operation, this.body, this.queryParams, { ...this.graphParams, format: fmt }, this.isEdges);
42
+ }
43
+ types(types) {
44
+ return new Database(this.client, { ...this.urlParams }, this.operation, this.body, this.queryParams, { ...this.graphParams, relationship_type: types }, this.isEdges);
45
+ }
46
+ filters(arg0, arg1, arg2) {
47
+ if (typeof arg0 === 'string' && arg1 !== undefined && arg2 !== undefined) {
48
+ const field = arg0;
49
+ const operator = arg1;
50
+ const value = arg2;
51
+ const filterKey = operator === 'eq' ? field : `${field}__${operator}`;
52
+ const filterValue = Array.isArray(value) ? value.join(',') : value;
53
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
54
+ ...this.queryParams,
55
+ [filterKey]: filterValue
56
+ }, { ...this.graphParams }, this.isEdges);
57
+ }
58
+ if (arg1 === undefined && arg2 === undefined && isBackendFilterTreeRoot(arg0)) {
59
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
60
+ ...this.queryParams,
61
+ filters: JSON.stringify(arg0)
62
+ }, { ...this.graphParams }, this.isEdges);
63
+ }
64
+ throw new TypeError('Database.filters: use filters(tree) with a root array of { operator: "and"|"or", value: [...] }, or filters(field, operator, value).');
65
+ }
66
+ /**
67
+ * Sets the `ordering` query param (DRF-style: `-field` for desc, comma-separated for multiple).
68
+ * - `sort('created_at', 'desc')` — one column (optional second arg defaults to `'asc'`)
69
+ * - `sort([{ field: 'salary', order: 'desc' }, { field: 'hire_date' }])` — multiple columns
70
+ * - `sort('-salary,hire_date')` — raw string (e.g. from `convertRefineSorters`); omit the second arg
71
+ */
72
+ sort(fieldOrFields, order) {
73
+ let newOrdering;
74
+ if (typeof fieldOrFields === 'string') {
75
+ const o = order ?? 'asc';
76
+ newOrdering = o === 'desc' ? `-${fieldOrFields}` : fieldOrFields;
77
+ }
78
+ else {
79
+ newOrdering = fieldOrFields
80
+ .map(({ field, order: o = 'asc' }) => (o === 'desc' ? `-${field}` : field))
81
+ .join(',');
82
+ }
83
+ const existing = this.queryParams?.ordering;
84
+ const ordering = existing ? `${existing},${newOrdering}` : newOrdering;
85
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
86
+ ...this.queryParams,
87
+ ordering
88
+ }, { ...this.graphParams }, this.isEdges);
89
+ }
90
+ pageSize(size) {
91
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
92
+ ...this.queryParams,
93
+ page_size: size
94
+ }, { ...this.graphParams }, this.isEdges);
95
+ }
96
+ page(num) {
97
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
98
+ ...this.queryParams,
99
+ page: num
100
+ }, { ...this.graphParams }, this.isEdges);
101
+ }
102
+ populate(populate) {
103
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
104
+ ...this.queryParams,
105
+ populate: populate.join(',')
106
+ }, { ...this.graphParams }, this.isEdges);
107
+ }
108
+ /** Populate all first-level relations (`?populate=*`). */
109
+ populateAll() {
110
+ return this.populate(['*']);
111
+ }
112
+ search(query) {
113
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
114
+ ...this.queryParams,
115
+ search: query
116
+ }, { ...this.graphParams }, this.isEdges);
117
+ }
118
+ /** Restrict SELECT to named columns (`?fields=a,b,c`). */
119
+ fields(columns) {
120
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
121
+ ...this.queryParams,
122
+ fields: columns
123
+ }, { ...this.graphParams }, this.isEdges);
124
+ }
125
+ allowedActions(actions) {
126
+ const newValue = actions.join(',');
127
+ const existing = this.queryParams?.allowed_actions;
128
+ const allowed_actions = existing ? `${existing},${newValue}` : newValue;
129
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
130
+ ...this.queryParams,
131
+ allowed_actions
132
+ }, { ...this.graphParams }, this.isEdges);
133
+ }
134
+ aggregate(...expressions) {
135
+ const newValue = expressions.join(',');
136
+ const existing = this.queryParams?._aggregate;
137
+ const _aggregate = existing ? `${existing},${newValue}` : newValue;
138
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
139
+ ...this.queryParams,
140
+ _aggregate
141
+ }, { ...this.graphParams }, this.isEdges);
142
+ }
143
+ groupBy(...fields) {
144
+ const newValue = fields.join(',');
145
+ const existing = this.queryParams?._group_by;
146
+ const _group_by = existing ? `${existing},${newValue}` : newValue;
147
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
148
+ ...this.queryParams,
149
+ _group_by
150
+ }, { ...this.graphParams }, this.isEdges);
151
+ }
152
+ having(condition) {
153
+ const existing = this.queryParams?._having;
154
+ const _having = existing ? `${existing},${condition}` : condition;
155
+ return new Database(this.client, { ...this.urlParams }, undefined, undefined, {
156
+ ...this.queryParams,
157
+ _having
158
+ }, { ...this.graphParams }, this.isEdges);
159
+ }
160
+ // CRUD methods
161
+ get(recordId) {
162
+ return new Database(this.client, { ...this.urlParams, recordId }, HttpMethod.GET, undefined, this.queryParams, { ...this.graphParams }, this.isEdges);
163
+ }
164
+ create(body) {
165
+ return new Database(this.client, { ...this.urlParams }, HttpMethod.POST, body, this.queryParams, { ...this.graphParams }, this.isEdges);
166
+ }
167
+ upsert(body, uniqueFields) {
168
+ const qp = uniqueFields?.length ? { ...this.queryParams, unique_fields: uniqueFields.join(',') } : this.queryParams;
169
+ return new Database(this.client, { ...this.urlParams }, HttpMethod.POST, body, qp, { ...this.graphParams }, this.isEdges, true);
170
+ }
171
+ update(body) {
172
+ return new Database(this.client, { ...this.urlParams }, HttpMethod.PATCH, body, this.queryParams, { ...this.graphParams }, this.isEdges);
173
+ }
174
+ bulkUpdate(body) {
175
+ return new Database(this.client, { ...this.urlParams }, HttpMethod.PATCH, body, this.queryParams, { ...this.graphParams }, this.isEdges);
176
+ }
177
+ delete(recordIdOrEdgeIds) {
178
+ if (Array.isArray(recordIdOrEdgeIds)) {
179
+ const body = { edge_ids: recordIdOrEdgeIds };
180
+ return new Database(this.client, { ...this.urlParams }, HttpMethod.DELETE, body, this.queryParams, { ...this.graphParams }, this.isEdges);
181
+ }
182
+ return new Database(this.client, { ...this.urlParams, recordId: recordIdOrEdgeIds }, HttpMethod.DELETE, undefined, this.queryParams, { ...this.graphParams }, this.isEdges);
183
+ }
184
+ bulkDelete(ids) {
185
+ return new Database(this.client, { ...this.urlParams }, HttpMethod.DELETE, undefined, {
186
+ ...this.queryParams,
187
+ ids: ids.join(',')
188
+ }, { ...this.graphParams }, this.isEdges);
189
+ }
190
+ deleteFiltered() {
191
+ return new Database(this.client, { ...this.urlParams }, HttpMethod.DELETE, undefined, this.queryParams, { ...this.graphParams }, this.isEdges);
192
+ }
193
+ async first() {
194
+ const response = await this.execute();
195
+ const data = response.data;
196
+ if (Array.isArray(data)) {
197
+ return data[0] ?? null;
198
+ }
199
+ return data ?? null;
200
+ }
201
+ async count() {
202
+ const response = await this.execute();
203
+ if (response.total !== undefined) {
204
+ return response.total;
205
+ }
206
+ return Array.isArray(response.data) ? response.data.length : 0;
207
+ }
208
+ getTableName() {
209
+ const table = this.urlParams.dataTables;
210
+ if (!table)
211
+ throw new Error('Table name is required. Call .from(tableName) first.');
212
+ return this.isEdges ? `${table}_edges` : table;
213
+ }
214
+ buildRoute() {
215
+ const tableName = this.getTableName();
216
+ const base = DatabaseRoutes.baseUrl(this.config.appSlug) +
217
+ DatabaseRoutes.dataTables(tableName) +
218
+ (this.urlParams.recordId ? DatabaseRoutes.recordId(this.urlParams.recordId) : '') +
219
+ (this.isUpsert ? DatabaseRoutes.upsert() : '') +
220
+ '/';
221
+ // Merge database filters and graph params into one query string
222
+ const allParams = { ...this.queryParams, ...this.graphParams };
223
+ return base + buildQueryString(allParams);
224
+ }
225
+ async execute() {
226
+ if (!this.urlParams.dataTables) {
227
+ throw new Error('Table name is required. Call .from(tableName) first.');
228
+ }
229
+ const url = this.buildRoute();
230
+ const operation = this.operation || HttpMethod.GET;
231
+ switch (operation) {
232
+ case HttpMethod.POST:
233
+ return await this.client.httpClient.post(url, this.body);
234
+ case HttpMethod.PATCH:
235
+ if (!this.urlParams.recordId && !Array.isArray(this.body)) {
236
+ throw new Error('PATCH operation requires a record ID.');
237
+ }
238
+ return await this.client.httpClient.patch(url, this.body);
239
+ case HttpMethod.DELETE:
240
+ if (this.body) {
241
+ return await this.client.httpClient.delete(url, this.body);
242
+ }
243
+ return await this.client.httpClient.delete(url);
244
+ case HttpMethod.GET:
245
+ default:
246
+ return await this.client.httpClient.get(url);
247
+ }
248
+ }
249
+ }
250
+ //# sourceMappingURL=DatabaseClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseClient.js","sourceRoot":"","sources":["../../../src/lib/database/DatabaseClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { Client } from "../../client.js";
2
+ import { HttpMethod } from "../../lib-internal/http/types.js";
3
+ import type { TaruviResponse } from "../../types.js";
4
+ import type { SortOrder, GraphInclude } from "../../utils/enums.js";
5
+ export type { SortOrder, GraphInclude };
6
+ export type { DataFormat } from "../../utils/enums.js";
7
+ export type DatabaseOperation = HttpMethod;
8
+ export type FilterOperator = 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin' | 'ina' | 'nina' | 'contains' | 'ncontains' | 'containss' | 'ncontainss' | 'icontains' | 'nicontains' | 'startswith' | 'nstartswith' | 'startswiths' | 'nstartswiths' | 'endswith' | 'nendswith' | 'endswiths' | 'nendswiths' | 'between' | 'nbetween' | 'null' | 'nnull' | 'search' | 'like' | 'ilike' | 'acontains' | 'nacontains' | 'acontainedby' | 'nacontainedby' | 'aoverlap' | 'naoverlap' | 'aelement' | 'naelement' | 'rcontains' | 'rcontainedby' | 'roverlaps' | 'radjacent' | 'rstrictleft' | 'rstrictright';
9
+ export interface UrlParams {
10
+ appSlug?: string;
11
+ dataTables?: string;
12
+ recordId?: string;
13
+ }
14
+ export interface DatabaseClientInterface {
15
+ client: Client;
16
+ urlParams?: UrlParams;
17
+ }
18
+ export interface DatabaseRequest {
19
+ [key: string]: unknown;
20
+ }
21
+ export type DatabaseResponse<T = unknown> = TaruviResponse<T[]>;
22
+ export type DatabaseSingleResponse<T = unknown> = TaruviResponse<T>;
23
+ export type GraphFormat = 'flat' | 'tree' | 'graph';
24
+ export interface EdgeRequest {
25
+ from_id: number | string;
26
+ to_id: number | string;
27
+ type: string;
28
+ metadata?: Record<string, unknown>;
29
+ }
30
+ export interface EdgeResponse {
31
+ id: number;
32
+ from_id: number | string;
33
+ to_id: number | string;
34
+ type: string;
35
+ metadata?: Record<string, unknown>;
36
+ }
37
+ export interface EdgeDeleteRequest {
38
+ edge_ids: number[];
39
+ }
40
+ export interface PgRangeValue {
41
+ lower: string | number | null;
42
+ upper: string | number | null;
43
+ bounds: '()' | '(]' | '[)' | '[]';
44
+ empty: boolean;
45
+ }
46
+ /**
47
+ * Leaf node for the backend `filters` JSON query param.
48
+ * Leaf `operator` strings are platform tokens (see taruvi-platform `FIELD_OPERATORS` /
49
+ * `filter_translator`). `contains` = case-insensitive substring; `containss` = case-sensitive.
50
+ */
51
+ export interface BackendFilterLeafNode {
52
+ field: string;
53
+ operator: string;
54
+ value: unknown;
55
+ }
56
+ /** Logical `and` / `or` group for the backend `filters` JSON query param. */
57
+ export interface BackendFilterLogicalNode {
58
+ operator: 'and' | 'or';
59
+ value: BackendFilterNode[];
60
+ }
61
+ export type BackendFilterNode = BackendFilterLogicalNode | BackendFilterLeafNode;
62
+ /** Top level of the `filters` JSON payload: an array of logical nodes. */
63
+ export type BackendFilterTreeRoot = BackendFilterLogicalNode[];
64
+ /** Runtime check for the single-arg `filters(tree)` overload. */
65
+ export declare function isBackendFilterTreeRoot(x: unknown): x is BackendFilterTreeRoot;
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/database/types.ts"],"names":[],"mappings":"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"}