@taruvi/sdk 1.5.0-beta.1 → 1.5.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +58 -1295
  2. package/package.json +10 -2
  3. package/.claude/settings.local.json +0 -19
  4. package/.github/worflows/publish.yml +0 -57
  5. package/.github/workflows/publish.yml +0 -58
  6. package/.kiro/settings/lsp.json +0 -198
  7. package/MODULE_NAMING_CHANGES.md +0 -81
  8. package/PARAMETER_NAMING_CHANGES.md +0 -106
  9. package/USAGE_EXAMPLE.md +0 -86
  10. package/src/client.ts +0 -88
  11. package/src/index.ts +0 -51
  12. package/src/lib/analytics/AnalyticsClient.ts +0 -24
  13. package/src/lib/analytics/types.ts +0 -8
  14. package/src/lib/app/AppClient.ts +0 -54
  15. package/src/lib/app/types.ts +0 -50
  16. package/src/lib/auth/AuthClient.ts +0 -126
  17. package/src/lib/auth/types.ts +0 -123
  18. package/src/lib/database/DatabaseClient.ts +0 -306
  19. package/src/lib/database/types.ts +0 -156
  20. package/src/lib/functions/FunctionsClient.ts +0 -27
  21. package/src/lib/functions/types.ts +0 -27
  22. package/src/lib/policy/PolicyClient.ts +0 -79
  23. package/src/lib/policy/types.ts +0 -39
  24. package/src/lib/secrets/SecretsClient.ts +0 -75
  25. package/src/lib/secrets/types.ts +0 -59
  26. package/src/lib/settings/SettingsClient.ts +0 -22
  27. package/src/lib/settings/types.ts +0 -9
  28. package/src/lib/storage/StorageClient.ts +0 -131
  29. package/src/lib/storage/types.ts +0 -86
  30. package/src/lib/users/UserClient.ts +0 -63
  31. package/src/lib/users/types.ts +0 -123
  32. package/src/lib-internal/errors/ErrorClient.ts +0 -114
  33. package/src/lib-internal/errors/index.ts +0 -3
  34. package/src/lib-internal/errors/types.ts +0 -29
  35. package/src/lib-internal/http/HttpClient.ts +0 -116
  36. package/src/lib-internal/http/types.ts +0 -12
  37. package/src/lib-internal/routes/AnalyticsRoutes.ts +0 -3
  38. package/src/lib-internal/routes/AppRoutes.ts +0 -9
  39. package/src/lib-internal/routes/AuthRoutes.ts +0 -0
  40. package/src/lib-internal/routes/DatabaseRoutes.ts +0 -10
  41. package/src/lib-internal/routes/FunctionRoutes.ts +0 -3
  42. package/src/lib-internal/routes/PolicyRoutes.ts +0 -4
  43. package/src/lib-internal/routes/SecretsRoutes.ts +0 -5
  44. package/src/lib-internal/routes/SettingsRoutes.ts +0 -4
  45. package/src/lib-internal/routes/StorageRoutes.ts +0 -15
  46. package/src/lib-internal/routes/UserRoutes.ts +0 -12
  47. package/src/lib-internal/routes/index.ts +0 -0
  48. package/src/lib-internal/token/TokenClient.ts +0 -108
  49. package/src/lib-internal/token/types.ts +0 -0
  50. package/src/types.ts +0 -104
  51. package/src/utils/enums.ts +0 -24
  52. package/src/utils/utils.ts +0 -38
  53. package/tests/fixtures/mockClient.ts +0 -19
  54. package/tests/mocks/db.json +0 -1
  55. package/tests/unit/analytics/AnalyticsClient.test.ts +0 -84
  56. package/tests/unit/app/AppClient.test.ts +0 -114
  57. package/tests/unit/auth/AuthClient.test.ts +0 -91
  58. package/tests/unit/client/Client.test.ts +0 -87
  59. package/tests/unit/database/DatabaseClient.test.ts +0 -652
  60. package/tests/unit/edge-cases/robustness.test.ts +0 -258
  61. package/tests/unit/errors/errors.test.ts +0 -236
  62. package/tests/unit/functions/FunctionsClient.test.ts +0 -99
  63. package/tests/unit/policy/PolicyClient.test.ts +0 -180
  64. package/tests/unit/secrets/SecretsClient.test.ts +0 -146
  65. package/tests/unit/settings/SettingsClient.test.ts +0 -50
  66. package/tests/unit/storage/StorageClient.test.ts +0 -252
  67. package/tests/unit/users/UserClient.test.ts +0 -150
  68. package/tsconfig.json +0 -44
  69. package/vitest.config.ts +0 -7
