@frogbotai/plugin-api-keys 0.28.0 → 0.30.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/README.md +5 -6
- package/dist/client/ApiKeysManager.js +184 -21
- package/dist/client/ApiKeysManager.js.map +1 -1
- package/dist/client/styles.css +78 -76
- package/dist/client.d.ts +0 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +219 -110
- package/dist/collection.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -48
- package/dist/index.js.map +1 -1
- package/dist/server/services.js +63 -28
- package/dist/server/services.js.map +1 -1
- package/dist/server/token.d.ts +1 -1
- package/dist/server/token.d.ts.map +1 -1
- package/dist/server/token.js +16 -11
- package/dist/server/token.js.map +1 -1
- package/dist/strategy.d.ts +5 -4
- package/dist/strategy.d.ts.map +1 -1
- package/dist/strategy.js +58 -29
- package/dist/strategy.js.map +1 -1
- package/package.json +7 -7
- package/dist/client/CostUSD.d.ts +0 -11
- package/dist/client/CostUSD.d.ts.map +0 -1
- package/dist/client/CostUSD.js +0 -19
- package/dist/client/CostUSD.js.map +0 -1
package/dist/collection.js
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { ApiKeyServiceError, mintApiKey, revokeApiKey, rotateApiKey } from './server/services.js';
|
|
2
2
|
const MANAGER_COMPONENT = '@frogbotai/plugin-api-keys/client#ApiKeysManager';
|
|
3
|
-
const ownKeys = ({ req })
|
|
3
|
+
const ownKeys = ({ req })=>req.user ? {
|
|
4
|
+
owner: {
|
|
5
|
+
equals: req.user.id
|
|
6
|
+
}
|
|
7
|
+
} : false;
|
|
4
8
|
function mergeFields(...groups) {
|
|
5
9
|
const fields = new Map();
|
|
6
|
-
for (const group of groups)
|
|
7
|
-
for (const field of group ?? [])
|
|
10
|
+
for (const group of groups){
|
|
11
|
+
for (const field of group ?? []){
|
|
8
12
|
const key = 'name' in field && field.name ? field.name : JSON.stringify(field);
|
|
9
13
|
fields.set(key, field);
|
|
10
14
|
}
|
|
11
15
|
}
|
|
12
|
-
return [
|
|
16
|
+
return [
|
|
17
|
+
...fields.values()
|
|
18
|
+
];
|
|
13
19
|
}
|
|
14
|
-
function createViews({ usageCollection, views
|
|
20
|
+
function createViews({ usageCollection, views }) {
|
|
15
21
|
if (!views?.length) {
|
|
16
22
|
return [
|
|
17
23
|
{
|
|
@@ -19,123 +25,195 @@ function createViews({ usageCollection, views, }) {
|
|
|
19
25
|
defaultFields: [
|
|
20
26
|
'name',
|
|
21
27
|
'prefix',
|
|
22
|
-
...
|
|
28
|
+
...usageCollection ? [
|
|
29
|
+
'totalCostUSD'
|
|
30
|
+
] : [],
|
|
23
31
|
'lastUsedAt',
|
|
24
32
|
'revokedAt',
|
|
25
|
-
'actions'
|
|
33
|
+
'actions'
|
|
26
34
|
],
|
|
27
|
-
components: {
|
|
28
|
-
|
|
35
|
+
components: {
|
|
36
|
+
beforeTable: [
|
|
37
|
+
MANAGER_COMPONENT
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
29
41
|
];
|
|
30
42
|
}
|
|
31
|
-
const index = views.findIndex((view)
|
|
32
|
-
return views.map((view, position)
|
|
33
|
-
? {
|
|
43
|
+
const index = views.findIndex((view)=>view.type === 'list');
|
|
44
|
+
return views.map((view, position)=>position === index && view.type === 'list' ? {
|
|
34
45
|
...view,
|
|
35
46
|
components: {
|
|
36
47
|
...view.components,
|
|
37
|
-
beforeTable: [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
48
|
+
beforeTable: [
|
|
49
|
+
MANAGER_COMPONENT,
|
|
50
|
+
...view.components?.beforeTable ?? []
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
} : view);
|
|
41
54
|
}
|
|
42
|
-
function createEndpoints({ collectionSlug, tokenPrefix, canRevokeAnyKey
|
|
55
|
+
function createEndpoints({ collectionSlug, tokenPrefix, canRevokeAnyKey }) {
|
|
43
56
|
return [
|
|
44
57
|
{
|
|
45
58
|
method: 'post',
|
|
46
59
|
path: '/mint',
|
|
47
|
-
handler: async (req)
|
|
48
|
-
if (!req.user)
|
|
49
|
-
|
|
50
|
-
|
|
60
|
+
handler: async (req)=>{
|
|
61
|
+
if (!req.user) return Response.json({
|
|
62
|
+
error: 'Authentication required'
|
|
63
|
+
}, {
|
|
64
|
+
status: 401
|
|
65
|
+
});
|
|
66
|
+
const body = await req.json?.().catch(()=>null) ?? null;
|
|
51
67
|
const name = typeof body?.name === 'string' ? body.name.trim() : '';
|
|
52
|
-
if (!name)
|
|
53
|
-
|
|
68
|
+
if (!name) return Response.json({
|
|
69
|
+
error: 'Name is required'
|
|
70
|
+
}, {
|
|
71
|
+
status: 400
|
|
72
|
+
});
|
|
54
73
|
try {
|
|
55
|
-
return Response.json(await mintApiKey({
|
|
56
|
-
|
|
74
|
+
return Response.json(await mintApiKey({
|
|
75
|
+
req,
|
|
76
|
+
collectionSlug,
|
|
77
|
+
tokenPrefix,
|
|
78
|
+
name
|
|
79
|
+
}), {
|
|
80
|
+
status: 201
|
|
57
81
|
});
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
82
|
+
} catch (error) {
|
|
60
83
|
if (error instanceof ApiKeyServiceError && error.code === 'authentication_required') {
|
|
61
|
-
return Response.json({
|
|
84
|
+
return Response.json({
|
|
85
|
+
error: 'Authentication required'
|
|
86
|
+
}, {
|
|
87
|
+
status: 401
|
|
88
|
+
});
|
|
62
89
|
}
|
|
63
90
|
throw error;
|
|
64
91
|
}
|
|
65
|
-
}
|
|
92
|
+
}
|
|
66
93
|
},
|
|
67
94
|
{
|
|
68
95
|
method: 'post',
|
|
69
96
|
path: '/:id/revoke',
|
|
70
|
-
handler: async (req)
|
|
71
|
-
if (!req.user)
|
|
72
|
-
|
|
97
|
+
handler: async (req)=>{
|
|
98
|
+
if (!req.user) return Response.json({
|
|
99
|
+
error: 'Authentication required'
|
|
100
|
+
}, {
|
|
101
|
+
status: 401
|
|
102
|
+
});
|
|
73
103
|
const id = req.routeParams?.id;
|
|
74
104
|
if (typeof id !== 'string' || !id) {
|
|
75
|
-
return Response.json({
|
|
105
|
+
return Response.json({
|
|
106
|
+
error: 'API key not found'
|
|
107
|
+
}, {
|
|
108
|
+
status: 404
|
|
109
|
+
});
|
|
76
110
|
}
|
|
77
111
|
try {
|
|
78
|
-
const anyOwner =
|
|
79
|
-
const { name: _name, owner: _owner, ...result } = await revokeApiKey({
|
|
112
|
+
const anyOwner = await canRevokeAnyKey?.(req) === true;
|
|
113
|
+
const { name: _name, owner: _owner, ...result } = await revokeApiKey({
|
|
114
|
+
req,
|
|
115
|
+
collectionSlug,
|
|
116
|
+
id,
|
|
117
|
+
anyOwner
|
|
118
|
+
});
|
|
80
119
|
return Response.json(result);
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
120
|
+
} catch (error) {
|
|
83
121
|
if (error instanceof ApiKeyServiceError && error.code === 'authentication_required') {
|
|
84
|
-
return Response.json({
|
|
122
|
+
return Response.json({
|
|
123
|
+
error: 'Authentication required'
|
|
124
|
+
}, {
|
|
125
|
+
status: 401
|
|
126
|
+
});
|
|
85
127
|
}
|
|
86
128
|
if (error instanceof ApiKeyServiceError && error.code === 'not_found') {
|
|
87
|
-
return Response.json({
|
|
129
|
+
return Response.json({
|
|
130
|
+
error: 'API key not found'
|
|
131
|
+
}, {
|
|
132
|
+
status: 404
|
|
133
|
+
});
|
|
88
134
|
}
|
|
89
135
|
throw error;
|
|
90
136
|
}
|
|
91
|
-
}
|
|
137
|
+
}
|
|
92
138
|
},
|
|
93
139
|
{
|
|
94
140
|
method: 'post',
|
|
95
141
|
path: '/:id/rotate',
|
|
96
|
-
handler: async (req)
|
|
97
|
-
if (!req.user)
|
|
98
|
-
|
|
142
|
+
handler: async (req)=>{
|
|
143
|
+
if (!req.user) return Response.json({
|
|
144
|
+
error: 'Authentication required'
|
|
145
|
+
}, {
|
|
146
|
+
status: 401
|
|
147
|
+
});
|
|
99
148
|
const id = req.routeParams?.id;
|
|
100
149
|
if (typeof id !== 'string' || !id) {
|
|
101
|
-
return Response.json({
|
|
150
|
+
return Response.json({
|
|
151
|
+
error: 'API key not found'
|
|
152
|
+
}, {
|
|
153
|
+
status: 404
|
|
154
|
+
});
|
|
102
155
|
}
|
|
103
156
|
try {
|
|
104
|
-
const anyOwner =
|
|
105
|
-
return Response.json(await rotateApiKey({
|
|
106
|
-
|
|
107
|
-
|
|
157
|
+
const anyOwner = await canRevokeAnyKey?.(req) === true;
|
|
158
|
+
return Response.json(await rotateApiKey({
|
|
159
|
+
req,
|
|
160
|
+
collectionSlug,
|
|
161
|
+
id,
|
|
162
|
+
tokenPrefix,
|
|
163
|
+
anyOwner
|
|
164
|
+
}), {
|
|
165
|
+
status: 201
|
|
166
|
+
});
|
|
167
|
+
} catch (error) {
|
|
108
168
|
if (error instanceof ApiKeyServiceError && error.code === 'authentication_required') {
|
|
109
|
-
return Response.json({
|
|
169
|
+
return Response.json({
|
|
170
|
+
error: 'Authentication required'
|
|
171
|
+
}, {
|
|
172
|
+
status: 401
|
|
173
|
+
});
|
|
110
174
|
}
|
|
111
175
|
if (error instanceof ApiKeyServiceError && error.code === 'not_found') {
|
|
112
|
-
return Response.json({
|
|
176
|
+
return Response.json({
|
|
177
|
+
error: 'API key not found'
|
|
178
|
+
}, {
|
|
179
|
+
status: 404
|
|
180
|
+
});
|
|
113
181
|
}
|
|
114
182
|
throw error;
|
|
115
183
|
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
118
186
|
];
|
|
119
187
|
}
|
|
120
188
|
export function createApiKeysCollection(options) {
|
|
121
189
|
const { authCollection, collectionSlug, collection, existing, usageCollection } = options;
|
|
122
190
|
const fields = [
|
|
123
|
-
{
|
|
191
|
+
{
|
|
192
|
+
name: 'name',
|
|
193
|
+
type: 'text',
|
|
194
|
+
required: true
|
|
195
|
+
},
|
|
124
196
|
{
|
|
125
197
|
name: 'owner',
|
|
126
198
|
type: 'relationship',
|
|
127
199
|
relationTo: authCollection,
|
|
128
200
|
required: true,
|
|
129
201
|
index: true,
|
|
130
|
-
access: {
|
|
202
|
+
access: {
|
|
203
|
+
update: ()=>false
|
|
204
|
+
}
|
|
131
205
|
},
|
|
132
206
|
{
|
|
133
207
|
name: 'prefix',
|
|
134
208
|
type: 'text',
|
|
135
209
|
required: true,
|
|
136
210
|
index: true,
|
|
137
|
-
access: {
|
|
138
|
-
|
|
211
|
+
access: {
|
|
212
|
+
update: ()=>false
|
|
213
|
+
},
|
|
214
|
+
admin: {
|
|
215
|
+
readOnly: true
|
|
216
|
+
}
|
|
139
217
|
},
|
|
140
218
|
{
|
|
141
219
|
name: 'tokenHash',
|
|
@@ -143,96 +221,127 @@ export function createApiKeysCollection(options) {
|
|
|
143
221
|
required: true,
|
|
144
222
|
unique: true,
|
|
145
223
|
index: true,
|
|
146
|
-
access: {
|
|
147
|
-
|
|
224
|
+
access: {
|
|
225
|
+
read: ()=>false,
|
|
226
|
+
update: ()=>false
|
|
227
|
+
},
|
|
228
|
+
admin: {
|
|
229
|
+
hidden: true
|
|
230
|
+
}
|
|
148
231
|
},
|
|
149
232
|
{
|
|
150
233
|
name: 'lastUsedAt',
|
|
151
234
|
type: 'date',
|
|
152
|
-
access: {
|
|
153
|
-
|
|
235
|
+
access: {
|
|
236
|
+
update: ()=>false
|
|
237
|
+
},
|
|
238
|
+
admin: {
|
|
239
|
+
readOnly: true
|
|
240
|
+
}
|
|
154
241
|
},
|
|
155
242
|
{
|
|
156
243
|
name: 'revokedAt',
|
|
157
244
|
type: 'date',
|
|
158
245
|
index: true,
|
|
159
|
-
access: {
|
|
160
|
-
|
|
246
|
+
access: {
|
|
247
|
+
update: ()=>false
|
|
248
|
+
},
|
|
249
|
+
admin: {
|
|
250
|
+
readOnly: true,
|
|
251
|
+
condition: (_, siblingData)=>Boolean(siblingData.revokedAt)
|
|
252
|
+
}
|
|
161
253
|
},
|
|
162
|
-
...
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
hooks: {
|
|
177
|
-
afterRead: [
|
|
178
|
-
async ({ data, req }) => {
|
|
179
|
-
if (data?.id === undefined)
|
|
180
|
-
return 0;
|
|
181
|
-
const result = await req.frogbot.find({
|
|
182
|
-
collection: usageCollection,
|
|
183
|
-
depth: 0,
|
|
184
|
-
overrideAccess: true,
|
|
185
|
-
pagination: false,
|
|
186
|
-
req,
|
|
187
|
-
where: { apiKey: { equals: data.id } },
|
|
188
|
-
});
|
|
189
|
-
return result.docs.reduce((total, doc) => {
|
|
190
|
-
const cost = doc.costUSD;
|
|
191
|
-
return total + (typeof cost === 'number' ? cost : 0);
|
|
192
|
-
}, 0);
|
|
193
|
-
},
|
|
194
|
-
],
|
|
195
|
-
},
|
|
254
|
+
...usageCollection ? [
|
|
255
|
+
{
|
|
256
|
+
name: 'totalCostUSD',
|
|
257
|
+
type: 'number',
|
|
258
|
+
label: 'Total Cost (USD)',
|
|
259
|
+
virtual: true,
|
|
260
|
+
admin: {
|
|
261
|
+
readOnly: true,
|
|
262
|
+
components: {
|
|
263
|
+
Cell: '@frogbotai/next/client#CostUSDCell',
|
|
264
|
+
Field: '@frogbotai/next/client#CostUSDField'
|
|
265
|
+
}
|
|
196
266
|
},
|
|
197
|
-
|
|
198
|
-
|
|
267
|
+
hooks: {
|
|
268
|
+
afterRead: [
|
|
269
|
+
async ({ data, req })=>{
|
|
270
|
+
if (data?.id === undefined) return 0;
|
|
271
|
+
const result = await req.frogbot.find({
|
|
272
|
+
collection: usageCollection,
|
|
273
|
+
depth: 0,
|
|
274
|
+
overrideAccess: true,
|
|
275
|
+
pagination: false,
|
|
276
|
+
req,
|
|
277
|
+
where: {
|
|
278
|
+
apiKey: {
|
|
279
|
+
equals: data.id
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
return result.docs.reduce((total, doc)=>{
|
|
284
|
+
const cost = doc.costUSD;
|
|
285
|
+
return total + (typeof cost === 'number' ? cost : 0);
|
|
286
|
+
}, 0);
|
|
287
|
+
}
|
|
288
|
+
]
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
] : [],
|
|
199
292
|
{
|
|
200
293
|
name: 'actions',
|
|
201
294
|
type: 'ui',
|
|
202
|
-
admin: {
|
|
203
|
-
|
|
295
|
+
admin: {
|
|
296
|
+
components: {
|
|
297
|
+
Cell: '@frogbotai/plugin-api-keys/client#RevokeApiKey'
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
204
301
|
];
|
|
205
302
|
const endpoints = createEndpoints(options);
|
|
206
303
|
return {
|
|
207
304
|
slug: collectionSlug,
|
|
208
|
-
labels: {
|
|
305
|
+
labels: {
|
|
306
|
+
singular: 'API Key',
|
|
307
|
+
plural: 'API Keys'
|
|
308
|
+
},
|
|
209
309
|
timestamps: true,
|
|
210
310
|
...existing,
|
|
211
311
|
...collection,
|
|
212
312
|
access: {
|
|
213
|
-
create: ()
|
|
214
|
-
delete: ()
|
|
313
|
+
create: ()=>false,
|
|
314
|
+
delete: ()=>false,
|
|
215
315
|
read: ownKeys,
|
|
216
316
|
update: ownKeys,
|
|
217
317
|
...existing?.access,
|
|
218
|
-
...collection?.access
|
|
318
|
+
...collection?.access
|
|
219
319
|
},
|
|
220
320
|
admin: {
|
|
321
|
+
icon: 'key-round',
|
|
221
322
|
useAsTitle: 'name',
|
|
222
323
|
...existing?.admin,
|
|
223
324
|
...collection?.admin,
|
|
224
|
-
components: {
|
|
325
|
+
components: {
|
|
326
|
+
...existing?.admin?.components,
|
|
327
|
+
...collection?.admin?.components
|
|
328
|
+
},
|
|
225
329
|
views: createViews({
|
|
226
330
|
usageCollection,
|
|
227
|
-
views: collection?.admin?.views ?? existing?.admin?.views
|
|
228
|
-
})
|
|
331
|
+
views: collection?.admin?.views ?? existing?.admin?.views
|
|
332
|
+
})
|
|
229
333
|
},
|
|
230
|
-
endpoints: [
|
|
334
|
+
endpoints: [
|
|
335
|
+
...endpoints,
|
|
336
|
+
...existing?.endpoints ?? [],
|
|
337
|
+
...collection?.endpoints ?? []
|
|
338
|
+
],
|
|
231
339
|
fields: mergeFields(fields, existing?.fields, collection?.fields),
|
|
232
340
|
hooks: {
|
|
233
341
|
...existing?.hooks,
|
|
234
|
-
...collection?.hooks
|
|
235
|
-
}
|
|
342
|
+
...collection?.hooks
|
|
343
|
+
}
|
|
236
344
|
};
|
|
237
345
|
}
|
|
346
|
+
|
|
238
347
|
//# sourceMappingURL=collection.js.map
|
package/dist/collection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/collection.ts"],"names":["ApiKeyServiceError","mintApiKey","revokeApiKey","rotateApiKey","MANAGER_COMPONENT","ownKeys","req","user","owner","equals","id","mergeFields","groups","fields","Map","group","field","key","name","JSON","stringify","set","values","createViews","usageCollection","views","length","type","defaultFields","components","beforeTable","index","findIndex","view","map","position","createEndpoints","collectionSlug","tokenPrefix","canRevokeAnyKey","method","path","handler","Response","json","error","status","body","catch","trim","code","routeParams","anyOwner","_name","_owner","result","createApiKeysCollection","options","authCollection","collection","existing","required","relationTo","access","update","admin","readOnly","unique","read","hidden","condition","_","siblingData","Boolean","revokedAt","label","virtual","Cell","Field","hooks","afterRead","data","undefined","frogbot","find","depth","overrideAccess","pagination","where","apiKey","docs","reduce","total","doc","cost","costUSD","endpoints","slug","labels","singular","plural","timestamps","create","delete","icon","useAsTitle"],"mappings":"AASA,SAASA,kBAAkB,EAAEC,UAAU,EAAEC,YAAY,EAAEC,YAAY,QAAQ,uBAAuB;AAElG,MAAMC,oBAAoB;AAY1B,MAAMC,UAAkB,CAAC,EAAEC,GAAG,EAAE,GAAMA,IAAIC,IAAI,GAAG;QAAEC,OAAO;YAAEC,QAAQH,IAAIC,IAAI,CAACG,EAAE;QAAC;IAAE,IAAI;AAEtF,SAASC,YAAY,GAAGC,MAA+B;IACrD,MAAMC,SAAS,IAAIC;IACnB,KAAK,MAAMC,SAASH,OAAQ;QAC1B,KAAK,MAAMI,SAASD,SAAS,EAAE,CAAE;YAC/B,MAAME,MAAM,UAAUD,SAASA,MAAME,IAAI,GAAGF,MAAME,IAAI,GAAGC,KAAKC,SAAS,CAACJ;YACxEH,OAAOQ,GAAG,CAACJ,KAAKD;QAClB;IACF;IACA,OAAO;WAAIH,OAAOS,MAAM;KAAG;AAC7B;AAEA,SAASC,YAAY,EACnBC,eAAe,EACfC,KAAK,EACqE;IAC1E,IAAI,CAACA,OAAOC,QAAQ;QAClB,OAAO;YACL;gBACEC,MAAM;gBACNC,eAAe;oBACb;oBACA;uBACIJ,kBAAkB;wBAAC;qBAAe,GAAG,EAAE;oBAC3C;oBACA;oBACA;iBACD;gBACDK,YAAY;oBAAEC,aAAa;wBAAC1B;qBAAkB;gBAAC;YACjD;SACD;IACH;IACA,MAAM2B,QAAQN,MAAMO,SAAS,CAAC,CAACC,OAASA,KAAKN,IAAI,KAAK;IACtD,OAAOF,MAAMS,GAAG,CAAC,CAACD,MAAME,WACtBA,aAAaJ,SAASE,KAAKN,IAAI,KAAK,SAChC;YACE,GAAGM,IAAI;YACPJ,YAAY;gBACV,GAAGI,KAAKJ,UAAU;gBAClBC,aAAa;oBAAC1B;uBAAuB6B,KAAKJ,UAAU,EAAEC,eAAe,EAAE;iBAAE;YAC3E;QACF,IACAG;AAER;AAEA,SAASG,gBAAgB,EACvBC,cAAc,EACdC,WAAW,EACXC,eAAe,EAC+D;IAC9E,OAAO;QACL;YACEC,QAAQ;YACRC,MAAM;YACNC,SAAS,OAAOpC;gBACd,IAAI,CAACA,IAAIC,IAAI,EAAE,OAAOoC,SAASC,IAAI,CAAC;oBAAEC,OAAO;gBAA0B,GAAG;oBAAEC,QAAQ;gBAAI;gBACxF,MAAMC,OAAQ,AAAC,MAAMzC,IAAIsC,IAAI,KAAKI,MAAM,IAAM,SAAU;gBACxD,MAAM9B,OAAO,OAAO6B,MAAM7B,SAAS,WAAW6B,KAAK7B,IAAI,CAAC+B,IAAI,KAAK;gBACjE,IAAI,CAAC/B,MAAM,OAAOyB,SAASC,IAAI,CAAC;oBAAEC,OAAO;gBAAmB,GAAG;oBAAEC,QAAQ;gBAAI;gBAC7E,IAAI;oBACF,OAAOH,SAASC,IAAI,CAAC,MAAM3C,WAAW;wBAAEK;wBAAK+B;wBAAgBC;wBAAapB;oBAAK,IAAI;wBACjF4B,QAAQ;oBACV;gBACF,EAAE,OAAOD,OAAO;oBACd,IAAIA,iBAAiB7C,sBAAsB6C,MAAMK,IAAI,KAAK,2BAA2B;wBACnF,OAAOP,SAASC,IAAI,CAAC;4BAAEC,OAAO;wBAA0B,GAAG;4BAAEC,QAAQ;wBAAI;oBAC3E;oBACA,MAAMD;gBACR;YACF;QACF;QACA;YACEL,QAAQ;YACRC,MAAM;YACNC,SAAS,OAAOpC;gBACd,IAAI,CAACA,IAAIC,IAAI,EAAE,OAAOoC,SAASC,IAAI,CAAC;oBAAEC,OAAO;gBAA0B,GAAG;oBAAEC,QAAQ;gBAAI;gBACxF,MAAMpC,KAAKJ,IAAI6C,WAAW,EAAEzC;gBAC5B,IAAI,OAAOA,OAAO,YAAY,CAACA,IAAI;oBACjC,OAAOiC,SAASC,IAAI,CAAC;wBAAEC,OAAO;oBAAoB,GAAG;wBAAEC,QAAQ;oBAAI;gBACrE;gBACA,IAAI;oBACF,MAAMM,WAAW,AAAC,MAAMb,kBAAkBjC,SAAU;oBACpD,MAAM,EACJY,MAAMmC,KAAK,EACX7C,OAAO8C,MAAM,EACb,GAAGC,QACJ,GAAG,MAAMrD,aAAa;wBAAEI;wBAAK+B;wBAAgB3B;wBAAI0C;oBAAS;oBAC3D,OAAOT,SAASC,IAAI,CAACW;gBACvB,EAAE,OAAOV,OAAO;oBACd,IAAIA,iBAAiB7C,sBAAsB6C,MAAMK,IAAI,KAAK,2BAA2B;wBACnF,OAAOP,SAASC,IAAI,CAAC;4BAAEC,OAAO;wBAA0B,GAAG;4BAAEC,QAAQ;wBAAI;oBAC3E;oBACA,IAAID,iBAAiB7C,sBAAsB6C,MAAMK,IAAI,KAAK,aAAa;wBACrE,OAAOP,SAASC,IAAI,CAAC;4BAAEC,OAAO;wBAAoB,GAAG;4BAAEC,QAAQ;wBAAI;oBACrE;oBACA,MAAMD;gBACR;YACF;QACF;QACA;YACEL,QAAQ;YACRC,MAAM;YACNC,SAAS,OAAOpC;gBACd,IAAI,CAACA,IAAIC,IAAI,EAAE,OAAOoC,SAASC,IAAI,CAAC;oBAAEC,OAAO;gBAA0B,GAAG;oBAAEC,QAAQ;gBAAI;gBACxF,MAAMpC,KAAKJ,IAAI6C,WAAW,EAAEzC;gBAC5B,IAAI,OAAOA,OAAO,YAAY,CAACA,IAAI;oBACjC,OAAOiC,SAASC,IAAI,CAAC;wBAAEC,OAAO;oBAAoB,GAAG;wBAAEC,QAAQ;oBAAI;gBACrE;gBACA,IAAI;oBACF,MAAMM,WAAW,AAAC,MAAMb,kBAAkBjC,SAAU;oBACpD,OAAOqC,SAASC,IAAI,CAClB,MAAMzC,aAAa;wBAAEG;wBAAK+B;wBAAgB3B;wBAAI4B;wBAAac;oBAAS,IACpE;wBAAEN,QAAQ;oBAAI;gBAElB,EAAE,OAAOD,OAAO;oBACd,IAAIA,iBAAiB7C,sBAAsB6C,MAAMK,IAAI,KAAK,2BAA2B;wBACnF,OAAOP,SAASC,IAAI,CAAC;4BAAEC,OAAO;wBAA0B,GAAG;4BAAEC,QAAQ;wBAAI;oBAC3E;oBACA,IAAID,iBAAiB7C,sBAAsB6C,MAAMK,IAAI,KAAK,aAAa;wBACrE,OAAOP,SAASC,IAAI,CAAC;4BAAEC,OAAO;wBAAoB,GAAG;4BAAEC,QAAQ;wBAAI;oBACrE;oBACA,MAAMD;gBACR;YACF;QACF;KACD;AACH;AAEA,OAAO,SAASW,wBAAwBC,OAA0B;IAChE,MAAM,EAAEC,cAAc,EAAErB,cAAc,EAAEsB,UAAU,EAAEC,QAAQ,EAAEpC,eAAe,EAAE,GAAGiC;IAClF,MAAM5C,SAAkB;QACtB;YAAEK,MAAM;YAAQS,MAAM;YAAQkC,UAAU;QAAK;QAC7C;YACE3C,MAAM;YACNS,MAAM;YACNmC,YAAYJ;YACZG,UAAU;YACV9B,OAAO;YACPgC,QAAQ;gBAAEC,QAAQ,IAAM;YAAM;QAChC;QACA;YACE9C,MAAM;YACNS,MAAM;YACNkC,UAAU;YACV9B,OAAO;YACPgC,QAAQ;gBAAEC,QAAQ,IAAM;YAAM;YAC9BC,OAAO;gBAAEC,UAAU;YAAK;QAC1B;QACA;YACEhD,MAAM;YACNS,MAAM;YACNkC,UAAU;YACVM,QAAQ;YACRpC,OAAO;YACPgC,QAAQ;gBAAEK,MAAM,IAAM;gBAAOJ,QAAQ,IAAM;YAAM;YACjDC,OAAO;gBAAEI,QAAQ;YAAK;QACxB;QACA;YACEnD,MAAM;YACNS,MAAM;YACNoC,QAAQ;gBAAEC,QAAQ,IAAM;YAAM;YAC9BC,OAAO;gBAAEC,UAAU;YAAK;QAC1B;QACA;YACEhD,MAAM;YACNS,MAAM;YACNI,OAAO;YACPgC,QAAQ;gBAAEC,QAAQ,IAAM;YAAM;YAC9BC,OAAO;gBAAEC,UAAU;gBAAMI,WAAW,CAACC,GAAGC,cAAgBC,QAAQD,YAAYE,SAAS;YAAE;QACzF;WACIlD,kBACA;YACE;gBACEN,MAAM;gBACNS,MAAM;gBACNgD,OAAO;gBACPC,SAAS;gBACTX,OAAO;oBACLC,UAAU;oBACVrC,YAAY;wBACVgD,MAAM;wBACNC,OAAO;oBACT;gBACF;gBACAC,OAAO;oBACLC,WAAW;wBACT,OAAO,EAAEC,IAAI,EAAE3E,GAAG,EAA2D;4BAC3E,IAAI2E,MAAMvE,OAAOwE,WAAW,OAAO;4BACnC,MAAM3B,SAAS,MAAMjD,IAAI6E,OAAO,CAACC,IAAI,CAAC;gCACpCzB,YAAYnC;gCACZ6D,OAAO;gCACPC,gBAAgB;gCAChBC,YAAY;gCACZjF;gCACAkF,OAAO;oCAAEC,QAAQ;wCAAEhF,QAAQwE,KAAKvE,EAAE;oCAAC;gCAAE;4BACvC;4BACA,OAAO6C,OAAOmC,IAAI,CAACC,MAAM,CAAC,CAACC,OAAOC;gCAChC,MAAMC,OAAO,AAACD,IAAgCE,OAAO;gCACrD,OAAOH,QAAS,CAAA,OAAOE,SAAS,WAAWA,OAAO,CAAA;4BACpD,GAAG;wBACL;qBACD;gBACH;YACF;SACD,GACD,EAAE;QACN;YACE5E,MAAM;YACNS,MAAM;YACNsC,OAAO;gBAAEpC,YAAY;oBAAEgD,MAAM;gBAAiD;YAAE;QAClF;KACD;IACD,MAAMmB,YAAY5D,gBAAgBqB;IAElC,OAAO;QACLwC,MAAM5D;QACN6D,QAAQ;YAAEC,UAAU;YAAWC,QAAQ;QAAW;QAClDC,YAAY;QACZ,GAAGzC,QAAQ;QACX,GAAGD,UAAU;QACbI,QAAQ;YACNuC,QAAQ,IAAM;YACdC,QAAQ,IAAM;YACdnC,MAAM/D;YACN2D,QAAQ3D;YACR,GAAGuD,UAAUG,MAAM;YACnB,GAAGJ,YAAYI,MAAM;QACvB;QACAE,OAAO;YACLuC,MAAM;YACNC,YAAY;YACZ,GAAG7C,UAAUK,KAAK;YAClB,GAAGN,YAAYM,KAAK;YACpBpC,YAAY;gBAAE,GAAG+B,UAAUK,OAAOpC,UAAU;gBAAE,GAAG8B,YAAYM,OAAOpC,UAAU;YAAC;YAC/EJ,OAAOF,YAAY;gBACjBC;gBACAC,OAAOkC,YAAYM,OAAOxC,SAASmC,UAAUK,OAAOxC;YACtD;QACF;QACAuE,WAAW;eAAIA;eAAepC,UAAUoC,aAAa,EAAE;eAAOrC,YAAYqC,aAAa,EAAE;SAAE;QAC3FnF,QAAQF,YAAYE,QAAQ+C,UAAU/C,QAAQ8C,YAAY9C;QAC1DkE,OAAO;YACL,GAAGnB,UAAUmB,KAAK;YAClB,GAAGpB,YAAYoB,KAAK;QACtB;IACF;AACF","file":"collection.js"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export type { MintApiKeyOptions, RevokeApiKeyOptions, RotateApiKeyOptions, } fro
|
|
|
3
3
|
export { ApiKeyServiceError, mintApiKey, revokeApiKey, rotateApiKey } from './server/services.js';
|
|
4
4
|
export type { ApiKeyHeaderOptions, ApiKeyTokenOptions } from './server/token.js';
|
|
5
5
|
export { createApiKeyToken, extractApiKeyToken, getApiKeyPrefix, hashApiKeyToken, } from './server/token.js';
|
|
6
|
-
export type { ApiKeyStrategy } from './strategy.js';
|
|
7
6
|
export { isApiKeyStrategy } from './strategy.js';
|
|
8
7
|
export type ApiKeysPluginOptions = {
|
|
9
8
|
authCollection?: string;
|
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,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAKlF,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClG,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAKlF,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClG,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvE,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAuFxE"}
|