@frogbotai/plugin-api-keys 0.29.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.
@@ -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 }) => (req.user ? { owner: { equals: req.user.id } } : false);
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 [...fields.values()];
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
- ...(usageCollection ? ['totalCostUSD'] : []),
28
+ ...usageCollection ? [
29
+ 'totalCostUSD'
30
+ ] : [],
23
31
  'lastUsedAt',
24
32
  'revokedAt',
25
- 'actions',
33
+ 'actions'
26
34
  ],
27
- components: { beforeTable: [MANAGER_COMPONENT] },
28
- },
35
+ components: {
36
+ beforeTable: [
37
+ MANAGER_COMPONENT
38
+ ]
39
+ }
40
+ }
29
41
  ];
30
42
  }
31
- const index = views.findIndex((view) => view.type === 'list');
32
- return views.map((view, position) => position === index && view.type === 'list'
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: [MANAGER_COMPONENT, ...(view.components?.beforeTable ?? [])],
38
- },
39
- }
40
- : view);
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
- return Response.json({ error: 'Authentication required' }, { status: 401 });
50
- const body = ((await req.json?.().catch(() => null)) ?? null);
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
- return Response.json({ error: 'Name is required' }, { status: 400 });
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({ req, collectionSlug, tokenPrefix, name }), {
56
- status: 201,
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({ error: 'Authentication required' }, { status: 401 });
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
- return Response.json({ error: 'Authentication required' }, { status: 401 });
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({ error: 'API key not found' }, { status: 404 });
105
+ return Response.json({
106
+ error: 'API key not found'
107
+ }, {
108
+ status: 404
109
+ });
76
110
  }
77
111
  try {
78
- const anyOwner = (await canRevokeAnyKey?.(req)) === true;
79
- const { name: _name, owner: _owner, ...result } = await revokeApiKey({ req, collectionSlug, id, anyOwner });
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({ error: 'Authentication required' }, { status: 401 });
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({ error: 'API key not found' }, { status: 404 });
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
- return Response.json({ error: 'Authentication required' }, { status: 401 });
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({ error: 'API key not found' }, { status: 404 });
150
+ return Response.json({
151
+ error: 'API key not found'
152
+ }, {
153
+ status: 404
154
+ });
102
155
  }
103
156
  try {
104
- const anyOwner = (await canRevokeAnyKey?.(req)) === true;
105
- return Response.json(await rotateApiKey({ req, collectionSlug, id, tokenPrefix, anyOwner }), { status: 201 });
106
- }
107
- catch (error) {
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({ error: 'Authentication required' }, { status: 401 });
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({ error: 'API key not found' }, { status: 404 });
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
- { name: 'name', type: 'text', required: true },
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: { update: () => false },
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: { update: () => false },
138
- admin: { readOnly: true },
211
+ access: {
212
+ update: ()=>false
213
+ },
214
+ admin: {
215
+ readOnly: true
216
+ }
139
217
  },
