@insforge/sdk 0.0.58-dev.0 → 0.0.58-dev.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.
- package/LICENSE +201 -201
- package/README.md +249 -249
- package/dist/index.d.mts +51 -57
- package/dist/index.d.ts +51 -57
- package/dist/index.js +97 -121
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +97 -121
- package/dist/index.mjs.map +1 -1
- package/package.json +67 -67
package/README.md
CHANGED
|
@@ -1,249 +1,249 @@
|
|
|
1
|
-
# insforge-sdk-js
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/@insforge/sdk)
|
|
4
|
-
[](https://opensource.org/licenses/Apache-2.0)
|
|
5
|
-
|
|
6
|
-
Official TypeScript/JavaScript SDK for [InsForge](https://github.com/InsForge/InsForge) - A powerful, open-source Backend-as-a-Service (BaaS) platform.
|
|
7
|
-
|
|
8
|
-
## Features
|
|
9
|
-
|
|
10
|
-
- **Authentication** - Email/password, OAuth (Google, GitHub), session management
|
|
11
|
-
- **Database** - Full PostgreSQL database access with PostgREST
|
|
12
|
-
- **Storage** - File upload and management with S3-compatible storage
|
|
13
|
-
- **Edge Functions** - Serverless function invocation
|
|
14
|
-
- **AI Integration** - Built-in AI capabilities
|
|
15
|
-
- **TypeScript** - Full TypeScript support with type definitions
|
|
16
|
-
- **Automatic OAuth Handling** - Seamless OAuth callback detection
|
|
17
|
-
|
|
18
|
-
## Installation
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
npm install @insforge/sdk
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Or with yarn:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
yarn add @insforge/sdk
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Quick Start
|
|
31
|
-
|
|
32
|
-
### Initialize the Client
|
|
33
|
-
|
|
34
|
-
```javascript
|
|
35
|
-
import { createClient } from '@insforge/sdk';
|
|
36
|
-
|
|
37
|
-
const insforge = createClient({
|
|
38
|
-
baseUrl: 'http://localhost:7130' // Your InsForge backend URL
|
|
39
|
-
});
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### Authentication
|
|
43
|
-
|
|
44
|
-
```javascript
|
|
45
|
-
// Sign up a new user
|
|
46
|
-
const { data, error } = await insforge.auth.signUp({
|
|
47
|
-
email: 'user@example.com',
|
|
48
|
-
password: 'securePassword123',
|
|
49
|
-
name: 'John Doe' // optional
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
// Sign in with email/password
|
|
53
|
-
const { data, error } = await insforge.auth.signInWithPassword({
|
|
54
|
-
email: 'user@example.com',
|
|
55
|
-
password: 'securePassword123'
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
// OAuth authentication (Google, GitHub)
|
|
59
|
-
await insforge.auth.signInWithOAuth({
|
|
60
|
-
provider: 'google',
|
|
61
|
-
redirectTo: 'http://localhost:3000/dashboard'
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
// Get current user
|
|
65
|
-
const { data: user } = await insforge.auth.getCurrentUser();
|
|
66
|
-
|
|
67
|
-
// Sign out
|
|
68
|
-
await insforge.auth.signOut();
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Database Operations
|
|
72
|
-
|
|
73
|
-
```javascript
|
|
74
|
-
// Insert data
|
|
75
|
-
const { data, error } = await insforge.database
|
|
76
|
-
.from('posts')
|
|
77
|
-
.insert([
|
|
78
|
-
{ title: 'My First Post', content: 'Hello World!' }
|
|
79
|
-
]);
|
|
80
|
-
|
|
81
|
-
// Query data
|
|
82
|
-
const { data, error } = await insforge.database
|
|
83
|
-
.from('posts')
|
|
84
|
-
.select('*')
|
|
85
|
-
.eq('author_id', userId);
|
|
86
|
-
|
|
87
|
-
// Update data
|
|
88
|
-
const { data, error } = await insforge.database
|
|
89
|
-
.from('posts')
|
|
90
|
-
.update({ title: 'Updated Title' })
|
|
91
|
-
.eq('id', postId);
|
|
92
|
-
|
|
93
|
-
// Delete data
|
|
94
|
-
const { data, error } = await insforge.database
|
|
95
|
-
.from('posts')
|
|
96
|
-
.delete()
|
|
97
|
-
.eq('id', postId);
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### File Storage
|
|
101
|
-
|
|
102
|
-
```javascript
|
|
103
|
-
// Upload a file
|
|
104
|
-
const file = document.querySelector('input[type="file"]').files[0];
|
|
105
|
-
const { data, error } = await insforge.storage
|
|
106
|
-
.from('avatars')
|
|
107
|
-
.upload(file);
|
|
108
|
-
|
|
109
|
-
// Download a file
|
|
110
|
-
const { data, error } = await insforge.storage
|
|
111
|
-
.from('avatars')
|
|
112
|
-
.download('user-avatar.png');
|
|
113
|
-
|
|
114
|
-
// Delete a file
|
|
115
|
-
const { data, error } = await insforge.storage
|
|
116
|
-
.from('avatars')
|
|
117
|
-
.remove(['user-avatar.png']);
|
|
118
|
-
|
|
119
|
-
// List files
|
|
120
|
-
const { data, error } = await insforge.storage
|
|
121
|
-
.from('avatars')
|
|
122
|
-
.list();
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Edge Functions
|
|
126
|
-
|
|
127
|
-
```javascript
|
|
128
|
-
// Invoke an edge function
|
|
129
|
-
const { data, error } = await insforge.functions.invoke('my-function', {
|
|
130
|
-
body: { key: 'value' }
|
|
131
|
-
});
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### AI Integration
|
|
135
|
-
|
|
136
|
-
```javascript
|
|
137
|
-
// Generate text completion
|
|
138
|
-
const { data, error } = await insforge.ai.completion({
|
|
139
|
-
model: 'gpt-3.5-turbo',
|
|
140
|
-
prompt: 'Write a hello world program'
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
// Analyze an image
|
|
144
|
-
const { data, error } = await insforge.ai.vision({
|
|
145
|
-
imageUrl: 'https://example.com/image.jpg',
|
|
146
|
-
prompt: 'Describe this image'
|
|
147
|
-
});
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## Documentation
|
|
151
|
-
|
|
152
|
-
For complete API reference and advanced usage, see:
|
|
153
|
-
|
|
154
|
-
- **[SDK Reference](./SDK-REFERENCE.md)** - Complete API documentation
|
|
155
|
-
- **[InsForge Main Repository](https://github.com/InsForge/InsForge)** - Backend platform and setup guides
|
|
156
|
-
|
|
157
|
-
## Configuration
|
|
158
|
-
|
|
159
|
-
The SDK supports the following configuration options:
|
|
160
|
-
|
|
161
|
-
```javascript
|
|
162
|
-
const insforge = createClient({
|
|
163
|
-
baseUrl: 'http://localhost:7130', // Required: Your InsForge backend URL
|
|
164
|
-
storageStrategy: 'localStorage' // Optional: 'localStorage' or 'memory' (default: 'localStorage')
|
|
165
|
-
});
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## TypeScript Support
|
|
169
|
-
|
|
170
|
-
The SDK is written in TypeScript and provides full type definitions:
|
|
171
|
-
|
|
172
|
-
```typescript
|
|
173
|
-
import { createClient, InsForgeClient, User, Session } from '@insforge/sdk';
|
|
174
|
-
|
|
175
|
-
const insforge: InsForgeClient = createClient({
|
|
176
|
-
baseUrl: 'http://localhost:7130'
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
// Type-safe API calls
|
|
180
|
-
const response: { data: User | null; error: Error | null } =
|
|
181
|
-
await insforge.auth.getCurrentUser();
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Error Handling
|
|
185
|
-
|
|
186
|
-
All SDK methods return a consistent response format:
|
|
187
|
-
|
|
188
|
-
```javascript
|
|
189
|
-
const { data, error } = await insforge.auth.signUp({...});
|
|
190
|
-
|
|
191
|
-
if (error) {
|
|
192
|
-
console.error('Error:', error.message);
|
|
193
|
-
console.error('Status:', error.statusCode);
|
|
194
|
-
} else {
|
|
195
|
-
console.log('Success:', data);
|
|
196
|
-
}
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
## Browser Support
|
|
200
|
-
|
|
201
|
-
The SDK works in all modern browsers that support:
|
|
202
|
-
- ES6+ features
|
|
203
|
-
- Fetch API
|
|
204
|
-
- LocalStorage (for session management)
|
|
205
|
-
|
|
206
|
-
For Node.js environments, ensure you're using Node.js 18 or higher.
|
|
207
|
-
|
|
208
|
-
## Contributing
|
|
209
|
-
|
|
210
|
-
We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.
|
|
211
|
-
|
|
212
|
-
### Development Setup
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
# Clone the repository
|
|
216
|
-
git clone https://github.com/InsForge/insforge-sdk-js.git
|
|
217
|
-
cd insforge-sdk-js
|
|
218
|
-
|
|
219
|
-
# Install dependencies
|
|
220
|
-
npm install
|
|
221
|
-
|
|
222
|
-
# Build the SDK
|
|
223
|
-
npm run build
|
|
224
|
-
|
|
225
|
-
# Run tests
|
|
226
|
-
npm test
|
|
227
|
-
|
|
228
|
-
# Run integration tests
|
|
229
|
-
npm run test:integration
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
## License
|
|
233
|
-
|
|
234
|
-
This project is licensed under the Apache License 2.0 - see the [LICENSE](./LICENSE) file for details.
|
|
235
|
-
|
|
236
|
-
## Community & Support
|
|
237
|
-
|
|
238
|
-
- **GitHub Issues**: [Report bugs or request features](https://github.com/InsForge/insforge-sdk-js/issues)
|
|
239
|
-
- **Documentation**: [https://docs.insforge.com](https://docs.insforge.com)
|
|
240
|
-
- **Main Repository**: [InsForge Backend Platform](https://github.com/InsForge/InsForge)
|
|
241
|
-
|
|
242
|
-
## Related Projects
|
|
243
|
-
|
|
244
|
-
- **[InsForge](https://github.com/InsForge/InsForge)** - The main InsForge backend platform
|
|
245
|
-
- **[InsForge MCP](https://github.com/InsForge/insforge-mcp)** - Model Context Protocol server for InsForge
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
Built with ❤️ by the InsForge team
|
|
1
|
+
# insforge-sdk-js
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@insforge/sdk)
|
|
4
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
5
|
+
|
|
6
|
+
Official TypeScript/JavaScript SDK for [InsForge](https://github.com/InsForge/InsForge) - A powerful, open-source Backend-as-a-Service (BaaS) platform.
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- **Authentication** - Email/password, OAuth (Google, GitHub), session management
|
|
11
|
+
- **Database** - Full PostgreSQL database access with PostgREST
|
|
12
|
+
- **Storage** - File upload and management with S3-compatible storage
|
|
13
|
+
- **Edge Functions** - Serverless function invocation
|
|
14
|
+
- **AI Integration** - Built-in AI capabilities
|
|
15
|
+
- **TypeScript** - Full TypeScript support with type definitions
|
|
16
|
+
- **Automatic OAuth Handling** - Seamless OAuth callback detection
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install @insforge/sdk
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Or with yarn:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
yarn add @insforge/sdk
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
### Initialize the Client
|
|
33
|
+
|
|
34
|
+
```javascript
|
|
35
|
+
import { createClient } from '@insforge/sdk';
|
|
36
|
+
|
|
37
|
+
const insforge = createClient({
|
|
38
|
+
baseUrl: 'http://localhost:7130' // Your InsForge backend URL
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Authentication
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
// Sign up a new user
|
|
46
|
+
const { data, error } = await insforge.auth.signUp({
|
|
47
|
+
email: 'user@example.com',
|
|
48
|
+
password: 'securePassword123',
|
|
49
|
+
name: 'John Doe' // optional
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// Sign in with email/password
|
|
53
|
+
const { data, error } = await insforge.auth.signInWithPassword({
|
|
54
|
+
email: 'user@example.com',
|
|
55
|
+
password: 'securePassword123'
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// OAuth authentication (Google, GitHub)
|
|
59
|
+
await insforge.auth.signInWithOAuth({
|
|
60
|
+
provider: 'google',
|
|
61
|
+
redirectTo: 'http://localhost:3000/dashboard'
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// Get current user
|
|
65
|
+
const { data: user } = await insforge.auth.getCurrentUser();
|
|
66
|
+
|
|
67
|
+
// Sign out
|
|
68
|
+
await insforge.auth.signOut();
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Database Operations
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
// Insert data
|
|
75
|
+
const { data, error } = await insforge.database
|
|
76
|
+
.from('posts')
|
|
77
|
+
.insert([
|
|
78
|
+
{ title: 'My First Post', content: 'Hello World!' }
|
|
79
|
+
]);
|
|
80
|
+
|
|
81
|
+
// Query data
|
|
82
|
+
const { data, error } = await insforge.database
|
|
83
|
+
.from('posts')
|
|
84
|
+
.select('*')
|
|
85
|
+
.eq('author_id', userId);
|
|
86
|
+
|
|
87
|
+
// Update data
|
|
88
|
+
const { data, error } = await insforge.database
|
|
89
|
+
.from('posts')
|
|
90
|
+
.update({ title: 'Updated Title' })
|
|
91
|
+
.eq('id', postId);
|
|
92
|
+
|
|
93
|
+
// Delete data
|
|
94
|
+
const { data, error } = await insforge.database
|
|
95
|
+
.from('posts')
|
|
96
|
+
.delete()
|
|
97
|
+
.eq('id', postId);
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### File Storage
|
|
101
|
+
|
|
102
|
+
```javascript
|
|
103
|
+
// Upload a file
|
|
104
|
+
const file = document.querySelector('input[type="file"]').files[0];
|
|
105
|
+
const { data, error } = await insforge.storage
|
|
106
|
+
.from('avatars')
|
|
107
|
+
.upload(file);
|
|
108
|
+
|
|
109
|
+
// Download a file
|
|
110
|
+
const { data, error } = await insforge.storage
|
|
111
|
+
.from('avatars')
|
|
112
|
+
.download('user-avatar.png');
|
|
113
|
+
|
|
114
|
+
// Delete a file
|
|
115
|
+
const { data, error } = await insforge.storage
|
|
116
|
+
.from('avatars')
|
|
117
|
+
.remove(['user-avatar.png']);
|
|
118
|
+
|
|
119
|
+
// List files
|
|
120
|
+
const { data, error } = await insforge.storage
|
|
121
|
+
.from('avatars')
|
|
122
|
+
.list();
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Edge Functions
|
|
126
|
+
|
|
127
|
+
```javascript
|
|
128
|
+
// Invoke an edge function
|
|
129
|
+
const { data, error } = await insforge.functions.invoke('my-function', {
|
|
130
|
+
body: { key: 'value' }
|
|
131
|
+
});
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### AI Integration
|
|
135
|
+
|
|
136
|
+
```javascript
|
|
137
|
+
// Generate text completion
|
|
138
|
+
const { data, error } = await insforge.ai.completion({
|
|
139
|
+
model: 'gpt-3.5-turbo',
|
|
140
|
+
prompt: 'Write a hello world program'
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Analyze an image
|
|
144
|
+
const { data, error } = await insforge.ai.vision({
|
|
145
|
+
imageUrl: 'https://example.com/image.jpg',
|
|
146
|
+
prompt: 'Describe this image'
|
|
147
|
+
});
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Documentation
|
|
151
|
+
|
|
152
|
+
For complete API reference and advanced usage, see:
|
|
153
|
+
|
|
154
|
+
- **[SDK Reference](./SDK-REFERENCE.md)** - Complete API documentation
|
|
155
|
+
- **[InsForge Main Repository](https://github.com/InsForge/InsForge)** - Backend platform and setup guides
|
|
156
|
+
|
|
157
|
+
## Configuration
|
|
158
|
+
|
|
159
|
+
The SDK supports the following configuration options:
|
|
160
|
+
|
|
161
|
+
```javascript
|
|
162
|
+
const insforge = createClient({
|
|
163
|
+
baseUrl: 'http://localhost:7130', // Required: Your InsForge backend URL
|
|
164
|
+
storageStrategy: 'localStorage' // Optional: 'localStorage' or 'memory' (default: 'localStorage')
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## TypeScript Support
|
|
169
|
+
|
|
170
|
+
The SDK is written in TypeScript and provides full type definitions:
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
import { createClient, InsForgeClient, User, Session } from '@insforge/sdk';
|
|
174
|
+
|
|
175
|
+
const insforge: InsForgeClient = createClient({
|
|
176
|
+
baseUrl: 'http://localhost:7130'
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
// Type-safe API calls
|
|
180
|
+
const response: { data: User | null; error: Error | null } =
|
|
181
|
+
await insforge.auth.getCurrentUser();
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Error Handling
|
|
185
|
+
|
|
186
|
+
All SDK methods return a consistent response format:
|
|
187
|
+
|
|
188
|
+
```javascript
|
|
189
|
+
const { data, error } = await insforge.auth.signUp({...});
|
|
190
|
+
|
|
191
|
+
if (error) {
|
|
192
|
+
console.error('Error:', error.message);
|
|
193
|
+
console.error('Status:', error.statusCode);
|
|
194
|
+
} else {
|
|
195
|
+
console.log('Success:', data);
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Browser Support
|
|
200
|
+
|
|
201
|
+
The SDK works in all modern browsers that support:
|
|
202
|
+
- ES6+ features
|
|
203
|
+
- Fetch API
|
|
204
|
+
- LocalStorage (for session management)
|
|
205
|
+
|
|
206
|
+
For Node.js environments, ensure you're using Node.js 18 or higher.
|
|
207
|
+
|
|
208
|
+
## Contributing
|
|
209
|
+
|
|
210
|
+
We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.
|
|
211
|
+
|
|
212
|
+
### Development Setup
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Clone the repository
|
|
216
|
+
git clone https://github.com/InsForge/insforge-sdk-js.git
|
|
217
|
+
cd insforge-sdk-js
|
|
218
|
+
|
|
219
|
+
# Install dependencies
|
|
220
|
+
npm install
|
|
221
|
+
|
|
222
|
+
# Build the SDK
|
|
223
|
+
npm run build
|
|
224
|
+
|
|
225
|
+
# Run tests
|
|
226
|
+
npm test
|
|
227
|
+
|
|
228
|
+
# Run integration tests
|
|
229
|
+
npm run test:integration
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## License
|
|
233
|
+
|
|
234
|
+
This project is licensed under the Apache License 2.0 - see the [LICENSE](./LICENSE) file for details.
|
|
235
|
+
|
|
236
|
+
## Community & Support
|
|
237
|
+
|
|
238
|
+
- **GitHub Issues**: [Report bugs or request features](https://github.com/InsForge/insforge-sdk-js/issues)
|
|
239
|
+
- **Documentation**: [https://docs.insforge.com](https://docs.insforge.com)
|
|
240
|
+
- **Main Repository**: [InsForge Backend Platform](https://github.com/InsForge/InsForge)
|
|
241
|
+
|
|
242
|
+
## Related Projects
|
|
243
|
+
|
|
244
|
+
- **[InsForge](https://github.com/InsForge/InsForge)** - The main InsForge backend platform
|
|
245
|
+
- **[InsForge MCP](https://github.com/InsForge/insforge-mcp)** - Model Context Protocol server for InsForge
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
Built with ❤️ by the InsForge team
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UserSchema, CreateUserRequest, CreateUserResponse, CreateSessionRequest, CreateSessionResponse, OAuthProvidersSchema, StorageFileSchema, ListObjectsResponseSchema, ChatCompletionRequest, ImageGenerationRequest } from '@insforge/shared-schemas';
|
|
1
|
+
import { UserSchema, CreateUserRequest, CreateUserResponse, CreateSessionRequest, CreateSessionResponse, OAuthProvidersSchema, PublicOAuthProvider, GetPublicEmailAuthConfigResponse, UserIdSchema, EmailSchema, RoleSchema, ProfileSchema, UpdateProfileSchema, StorageFileSchema, ListObjectsResponseSchema, ChatCompletionRequest, ImageGenerationRequest } from '@insforge/shared-schemas';
|
|
2
2
|
export { AuthErrorResponse, CreateSessionRequest, CreateUserRequest, UserSchema } from '@insforge/shared-schemas';
|
|
3
3
|
import * as _supabase_postgrest_js from '@supabase/postgrest-js';
|
|
4
4
|
|
|
@@ -151,14 +151,59 @@ declare class Auth {
|
|
|
151
151
|
signOut(): Promise<{
|
|
152
152
|
error: InsForgeError | null;
|
|
153
153
|
}>;
|
|
154
|
+
/**
|
|
155
|
+
* Get list of available OAuth providers
|
|
156
|
+
* Returns the list of OAuth providers configured on the backend
|
|
157
|
+
* This is a public endpoint that doesn't require authentication
|
|
158
|
+
*
|
|
159
|
+
* @returns Array of configured OAuth providers with their configuration status
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* const { data, error } = await insforge.auth.getOAuthProviders();
|
|
164
|
+
* if (data) {
|
|
165
|
+
* // data is an array of PublicOAuthProvider: [{ provider: 'google', isConfigured: true }, ...]
|
|
166
|
+
* data.forEach(p => console.log(`${p.provider}: ${p.isConfigured ? 'configured' : 'not configured'}`));
|
|
167
|
+
* }
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
getOAuthProviders(): Promise<{
|
|
171
|
+
data: PublicOAuthProvider[] | null;
|
|
172
|
+
error: InsForgeError | null;
|
|
173
|
+
}>;
|
|
174
|
+
/**
|
|
175
|
+
* Get public email authentication configuration
|
|
176
|
+
* Returns email authentication settings configured on the backend
|
|
177
|
+
* This is a public endpoint that doesn't require authentication
|
|
178
|
+
*
|
|
179
|
+
* @returns Email authentication configuration including password requirements and email verification settings
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```ts
|
|
183
|
+
* const { data, error } = await insforge.auth.getEmailAuthConfig();
|
|
184
|
+
* if (data) {
|
|
185
|
+
* console.log(`Password min length: ${data.passwordMinLength}`);
|
|
186
|
+
* console.log(`Requires email verification: ${data.requireEmailVerification}`);
|
|
187
|
+
* console.log(`Requires uppercase: ${data.requireUppercase}`);
|
|
188
|
+
* }
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
getEmailAuthConfig(): Promise<{
|
|
192
|
+
data: GetPublicEmailAuthConfigResponse | null;
|
|
193
|
+
error: InsForgeError | null;
|
|
194
|
+
}>;
|
|
154
195
|
/**
|
|
155
196
|
* Get the current user with full profile information
|
|
156
197
|
* Returns both auth info (id, email, role) and profile data (nickname, avatar_url, bio, etc.)
|
|
157
198
|
*/
|
|
158
199
|
getCurrentUser(): Promise<{
|
|
159
200
|
data: {
|
|
160
|
-
user:
|
|
161
|
-
|
|
201
|
+
user: {
|
|
202
|
+
id: UserIdSchema;
|
|
203
|
+
email: EmailSchema;
|
|
204
|
+
role: RoleSchema;
|
|
205
|
+
};
|
|
206
|
+
profile: ProfileSchema | null;
|
|
162
207
|
} | null;
|
|
163
208
|
error: any | null;
|
|
164
209
|
}>;
|
|
@@ -167,7 +212,7 @@ declare class Auth {
|
|
|
167
212
|
* Returns profile information from the users table (nickname, avatar_url, bio, etc.)
|
|
168
213
|
*/
|
|
169
214
|
getProfile(userId: string): Promise<{
|
|
170
|
-
data:
|
|
215
|
+
data: ProfileSchema | null;
|
|
171
216
|
error: any | null;
|
|
172
217
|
}>;
|
|
173
218
|
/**
|
|
@@ -184,61 +229,10 @@ declare class Auth {
|
|
|
184
229
|
* Set/Update the current user's profile
|
|
185
230
|
* Updates profile information in the users table (nickname, avatar_url, bio, etc.)
|
|
186
231
|
*/
|
|
187
|
-
setProfile(profile: {
|
|
188
|
-
|
|
189
|
-
avatar_url?: string;
|
|
190
|
-
bio?: string;
|
|
191
|
-
birthday?: string;
|
|
192
|
-
[key: string]: any;
|
|
193
|
-
}): Promise<{
|
|
194
|
-
data: any | null;
|
|
232
|
+
setProfile(profile: UpdateProfileSchema): Promise<{
|
|
233
|
+
data: ProfileSchema | null;
|
|
195
234
|
error: any | null;
|
|
196
235
|
}>;
|
|
197
|
-
/**
|
|
198
|
-
* Send email verification code or link
|
|
199
|
-
* @param type - 'code' for numeric OTP (6 digits) or 'link' for verification link
|
|
200
|
-
* @param email - Email address to send verification to
|
|
201
|
-
*/
|
|
202
|
-
sendEmailVerification(type: 'code' | 'link', email: string): Promise<{
|
|
203
|
-
data: {
|
|
204
|
-
success: boolean;
|
|
205
|
-
message: string;
|
|
206
|
-
} | null;
|
|
207
|
-
error: InsForgeError | null;
|
|
208
|
-
}>;
|
|
209
|
-
/**
|
|
210
|
-
* Verify email with OTP
|
|
211
|
-
* @param otp - 6-digit numeric code (with email) or 64-char hex token (without email)
|
|
212
|
-
* @param email - Optional email address (required for code verification)
|
|
213
|
-
*/
|
|
214
|
-
verifyEmail(otp: string, email?: string): Promise<{
|
|
215
|
-
data: CreateSessionResponse | null;
|
|
216
|
-
error: InsForgeError | null;
|
|
217
|
-
}>;
|
|
218
|
-
/**
|
|
219
|
-
* Send password reset code or link
|
|
220
|
-
* @param type - 'code' for numeric OTP (6 digits) or 'link' for reset link
|
|
221
|
-
* @param email - Email address to send reset instructions to
|
|
222
|
-
*/
|
|
223
|
-
sendResetPasswordEmail(type: 'code' | 'link', email: string): Promise<{
|
|
224
|
-
data: {
|
|
225
|
-
success: boolean;
|
|
226
|
-
message: string;
|
|
227
|
-
} | null;
|
|
228
|
-
error: InsForgeError | null;
|
|
229
|
-
}>;
|
|
230
|
-
/**
|
|
231
|
-
* Reset password with OTP
|
|
232
|
-
* @param otp - 6-digit numeric code (with email) or 64-char hex token (without email)
|
|
233
|
-
* @param newPassword - New password to set
|
|
234
|
-
* @param email - Optional email address (required for code-based reset)
|
|
235
|
-
*/
|
|
236
|
-
resetPassword(otp: string, newPassword: string, email?: string): Promise<{
|
|
237
|
-
data: {
|
|
238
|
-
message: string;
|
|
239
|
-
} | null;
|
|
240
|
-
error: InsForgeError | null;
|
|
241
|
-
}>;
|
|
242
236
|
}
|
|
243
237
|
|
|
244
238
|
/**
|