@teamvortexsoftware/vortex-nextjs-15-sdk 0.0.1 → 0.0.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 +143 -373
- package/bin/vortex-setup.js +181 -0
- package/dist/config.d.ts +56 -11
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +81 -20
- package/dist/handlers/invitations.js +98 -84
- package/dist/handlers/jwt.d.ts.map +1 -1
- package/dist/handlers/jwt.js +58 -10
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/routes.d.ts +100 -10
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +100 -7
- package/dist/utils.d.ts +5 -5
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +37 -3
- package/package.json +14 -12
|
@@ -52,29 +52,31 @@ function handleGetInvitationsByTarget(request) {
|
|
|
52
52
|
return __generator(this, function (_a) {
|
|
53
53
|
switch (_a.label) {
|
|
54
54
|
case 0:
|
|
55
|
-
_a.trys.push([0,
|
|
55
|
+
_a.trys.push([0, 7, , 8]);
|
|
56
56
|
if (request.method !== 'GET') {
|
|
57
57
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
59
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
61
60
|
case 1:
|
|
61
|
+
config = _a.sent();
|
|
62
|
+
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
63
|
+
case 2:
|
|
62
64
|
user = _a.sent();
|
|
63
|
-
if (!config.canAccessInvitationsByTarget) return [3 /*break*/,
|
|
65
|
+
if (!config.canAccessInvitationsByTarget) return [3 /*break*/, 4];
|
|
64
66
|
return [4 /*yield*/, config.canAccessInvitationsByTarget(request, user)];
|
|
65
|
-
case
|
|
67
|
+
case 3:
|
|
66
68
|
hasAccess = _a.sent();
|
|
67
69
|
if (!hasAccess) {
|
|
68
70
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied', 403)];
|
|
69
71
|
}
|
|
70
|
-
return [3 /*break*/,
|
|
71
|
-
case
|
|
72
|
+
return [3 /*break*/, 5];
|
|
73
|
+
case 4:
|
|
72
74
|
if (!user) {
|
|
73
75
|
// If no access control hook is configured, require authentication
|
|
74
76
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied. Configure access control hooks for invitation endpoints.', 403)];
|
|
75
77
|
}
|
|
76
|
-
_a.label =
|
|
77
|
-
case
|
|
78
|
+
_a.label = 5;
|
|
79
|
+
case 5:
|
|
78
80
|
targetType = (0, utils_1.sanitizeInput)((0, utils_1.getQueryParam)(request, 'targetType'));
|
|
79
81
|
targetValue = (0, utils_1.sanitizeInput)((0, utils_1.getQueryParam)(request, 'targetValue'));
|
|
80
82
|
if (!targetType || !targetValue) {
|
|
@@ -85,14 +87,14 @@ function handleGetInvitationsByTarget(request) {
|
|
|
85
87
|
}
|
|
86
88
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
87
89
|
return [4 /*yield*/, vortex.getInvitationsByTarget(targetType, targetValue)];
|
|
88
|
-
case
|
|
90
|
+
case 6:
|
|
89
91
|
invitations = _a.sent();
|
|
90
92
|
return [2 /*return*/, (0, utils_1.createApiResponse)({ invitations: invitations })];
|
|
91
|
-
case
|
|
93
|
+
case 7:
|
|
92
94
|
error_1 = _a.sent();
|
|
93
95
|
console.error('Error in handleGetInvitationsByTarget:', error_1);
|
|
94
96
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('An error occurred while processing your request', 500)];
|
|
95
|
-
case
|
|
97
|
+
case 8: return [2 /*return*/];
|
|
96
98
|
}
|
|
97
99
|
});
|
|
98
100
|
});
|
|
@@ -103,7 +105,7 @@ function handleGetInvitation(request, invitationId) {
|
|
|
103
105
|
return __generator(this, function (_a) {
|
|
104
106
|
switch (_a.label) {
|
|
105
107
|
case 0:
|
|
106
|
-
_a.trys.push([0,
|
|
108
|
+
_a.trys.push([0, 7, , 8]);
|
|
107
109
|
if (request.method !== 'GET') {
|
|
108
110
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
109
111
|
}
|
|
@@ -111,34 +113,36 @@ function handleGetInvitation(request, invitationId) {
|
|
|
111
113
|
if (!sanitizedId) {
|
|
112
114
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Invalid invitation ID', 400)];
|
|
113
115
|
}
|
|
114
|
-
|
|
115
|
-
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
116
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
116
117
|
case 1:
|
|
118
|
+
config = _a.sent();
|
|
119
|
+
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
120
|
+
case 2:
|
|
117
121
|
user = _a.sent();
|
|
118
|
-
if (!config.canAccessInvitation) return [3 /*break*/,
|
|
122
|
+
if (!config.canAccessInvitation) return [3 /*break*/, 4];
|
|
119
123
|
return [4 /*yield*/, config.canAccessInvitation(request, user, { invitationId: sanitizedId })];
|
|
120
|
-
case
|
|
124
|
+
case 3:
|
|
121
125
|
hasAccess = _a.sent();
|
|
122
126
|
if (!hasAccess) {
|
|
123
127
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied', 403)];
|
|
124
128
|
}
|
|
125
|
-
return [3 /*break*/,
|
|
126
|
-
case
|
|
129
|
+
return [3 /*break*/, 5];
|
|
130
|
+
case 4:
|
|
127
131
|
if (!user) {
|
|
128
132
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied. Configure access control hooks for invitation endpoints.', 403)];
|
|
129
133
|
}
|
|
130
|
-
_a.label =
|
|
131
|
-
case
|
|
134
|
+
_a.label = 5;
|
|
135
|
+
case 5:
|
|
132
136
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
133
137
|
return [4 /*yield*/, vortex.getInvitation(sanitizedId)];
|
|
134
|
-
case
|
|
138
|
+
case 6:
|
|
135
139
|
invitation = _a.sent();
|
|
136
140
|
return [2 /*return*/, (0, utils_1.createApiResponse)(invitation)];
|
|
137
|
-
case
|
|
141
|
+
case 7:
|
|
138
142
|
error_2 = _a.sent();
|
|
139
143
|
console.error('Error in handleGetInvitation:', error_2);
|
|
140
144
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('An error occurred while processing your request', 500)];
|
|
141
|
-
case
|
|
145
|
+
case 8: return [2 /*return*/];
|
|
142
146
|
}
|
|
143
147
|
});
|
|
144
148
|
});
|
|
@@ -149,7 +153,7 @@ function handleRevokeInvitation(request, invitationId) {
|
|
|
149
153
|
return __generator(this, function (_a) {
|
|
150
154
|
switch (_a.label) {
|
|
151
155
|
case 0:
|
|
152
|
-
_a.trys.push([0,
|
|
156
|
+
_a.trys.push([0, 7, , 8]);
|
|
153
157
|
if (request.method !== 'DELETE') {
|
|
154
158
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
155
159
|
}
|
|
@@ -157,34 +161,36 @@ function handleRevokeInvitation(request, invitationId) {
|
|
|
157
161
|
if (!sanitizedId) {
|
|
158
162
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Invalid invitation ID', 400)];
|
|
159
163
|
}
|
|
160
|
-
|
|
161
|
-
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
164
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
162
165
|
case 1:
|
|
166
|
+
config = _a.sent();
|
|
167
|
+
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
168
|
+
case 2:
|
|
163
169
|
user = _a.sent();
|
|
164
|
-
if (!config.canDeleteInvitation) return [3 /*break*/,
|
|
170
|
+
if (!config.canDeleteInvitation) return [3 /*break*/, 4];
|
|
165
171
|
return [4 /*yield*/, config.canDeleteInvitation(request, user, { invitationId: sanitizedId })];
|
|
166
|
-
case
|
|
172
|
+
case 3:
|
|
167
173
|
hasAccess = _a.sent();
|
|
168
174
|
if (!hasAccess) {
|
|
169
175
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied', 403)];
|
|
170
176
|
}
|
|
171
|
-
return [3 /*break*/,
|
|
172
|
-
case
|
|
177
|
+
return [3 /*break*/, 5];
|
|
178
|
+
case 4:
|
|
173
179
|
if (!user) {
|
|
174
180
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied. Configure access control hooks for invitation endpoints.', 403)];
|
|
175
181
|
}
|
|
176
|
-
_a.label =
|
|
177
|
-
case
|
|
182
|
+
_a.label = 5;
|
|
183
|
+
case 5:
|
|
178
184
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
179
185
|
return [4 /*yield*/, vortex.revokeInvitation(sanitizedId)];
|
|
180
|
-
case
|
|
186
|
+
case 6:
|
|
181
187
|
_a.sent();
|
|
182
188
|
return [2 /*return*/, (0, utils_1.createApiResponse)({ success: true })];
|
|
183
|
-
case
|
|
189
|
+
case 7:
|
|
184
190
|
error_3 = _a.sent();
|
|
185
191
|
console.error('Error in handleRevokeInvitation:', error_3);
|
|
186
192
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('An error occurred while processing your request', 500)];
|
|
187
|
-
case
|
|
193
|
+
case 8: return [2 /*return*/];
|
|
188
194
|
}
|
|
189
195
|
});
|
|
190
196
|
});
|
|
@@ -195,7 +201,7 @@ function handleAcceptInvitations(request) {
|
|
|
195
201
|
return __generator(this, function (_a) {
|
|
196
202
|
switch (_a.label) {
|
|
197
203
|
case 0:
|
|
198
|
-
_a.trys.push([0,
|
|
204
|
+
_a.trys.push([0, 8, , 9]);
|
|
199
205
|
if (request.method !== 'POST') {
|
|
200
206
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
201
207
|
}
|
|
@@ -217,37 +223,39 @@ function handleAcceptInvitations(request) {
|
|
|
217
223
|
if (!['email', 'username', 'phoneNumber'].includes(target.type)) {
|
|
218
224
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('target.type must be email, username, or phoneNumber', 400)];
|
|
219
225
|
}
|
|
220
|
-
|
|
221
|
-
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
226
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
222
227
|
case 2:
|
|
228
|
+
config = _a.sent();
|
|
229
|
+
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
230
|
+
case 3:
|
|
223
231
|
user = _a.sent();
|
|
224
|
-
if (!config.canAcceptInvitations) return [3 /*break*/,
|
|
232
|
+
if (!config.canAcceptInvitations) return [3 /*break*/, 5];
|
|
225
233
|
return [4 /*yield*/, config.canAcceptInvitations(request, user, { invitationIds: sanitizedIds, target: target })];
|
|
226
|
-
case
|
|
234
|
+
case 4:
|
|
227
235
|
hasAccess = _a.sent();
|
|
228
236
|
if (!hasAccess) {
|
|
229
237
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied', 403)];
|
|
230
238
|
}
|
|
231
|
-
return [3 /*break*/,
|
|
232
|
-
case
|
|
239
|
+
return [3 /*break*/, 6];
|
|
240
|
+
case 5:
|
|
233
241
|
if (!user) {
|
|
234
242
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied. Configure access control hooks for invitation endpoints.', 403)];
|
|
235
243
|
}
|
|
236
|
-
_a.label =
|
|
237
|
-
case
|
|
244
|
+
_a.label = 6;
|
|
245
|
+
case 6:
|
|
238
246
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
239
247
|
return [4 /*yield*/, vortex.acceptInvitations(sanitizedIds, {
|
|
240
248
|
type: target.type,
|
|
241
249
|
value: (0, utils_1.sanitizeInput)(target.value) || target.value
|
|
242
250
|
})];
|
|
243
|
-
case
|
|
251
|
+
case 7:
|
|
244
252
|
result = _a.sent();
|
|
245
253
|
return [2 /*return*/, (0, utils_1.createApiResponse)(result)];
|
|
246
|
-
case
|
|
254
|
+
case 8:
|
|
247
255
|
error_4 = _a.sent();
|
|
248
256
|
console.error('Error in handleAcceptInvitations:', error_4);
|
|
249
257
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('An error occurred while processing your request', 500)];
|
|
250
|
-
case
|
|
258
|
+
case 9: return [2 /*return*/];
|
|
251
259
|
}
|
|
252
260
|
});
|
|
253
261
|
});
|
|
@@ -258,7 +266,7 @@ function handleGetInvitationsByGroup(request, groupType, groupId) {
|
|
|
258
266
|
return __generator(this, function (_a) {
|
|
259
267
|
switch (_a.label) {
|
|
260
268
|
case 0:
|
|
261
|
-
_a.trys.push([0,
|
|
269
|
+
_a.trys.push([0, 7, , 8]);
|
|
262
270
|
if (request.method !== 'GET') {
|
|
263
271
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
264
272
|
}
|
|
@@ -267,37 +275,39 @@ function handleGetInvitationsByGroup(request, groupType, groupId) {
|
|
|
267
275
|
if (!sanitizedGroupType || !sanitizedGroupId) {
|
|
268
276
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Invalid group parameters', 400)];
|
|
269
277
|
}
|
|
270
|
-
|
|
271
|
-
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
278
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
272
279
|
case 1:
|
|
280
|
+
config = _a.sent();
|
|
281
|
+
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
282
|
+
case 2:
|
|
273
283
|
user = _a.sent();
|
|
274
|
-
if (!config.canAccessInvitationsByGroup) return [3 /*break*/,
|
|
284
|
+
if (!config.canAccessInvitationsByGroup) return [3 /*break*/, 4];
|
|
275
285
|
return [4 /*yield*/, config.canAccessInvitationsByGroup(request, user, {
|
|
276
286
|
groupType: sanitizedGroupType,
|
|
277
287
|
groupId: sanitizedGroupId
|
|
278
288
|
})];
|
|
279
|
-
case
|
|
289
|
+
case 3:
|
|
280
290
|
hasAccess = _a.sent();
|
|
281
291
|
if (!hasAccess) {
|
|
282
292
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied', 403)];
|
|
283
293
|
}
|
|
284
|
-
return [3 /*break*/,
|
|
285
|
-
case
|
|
294
|
+
return [3 /*break*/, 5];
|
|
295
|
+
case 4:
|
|
286
296
|
if (!user) {
|
|
287
297
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied. Configure access control hooks for invitation endpoints.', 403)];
|
|
288
298
|
}
|
|
289
|
-
_a.label =
|
|
290
|
-
case
|
|
299
|
+
_a.label = 5;
|
|
300
|
+
case 5:
|
|
291
301
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
292
302
|
return [4 /*yield*/, vortex.getInvitationsByGroup(sanitizedGroupType, sanitizedGroupId)];
|
|
293
|
-
case
|
|
303
|
+
case 6:
|
|
294
304
|
invitations = _a.sent();
|
|
295
305
|
return [2 /*return*/, (0, utils_1.createApiResponse)({ invitations: invitations })];
|
|
296
|
-
case
|
|
306
|
+
case 7:
|
|
297
307
|
error_5 = _a.sent();
|
|
298
308
|
console.error('Error in handleGetInvitationsByGroup:', error_5);
|
|
299
309
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('An error occurred while processing your request', 500)];
|
|
300
|
-
case
|
|
310
|
+
case 8: return [2 /*return*/];
|
|
301
311
|
}
|
|
302
312
|
});
|
|
303
313
|
});
|
|
@@ -308,7 +318,7 @@ function handleDeleteInvitationsByGroup(request, groupType, groupId) {
|
|
|
308
318
|
return __generator(this, function (_a) {
|
|
309
319
|
switch (_a.label) {
|
|
310
320
|
case 0:
|
|
311
|
-
_a.trys.push([0,
|
|
321
|
+
_a.trys.push([0, 7, , 8]);
|
|
312
322
|
if (request.method !== 'DELETE') {
|
|
313
323
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
314
324
|
}
|
|
@@ -317,37 +327,39 @@ function handleDeleteInvitationsByGroup(request, groupType, groupId) {
|
|
|
317
327
|
if (!sanitizedGroupType || !sanitizedGroupId) {
|
|
318
328
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Invalid group parameters', 400)];
|
|
319
329
|
}
|
|
320
|
-
|
|
321
|
-
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
330
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
322
331
|
case 1:
|
|
332
|
+
config = _a.sent();
|
|
333
|
+
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
334
|
+
case 2:
|
|
323
335
|
user = _a.sent();
|
|
324
|
-
if (!config.canDeleteInvitationsByGroup) return [3 /*break*/,
|
|
336
|
+
if (!config.canDeleteInvitationsByGroup) return [3 /*break*/, 4];
|
|
325
337
|
return [4 /*yield*/, config.canDeleteInvitationsByGroup(request, user, {
|
|
326
338
|
groupType: sanitizedGroupType,
|
|
327
339
|
groupId: sanitizedGroupId
|
|
328
340
|
})];
|
|
329
|
-
case
|
|
341
|
+
case 3:
|
|
330
342
|
hasAccess = _a.sent();
|
|
331
343
|
if (!hasAccess) {
|
|
332
344
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied', 403)];
|
|
333
345
|
}
|
|
334
|
-
return [3 /*break*/,
|
|
335
|
-
case
|
|
346
|
+
return [3 /*break*/, 5];
|
|
347
|
+
case 4:
|
|
336
348
|
if (!user) {
|
|
337
349
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied. Configure access control hooks for invitation endpoints.', 403)];
|
|
338
350
|
}
|
|
339
|
-
_a.label =
|
|
340
|
-
case
|
|
351
|
+
_a.label = 5;
|
|
352
|
+
case 5:
|
|
341
353
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
342
354
|
return [4 /*yield*/, vortex.deleteInvitationsByGroup(sanitizedGroupType, sanitizedGroupId)];
|
|
343
|
-
case
|
|
355
|
+
case 6:
|
|
344
356
|
_a.sent();
|
|
345
357
|
return [2 /*return*/, (0, utils_1.createApiResponse)({ success: true })];
|
|
346
|
-
case
|
|
358
|
+
case 7:
|
|
347
359
|
error_6 = _a.sent();
|
|
348
360
|
console.error('Error in handleDeleteInvitationsByGroup:', error_6);
|
|
349
361
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('An error occurred while processing your request', 500)];
|
|
350
|
-
case
|
|
362
|
+
case 8: return [2 /*return*/];
|
|
351
363
|
}
|
|
352
364
|
});
|
|
353
365
|
});
|
|
@@ -358,7 +370,7 @@ function handleReinvite(request, invitationId) {
|
|
|
358
370
|
return __generator(this, function (_a) {
|
|
359
371
|
switch (_a.label) {
|
|
360
372
|
case 0:
|
|
361
|
-
_a.trys.push([0,
|
|
373
|
+
_a.trys.push([0, 7, , 8]);
|
|
362
374
|
if (request.method !== 'POST') {
|
|
363
375
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
364
376
|
}
|
|
@@ -366,34 +378,36 @@ function handleReinvite(request, invitationId) {
|
|
|
366
378
|
if (!sanitizedId) {
|
|
367
379
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Invalid invitation ID', 400)];
|
|
368
380
|
}
|
|
369
|
-
|
|
370
|
-
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
381
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
371
382
|
case 1:
|
|
383
|
+
config = _a.sent();
|
|
384
|
+
return [4 /*yield*/, (0, config_1.authenticateRequest)(request)];
|
|
385
|
+
case 2:
|
|
372
386
|
user = _a.sent();
|
|
373
|
-
if (!config.canReinvite) return [3 /*break*/,
|
|
387
|
+
if (!config.canReinvite) return [3 /*break*/, 4];
|
|
374
388
|
return [4 /*yield*/, config.canReinvite(request, user, { invitationId: sanitizedId })];
|
|
375
|
-
case
|
|
389
|
+
case 3:
|
|
376
390
|
hasAccess = _a.sent();
|
|
377
391
|
if (!hasAccess) {
|
|
378
392
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied', 403)];
|
|
379
393
|
}
|
|
380
|
-
return [3 /*break*/,
|
|
381
|
-
case
|
|
394
|
+
return [3 /*break*/, 5];
|
|
395
|
+
case 4:
|
|
382
396
|
if (!user) {
|
|
383
397
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Access denied. Configure access control hooks for invitation endpoints.', 403)];
|
|
384
398
|
}
|
|
385
|
-
_a.label =
|
|
386
|
-
case
|
|
399
|
+
_a.label = 5;
|
|
400
|
+
case 5:
|
|
387
401
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
388
402
|
return [4 /*yield*/, vortex.reinvite(sanitizedId)];
|
|
389
|
-
case
|
|
403
|
+
case 6:
|
|
390
404
|
invitation = _a.sent();
|
|
391
405
|
return [2 /*return*/, (0, utils_1.createApiResponse)(invitation)];
|
|
392
|
-
case
|
|
406
|
+
case 7:
|
|
393
407
|
error_7 = _a.sent();
|
|
394
408
|
console.error('Error in handleReinvite:', error_7);
|
|
395
409
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('An error occurred while processing your request', 500)];
|
|
396
|
-
case
|
|
410
|
+
case 8: return [2 /*return*/];
|
|
397
411
|
}
|
|
398
412
|
});
|
|
399
413
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/handlers/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/handlers/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,WAAW,wDAuE7D"}
|
package/dist/handlers/jwt.js
CHANGED
|
@@ -42,37 +42,85 @@ var config_1 = require("../config");
|
|
|
42
42
|
var utils_1 = require("../utils");
|
|
43
43
|
function handleJwtGeneration(request) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
-
var config, authenticatedUser, vortex, jwt, error_1, message;
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
var config, authenticatedUser, context, body, err_1, attributes, vortex, jwt, error_1, message;
|
|
46
|
+
var _a;
|
|
47
|
+
return __generator(this, function (_b) {
|
|
48
|
+
switch (_b.label) {
|
|
48
49
|
case 0:
|
|
49
|
-
|
|
50
|
+
_b.trys.push([0, 10, , 11]);
|
|
50
51
|
if (request.method !== 'POST') {
|
|
51
52
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Method not allowed', 405)];
|
|
52
53
|
}
|
|
53
|
-
|
|
54
|
+
return [4 /*yield*/, (0, config_1.getVortexConfig)(request)];
|
|
55
|
+
case 1:
|
|
56
|
+
config = _b.sent();
|
|
54
57
|
if (!config.authenticateUser) {
|
|
55
58
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('JWT generation requires authentication configuration. Please configure authenticateUser hook.', 500)];
|
|
56
59
|
}
|
|
57
60
|
return [4 /*yield*/, config.authenticateUser(request)];
|
|
58
|
-
case
|
|
59
|
-
authenticatedUser =
|
|
61
|
+
case 2:
|
|
62
|
+
authenticatedUser = _b.sent();
|
|
60
63
|
if (!authenticatedUser) {
|
|
61
64
|
return [2 /*return*/, (0, utils_1.createErrorResponse)('Unauthorized', 401)];
|
|
62
65
|
}
|
|
66
|
+
context = void 0;
|
|
67
|
+
_b.label = 3;
|
|
68
|
+
case 3:
|
|
69
|
+
_b.trys.push([3, 5, , 6]);
|
|
70
|
+
return [4 /*yield*/, (0, utils_1.parseRequestBody)(request)];
|
|
71
|
+
case 4:
|
|
72
|
+
body = _b.sent();
|
|
73
|
+
context = body === null || body === void 0 ? void 0 : body.context;
|
|
74
|
+
console.log('[handleJwtGeneration] Parsed request body:', {
|
|
75
|
+
hasBody: !!body,
|
|
76
|
+
hasContext: !!context,
|
|
77
|
+
context: context,
|
|
78
|
+
});
|
|
79
|
+
return [3 /*break*/, 6];
|
|
80
|
+
case 5:
|
|
81
|
+
err_1 = _b.sent();
|
|
82
|
+
// Body is optional, ignore parse errors
|
|
83
|
+
console.log('[handleJwtGeneration] Failed to parse request body:', err_1);
|
|
84
|
+
return [3 /*break*/, 6];
|
|
85
|
+
case 6:
|
|
86
|
+
attributes = {};
|
|
87
|
+
console.log('[handleJwtGeneration] Checking for generateJwtAttributes hook:', {
|
|
88
|
+
hasHook: !!config.generateJwtAttributes,
|
|
89
|
+
hasContext: !!context,
|
|
90
|
+
});
|
|
91
|
+
if (!config.generateJwtAttributes) return [3 /*break*/, 8];
|
|
92
|
+
return [4 /*yield*/, config.generateJwtAttributes(request, context)];
|
|
93
|
+
case 7:
|
|
94
|
+
attributes = _b.sent();
|
|
95
|
+
console.log('[handleJwtGeneration] Generated attributes:', {
|
|
96
|
+
hasAttributes: !!attributes && Object.keys(attributes).length > 0,
|
|
97
|
+
attributeKeys: Object.keys(attributes),
|
|
98
|
+
hasPassthrough: !!(attributes === null || attributes === void 0 ? void 0 : attributes.passthrough),
|
|
99
|
+
passthroughLength: (_a = attributes === null || attributes === void 0 ? void 0 : attributes.passthrough) === null || _a === void 0 ? void 0 : _a.length,
|
|
100
|
+
});
|
|
101
|
+
return [3 /*break*/, 9];
|
|
102
|
+
case 8:
|
|
103
|
+
console.log('[handleJwtGeneration] No generateJwtAttributes hook configured');
|
|
104
|
+
_b.label = 9;
|
|
105
|
+
case 9:
|
|
63
106
|
vortex = new vortex_node_22_sdk_1.Vortex(config.apiKey);
|
|
64
107
|
jwt = vortex.generateJwt({
|
|
65
108
|
userId: authenticatedUser.userId,
|
|
66
109
|
identifiers: authenticatedUser.identifiers,
|
|
67
110
|
groups: authenticatedUser.groups,
|
|
68
111
|
role: authenticatedUser.role,
|
|
112
|
+
attributes: attributes,
|
|
113
|
+
});
|
|
114
|
+
console.log('[handleJwtGeneration] Generated JWT - attributes included:', {
|
|
115
|
+
hasAttributes: !!attributes && Object.keys(attributes).length > 0,
|
|
116
|
+
jwtLength: jwt.length,
|
|
69
117
|
});
|
|
70
118
|
return [2 /*return*/, (0, utils_1.createApiResponse)({ jwt: jwt })];
|
|
71
|
-
case
|
|
72
|
-
error_1 =
|
|
119
|
+
case 10:
|
|
120
|
+
error_1 = _b.sent();
|
|
73
121
|
message = error_1 instanceof Error ? error_1.message : 'An error occurred';
|
|
74
122
|
return [2 /*return*/, (0, utils_1.createErrorResponse)(message, 500)];
|
|
75
|
-
case
|
|
123
|
+
case 11: return [2 /*return*/];
|
|
76
124
|
}
|
|
77
125
|
});
|
|
78
126
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { configureVortex, getVortexConfig, authenticateRequest } from './config';
|
|
2
|
-
export type { VortexConfig, AuthenticatedUser, AccessControlHook } from './config';
|
|
3
|
-
export { createVortexJwtRoute, createVortexInvitationsRoute, createVortexInvitationRoute, createVortexInvitationsAcceptRoute, createVortexInvitationsByGroupRoute, createVortexReinviteRoute, } from './routes';
|
|
1
|
+
export { configureVortex, configureVortexAsync, configureVortexLazy, getVortexConfig, authenticateRequest, createAllowAllAccessControl } from './config';
|
|
2
|
+
export type { VortexConfig, AuthenticatedUser, AccessControlHook, InvitationResource, InvitationTargetResource, GroupResource, InvitationAccessHook, InvitationTargetAccessHook, GroupAccessHook, BasicAccessHook, JwtContext, } from './config';
|
|
3
|
+
export { createVortexJwtRoute, createVortexInvitationsRoute, createVortexInvitationRoute, createVortexInvitationsAcceptRoute, createVortexInvitationsByGroupRoute, createVortexReinviteRoute, createVortexRoutes, VORTEX_ROUTES, NEXTJS_FILE_STRUCTURE, createVortexApiPath, } from './routes';
|
|
4
4
|
export { handleJwtGeneration, } from './handlers/jwt';
|
|
5
5
|
export { handleGetInvitationsByTarget, handleGetInvitation, handleRevokeInvitation, handleAcceptInvitations, handleGetInvitationsByGroup, handleDeleteInvitationsByGroup, handleReinvite, } from './handlers/invitations';
|
|
6
6
|
export { createApiResponse, createErrorResponse, parseRequestBody, getQueryParam, validateRequiredFields, sanitizeInput, } from './utils';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACzJ,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,UAAU,GACX,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,kCAAkC,EAClC,mCAAmC,EACnC,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAC9B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,cAAc,wCAAwC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,11 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.sanitizeInput = exports.validateRequiredFields = exports.getQueryParam = exports.parseRequestBody = exports.createErrorResponse = exports.createApiResponse = exports.handleReinvite = exports.handleDeleteInvitationsByGroup = exports.handleGetInvitationsByGroup = exports.handleAcceptInvitations = exports.handleRevokeInvitation = exports.handleGetInvitation = exports.handleGetInvitationsByTarget = exports.handleJwtGeneration = exports.createVortexReinviteRoute = exports.createVortexInvitationsByGroupRoute = exports.createVortexInvitationsAcceptRoute = exports.createVortexInvitationRoute = exports.createVortexInvitationsRoute = exports.createVortexJwtRoute = exports.authenticateRequest = exports.getVortexConfig = exports.configureVortex = void 0;
|
|
17
|
+
exports.sanitizeInput = exports.validateRequiredFields = exports.getQueryParam = exports.parseRequestBody = exports.createErrorResponse = exports.createApiResponse = exports.handleReinvite = exports.handleDeleteInvitationsByGroup = exports.handleGetInvitationsByGroup = exports.handleAcceptInvitations = exports.handleRevokeInvitation = exports.handleGetInvitation = exports.handleGetInvitationsByTarget = exports.handleJwtGeneration = exports.createVortexApiPath = exports.NEXTJS_FILE_STRUCTURE = exports.VORTEX_ROUTES = exports.createVortexRoutes = exports.createVortexReinviteRoute = exports.createVortexInvitationsByGroupRoute = exports.createVortexInvitationsAcceptRoute = exports.createVortexInvitationRoute = exports.createVortexInvitationsRoute = exports.createVortexJwtRoute = exports.createAllowAllAccessControl = exports.authenticateRequest = exports.getVortexConfig = exports.configureVortexLazy = exports.configureVortexAsync = exports.configureVortex = void 0;
|
|
18
18
|
var config_1 = require("./config");
|
|
19
19
|
Object.defineProperty(exports, "configureVortex", { enumerable: true, get: function () { return config_1.configureVortex; } });
|
|
20
|
+
Object.defineProperty(exports, "configureVortexAsync", { enumerable: true, get: function () { return config_1.configureVortexAsync; } });
|
|
21
|
+
Object.defineProperty(exports, "configureVortexLazy", { enumerable: true, get: function () { return config_1.configureVortexLazy; } });
|
|
20
22
|
Object.defineProperty(exports, "getVortexConfig", { enumerable: true, get: function () { return config_1.getVortexConfig; } });
|
|
21
23
|
Object.defineProperty(exports, "authenticateRequest", { enumerable: true, get: function () { return config_1.authenticateRequest; } });
|
|
24
|
+
Object.defineProperty(exports, "createAllowAllAccessControl", { enumerable: true, get: function () { return config_1.createAllowAllAccessControl; } });
|
|
22
25
|
var routes_1 = require("./routes");
|
|
23
26
|
Object.defineProperty(exports, "createVortexJwtRoute", { enumerable: true, get: function () { return routes_1.createVortexJwtRoute; } });
|
|
24
27
|
Object.defineProperty(exports, "createVortexInvitationsRoute", { enumerable: true, get: function () { return routes_1.createVortexInvitationsRoute; } });
|
|
@@ -26,6 +29,10 @@ Object.defineProperty(exports, "createVortexInvitationRoute", { enumerable: true
|
|
|
26
29
|
Object.defineProperty(exports, "createVortexInvitationsAcceptRoute", { enumerable: true, get: function () { return routes_1.createVortexInvitationsAcceptRoute; } });
|
|
27
30
|
Object.defineProperty(exports, "createVortexInvitationsByGroupRoute", { enumerable: true, get: function () { return routes_1.createVortexInvitationsByGroupRoute; } });
|
|
28
31
|
Object.defineProperty(exports, "createVortexReinviteRoute", { enumerable: true, get: function () { return routes_1.createVortexReinviteRoute; } });
|
|
32
|
+
Object.defineProperty(exports, "createVortexRoutes", { enumerable: true, get: function () { return routes_1.createVortexRoutes; } });
|
|
33
|
+
Object.defineProperty(exports, "VORTEX_ROUTES", { enumerable: true, get: function () { return routes_1.VORTEX_ROUTES; } });
|
|
34
|
+
Object.defineProperty(exports, "NEXTJS_FILE_STRUCTURE", { enumerable: true, get: function () { return routes_1.NEXTJS_FILE_STRUCTURE; } });
|
|
35
|
+
Object.defineProperty(exports, "createVortexApiPath", { enumerable: true, get: function () { return routes_1.createVortexApiPath; } });
|
|
29
36
|
var jwt_1 = require("./handlers/jwt");
|
|
30
37
|
Object.defineProperty(exports, "handleJwtGeneration", { enumerable: true, get: function () { return jwt_1.handleJwtGeneration; } });
|
|
31
38
|
var invitations_1 = require("./handlers/invitations");
|