140
218
  {
141
219
  name: 'tokenHash',
@@ -143,97 +221,127 @@ export function createApiKeysCollection(options) {
143
221
  required: true,
144
222
  unique: true,
145
223
  index: true,
146
- access: { read: () => false, update: () => false },
147
- admin: { hidden: true },
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: { update: () => false },
153
- admin: { readOnly: true },
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: { update: () => false },
160
- admin: { readOnly: true, condition: (_, siblingData) => Boolean(siblingData.revokedAt) },
246
+ access: {
247
+ update: ()=>false
248
+ },
249
+ admin: {
250
+ readOnly: true,
251
+ condition: (_, siblingData)=>Boolean(siblingData.revokedAt)
252
+ }
161
253
  },
162
- ...(usageCollection
163
- ? [
164
- {
165
- name: 'totalCostUSD',
166
- type: 'number',
167
- label: 'Total Cost (USD)',
168
- virtual: true,
169
- admin: {
170
- readOnly: true,
171
- components: {
172
- Cell: '@frogbotai/plugin-api-keys/client#CostUSDCell',
173
- Field: '@frogbotai/plugin-api-keys/client#CostUSDField',
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: { components: { Cell: '@frogbotai/plugin-api-keys/client#RevokeApiKey' } },
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: { singular: 'API Key', plural: 'API Keys' },
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: () => false,
214
- delete: () => false,
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: {
221
321
  icon: 'key-round',
222
322
  useAsTitle: 'name',
223
323
  ...existing?.admin,
224
324
  ...collection?.admin,
225
- components: { ...existing?.admin?.components, ...collection?.admin?.components },
325
+ components: {
326
+ ...existing?.admin?.components,
327
+ ...collection?.admin?.components
328
+ },
226
329
  views: createViews({
227
330
  usageCollection,
228
- views: collection?.admin?.views ?? existing?.admin?.views,
229
- }),
331
+ views: collection?.admin?.views ?? existing?.admin?.views
332
+ })
230
333
  },
231
- endpoints: [...endpoints, ...(existing?.endpoints ?? []), ...(collection?.endpoints ?? [])],
334
+ endpoints: [
335
+ ...endpoints,
336
+ ...existing?.endpoints ?? [],
337
+ ...collection?.endpoints ?? []
338
+ ],
232
339
  fields: mergeFields(fields, existing?.fields, collection?.fields),
233
340
  hooks: {
234
341
  ...existing?.hooks,
235
- ...collection?.hooks,
236
- },
342
+ ...collection?.hooks
343
+ }
237
344
  };
238
345
  }
346
+
239
347
  //# sourceMappingURL=collection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAElG,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAY7E,MAAM,OAAO,GAAW,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAE7F,SAAS,WAAW,CAAC,GAAG,MAA+B;IACrD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/E,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,eAAe,EACf,KAAK,GACqE;IAC1E,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE;oBACb,MAAM;oBACN,QAAQ;oBACR,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,YAAY;oBACZ,WAAW;oBACX,SAAS;iBACV;gBACD,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,iBAAiB,CAAC,EAAE;aACjD;SACF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAClC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QACxC,CAAC,CAAC;YACE,GAAG,IAAI;YACP,UAAU,EAAE;gBACV,GAAG,IAAI,CAAC,UAAU;gBAClB,WAAW,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;aAC1E;SACF;QACH,CAAC,CAAC,IAAI,CACT,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EACvB,cAAc,EACd,WAAW,EACX,eAAe,GAC+D;IAC9E,OAAO;QACL;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,IAAI;oBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3F,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAA8B,CAAC;gBAC3F,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,IAAI;oBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChF,IAAI,CAAC;oBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE;wBACjF,MAAM,EAAE,GAAG;qBACZ,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;wBACpF,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC9E,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,IAAI;oBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3F,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;oBAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxE,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;oBACzD,MAAM,EACJ,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,EACb,GAAG,MAAM,EACV,GAAG,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;wBACpF,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC9E,CAAC;oBACD,IAAI,KAAK,YAAY,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACtE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBACxE,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,IAAI;oBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3F,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;oBAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxE,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;oBACzD,OAAO,QAAQ,CAAC,IAAI,CAClB,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EACtE,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;wBACpF,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC9E,CAAC;oBACD,IAAI,KAAK,YAAY,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACtE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBACxE,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAA0B;IAChE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAC1F,MAAM,MAAM,GAAY;QACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9C;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,cAAc;YAC1B,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;SAChC;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;YAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1B;QACD;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;YAClD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;YAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1B;QACD;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;YAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;SACzF;QACD,GAAG,CAAC,eAAe;YACjB,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,QAAiB;oBACvB,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,+CAA+C;4BACrD,KAAK,EAAE,gDAAgD;yBACxD;qBACF;oBACD,KAAK,EAAE;wBACL,SAAS,EAAE;4BACT,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAA2D,EAAE,EAAE;gCAC/E,IAAI,IAAI,EAAE,EAAE,KAAK,SAAS;oCAAE,OAAO,CAAC,CAAC;gCACrC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;oCACpC,UAAU,EAAE,eAAwB;oCACpC,KAAK,EAAE,CAAC;oCACR,cAAc,EAAE,IAAI;oCACpB,UAAU,EAAE,KAAK;oCACjB,GAAG;oCACH,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;iCACvC,CAAC,CAAC;gCACH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oCACvC,MAAM,IAAI,GAAI,GAA+B,CAAC,OAAO,CAAC;oCACtD,OAAO,KAAK,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACvD,CAAC,EAAE,CAAC,CAAC,CAAC;4BACR,CAAC;yBACF;qBACF;iBACF;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,gDAAgD,EAAE,EAAE;SAClF;KACF,CAAC;IACF,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE3C,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;QACnD,UAAU,EAAE,IAAI;QAChB,GAAG,QAAQ;QACX,GAAG,UAAU;QACb,MAAM,EAAE;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;YACnB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,GAAG,QAAQ,EAAE,MAAM;YACnB,GAAG,UAAU,EAAE,MAAM;SACtB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,MAAM;YAClB,GAAG,QAAQ,EAAE,KAAK;YAClB,GAAG,UAAU,EAAE,KAAK;YACpB,UAAU,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YAChF,KAAK,EAAE,WAAW,CAAC;gBACjB,eAAe;gBACf,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,KAAK;aAC1D,CAAC;SACH;QACD,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC3F,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;QACjE,KAAK,EAAE;YACL,GAAG,QAAQ,EAAE,KAAK;YAClB,GAAG,UAAU,EAAE,KAAK;SACrB;KACF,CAAC;AACJ,CAAC"}
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":"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","file":"collection.js"}