@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.
Files changed (55) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +349 -0
  3. package/dist/api/event-api.d.ts +420 -0
  4. package/dist/api/event-api.js +642 -0
  5. package/dist/api/group-api.d.ts +506 -0
  6. package/dist/api/group-api.js +775 -0
  7. package/dist/api/user-api.d.ts +543 -0
  8. package/dist/api/user-api.js +850 -0
  9. package/dist/base.d.ts +42 -0
  10. package/dist/base.js +48 -0
  11. package/dist/common.d.ts +31 -0
  12. package/dist/common.js +98 -0
  13. package/dist/configuration.d.ts +98 -0
  14. package/dist/configuration.js +48 -0
  15. package/dist/index.d.ts +38 -0
  16. package/dist/index.js +44 -0
  17. package/dist/models/create-event-dto.d.ts +63 -0
  18. package/dist/models/create-event-dto.js +22 -0
  19. package/dist/models/create-group-dto.d.ts +51 -0
  20. package/dist/models/create-group-dto.js +22 -0
  21. package/dist/models/create-user-dto.d.ts +55 -0
  22. package/dist/models/create-user-dto.js +22 -0
  23. package/dist/models/entity-connection-dto.d.ts +30 -0
  24. package/dist/models/entity-connection-dto.js +22 -0
  25. package/dist/models/event-dto.d.ts +70 -0
  26. package/dist/models/event-dto.js +21 -0
  27. package/dist/models/event-entity-connection-dto.d.ts +34 -0
  28. package/dist/models/event-entity-connection-dto.js +22 -0
  29. package/dist/models/get-events-dto.d.ts +17 -0
  30. package/dist/models/get-events-dto.js +15 -0
  31. package/dist/models/get-groups-dto.d.ts +17 -0
  32. package/dist/models/get-groups-dto.js +15 -0
  33. package/dist/models/get-users-dto.d.ts +17 -0
  34. package/dist/models/get-users-dto.js +15 -0
  35. package/dist/models/group-dto.d.ts +58 -0
  36. package/dist/models/group-dto.js +21 -0
  37. package/dist/models/group-entity-connection-dto.d.ts +34 -0
  38. package/dist/models/group-entity-connection-dto.js +22 -0
  39. package/dist/models/index.d.ts +18 -0
  40. package/dist/models/index.js +34 -0
  41. package/dist/models/location-dto.d.ts +25 -0
  42. package/dist/models/location-dto.js +15 -0
  43. package/dist/models/mutate-user-response-dto.d.ts +17 -0
  44. package/dist/models/mutate-user-response-dto.js +15 -0
  45. package/dist/models/update-event-dto.d.ts +55 -0
  46. package/dist/models/update-event-dto.js +22 -0
  47. package/dist/models/update-group-dto.d.ts +47 -0
  48. package/dist/models/update-group-dto.js +22 -0
  49. package/dist/models/update-user-dto.d.ts +51 -0
  50. package/dist/models/update-user-dto.js +22 -0
  51. package/dist/models/user-dto.d.ts +62 -0
  52. package/dist/models/user-dto.js +21 -0
  53. package/dist/models/user-entity-connection-dto.d.ts +34 -0
  54. package/dist/models/user-entity-connection-dto.js +22 -0
  55. 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