@taruvi/sdk 1.5.0 → 1.5.1-beta.4

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 (231) 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 +38 -0
  27. package/dist/lib/auth/AuthClient.d.ts.map +1 -0
  28. package/dist/lib/auth/AuthClient.js +105 -0
  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 +2 -0
  115. package/dist/lib-internal/routes/AuthRoutes.d.ts.map +1 -0
  116. package/dist/lib-internal/routes/AuthRoutes.js +2 -0
  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/AuthClient.ts +0 -148
  183. package/src/lib/auth/types.ts +0 -123
  184. package/src/lib/database/DatabaseClient.ts +0 -244
  185. package/src/lib/database/types.ts +0 -90
  186. package/src/lib/functions/FunctionsClient.ts +0 -27
  187. package/src/lib/functions/types.ts +0 -27
  188. package/src/lib/policy/types.ts +0 -39
  189. package/src/lib/secrets/SecretsClient.ts +0 -75
  190. package/src/lib/secrets/types.ts +0 -59
  191. package/src/lib/settings/SettingsClient.ts +0 -22
  192. package/src/lib/settings/types.ts +0 -9
  193. package/src/lib/storage/StorageClient.ts +0 -131
  194. package/src/lib/storage/types.ts +0 -86
  195. package/src/lib/users/UserClient.ts +0 -63
  196. package/src/lib/users/types.ts +0 -123
  197. package/src/lib-internal/errors/ErrorClient.ts +0 -114
  198. package/src/lib-internal/errors/index.ts +0 -3
  199. package/src/lib-internal/errors/types.ts +0 -29
  200. package/src/lib-internal/http/HttpClient.ts +0 -117
  201. package/src/lib-internal/routes/AnalyticsRoutes.ts +0 -3
  202. package/src/lib-internal/routes/AppRoutes.ts +0 -9
  203. package/src/lib-internal/routes/AuthRoutes.ts +0 -3
  204. package/src/lib-internal/routes/DatabaseRoutes.ts +0 -10
  205. package/src/lib-internal/routes/FunctionRoutes.ts +0 -3
  206. package/src/lib-internal/routes/PolicyRoutes.ts +0 -4
  207. package/src/lib-internal/routes/SecretsRoutes.ts +0 -5
  208. package/src/lib-internal/routes/StorageRoutes.ts +0 -15
  209. package/src/lib-internal/routes/UserRoutes.ts +0 -12
  210. package/src/lib-internal/routes/index.ts +0 -0
  211. package/src/lib-internal/token/types.ts +0 -0
  212. package/src/types.ts +0 -98
  213. package/src/utils/enums.ts +0 -24
  214. package/src/utils/utils.ts +0 -37
  215. package/tests/fixtures/mockClient.ts +0 -19
  216. package/tests/mocks/db.json +0 -1
  217. package/tests/unit/analytics/AnalyticsClient.test.ts +0 -84
  218. package/tests/unit/app/AppClient.test.ts +0 -114
  219. package/tests/unit/auth/AuthClient.test.ts +0 -91
  220. package/tests/unit/client/Client.test.ts +0 -87
  221. package/tests/unit/database/DatabaseClient.test.ts +0 -565
  222. package/tests/unit/edge-cases/robustness.test.ts +0 -258
  223. package/tests/unit/errors/errors.test.ts +0 -236
  224. package/tests/unit/functions/FunctionsClient.test.ts +0 -99
  225. package/tests/unit/policy/PolicyClient.test.ts +0 -180
  226. package/tests/unit/secrets/SecretsClient.test.ts +0 -146
  227. package/tests/unit/settings/SettingsClient.test.ts +0 -50
  228. package/tests/unit/storage/StorageClient.test.ts +0 -252
  229. package/tests/unit/users/UserClient.test.ts +0 -150
  230. package/tsconfig.json +0 -44
  231. package/vitest.config.ts +0 -7
