@taruvi/sdk 1.5.0-beta.1 → 1.5.0-beta.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.
- package/README.md +58 -1295
- package/dist/client.d.ts +27 -0
- package/dist/client.d.ts.map +1 -0
- package/{src/client.ts → dist/client.js} +29 -47
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/analytics/AnalyticsClient.d.ts +9 -0
- package/dist/lib/analytics/AnalyticsClient.d.ts.map +1 -0
- package/dist/lib/analytics/AnalyticsClient.js +17 -0
- package/dist/lib/analytics/AnalyticsClient.js.map +1 -0
- package/dist/lib/analytics/types.d.ts +6 -0
- package/dist/lib/analytics/types.d.ts.map +1 -0
- package/dist/lib/analytics/types.js +2 -0
- package/dist/lib/analytics/types.js.map +1 -0
- package/dist/lib/app/AppClient.d.ts +15 -0
- package/dist/lib/app/AppClient.d.ts.map +1 -0
- package/dist/lib/app/AppClient.js +41 -0
- package/dist/lib/app/AppClient.js.map +1 -0
- package/dist/lib/app/types.d.ts +41 -0
- package/dist/lib/app/types.d.ts.map +1 -0
- package/dist/lib/app/types.js +2 -0
- package/dist/lib/app/types.js.map +1 -0
- package/dist/lib/auth/AuthClient.d.ts +38 -0
- package/dist/lib/auth/AuthClient.d.ts.map +1 -0
- package/{src/lib/auth/AuthClient.ts → dist/lib/auth/AuthClient.js} +48 -69
- package/dist/lib/auth/AuthClient.js.map +1 -0
- package/dist/lib/database/DatabaseClient.d.ts +76 -0
- package/dist/lib/database/DatabaseClient.d.ts.map +1 -0
- package/dist/lib/database/DatabaseClient.js +250 -0
- package/dist/lib/database/DatabaseClient.js.map +1 -0
- package/dist/lib/database/types.d.ts +66 -0
- package/dist/lib/database/types.d.ts.map +1 -0
- package/dist/lib/database/types.js +20 -0
- package/dist/lib/database/types.js.map +1 -0
- package/dist/lib/functions/FunctionsClient.d.ts +9 -0
- package/dist/lib/functions/FunctionsClient.d.ts.map +1 -0
- package/dist/lib/functions/FunctionsClient.js +20 -0
- package/dist/lib/functions/FunctionsClient.js.map +1 -0
- package/dist/lib/functions/types.d.ts +25 -0
- package/dist/lib/functions/types.d.ts.map +1 -0
- package/dist/lib/functions/types.js +2 -0
- package/dist/lib/functions/types.js.map +1 -0
- package/dist/lib/policy/PolicyClient.d.ts +25 -0
- package/dist/lib/policy/PolicyClient.d.ts.map +1 -0
- package/{src/lib/policy/PolicyClient.ts → dist/lib/policy/PolicyClient.js} +26 -40
- package/dist/lib/policy/PolicyClient.js.map +1 -0
- package/dist/lib/policy/types.d.ts +32 -0
- package/dist/lib/policy/types.d.ts.map +1 -0
- package/dist/lib/policy/types.js +2 -0
- package/dist/lib/policy/types.js.map +1 -0
- package/dist/lib/secrets/SecretsClient.d.ts +29 -0
- package/dist/lib/secrets/SecretsClient.d.ts.map +1 -0
- package/dist/lib/secrets/SecretsClient.js +66 -0
- package/dist/lib/secrets/SecretsClient.js.map +1 -0
- package/dist/lib/secrets/types.d.ts +43 -0
- package/dist/lib/secrets/types.d.ts.map +1 -0
- package/dist/lib/secrets/types.js +2 -0
- package/dist/lib/secrets/types.js.map +1 -0
- package/dist/lib/settings/SettingsClient.d.ts +9 -0
- package/dist/lib/settings/SettingsClient.d.ts.map +1 -0
- package/dist/lib/settings/SettingsClient.js +17 -0
- package/dist/lib/settings/SettingsClient.js.map +1 -0
- package/dist/lib/settings/types.d.ts +6 -0
- package/dist/lib/settings/types.d.ts.map +1 -0
- package/dist/lib/settings/types.js +2 -0
- package/dist/lib/settings/types.js.map +1 -0
- package/dist/lib/storage/StorageClient.d.ts +38 -0
- package/dist/lib/storage/StorageClient.d.ts.map +1 -0
- package/dist/lib/storage/StorageClient.js +102 -0
- package/dist/lib/storage/StorageClient.js.map +1 -0
- package/dist/lib/storage/types.d.ts +73 -0
- package/dist/lib/storage/types.d.ts.map +1 -0
- package/dist/lib/storage/types.js +2 -0
- package/dist/lib/storage/types.js.map +1 -0
- package/dist/lib/users/UserClient.d.ts +17 -0
- package/dist/lib/users/UserClient.d.ts.map +1 -0
- package/dist/lib/users/UserClient.js +40 -0
- package/dist/lib/users/UserClient.js.map +1 -0
- package/dist/lib/users/types.d.ts +108 -0
- package/dist/lib/users/types.d.ts.map +1 -0
- package/dist/lib/users/types.js +2 -0
- package/dist/lib/users/types.js.map +1 -0
- package/dist/lib-internal/errors/ErrorClient.d.ts +42 -0
- package/dist/lib-internal/errors/ErrorClient.d.ts.map +1 -0
- package/dist/lib-internal/errors/ErrorClient.js +102 -0
- package/dist/lib-internal/errors/ErrorClient.js.map +1 -0
- package/dist/lib-internal/errors/index.d.ts +4 -0
- package/dist/lib-internal/errors/index.d.ts.map +1 -0
- package/dist/lib-internal/errors/index.js +3 -0
- package/dist/lib-internal/errors/index.js.map +1 -0
- package/dist/lib-internal/errors/types.d.ts +29 -0
- package/dist/lib-internal/errors/types.d.ts.map +1 -0
- package/dist/lib-internal/errors/types.js +18 -0
- package/dist/lib-internal/errors/types.js.map +1 -0
- package/dist/lib-internal/http/HttpClient.d.ts +24 -0
- package/dist/lib-internal/http/HttpClient.d.ts.map +1 -0
- package/dist/lib-internal/http/HttpClient.js +103 -0
- package/dist/lib-internal/http/HttpClient.js.map +1 -0
- package/dist/lib-internal/http/types.d.ts +12 -0
- package/dist/lib-internal/http/types.d.ts.map +1 -0
- package/{src/lib-internal/http/types.ts → dist/lib-internal/http/types.js} +2 -3
- package/dist/lib-internal/http/types.js.map +1 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.d.ts +4 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.js +4 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.js.map +1 -0
- package/dist/lib-internal/routes/AppRoutes.d.ts +10 -0
- package/dist/lib-internal/routes/AppRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/AppRoutes.js +6 -0
- package/dist/lib-internal/routes/AppRoutes.js.map +1 -0
- package/dist/lib-internal/routes/AuthRoutes.d.ts +2 -0
- package/dist/lib-internal/routes/AuthRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/AuthRoutes.js +2 -0
- package/dist/lib-internal/routes/AuthRoutes.js.map +1 -0
- package/dist/lib-internal/routes/DatabaseRoutes.d.ts +11 -0
- package/dist/lib-internal/routes/DatabaseRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/DatabaseRoutes.js +7 -0
- package/dist/lib-internal/routes/DatabaseRoutes.js.map +1 -0
- package/dist/lib-internal/routes/FunctionRoutes.d.ts +4 -0
- package/dist/lib-internal/routes/FunctionRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/FunctionRoutes.js +4 -0
- package/dist/lib-internal/routes/FunctionRoutes.js.map +1 -0
- package/dist/lib-internal/routes/PolicyRoutes.d.ts +5 -0
- package/dist/lib-internal/routes/PolicyRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/PolicyRoutes.js +5 -0
- package/dist/lib-internal/routes/PolicyRoutes.js.map +1 -0
- package/dist/lib-internal/routes/SecretsRoutes.d.ts +6 -0
- package/dist/lib-internal/routes/SecretsRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/SecretsRoutes.js +6 -0
- package/dist/lib-internal/routes/SecretsRoutes.js.map +1 -0
- package/dist/lib-internal/routes/SettingsRoutes.d.ts +5 -0
- package/dist/lib-internal/routes/SettingsRoutes.d.ts.map +1 -0
- package/{src/lib-internal/routes/SettingsRoutes.ts → dist/lib-internal/routes/SettingsRoutes.js} +2 -1
- package/dist/lib-internal/routes/SettingsRoutes.js.map +1 -0
- package/dist/lib-internal/routes/StorageRoutes.d.ts +11 -0
- package/dist/lib-internal/routes/StorageRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/StorageRoutes.js +8 -0
- package/dist/lib-internal/routes/StorageRoutes.js.map +1 -0
- package/dist/lib-internal/routes/UserRoutes.d.ts +13 -0
- package/dist/lib-internal/routes/UserRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/UserRoutes.js +13 -0
- package/dist/lib-internal/routes/UserRoutes.js.map +1 -0
- package/dist/lib-internal/routes/index.d.ts +2 -0
- package/dist/lib-internal/routes/index.d.ts.map +1 -0
- package/dist/lib-internal/routes/index.js +2 -0
- package/dist/lib-internal/routes/index.js.map +1 -0
- package/dist/lib-internal/token/TokenClient.d.ts +38 -0
- package/dist/lib-internal/token/TokenClient.d.ts.map +1 -0
- package/{src/lib-internal/token/TokenClient.ts → dist/lib-internal/token/TokenClient.js} +44 -59
- package/dist/lib-internal/token/TokenClient.js.map +1 -0
- package/dist/lib-internal/token/types.d.ts +2 -0
- package/dist/lib-internal/token/types.d.ts.map +1 -0
- package/dist/lib-internal/token/types.js +2 -0
- package/dist/lib-internal/token/types.js.map +1 -0
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/enums.d.ts +31 -0
- package/dist/utils/enums.d.ts.map +1 -0
- package/dist/utils/enums.js +26 -0
- package/dist/utils/enums.js.map +1 -0
- package/dist/utils/utils.d.ts +6 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/{src/utils/utils.ts → dist/utils/utils.js} +27 -27
- package/dist/utils/utils.js.map +1 -0
- package/package.json +11 -2
- package/.claude/settings.local.json +0 -19
- package/.github/worflows/publish.yml +0 -57
- package/.github/workflows/publish.yml +0 -58
- package/.kiro/settings/lsp.json +0 -198
- package/MODULE_NAMING_CHANGES.md +0 -81
- package/PARAMETER_NAMING_CHANGES.md +0 -106
- package/USAGE_EXAMPLE.md +0 -86
- package/src/index.ts +0 -51
- package/src/lib/analytics/AnalyticsClient.ts +0 -24
- package/src/lib/analytics/types.ts +0 -8
- package/src/lib/app/AppClient.ts +0 -54
- package/src/lib/app/types.ts +0 -50
- package/src/lib/auth/types.ts +0 -123
- package/src/lib/database/DatabaseClient.ts +0 -306
- package/src/lib/database/types.ts +0 -156
- package/src/lib/functions/FunctionsClient.ts +0 -27
- package/src/lib/functions/types.ts +0 -27
- package/src/lib/policy/types.ts +0 -39
- package/src/lib/secrets/SecretsClient.ts +0 -75
- package/src/lib/secrets/types.ts +0 -59
- package/src/lib/settings/SettingsClient.ts +0 -22
- package/src/lib/settings/types.ts +0 -9
- package/src/lib/storage/StorageClient.ts +0 -131
- package/src/lib/storage/types.ts +0 -86
- package/src/lib/users/UserClient.ts +0 -63
- package/src/lib/users/types.ts +0 -123
- package/src/lib-internal/errors/ErrorClient.ts +0 -114
- package/src/lib-internal/errors/index.ts +0 -3
- package/src/lib-internal/errors/types.ts +0 -29
- package/src/lib-internal/http/HttpClient.ts +0 -116
- package/src/lib-internal/routes/AnalyticsRoutes.ts +0 -3
- package/src/lib-internal/routes/AppRoutes.ts +0 -9
- package/src/lib-internal/routes/AuthRoutes.ts +0 -0
- package/src/lib-internal/routes/DatabaseRoutes.ts +0 -10
- package/src/lib-internal/routes/FunctionRoutes.ts +0 -3
- package/src/lib-internal/routes/PolicyRoutes.ts +0 -4
- package/src/lib-internal/routes/SecretsRoutes.ts +0 -5
- package/src/lib-internal/routes/StorageRoutes.ts +0 -15
- package/src/lib-internal/routes/UserRoutes.ts +0 -12
- package/src/lib-internal/routes/index.ts +0 -0
- package/src/lib-internal/token/types.ts +0 -0
- package/src/types.ts +0 -104
- package/src/utils/enums.ts +0 -24
- package/tests/fixtures/mockClient.ts +0 -19
- package/tests/mocks/db.json +0 -1
- package/tests/unit/analytics/AnalyticsClient.test.ts +0 -84
- package/tests/unit/app/AppClient.test.ts +0 -114
- package/tests/unit/auth/AuthClient.test.ts +0 -91
- package/tests/unit/client/Client.test.ts +0 -87
- package/tests/unit/database/DatabaseClient.test.ts +0 -652
- package/tests/unit/edge-cases/robustness.test.ts +0 -258
- package/tests/unit/errors/errors.test.ts +0 -236
- package/tests/unit/functions/FunctionsClient.test.ts +0 -99
- package/tests/unit/policy/PolicyClient.test.ts +0 -180
- package/tests/unit/secrets/SecretsClient.test.ts +0 -146
- package/tests/unit/settings/SettingsClient.test.ts +0 -50
- package/tests/unit/storage/StorageClient.test.ts +0 -252
- package/tests/unit/users/UserClient.test.ts +0 -150
- package/tsconfig.json +0 -44
- package/vitest.config.ts +0 -7
package/USAGE_EXAMPLE.md
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Taruvi SDK - Usage Example
|
|
2
|
-
|
|
3
|
-
## New Pattern: Dependency Injection (No Singleton)
|
|
4
|
-
|
|
5
|
-
### Basic Usage
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import { Client, Auth, User, Database } from '@taruvi/sdk'
|
|
9
|
-
|
|
10
|
-
// 1. Create the main client (can create multiple instances)
|
|
11
|
-
const client = new Client({
|
|
12
|
-
apiKey: 'your-site-key',
|
|
13
|
-
appSlug: 'my-app',
|
|
14
|
-
baseUrl: 'https://api.taruvi.com',
|
|
15
|
-
token: 'optional-initial-token' // optional
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
// 2. Create only the clients you need (lazy initialization)
|
|
19
|
-
const auth = new Auth(client)
|
|
20
|
-
const user = new User(client)
|
|
21
|
-
const database = new Database(client)
|
|
22
|
-
|
|
23
|
-
// 3. Use the clients
|
|
24
|
-
if (auth.isUserAuthenticated()) {
|
|
25
|
-
console.log('User is authenticated')
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const token = auth.signInWithSSO()
|
|
29
|
-
console.log('Token:', token)
|
|
30
|
-
|
|
31
|
-
const userDetails = user.getUser()
|
|
32
|
-
console.log('User:', userDetails)
|
|
33
|
-
|
|
34
|
-
// Access token via User
|
|
35
|
-
console.log('Current token:', user.token)
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Multiple Instances
|
|
39
|
-
|
|
40
|
-
You can now create multiple instances for different environments or configs:
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
const prodClient = new Client({
|
|
44
|
-
apiKey: 'prod-key',
|
|
45
|
-
appSlug: 'main-app',
|
|
46
|
-
baseUrl: 'https://api.taruvi.com'
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
const devClient = new Client({
|
|
50
|
-
apiKey: 'dev-key',
|
|
51
|
-
appSlug: 'dev-app',
|
|
52
|
-
baseUrl: 'https://dev-api.taruvi.com'
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
const prodAuth = new Auth(prodClient)
|
|
56
|
-
const devAuth = new Auth(devClient)
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Benefits
|
|
60
|
-
|
|
61
|
-
✅ **No singleton** - Multiple instances possible
|
|
62
|
-
✅ **Lazy initialization** - Only create clients you need
|
|
63
|
-
✅ **Better testability** - Easy to mock and test
|
|
64
|
-
✅ **Explicit dependencies** - Clear what each client needs
|
|
65
|
-
✅ **No global state** - No hidden global `taruvi` variable
|
|
66
|
-
✅ **Tree-shakable** - Only bundle what you use
|
|
67
|
-
|
|
68
|
-
### Internal Architecture
|
|
69
|
-
|
|
70
|
-
The `taruvi` variable is no longer exported. Internal clients like `httpClient` and `tokenClient` are accessible only within the SDK through the `Client` instance passed to each client.
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
// Inside Auth
|
|
74
|
-
export class Auth {
|
|
75
|
-
private client: Client
|
|
76
|
-
|
|
77
|
-
constructor(client: Client) {
|
|
78
|
-
this.client = client
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
isUserAuthenticated(): boolean {
|
|
82
|
-
// Access internal tokenClient through the client instance
|
|
83
|
-
return !!this.client.tokenClient.getToken()
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
```
|
package/src/index.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// Export main client
|
|
2
|
-
export { Client } from "./client.js"
|
|
3
|
-
|
|
4
|
-
// Export error classes
|
|
5
|
-
export { TaruviError, ValidationError, AuthError, ForbiddenError, NotFoundError, ConflictError, TimeoutError, NetworkError, RateLimitError } from "./lib-internal/errors/index.js"
|
|
6
|
-
export { ErrorCode } from "./lib-internal/errors/index.js"
|
|
7
|
-
export type { ErrorResponseBody } from "./lib-internal/errors/index.js"
|
|
8
|
-
|
|
9
|
-
// Export public client classes
|
|
10
|
-
export { Auth } from "./lib/auth/AuthClient.js"
|
|
11
|
-
export { User } from "./lib/users/UserClient.js"
|
|
12
|
-
export { Storage } from "./lib/storage/StorageClient.js"
|
|
13
|
-
export { Database } from "./lib/database/DatabaseClient.js"
|
|
14
|
-
export { Settings } from "./lib/settings/SettingsClient.js"
|
|
15
|
-
export { Functions } from "./lib/functions/FunctionsClient.js"
|
|
16
|
-
export { Secrets } from "./lib/secrets/SecretsClient.js"
|
|
17
|
-
export { Policy } from "./lib/policy/PolicyClient.js"
|
|
18
|
-
export { App } from "./lib/app/AppClient.js"
|
|
19
|
-
export { Analytics } from "./lib/analytics/AnalyticsClient.js"
|
|
20
|
-
|
|
21
|
-
// Export core types
|
|
22
|
-
export type { TaruviConfig, TaruviResponse, PaginationInfo, StorageFilters, DatabaseFilters } from "./types.js"
|
|
23
|
-
export type { AuthTokens } from "./lib-internal/token/TokenClient.js"
|
|
24
|
-
|
|
25
|
-
// User types
|
|
26
|
-
export type { UserCreateRequest, UserData, UserUpdateRequest, UserListFilters, UserApp, UserResponse, UserListResponse, UserAppsResponse, AssignRolesRequest, RevokeRolesRequest, RolesResponse, UserGroup, UserPermission, UserRole, UserPreferences, UserPreferencesUpdate, UserPreferencesResponse } from "./lib/users/types.js"
|
|
27
|
-
|
|
28
|
-
// Policy types
|
|
29
|
-
export type { Principal, Resource, Resources, PolicyCheckResult, PolicyCheckBatchResult, ResourceCheckResponse, GetAllowedActionsOptions } from "./lib/policy/types.js"
|
|
30
|
-
|
|
31
|
-
// App types
|
|
32
|
-
export type { RoleData, AppSettingsData, RoleResponse, RolesListResponse, AppSettingsResponse } from "./lib/app/types.js"
|
|
33
|
-
|
|
34
|
-
// Function types
|
|
35
|
-
export type { FunctionRequest, FunctionResponse, FunctionInvocation } from "./lib/functions/types.js"
|
|
36
|
-
|
|
37
|
-
// Database types
|
|
38
|
-
export type { DatabaseRequest, DatabaseResponse, DatabaseSingleResponse, FilterOperator, SortOrder, GraphInclude, GraphFormat, EdgeRequest, EdgeResponse, EdgeDeleteRequest, PgRangeValue, BackendFilterLeafNode, BackendFilterLogicalNode, BackendFilterNode, BackendFilterTreeRoot } from "./lib/database/types.js"
|
|
39
|
-
export { isBackendFilterTreeRoot } from "./lib/database/types.js"
|
|
40
|
-
|
|
41
|
-
// Storage types
|
|
42
|
-
export type { StorageRequest, StorageUpdateRequest, StorageObject, StorageResponse, StorageListResponse, StorageUploadBatchResponse, StorageDeleteBatchResponse } from "./lib/storage/types.js"
|
|
43
|
-
|
|
44
|
-
// Settings types
|
|
45
|
-
export type { SiteSettingsData, SettingsResponse } from "./lib/settings/types.js"
|
|
46
|
-
|
|
47
|
-
// Secrets types
|
|
48
|
-
export type { SecretCreateRequest, SecretUpdateRequest, SecretData, SecretResponse, SecretsListResponse, SecretsBatchResponse, SecretsBatchMetadataResponse, GetSecretOptions, GetSecretsOptions } from "./lib/secrets/types.js"
|
|
49
|
-
|
|
50
|
-
// Analytics types
|
|
51
|
-
export type { AnalyticsRequest, AnalyticsResponse } from "./lib/analytics/types.js"
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Client } from "../../client.js";
|
|
2
|
-
import type { TaruviConfig } from "../../types.js";
|
|
3
|
-
import type { AnalyticsRequest, AnalyticsResponse } from "./types.js";
|
|
4
|
-
import { AnalyticsRoutes } from "../../lib-internal/routes/AnalyticsRoutes.js";
|
|
5
|
-
|
|
6
|
-
export class Analytics {
|
|
7
|
-
private client: Client
|
|
8
|
-
private config: TaruviConfig
|
|
9
|
-
|
|
10
|
-
constructor(client: Client) {
|
|
11
|
-
this.client = client
|
|
12
|
-
this.config = this.client.getConfig()
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async execute<T = unknown>(querySlug: string, options: AnalyticsRequest = {}): Promise<AnalyticsResponse<T>> {
|
|
16
|
-
const url = AnalyticsRoutes.baseUrl(this.config.appSlug, querySlug)
|
|
17
|
-
|
|
18
|
-
const body = {
|
|
19
|
-
params: options.params || {}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return await this.client.httpClient.post<AnalyticsResponse<T>>(url, body)
|
|
23
|
-
}
|
|
24
|
-
}
|
package/src/lib/app/AppClient.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { Client } from "../../client.js";
|
|
2
|
-
import { AppRoutes, type AppRouteKey } from "../../lib-internal/routes/AppRoutes.js";
|
|
3
|
-
import { HttpMethod } from "../../lib-internal/http/types.js";
|
|
4
|
-
import type { TaruviConfig } from "../../types.js";
|
|
5
|
-
import type { UrlParams } from "./types.js";
|
|
6
|
-
|
|
7
|
-
export class App {
|
|
8
|
-
private client: Client
|
|
9
|
-
private urlParams: UrlParams
|
|
10
|
-
private config: TaruviConfig
|
|
11
|
-
private operation: HttpMethod | undefined
|
|
12
|
-
|
|
13
|
-
constructor(client: Client, urlParams: UrlParams = {}, operation?: HttpMethod | undefined) {
|
|
14
|
-
this.client = client
|
|
15
|
-
this.urlParams = urlParams
|
|
16
|
-
this.operation = operation
|
|
17
|
-
this.config = this.client.getConfig()
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
roles() {
|
|
21
|
-
return new App(this.client, { ...this.urlParams, roles: "roles" }, HttpMethod.GET)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
settings() {
|
|
25
|
-
return new App(this.client, {...this.urlParams, settings: "settings"}, HttpMethod.GET)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
private buildRoute(): string {
|
|
29
|
-
return (
|
|
30
|
-
AppRoutes.baseUrl(this.config.appSlug) +
|
|
31
|
-
(Object.keys(this.urlParams) as AppRouteKey[]).reduce((acc, key) => {
|
|
32
|
-
const value = this.urlParams[key]
|
|
33
|
-
const routeBuilder = AppRoutes[key]
|
|
34
|
-
|
|
35
|
-
if (value && routeBuilder) {
|
|
36
|
-
acc += routeBuilder()
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return acc
|
|
40
|
-
}, "")
|
|
41
|
-
)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
async execute() {
|
|
45
|
-
const url = this.buildRoute()
|
|
46
|
-
const operation = this.operation || HttpMethod.GET
|
|
47
|
-
|
|
48
|
-
switch (operation) {
|
|
49
|
-
case HttpMethod.GET:
|
|
50
|
-
default:
|
|
51
|
-
return await this.client.httpClient.get(url)
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
package/src/lib/app/types.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { Client } from "../../client.js"
|
|
2
|
-
import { HttpMethod } from "../../lib-internal/http/types.js"
|
|
3
|
-
import type { TaruviResponse } from "../../types.js"
|
|
4
|
-
|
|
5
|
-
export type AppOperation = HttpMethod
|
|
6
|
-
|
|
7
|
-
// Internal types
|
|
8
|
-
export interface UrlParams {
|
|
9
|
-
appSlug?: string
|
|
10
|
-
roles?: string
|
|
11
|
-
settings?: string
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface AppClientInterface {
|
|
15
|
-
client: Client
|
|
16
|
-
urlParams?: UrlParams
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// Role data
|
|
20
|
-
export interface RoleData {
|
|
21
|
-
id: string | number
|
|
22
|
-
name: string
|
|
23
|
-
slug: string
|
|
24
|
-
description?: string
|
|
25
|
-
permissions?: string[]
|
|
26
|
-
created_at?: string
|
|
27
|
-
updated_at?: string
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// App settings data
|
|
31
|
-
export interface AppSettingsData {
|
|
32
|
-
display_name: string
|
|
33
|
-
icon: string | null
|
|
34
|
-
icon_url: string | null
|
|
35
|
-
primary_color: string
|
|
36
|
-
secondary_color: string
|
|
37
|
-
banner_image: string | null
|
|
38
|
-
banner_image_url: string | null
|
|
39
|
-
category: string
|
|
40
|
-
documentation_url: string | null
|
|
41
|
-
support_email: string | null
|
|
42
|
-
default_frontend_worker_url: string | null
|
|
43
|
-
created_at: string
|
|
44
|
-
updated_at: string
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Response types - uses standard wrapper
|
|
48
|
-
export type RoleResponse = TaruviResponse<RoleData>
|
|
49
|
-
export type RolesListResponse = TaruviResponse<RoleData[]>
|
|
50
|
-
export type AppSettingsResponse = TaruviResponse<AppSettingsData>
|
package/src/lib/auth/types.ts
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
export interface UserCreateRequest {
|
|
2
|
-
// Required fields
|
|
3
|
-
username: string
|
|
4
|
-
email: string
|
|
5
|
-
first_name: string
|
|
6
|
-
last_name: string
|
|
7
|
-
password: string
|
|
8
|
-
confirm_password: string
|
|
9
|
-
// Optional fields
|
|
10
|
-
is_active?: boolean
|
|
11
|
-
is_staff?: boolean
|
|
12
|
-
attributes?: string
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface UserCreateResponse {
|
|
16
|
-
id: string
|
|
17
|
-
username: string
|
|
18
|
-
email: string
|
|
19
|
-
first_name: string
|
|
20
|
-
last_name: string
|
|
21
|
-
full_name: string
|
|
22
|
-
is_active: boolean
|
|
23
|
-
is_superuser: boolean
|
|
24
|
-
is_deleted: boolean
|
|
25
|
-
date_joined: string
|
|
26
|
-
last_login: string
|
|
27
|
-
groups: UserGroup[]
|
|
28
|
-
user_permissions: UserPermission[]
|
|
29
|
-
attributes: Record<string, unknown>
|
|
30
|
-
missing_attributes: string[]
|
|
31
|
-
roles: UserRole[]
|
|
32
|
-
icon_url: string | null
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface UserGroup {
|
|
36
|
-
id: number
|
|
37
|
-
name: string
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface UserPermission {
|
|
41
|
-
id: number
|
|
42
|
-
name: string
|
|
43
|
-
codename: string
|
|
44
|
-
content_type: string // "app_label.model"
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export interface UserRole {
|
|
48
|
-
name: string
|
|
49
|
-
slug: string
|
|
50
|
-
type: "app_role"
|
|
51
|
-
app_slug: string
|
|
52
|
-
source: "direct" | "site_role" | "inherited"
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface UserDataResponse {
|
|
56
|
-
id: string
|
|
57
|
-
username: string
|
|
58
|
-
email: string
|
|
59
|
-
first_name: string
|
|
60
|
-
last_name: string
|
|
61
|
-
full_name: string
|
|
62
|
-
is_active: boolean
|
|
63
|
-
is_superuser: boolean
|
|
64
|
-
is_deleted: boolean
|
|
65
|
-
date_joined: string
|
|
66
|
-
last_login: string
|
|
67
|
-
groups: UserGroup[]
|
|
68
|
-
user_permissions: UserPermission[]
|
|
69
|
-
attributes: Record<string, unknown>
|
|
70
|
-
missing_attributes: string[]
|
|
71
|
-
roles: UserRole[]
|
|
72
|
-
icon_url: string | null
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface UserUpdateRequest {
|
|
76
|
-
username?: string
|
|
77
|
-
email?: string
|
|
78
|
-
first_name?: string
|
|
79
|
-
last_name?: string
|
|
80
|
-
is_active?: boolean
|
|
81
|
-
is_staff?: boolean
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface UserUpdateResponse {
|
|
85
|
-
id: string
|
|
86
|
-
username: string
|
|
87
|
-
email: string
|
|
88
|
-
first_name: string
|
|
89
|
-
last_name: string
|
|
90
|
-
full_name: string
|
|
91
|
-
is_active: boolean
|
|
92
|
-
is_superuser: boolean
|
|
93
|
-
is_deleted: boolean
|
|
94
|
-
date_joined: string
|
|
95
|
-
last_login: string
|
|
96
|
-
groups: UserGroup[]
|
|
97
|
-
user_permissions: UserPermission[]
|
|
98
|
-
attributes: Record<string, unknown>
|
|
99
|
-
missing_attributes: string[]
|
|
100
|
-
roles: UserRole[]
|
|
101
|
-
icon_url: string | null
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export interface UserList {
|
|
105
|
-
search: string
|
|
106
|
-
is_active: boolean
|
|
107
|
-
is_staff: boolean
|
|
108
|
-
is_superuser: boolean
|
|
109
|
-
is_deleted: boolean
|
|
110
|
-
ordering: string
|
|
111
|
-
page: Number
|
|
112
|
-
page_size: Number
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export interface UserApp {
|
|
116
|
-
name: string
|
|
117
|
-
slug: string
|
|
118
|
-
icon: string
|
|
119
|
-
url: string
|
|
120
|
-
display_name: string
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export type UserAppsResponse = UserApp[]
|