@@ -1,150 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest'
2
- import { User } from '../../../src/lib/users/UserClient.js'
3
- import { Client } from '../../../src/client.js'
4
-
5
- const mockHttpClient = {
6
- get: vi.fn(),
7
- post: vi.fn(),
8
- put: vi.fn(),
9
- delete: vi.fn()
10
- }
11
-
12
- const mockClient = {
13
- getConfig: () => ({ apiKey: 'test-key', appSlug: 'test-app', apiUrl: 'https://api.test.com' }),
14
- httpClient: mockHttpClient
15
- } as unknown as Client
16
-
17
- describe('User', () => {
18
- beforeEach(() => {
19
- vi.clearAllMocks()
20
- })
21
-
22
- describe('getUser()', () => {
23
- it('fetches user by username', async () => {
24
- const userData = { username: 'john_doe', email: 'john@example.com' }
25
- mockHttpClient.get.mockResolvedValue(userData)
26
-
27
- const user = new User(mockClient)
28
- const result = await user.getUser('john_doe')
29
-
30
- expect(mockHttpClient.get).toHaveBeenCalledWith('api/users/john_doe/')
31
- expect(result).toEqual(userData)
32
- })
33
- })
34
-
35
- describe('createUser()', () => {
36
- it('creates user with provided data', async () => {
37
- const createData = {
38
- username: 'new_user',
39
- email: 'new@example.com',
40
- password: 'pass123',
41
- confirm_password: 'pass123',
42
- first_name: 'New',
43
- last_name: 'User',
44
- is_active: true,
45
- is_staff: false,
46
- attributes: ''
47
- }
48
- const response = { id: '1', ...createData }
49
- mockHttpClient.post.mockResolvedValue(response)
50
-
51
- const user = new User(mockClient)
52
- const result = await user.createUser(createData)
53
-
54
- expect(mockHttpClient.post).toHaveBeenCalledWith('api/users/', createData)
55
- expect(result).toEqual(response)
56
- })
57
- })
58
-
59
- describe('updateUser()', () => {
60
- it('updates user by username', async () => {
61
- const updateData = { email: 'updated@example.com', first_name: 'Updated' }
62
- const response = { username: 'john_doe', ...updateData }
63
- mockHttpClient.put.mockResolvedValue(response)
64
-
65
- const user = new User(mockClient)
66
- const result = await user.updateUser('john_doe', updateData)
67
-
68
- expect(mockHttpClient.put).toHaveBeenCalledWith('api/users/john_doe/', updateData)
69
- expect(result).toEqual(response)
70
- })
71
- })
72
-
73
- describe('deleteUser()', () => {
74
- it('deletes user by username', async () => {
75
- mockHttpClient.delete.mockResolvedValue(undefined)
76
-
77
- const user = new User(mockClient)
78
- await user.deleteUser('john_doe')
79
-
80
- expect(mockHttpClient.delete).toHaveBeenCalledWith('api/users/john_doe/')
81
- })
82
- })
83
-
84
- describe('list()', () => {
85
- it('lists users with filters', async () => {
86
- const users = [{ username: 'user1' }, { username: 'user2' }]
87
- mockHttpClient.get.mockResolvedValue(users)
88
-
89
- const user = new User(mockClient)
90
- const result = await user.list({ search: 'john', is_active: true, page: 1, page_size: 20 })
91
-
92
- expect(mockHttpClient.get).toHaveBeenCalledWith(
93
- expect.stringContaining('api/users/')
94
- )
95
- expect(result).toEqual(users)
96
- })
97
-
98
- it('builds query string from filters', async () => {
99
- mockHttpClient.get.mockResolvedValue([])
100
-
101
- const user = new User(mockClient)
102
- await user.list({ search: 'test', ordering: '-date_joined' })
103
-
104
- const url = mockHttpClient.get.mock.calls[0][0]
105
- expect(url).toContain('search=test')
106
- expect(url).toContain('ordering=-date_joined')
107
- })
108
- })
109
-
110
- describe('getUserApps()', () => {
111
- it('fetches apps for user', async () => {
112
- const apps = [{ name: 'App1', slug: 'app1' }, { name: 'App2', slug: 'app2' }]
113
- mockHttpClient.get.mockResolvedValue(apps)
114
-
115
- const user = new User(mockClient)
116
- const result = await user.getUserApps('john_doe')
117
-
118
- expect(mockHttpClient.get).toHaveBeenCalledWith('api/users/john_doe/apps/')
119
- expect(result).toEqual(apps)
120
- })
121
- })
122
-
123
- describe('assignRoles()', () => {
124
- it('assigns roles to user', async () => {
125
- const request = { username: 'john_doe', roles: ['admin', 'editor'] }
126
- const response = { success: true }
127
- mockHttpClient.post.mockResolvedValue(response)
128
-
129
- const user = new User(mockClient)
130
- const result = await user.assignRoles(request)
131
-
132
- expect(mockHttpClient.post).toHaveBeenCalledWith('api/assign/roles/', request)
133
- expect(result).toEqual(response)
134
- })
135
- })
136
-
137
- describe('revokeRoles()', () => {
138
- it('revokes roles from user', async () => {
139
- const request = { username: 'john_doe', roles: ['admin'] }
140
- const response = { success: true }
141
- mockHttpClient.delete.mockResolvedValue(response)
142
-
143
- const user = new User(mockClient)
144
- const result = await user.revokeRoles(request)
145
-
146
- expect(mockHttpClient.delete).toHaveBeenCalledWith('api/revoke/roles/', request)
147
- expect(result).toEqual(response)
148
- })
149
- })
150
- })
package/tsconfig.json DELETED
@@ -1,44 +0,0 @@
1
- {
2
- // Visit https://aka.ms/tsconfig to read more about this file
3
- "compilerOptions": {
4
- // File Layout
5
- "rootDir": "./src",
6
- "outDir": "./dist",
7
-
8
- // Environment Settings
9
- // See also https://aka.ms/tsconfig/module
10
- "module": "nodenext",
11
- "target": "esnext",
12
- "lib": ["esnext", "dom"],
13
- "types": ["node"],
14
-
15
- // Other Outputs
16
- "sourceMap": true,
17
- "declaration": true,
18
- "declarationMap": true,
19
-
20
- // Stricter Typechecking Options
21
- "noUncheckedIndexedAccess": true,
22
- "exactOptionalPropertyTypes": true,
23
-
24
- // Style Options
25
- // "noImplicitReturns": true,
26
- // "noImplicitOverride": true,
27
- // "noUnusedLocals": true,
28
- // "noUnusedParameters": true,
29
- // "noFallthroughCasesInSwitch": true,
30
- // "noPropertyAccessFromIndexSignature": true,
31
-
32
- // Recommended Options
33
- "strict": true,
34
- "jsx": "react-jsx",
35
- "verbatimModuleSyntax": true,
36
- "isolatedModules": true,
37
- "resolveJsonModule": true,
38
- "noUncheckedSideEffectImports": true,
39
- "moduleDetection": "force",
40
- "skipLibCheck": true,
41
- },
42
- "include": ["src/**/*"],
43
- "exclude": ["node_modules", "dist", "taruvi-platform", "tests"]
44
- }
package/vitest.config.ts DELETED
@@ -1,7 +0,0 @@
1
- import { defineConfig } from 'vitest/config'
2
-
3
- export default defineConfig({
4
- test: {
5
- include: ['tests/**/*.test.ts']
6
- }
7
- })