@@ -0,0 +1,27 @@
1
+ import { HttpClient } from "./lib-internal/http/HttpClient.js";
2
+ import { TokenClient } from "./lib-internal/token/TokenClient.js";
3
+ import type { TaruviConfig } from "./types.js";
4
+ export declare class Client {
5
+ private readonly config;
6
+ private readonly _httpClient;
7
+ private readonly _tokenClient;
8
+ constructor(config: TaruviConfig);
9
+ /**
10
+ * Extracts session token from URL hash and stores it using TokenClient.
11
+ * Handles callback URLs like: #session_token=xxx
12
+ * After extraction, the URL hash is cleared.
13
+ */
14
+ private extractTokensFromUrl;
15
+ /**
16
+ * @internal
17
+ * Internal use only - not part of public API
18
+ */
19
+ get httpClient(): HttpClient;
20
+ /**
21
+ * @internal
22
+ * Internal use only - not part of public API
23
+ */
24
+ get tokenClient(): TokenClient;
25
+ getConfig(): Readonly<TaruviConfig>;
26
+ }
27
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,qBAAa,MAAM;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;gBAE9B,MAAM,EAAE,YAAY;IA2BhC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;OAGG;IACH,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC;CAGtC"}
@@ -1,88 +1,70 @@
1
1
  import { HttpClient } from "./lib-internal/http/HttpClient.js";
2
- import { TokenClient, type AuthTokens } from "./lib-internal/token/TokenClient.js";
3
- import type { TaruviConfig } from "./types.js";
2
+ import { TokenClient } from "./lib-internal/token/TokenClient.js";
4
3
  import packageJson from "../package.json" with { type: "json" };
