@proxima-nexus/sdk-typescript 1.0.0
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 +15 -0
- package/README.md +349 -0
- package/dist/api/event-api.d.ts +420 -0
- package/dist/api/event-api.js +642 -0
- package/dist/api/group-api.d.ts +506 -0
- package/dist/api/group-api.js +775 -0
- package/dist/api/user-api.d.ts +543 -0
- package/dist/api/user-api.js +850 -0
- package/dist/base.d.ts +42 -0
- package/dist/base.js +48 -0
- package/dist/common.d.ts +31 -0
- package/dist/common.js +98 -0
- package/dist/configuration.d.ts +98 -0
- package/dist/configuration.js +48 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +44 -0
- package/dist/models/create-event-dto.d.ts +63 -0
- package/dist/models/create-event-dto.js +22 -0
- package/dist/models/create-group-dto.d.ts +51 -0
- package/dist/models/create-group-dto.js +22 -0
- package/dist/models/create-user-dto.d.ts +55 -0
- package/dist/models/create-user-dto.js +22 -0
- package/dist/models/entity-connection-dto.d.ts +30 -0
- package/dist/models/entity-connection-dto.js +22 -0
- package/dist/models/event-dto.d.ts +70 -0
- package/dist/models/event-dto.js +21 -0
- package/dist/models/event-entity-connection-dto.d.ts +34 -0
- package/dist/models/event-entity-connection-dto.js +22 -0
- package/dist/models/get-events-dto.d.ts +17 -0
- package/dist/models/get-events-dto.js +15 -0
- package/dist/models/get-groups-dto.d.ts +17 -0
- package/dist/models/get-groups-dto.js +15 -0
- package/dist/models/get-users-dto.d.ts +17 -0
- package/dist/models/get-users-dto.js +15 -0
- package/dist/models/group-dto.d.ts +58 -0
- package/dist/models/group-dto.js +21 -0
- package/dist/models/group-entity-connection-dto.d.ts +34 -0
- package/dist/models/group-entity-connection-dto.js +22 -0
- package/dist/models/index.d.ts +18 -0
- package/dist/models/index.js +34 -0
- package/dist/models/location-dto.d.ts +25 -0
- package/dist/models/location-dto.js +15 -0
- package/dist/models/mutate-user-response-dto.d.ts +17 -0
- package/dist/models/mutate-user-response-dto.js +15 -0
- package/dist/models/update-event-dto.d.ts +55 -0
- package/dist/models/update-event-dto.js +22 -0
- package/dist/models/update-group-dto.d.ts +47 -0
- package/dist/models/update-group-dto.js +22 -0
- package/dist/models/update-user-dto.d.ts +51 -0
- package/dist/models/update-user-dto.js +22 -0
- package/dist/models/user-dto.d.ts +62 -0
- package/dist/models/user-dto.js +21 -0
- package/dist/models/user-entity-connection-dto.d.ts +34 -0
- package/dist/models/user-entity-connection-dto.js +22 -0
- package/package.json +56 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026, Proxima Nexus
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
copyright notice and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
10
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
11
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
12
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
13
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
14
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
15
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
# @proxima-nexus/sdk-typescript
|
|
2
|
+
|
|
3
|
+
TypeScript SDK for the Proxima Nexus Data Plane API.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @proxima-nexus/sdk-typescript
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### Basic Setup
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { ProximaNexusClient } from '@proxima-nexus/sdk-typescript';
|
|
17
|
+
|
|
18
|
+
// Initialize client
|
|
19
|
+
const client = new ProximaNexusClient({
|
|
20
|
+
apiKey: process.env.PROXIMA_NEXUS_API_KEY!,
|
|
21
|
+
baseURL: 'https://api.proxima-nexus.com',
|
|
22
|
+
});
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### User Operations
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
async function main() {
|
|
29
|
+
try {
|
|
30
|
+
// Create a user
|
|
31
|
+
const createResponse = await client.users.create({
|
|
32
|
+
createUserDto: {
|
|
33
|
+
userId: 'user-123',
|
|
34
|
+
displayName: 'John Doe',
|
|
35
|
+
requesterUserId: 'requester-123',
|
|
36
|
+
visibility: 'public',
|
|
37
|
+
gender: 'male',
|
|
38
|
+
birthDate: '1990-01-01',
|
|
39
|
+
location: {
|
|
40
|
+
latitude: 40.7128,
|
|
41
|
+
longitude: -74.006,
|
|
42
|
+
name: 'New York, NY'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
console.log('Created user:', createResponse.data);
|
|
47
|
+
|
|
48
|
+
// Search users
|
|
49
|
+
const searchResponse = await client.users.search({
|
|
50
|
+
displayName: 'John',
|
|
51
|
+
latitude: 40.7128,
|
|
52
|
+
longitude: -74.006,
|
|
53
|
+
radius: 5000,
|
|
54
|
+
limit: 10,
|
|
55
|
+
});
|
|
56
|
+
console.log('Found users:', searchResponse.data);
|
|
57
|
+
|
|
58
|
+
// Get user by ID
|
|
59
|
+
const user = await client.users.findOne({
|
|
60
|
+
userId: 'user-123',
|
|
61
|
+
});
|
|
62
|
+
console.log('User details:', user.data);
|
|
63
|
+
|
|
64
|
+
// Update a user
|
|
65
|
+
const updated = await client.users.update({
|
|
66
|
+
userId: 'user-123',
|
|
67
|
+
updateUserDto: {
|
|
68
|
+
requesterUserId: 'requester-123',
|
|
69
|
+
displayName: 'John Smith',
|
|
70
|
+
gender: 'male',
|
|
71
|
+
birthDate: '1990-01-01',
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
console.log('Updated user:', updated.data);
|
|
75
|
+
|
|
76
|
+
// Delete a user
|
|
77
|
+
await client.users.remove({
|
|
78
|
+
userId: 'user-123',
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Get a batch of users
|
|
82
|
+
const batchUsers = await client.users.getBatch({
|
|
83
|
+
getUsersDto: {
|
|
84
|
+
userIds: ['user-1', 'user-2', 'user-3'],
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
console.log('Batch users:', batchUsers.data);
|
|
88
|
+
|
|
89
|
+
// Friend operations
|
|
90
|
+
const friends = await client.users.getFriends({
|
|
91
|
+
userId: 'user-123',
|
|
92
|
+
});
|
|
93
|
+
console.log('Friends:', friends.data);
|
|
94
|
+
|
|
95
|
+
await client.users.addFriend({
|
|
96
|
+
userId: 'user-123',
|
|
97
|
+
friendUserId: 'friend-456',
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
await client.users.removeFriend({
|
|
101
|
+
userId: 'user-123',
|
|
102
|
+
friendUserId: 'friend-456',
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// Get user's groups and events
|
|
106
|
+
const groups = await client.users.getGroups({
|
|
107
|
+
userId: 'user-123',
|
|
108
|
+
});
|
|
109
|
+
console.log('User groups:', groups.data);
|
|
110
|
+
|
|
111
|
+
const events = await client.users.getEvents({
|
|
112
|
+
userId: 'user-123',
|
|
113
|
+
});
|
|
114
|
+
console.log('User events:', events.data);
|
|
115
|
+
} catch (error: any) {
|
|
116
|
+
console.error('API Error:', error.message);
|
|
117
|
+
if (error.response) {
|
|
118
|
+
console.error('Status:', error.response.status);
|
|
119
|
+
console.error('Data:', error.response.data);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Event Operations
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
async function main() {
|
|
129
|
+
try {
|
|
130
|
+
// Create an event
|
|
131
|
+
const event = await client.events.create({
|
|
132
|
+
createEventDto: {
|
|
133
|
+
eventId: 'event-123',
|
|
134
|
+
displayName: 'Tech Meetup',
|
|
135
|
+
requesterUserId: 'user-123',
|
|
136
|
+
visibility: 'public',
|
|
137
|
+
startTime: '2024-12-01T18:00:00Z',
|
|
138
|
+
endTime: '2024-12-01T22:00:00Z',
|
|
139
|
+
type: 'meetup',
|
|
140
|
+
location: {
|
|
141
|
+
latitude: 40.7128,
|
|
142
|
+
longitude: -74.006,
|
|
143
|
+
name: 'New York, NY'
|
|
144
|
+
},
|
|
145
|
+
description: 'Monthly tech meetup',
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
console.log('Created event:', event.data);
|
|
149
|
+
|
|
150
|
+
// Search events
|
|
151
|
+
const events = await client.events.search({
|
|
152
|
+
displayName: 'Tech',
|
|
153
|
+
latitude: 40.7128,
|
|
154
|
+
longitude: -74.006,
|
|
155
|
+
radius: 10000,
|
|
156
|
+
limit: 50,
|
|
157
|
+
});
|
|
158
|
+
console.log('Found events:', events.data);
|
|
159
|
+
|
|
160
|
+
// Get an event by ID
|
|
161
|
+
const eventDetails = await client.events.findOne({
|
|
162
|
+
eventId: 'event-123',
|
|
163
|
+
});
|
|
164
|
+
console.log('Event details:', eventDetails.data);
|
|
165
|
+
|
|
166
|
+
// Update an event
|
|
167
|
+
const updatedEvent = await client.events.update({
|
|
168
|
+
eventId: 'event-123',
|
|
169
|
+
updateEventDto: {
|
|
170
|
+
requesterUserId: 'user-123',
|
|
171
|
+
displayName: 'Tech Meetup 2024',
|
|
172
|
+
startTime: '2024-12-01T18:00:00Z',
|
|
173
|
+
endTime: '2024-12-01T23:00:00Z',
|
|
174
|
+
type: 'meetup',
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
console.log('Updated event:', updatedEvent.data);
|
|
178
|
+
|
|
179
|
+
// Delete an event
|
|
180
|
+
await client.events.remove({
|
|
181
|
+
eventId: 'event-123',
|
|
182
|
+
requesterUserId: 'user-123',
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
// Get a batch of events
|
|
186
|
+
const batchEvents = await client.events.getBatch({
|
|
187
|
+
getEventsDto: {
|
|
188
|
+
eventIds: ['event-1', 'event-2', 'event-3'],
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
console.log('Batch events:', batchEvents.data);
|
|
192
|
+
|
|
193
|
+
// Attendee operations
|
|
194
|
+
const attendees = await client.events.getAttendees({
|
|
195
|
+
eventId: 'event-123',
|
|
196
|
+
});
|
|
197
|
+
console.log('Attendees:', attendees.data);
|
|
198
|
+
|
|
199
|
+
await client.events.addAttendee({
|
|
200
|
+
eventId: 'event-123',
|
|
201
|
+
userId: 'user-456',
|
|
202
|
+
});
|
|
203
|
+
} catch (error: any) {
|
|
204
|
+
console.error('API Error:', error.message);
|
|
205
|
+
if (error.response) {
|
|
206
|
+
console.error('Status:', error.response.status);
|
|
207
|
+
console.error('Data:', error.response.data);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Group Operations
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
async function main() {
|
|
217
|
+
try {
|
|
218
|
+
// Create a group
|
|
219
|
+
const group = await client.groups.create({
|
|
220
|
+
createGroupDto: {
|
|
221
|
+
groupId: 'group-123',
|
|
222
|
+
displayName: 'Music Lovers',
|
|
223
|
+
requesterUserId: 'user-123',
|
|
224
|
+
visibility: 'public',
|
|
225
|
+
type: 'club',
|
|
226
|
+
description: 'A group for music enthusiasts',
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
console.log('Created group:', group.data);
|
|
230
|
+
|
|
231
|
+
// Search groups
|
|
232
|
+
const groups = await client.groups.search({
|
|
233
|
+
displayName: 'Music',
|
|
234
|
+
latitude: 40.7128,
|
|
235
|
+
longitude: -74.006,
|
|
236
|
+
radius: 5000,
|
|
237
|
+
limit: 100,
|
|
238
|
+
});
|
|
239
|
+
console.log('Found groups:', groups.data);
|
|
240
|
+
|
|
241
|
+
// Get a group by ID
|
|
242
|
+
const groupDetails = await client.groups.findOne({
|
|
243
|
+
groupId: 'group-123',
|
|
244
|
+
});
|
|
245
|
+
console.log('Group details:', groupDetails.data);
|
|
246
|
+
|
|
247
|
+
// Update a group
|
|
248
|
+
const updatedGroup = await client.groups.update({
|
|
249
|
+
groupId: 'group-123',
|
|
250
|
+
updateGroupDto: {
|
|
251
|
+
requesterUserId: 'user-123',
|
|
252
|
+
displayName: 'Music Enthusiasts',
|
|
253
|
+
type: 'club',
|
|
254
|
+
},
|
|
255
|
+
});
|
|
256
|
+
console.log('Updated group:', updatedGroup.data);
|
|
257
|
+
|
|
258
|
+
// Delete a group
|
|
259
|
+
await client.groups.remove({
|
|
260
|
+
groupId: 'group-123',
|
|
261
|
+
requesterUserId: 'user-123',
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
// Get a batch of groups
|
|
265
|
+
const batchGroups = await client.groups.getBatch({
|
|
266
|
+
getGroupsDto: {
|
|
267
|
+
groupIds: ['group-1', 'group-2', 'group-3'],
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
console.log('Batch groups:', batchGroups.data);
|
|
271
|
+
|
|
272
|
+
// Member operations
|
|
273
|
+
const members = await client.groups.getMembers({
|
|
274
|
+
groupId: 'group-123',
|
|
275
|
+
});
|
|
276
|
+
console.log('Members:', members.data);
|
|
277
|
+
|
|
278
|
+
await client.groups.addMember({
|
|
279
|
+
groupId: 'group-123',
|
|
280
|
+
userId: 'user-456',
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
await client.groups.removeMember({
|
|
284
|
+
groupId: 'group-123',
|
|
285
|
+
userId: 'user-456',
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
// Get group's events
|
|
289
|
+
const groupEvents = await client.groups.getEvents({
|
|
290
|
+
groupId: 'group-123',
|
|
291
|
+
});
|
|
292
|
+
console.log('Group events:', groupEvents.data);
|
|
293
|
+
} catch (error: any) {
|
|
294
|
+
console.error('API Error:', error.message);
|
|
295
|
+
if (error.response) {
|
|
296
|
+
console.error('Status:', error.response.status);
|
|
297
|
+
console.error('Data:', error.response.data);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## Configuration
|
|
304
|
+
|
|
305
|
+
The `ProximaNexusClientConfig` interface supports the following options:
|
|
306
|
+
|
|
307
|
+
```typescript
|
|
308
|
+
interface ProximaNexusClientConfig {
|
|
309
|
+
/**
|
|
310
|
+
* API base URL
|
|
311
|
+
* @default "https://api.proxima-nexus.com"
|
|
312
|
+
*/
|
|
313
|
+
baseURL?: string;
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* API key for authentication
|
|
317
|
+
* Required for all requests
|
|
318
|
+
*/
|
|
319
|
+
apiKey: string;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Request timeout in milliseconds
|
|
323
|
+
* @default 30000
|
|
324
|
+
*/
|
|
325
|
+
timeout?: number;
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Additional axios configuration
|
|
329
|
+
*/
|
|
330
|
+
axiosConfig?: AxiosRequestConfig;
|
|
331
|
+
}
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
## TypeScript Support
|
|
335
|
+
|
|
336
|
+
This SDK is written in TypeScript and provides full type definitions. All request and response types are automatically generated from the OpenAPI specification.
|
|
337
|
+
|
|
338
|
+
## Requirements
|
|
339
|
+
|
|
340
|
+
- Node.js >= 18.x
|
|
341
|
+
- axios >= 1.0.0 (peer dependency)
|
|
342
|
+
|
|
343
|
+
## License
|
|
344
|
+
|
|
345
|
+
ISC
|
|
346
|
+
|
|
347
|
+
## Support
|
|
348
|
+
|
|
349
|
+
For issues and questions, please visit: https://github.com/proxima-nexus/sdk-typescript/issues
|