5
-
6
4
  export class Client {
7
- private readonly config: TaruviConfig
8
- private readonly _httpClient: HttpClient
9
- private readonly _tokenClient: TokenClient
10
-
11
- constructor(config: TaruviConfig) {
5
+ config;
6
+ _httpClient;
7
+ _tokenClient;
8
+ constructor(config) {
12
9
  if (!config) {
13
- throw new Error("Config is required")
10
+ throw new Error("Config is required");
14
11
  }
15
-
16
12
  if (!config.apiKey) {
17
- throw new Error("API key is required")
13
+ throw new Error("API key is required");
18
14
  }
19
-
20
15
  if (!config.apiUrl) {
21
- throw new Error("API URL is required")
16
+ throw new Error("API URL is required");
22
17
  }
23
-
24
- this.config = config
25
-
18
+ this.config = config;
26
19
  // Internal clients for SDK use only
27
20
  // TokenClient must be created first, then passed to HttpClient
28
-
29
- this._tokenClient = new TokenClient(config.token)
30
- this._httpClient = new HttpClient(this.config, this._tokenClient)
31
-
21
+ this._tokenClient = new TokenClient(config.token);
22
+ this._httpClient = new HttpClient(this.config, this._tokenClient);
32
23
  // Check URL hash for tokens (OAuth callback)
33
- this.extractTokensFromUrl()
34
-
35
- console.info(`Taruvi SDK v${packageJson.version} initialized`)
24
+ this.extractTokensFromUrl();
25
+ console.info(`Taruvi SDK v${packageJson.version} initialized`);
36
26
  }
37
-
38
27
  /**
39
28
  * Extracts session token from URL hash and stores it using TokenClient.
40
29
  * Handles callback URLs like: #session_token=xxx
41
30
  * After extraction, the URL hash is cleared.
42
31
  */
43
- private extractTokensFromUrl(): void {
32
+ extractTokensFromUrl() {
44
33
  if (typeof window === "undefined" || typeof localStorage === "undefined") {
45
- return
34
+ return;
46
35
  }
47
-
48
- const hash = window.location.hash
36
+ const hash = window.location.hash;
49
37
  if (!hash) {
50
- return
38
+ return;
51
39
  }
52
-
53
- const params = new URLSearchParams(hash.substring(1))
54
- const sessionToken = params.get("session_token")
55
-
40
+ const params = new URLSearchParams(hash.substring(1));
41
+ const sessionToken = params.get("session_token");
56
42
  if (!sessionToken) {
57
- return
43
+ return;
58
44
  }
59
-
60
- this._tokenClient.setTokens({ sessionToken })
61
-
45
+ this._tokenClient.setTokens({ sessionToken });
62
46
  // Clear hash from URL without reloading page
63
47
  if (window.history && window.history.replaceState) {
64
- const urlWithoutHash = window.location.pathname + window.location.search
65
- window.history.replaceState(null, "", urlWithoutHash)
48
+ const urlWithoutHash = window.location.pathname + window.location.search;
49
+ window.history.replaceState(null, "", urlWithoutHash);
66
50
  }
67
51
  }
68
-
69
52
  /**
70
53
  * @internal
71
54
  * Internal use only - not part of public API
72
55
  */
73
- get httpClient(): HttpClient {
74
- return this._httpClient
56
+ get httpClient() {
57
+ return this._httpClient;
75
58
  }
76
-
77
59
  /**
78
60
  * @internal
79
61
  * Internal use only - not part of public API
80
62
  */
81
- get tokenClient(): TokenClient {
82
- return this._tokenClient
63
+ get tokenClient() {
64
+ return this._tokenClient;
83
65
  }
84
-
85
- getConfig(): Readonly<TaruviConfig> {
86
- return { ...this.config }
66
+ getConfig() {
67
+ return { ...this.config };
87
68
  }
88
69
  }
70
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEhE,MAAM,OAAO,MAAM;IACE,MAAM,CAAc;IACpB,WAAW,CAAY;IACvB,YAAY,CAAa;IAE1C,YAAY,MAAoB;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,oCAAoC;QACpC,+DAA+D;QAE/D,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACjD,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAEjE,6CAA6C;QAC7C,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAE3B,OAAO,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,OAAO,cAAc,CAAC,CAAA;IAClE,CAAC;IAED;;;;OAIG;IACK,oBAAoB;QACxB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACvE,OAAM;QACV,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAM;QACV,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QAEhD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAM;QACV,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;QAE7C,6CAA6C;QAC7C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;YACxE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAA;IAC5B,CAAC;IAED,SAAS;QACL,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC7B,CAAC;CACJ"}
@@ -0,0 +1,28 @@
1
+ export { Client } from "./client.js";
2
+ export { TaruviError, ValidationError, AuthError, ForbiddenError, NotFoundError, ConflictError, TimeoutError, NetworkError, RateLimitError } from "./lib-internal/errors/index.js";
3
+ export { ErrorCode } from "./lib-internal/errors/index.js";
4
+ export type { ErrorResponseBody } from "./lib-internal/errors/index.js";
5
+ export { Auth } from "./lib/auth/AuthClient.js";
6
+ export { User } from "./lib/users/UserClient.js";
7
+ export { Storage } from "./lib/storage/StorageClient.js";
8
+ export { Database } from "./lib/database/DatabaseClient.js";
9
+ export { Settings } from "./lib/settings/SettingsClient.js";
10
+ export { Functions } from "./lib/functions/FunctionsClient.js";
11
+ export { Secrets } from "./lib/secrets/SecretsClient.js";
12
+ export { Policy } from "./lib/policy/PolicyClient.js";
13
+ export { App } from "./lib/app/AppClient.js";
14
+ export { Analytics } from "./lib/analytics/AnalyticsClient.js";
15
+ export type { TaruviConfig, TaruviResponse, PaginationInfo, StorageFilters, DatabaseFilters } from "./types.js";
16
+ export type { AuthTokens } from "./lib-internal/token/TokenClient.js";
17
+ export type { UserCreateRequest, UserData, UserUpdateRequest, UserListFilters, UserApp, UserResponse, UserListResponse, UserAppsResponse, AssignRolesRequest, RevokeRolesRequest, RolesResponse, UserGroup, UserPermission, UserRole, UserPreferences, UserPreferencesUpdate, UserPreferencesResponse } from "./lib/users/types.js";
18
+ export type { Principal, Resource, Resources, PolicyCheckResult, PolicyCheckBatchResult, ResourceCheckResponse, GetAllowedActionsOptions } from "./lib/policy/types.js";
19
+ export type { RoleData, AppSettingsData, RoleResponse, RolesListResponse, AppSettingsResponse } from "./lib/app/types.js";
20
+ export type { FunctionRequest, FunctionResponse, FunctionInvocation } from "./lib/functions/types.js";
21
+ export type { DatabaseRequest, DatabaseResponse, DatabaseSingleResponse, FilterOperator, GraphFormat, EdgeRequest, EdgeResponse, EdgeDeleteRequest, PgRangeValue, BackendFilterLeafNode, BackendFilterLogicalNode, BackendFilterNode, BackendFilterTreeRoot } from "./lib/database/types.js";
22
+ export { isBackendFilterTreeRoot } from "./lib/database/types.js";
23
+ export { SortOrder, DataFormat, GraphInclude, Visibility, MimeTypeCategory } from "./utils/enums.js";
24
+ export type { StorageRequest, StorageUpdateRequest, StorageObject, StorageResponse, StorageListResponse, StorageUploadBatchResponse, StorageDeleteBatchResponse } from "./lib/storage/types.js";
25
+ export type { SiteSettingsData, SettingsResponse } from "./lib/settings/types.js";
26
+ export type { SecretCreateRequest, SecretUpdateRequest, SecretData, SecretResponse, SecretsListResponse, SecretsBatchResponse, SecretsBatchMetadataResponse, GetSecretOptions, GetSecretsOptions } from "./lib/secrets/types.js";
27
+ export type { AnalyticsRequest, AnalyticsResponse } from "./lib/analytics/types.js";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAClL,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAGvE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAG9D,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC/G,YAAY,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAGrE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAGnU,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAGvK,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAGzH,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAGrG,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC5R,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGpG,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAG/L,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGhO,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ // Export main client
2
+ export { Client } from "./client.js";
3
+ // Export error classes
4
+ export { TaruviError, ValidationError, AuthError, ForbiddenError, NotFoundError, ConflictError, TimeoutError, NetworkError, RateLimitError } from "./lib-internal/errors/index.js";
5
+ export { ErrorCode } from "./lib-internal/errors/index.js";
6
+ // Export public client classes
7
+ export { Auth } from "./lib/auth/AuthClient.js";
8
+ export { User } from "./lib/users/UserClient.js";
9
+ export { Storage } from "./lib/storage/StorageClient.js";
10
+ export { Database } from "./lib/database/DatabaseClient.js";
11
+ export { Settings } from "./lib/settings/SettingsClient.js";
12
+ export { Functions } from "./lib/functions/FunctionsClient.js";
13
+ export { Secrets } from "./lib/secrets/SecretsClient.js";
14
+ export { Policy } from "./lib/policy/PolicyClient.js";
15
+ export { App } from "./lib/app/AppClient.js";
16
+ export { Analytics } from "./lib/analytics/AnalyticsClient.js";
17
+ export { isBackendFilterTreeRoot } from "./lib/database/types.js";
18
+ // Enums / runtime constants
19
+ export { SortOrder, DataFormat, GraphInclude, Visibility, MimeTypeCategory } from "./utils/enums.js";
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAClL,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG1D,+BAA+B;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAoB9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,4BAA4B;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { Client } from "../../client.js";
2
+ import type { AnalyticsRequest, AnalyticsResponse } from "./types.js";
3
+ export declare class Analytics {
4
+ private client;
5
+ private config;
6
+ constructor(client: Client);
7
+ execute<T = unknown>(querySlug: string, options?: AnalyticsRequest): Promise<AnalyticsResponse<T>>;
8
+ }
9
+ //# sourceMappingURL=AnalyticsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsClient.d.ts","sourceRoot":"","sources":["../../../src/lib/analytics/AnalyticsClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGtE,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,MAAM;IAKpB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAS/G"}
@@ -0,0 +1,17 @@
1
+ import { AnalyticsRoutes } from "../../lib-internal/routes/AnalyticsRoutes.js";
2
+ export class Analytics {
3
+ client;
4
+ config;
5
+ constructor(client) {
6
+ this.client = client;
7
+ this.config = this.client.getConfig();
8
+ }
9
+ async execute(querySlug, options = {}) {
10
+ const url = AnalyticsRoutes.baseUrl(this.config.appSlug, querySlug);
11
+ const body = {
12
+ params: options.params || {}
13
+ };
14
+ return await this.client.httpClient.post(url, body);
15
+ }
16
+ }
17
+ //# sourceMappingURL=AnalyticsClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsClient.js","sourceRoot":"","sources":["../../../src/lib/analytics/AnalyticsClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAE/E,MAAM,OAAO,SAAS;IACV,MAAM,CAAQ;IACd,MAAM,CAAc;IAE5B,YAAY,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,SAAiB,EAAE,UAA4B,EAAE;QACxE,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAEnE,MAAM,IAAI,GAAG;YACT,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;SAC/B,CAAA;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAuB,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7E,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import type { TaruviResponse } from "../../types.js";
2
+ export interface AnalyticsRequest {
3
+ params?: Record<string, unknown>;
4
+ }
5
+ export type AnalyticsResponse<T = unknown> = TaruviResponse<T>;
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/analytics/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAGD,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/analytics/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import type { Client } from "../../client.js";
2
+ import { HttpMethod } from "../../lib-internal/http/types.js";
3
+ import type { UrlParams } from "./types.js";
4
+ export declare class App {
5
+ private client;
6
+ private urlParams;
7
+ private config;
8
+ private operation;
9
+ constructor(client: Client, urlParams?: UrlParams, operation?: HttpMethod | undefined);
10
+ roles(): App;
11
+ settings(): App;
12
+ private buildRoute;
13
+ execute(): Promise<unknown>;
14
+ }
15
+ //# sourceMappingURL=AppClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppClient.d.ts","sourceRoot":"","sources":["../../../src/lib/app/AppClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAwB;gBAE7B,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,SAAc,EAAE,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS;IAOzF,KAAK;IAIL,QAAQ;IAIR,OAAO,CAAC,UAAU;IAgBZ,OAAO;CAUhB"}
@@ -0,0 +1,41 @@
1
+ import { AppRoutes } from "../../lib-internal/routes/AppRoutes.js";
2
+ import { HttpMethod } from "../../lib-internal/http/types.js";
3
+ export class App {
4
+ client;
5
+ urlParams;
6
+ config;
7
+ operation;
8
+ constructor(client, urlParams = {}, operation) {
9
+ this.client = client;
10
+ this.urlParams = urlParams;
11
+ this.operation = operation;
12
+ this.config = this.client.getConfig();
13
+ }
14
+ roles() {
15
+ return new App(this.client, { ...this.urlParams, roles: "roles" }, HttpMethod.GET);
16
+ }
17
+ settings() {
18
+ return new App(this.client, { ...this.urlParams, settings: "settings" }, HttpMethod.GET);
19
+ }
20
+ buildRoute() {
21
+ return (AppRoutes.baseUrl(this.config.appSlug) +
22
+ Object.keys(this.urlParams).reduce((acc, key) => {
23
+ const value = this.urlParams[key];
24
+ const routeBuilder = AppRoutes[key];
25
+ if (value && routeBuilder) {
26
+ acc += routeBuilder();
27
+ }
28
+ return acc;
29
+ }, ""));
30
+ }
31
+ async execute() {
32
+ const url = this.buildRoute();
33
+ const operation = this.operation || HttpMethod.GET;
34
+ switch (operation) {
35
+ case HttpMethod.GET:
36
+ default:
37
+ return await this.client.httpClient.get(url);
38
+ }
39
+ }
40
+ }
41
+ //# sourceMappingURL=AppClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppClient.js","sourceRoot":"","sources":["../../../src/lib/app/AppClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAoB,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAI9D,MAAM,OAAO,GAAG;IACJ,MAAM,CAAQ;IACd,SAAS,CAAW;IACpB,MAAM,CAAc;IACpB,SAAS,CAAwB;IAEzC,YAAY,MAAc,EAAE,YAAuB,EAAE,EAAE,SAAkC;QACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACzC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;IACtF,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;IAC1F,CAAC;IAEO,UAAU;QACd,OAAO,CACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACjC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;gBAEnC,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;oBACxB,GAAG,IAAI,YAAY,EAAE,CAAA;gBACzB,CAAC;gBAED,OAAO,GAAG,CAAA;YACd,CAAC,EAAE,EAAE,CAAC,CACT,CAAA;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,GAAG,CAAA;QAElD,QAAQ,SAAS,EAAE,CAAC;YAChB,KAAK,UAAU,CAAC,GAAG,CAAC;YACpB;gBACI,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpD,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,41 @@
1
+ import type { Client } from "../../client.js";
2
+ import { HttpMethod } from "../../lib-internal/http/types.js";
3
+ import type { TaruviResponse } from "../../types.js";
4
+ export type AppOperation = HttpMethod;
5
+ export interface UrlParams {
6
+ appSlug?: string;
7
+ roles?: string;
8
+ settings?: string;
9
+ }
10
+ export interface AppClientInterface {
11
+ client: Client;
12
+ urlParams?: UrlParams;
13
+ }
14
+ export interface RoleData {
15
+ id: string | number;
16
+ name: string;
17
+ slug: string;
18
+ description?: string;
19
+ permissions?: string[];
20
+ created_at?: string;
21
+ updated_at?: string;
22
+ }
23
+ export interface AppSettingsData {
24
+ display_name: string;
25
+ icon: string | null;
26
+ icon_url: string | null;
27
+ primary_color: string;
28
+ secondary_color: string;
29
+ banner_image: string | null;
30
+ banner_image_url: string | null;
31
+ category: string;
32
+ documentation_url: string | null;
33
+ support_email: string | null;
34
+ default_frontend_worker_url: string | null;
35
+ created_at: string;
36
+ updated_at: string;
37
+ }
38
+ export type RoleResponse = TaruviResponse<RoleData>;
39
+ export type RolesListResponse = TaruviResponse<RoleData[]>;
40
+ export type AppSettingsResponse = TaruviResponse<AppSettingsData>;
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/app/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAA;AAGrC,MAAM,WAAW,SAAS;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;CACxB;AAGD,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACrB;AAGD,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;AACnD,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC1D,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { HttpMethod } from "../../lib-internal/http/types.js";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/app/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA"}
@@ -0,0 +1,38 @@
1
+ import type { Client } from "../../client.js";
2
+ import type { TaruviResponse } from "../../types.js";
3
+ import type { UserData } from "../users/types.js";
4
+ /**
5
+ * Auth Client - Handles user authentication using Web UI Flow
6
+ * Uses session token for API authentication via X-Session-Token header.
7
+ * On 401, tokens are cleared automatically by HttpClient interceptor (403 does not clear the token).
8
+ */
9
+ export declare class Auth {
10
+ private client;
11
+ constructor(client: Client);
12
+ /**
13
+ * Redirect to login page (Web UI Flow)
14
+ */
15
+ login(callbackUrl?: string): void;
16
+ /**
17
+ * Redirect to signup page (Web UI Flow)
18
+ */
19
+ signup(callbackUrl?: string): void;
20
+ /**
21
+ * Logout user and redirect to logout page
22
+ */
23
+ logout(callbackUrl?: string): Promise<void>;
24
+ /**
25
+ * Check if user is authenticated (has session token)
26
+ */
27
+ isUserAuthenticated(): boolean;
28
+ /**
29
+ * Get the current session token
30
+ */
31
+ getSessionToken(): string | null;
32
+ /**
33
+ * Get current user from API
34
+ * @returns Promise with user data or null if not authenticated
35
+ */
36
+ getCurrentUser(): Promise<TaruviResponse<UserData> | null>;
37
+ }
38
+ //# sourceMappingURL=AuthClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthClient.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/AuthClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD;;;;GAIG;AACH,qBAAa,IAAI;IACb,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBjC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAoBlC;;OAEG;IACG,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjD;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CAYnE"}
@@ -0,0 +1,105 @@
1
+ import { UserRoutes } from "../../lib-internal/routes/UserRoutes.js";
2
+ /**
3
+ * Auth Client - Handles user authentication using Web UI Flow
4
+ * Uses session token for API authentication via X-Session-Token header.
5
+ * On 401, tokens are cleared automatically by HttpClient interceptor (403 does not clear the token).
6
+ */
7
+ export class Auth {
8
+ client;
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+ /**
13
+ * Redirect to login page (Web UI Flow)
14
+ */
15
+ login(callbackUrl) {
16
+ if (typeof window === "undefined") {
17
+ console.error("login() can only be called in browser environment");
18
+ return;
19
+ }
20
+ const config = this.client.getConfig();
21
+ const callback = callbackUrl || window.location.origin + window.location.pathname;
22
+ const deskUrl = config.deskUrl || config.apiUrl;
23
+ const loginUrl = `${deskUrl}/accounts/login/?redirect_to=${encodeURIComponent(callback)}`;
24
+ if (typeof sessionStorage !== "undefined") {
25
+ sessionStorage.setItem("auth_state", JSON.stringify({
26
+ returnTo: window.location.pathname,
27
+ timestamp: Date.now()
28
+ }));
29
+ }
30
+ window.location.href = loginUrl;
31
+ }
32
+ /**
33
+ * Redirect to signup page (Web UI Flow)
34
+ */
35
+ signup(callbackUrl) {
36
+ if (typeof window === "undefined") {
37
+ console.error("signup() can only be called in browser environment");
38
+ return;
39
+ }
40
+ const config = this.client.getConfig();
41
+ const callback = callbackUrl || window.location.origin + window.location.pathname;
42
+ const signupUrl = `${config.apiUrl}/accounts/signup/?redirect_to=${encodeURIComponent(callback)}`;
43
+ if (typeof sessionStorage !== "undefined") {
44
+ sessionStorage.setItem("auth_state", JSON.stringify({
45
+ returnTo: window.location.pathname,
46
+ timestamp: Date.now()
47
+ }));
48
+ }
49
+ window.location.href = signupUrl;
50
+ }
51
+ /**
52
+ * Logout user and redirect to logout page
53
+ */
54
+ async logout(callbackUrl) {
55
+ if (typeof window === "undefined") {
56
+ console.error("logout() can only be called in browser environment");
57
+ return;
58
+ }
59
+ this.client.tokenClient.clearTokens();
60
+ const config = this.client.getConfig();
61
+ const deskUrl = config.deskUrl || config.apiUrl;
62
+ let callback = callbackUrl || "";
63
+ if (!callback) {
64
+ try {
65
+ const settings = await this.client.httpClient.get(`api/sites/${config.appSlug}/metadata`);
66
+ callback = settings.frontend_url || window.location.origin;
67
+ }
68
+ catch (error) {
69
+ console.error("Failed to fetch site settings, using origin:", error);
70
+ callback = window.location.origin;
71
+ }
72
+ }
73
+ const logoutUrl = `${deskUrl}/accounts/logout/?redirect_to=${encodeURIComponent(callback)}`;
74
+ window.location.href = logoutUrl;
75
+ }
76
+ /**
77
+ * Check if user is authenticated (has session token)
78
+ */
79
+ isUserAuthenticated() {
80
+ return this.client.tokenClient.isAuthenticated();
81
+ }
82
+ /**
83
+ * Get the current session token
84
+ */
85
+ getSessionToken() {
86
+ return this.client.tokenClient.getSessionToken();
87
+ }
88
+ /**
89
+ * Get current user from API
90
+ * @returns Promise with user data or null if not authenticated
91
+ */
92
+ async getCurrentUser() {
93
+ if (!this.isUserAuthenticated()) {
94
+ return null;
95
+ }
96
+ try {
97
+ return await this.client.httpClient.get(UserRoutes.getCurrentUser());
98
+ }
99
+ catch (error) {
100
+ console.error("Failed to fetch current user:", error);
101
+ return null;
102
+ }
103
+ }
104
+ }
105
+ //# sourceMappingURL=AuthClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthClient.js","sourceRoot":"","sources":["../../../src/lib/auth/AuthClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE;;;;GAIG;AACH,MAAM,OAAO,IAAI;IACL,MAAM,CAAQ;IAEtB,YAAY,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAoB;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;YAClE,OAAM;QACV,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QACtC,MAAM,QAAQ,GAAG,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAA;QAC/C,MAAM,QAAQ,GAAG,GAAG,OAAO,gCAAgC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEzF,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YACxC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC,CAAA;QACP,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAoB;QACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;YACnE,OAAM;QACV,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QACtC,MAAM,QAAQ,GAAG,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;QACjF,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,MAAM,iCAAiC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEjG,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YACxC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC,CAAA;QACP,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,WAAoB;QAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;YACnE,OAAM;QACV,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;QAErC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAA;QAC/C,IAAI,QAAQ,GAAW,WAAW,IAAI,EAAE,CAAA;QAExC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAC7C,aAAa,MAAM,CAAC,OAAO,WAAW,CACzC,CAAA;gBACD,QAAQ,GAAG,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAA;gBACpE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;YACrC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,OAAO,iCAAiC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QAC3F,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;IACpD,CAAC;IAED;;OAEG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;IACpD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACf,CAAC;QAED,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAA2B,UAAU,CAAC,cAAc,EAAE,CAAC,CAAA;QAClG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YACrD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;CACJ"}
@@ -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