@voyantjs/types 0.31.1 → 0.31.2
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/dist/api-keys.d.ts +509 -165
- package/dist/api-keys.d.ts.map +1 -1
- package/dist/api-keys.js +296 -194
- package/dist/api-keys.js.map +1 -1
- package/package.json +2 -2
package/dist/api-keys.d.ts
CHANGED
|
@@ -1,156 +1,242 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
* API Key Scope Definitions
|
|
4
|
-
*
|
|
5
|
-
* Following resource:action pattern similar to Stripe/Shopify
|
|
6
|
-
* Format: "{resource}:{action}" or wildcards
|
|
7
|
-
*/
|
|
8
|
-
export declare const API_KEY_RESOURCES: readonly ["operators", "connections", "oauth-clients", "products", "availability", "bookings", "suppliers", "grants", "audit-logs"];
|
|
9
|
-
export type ApiKeyResource = (typeof API_KEY_RESOURCES)[number];
|
|
10
|
-
export declare const API_KEY_ACTIONS: readonly ["read", "write", "delete"];
|
|
2
|
+
export declare const API_KEY_ACTIONS: readonly ["read", "write", "delete", "trigger", "relay", "search"];
|
|
11
3
|
export type ApiKeyAction = (typeof API_KEY_ACTIONS)[number];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
readonly
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
readonly
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
4
|
+
export declare const API_KEY_RESOURCES: readonly ["availability", "bookings", "catalog", "crm", "cruises", "departures", "finance", "ground", "hospitality", "itineraries", "legal", "notifications", "pricing", "products", "resources", "storefront", "suppliers", "transactions", "webhooks", "workflows"];
|
|
5
|
+
export type ApiKeyResource = (typeof API_KEY_RESOURCES)[number];
|
|
6
|
+
export type ApiKeyPermissions = Record<string, string[]>;
|
|
7
|
+
export type ApiKeyPermissionString = "*" | "*:*" | `${string}:*` | `*:${string}` | `${string}:${string}`;
|
|
8
|
+
export interface ApiKeyPermissionDescriptor {
|
|
9
|
+
resource: string;
|
|
10
|
+
action: string;
|
|
11
|
+
label: string;
|
|
12
|
+
description: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ApiKeyPermissionGroup {
|
|
15
|
+
resource: string;
|
|
16
|
+
label: string;
|
|
17
|
+
description: string;
|
|
18
|
+
permissions: ApiKeyPermissionDescriptor[];
|
|
19
|
+
}
|
|
20
|
+
export declare const API_KEY_PERMISSION_GROUPS: readonly [{
|
|
21
|
+
readonly resource: "catalog";
|
|
22
|
+
readonly label: "Catalog";
|
|
23
|
+
readonly description: "Search and read unified catalog content.";
|
|
24
|
+
readonly permissions: [{
|
|
25
|
+
resource: string;
|
|
26
|
+
action: string;
|
|
27
|
+
label: string;
|
|
28
|
+
description: string;
|
|
29
|
+
}, {
|
|
30
|
+
resource: string;
|
|
31
|
+
action: string;
|
|
32
|
+
label: string;
|
|
33
|
+
description: string;
|
|
34
|
+
}];
|
|
35
|
+
}, {
|
|
36
|
+
readonly resource: "products";
|
|
37
|
+
readonly label: "Products";
|
|
38
|
+
readonly description: "Read and manage products, options, content, and media.";
|
|
39
|
+
readonly permissions: [{
|
|
40
|
+
resource: string;
|
|
41
|
+
action: string;
|
|
42
|
+
label: string;
|
|
43
|
+
description: string;
|
|
44
|
+
}, {
|
|
45
|
+
resource: string;
|
|
46
|
+
action: string;
|
|
47
|
+
label: string;
|
|
48
|
+
description: string;
|
|
49
|
+
}, {
|
|
50
|
+
resource: string;
|
|
51
|
+
action: string;
|
|
52
|
+
label: string;
|
|
53
|
+
description: string;
|
|
54
|
+
}];
|
|
55
|
+
}, {
|
|
56
|
+
readonly resource: "departures";
|
|
57
|
+
readonly label: "Departures";
|
|
58
|
+
readonly description: "Read and manage scheduled departures.";
|
|
59
|
+
readonly permissions: [{
|
|
60
|
+
resource: string;
|
|
61
|
+
action: string;
|
|
62
|
+
label: string;
|
|
63
|
+
description: string;
|
|
64
|
+
}, {
|
|
65
|
+
resource: string;
|
|
66
|
+
action: string;
|
|
67
|
+
label: string;
|
|
68
|
+
description: string;
|
|
69
|
+
}];
|
|
70
|
+
}, {
|
|
71
|
+
readonly resource: "itineraries";
|
|
72
|
+
readonly label: "Itineraries";
|
|
73
|
+
readonly description: "Read and manage day-by-day itinerary content.";
|
|
74
|
+
readonly permissions: [{
|
|
75
|
+
resource: string;
|
|
76
|
+
action: string;
|
|
77
|
+
label: string;
|
|
78
|
+
description: string;
|
|
79
|
+
}, {
|
|
80
|
+
resource: string;
|
|
81
|
+
action: string;
|
|
82
|
+
label: string;
|
|
83
|
+
description: string;
|
|
84
|
+
}];
|
|
85
|
+
}, {
|
|
86
|
+
readonly resource: "bookings";
|
|
87
|
+
readonly label: "Bookings";
|
|
88
|
+
readonly description: "Read and manage booking records and booking workflows.";
|
|
89
|
+
readonly permissions: [{
|
|
90
|
+
resource: string;
|
|
91
|
+
action: string;
|
|
92
|
+
label: string;
|
|
93
|
+
description: string;
|
|
94
|
+
}, {
|
|
95
|
+
resource: string;
|
|
96
|
+
action: string;
|
|
97
|
+
label: string;
|
|
98
|
+
description: string;
|
|
99
|
+
}, {
|
|
100
|
+
resource: string;
|
|
101
|
+
action: string;
|
|
102
|
+
label: string;
|
|
103
|
+
description: string;
|
|
104
|
+
}];
|
|
105
|
+
}, {
|
|
106
|
+
readonly resource: "availability";
|
|
107
|
+
readonly label: "Availability";
|
|
108
|
+
readonly description: "Read and manage availability rules, slots, and closeouts.";
|
|
109
|
+
readonly permissions: [{
|
|
110
|
+
resource: string;
|
|
111
|
+
action: string;
|
|
112
|
+
label: string;
|
|
113
|
+
description: string;
|
|
114
|
+
}, {
|
|
115
|
+
resource: string;
|
|
116
|
+
action: string;
|
|
117
|
+
label: string;
|
|
118
|
+
description: string;
|
|
119
|
+
}];
|
|
120
|
+
}, {
|
|
121
|
+
readonly resource: "hospitality";
|
|
122
|
+
readonly label: "Hospitality";
|
|
123
|
+
readonly description: "Read and manage properties, rooms, rates, and hospitality bookings.";
|
|
124
|
+
readonly permissions: [{
|
|
125
|
+
resource: string;
|
|
126
|
+
action: string;
|
|
127
|
+
label: string;
|
|
128
|
+
description: string;
|
|
129
|
+
}, {
|
|
130
|
+
resource: string;
|
|
131
|
+
action: string;
|
|
132
|
+
label: string;
|
|
133
|
+
description: string;
|
|
134
|
+
}];
|
|
135
|
+
}, {
|
|
136
|
+
readonly resource: "ground";
|
|
137
|
+
readonly label: "Ground";
|
|
138
|
+
readonly description: "Read and manage ground transport operations.";
|
|
139
|
+
readonly permissions: [{
|
|
140
|
+
resource: string;
|
|
141
|
+
action: string;
|
|
142
|
+
label: string;
|
|
143
|
+
description: string;
|
|
144
|
+
}, {
|
|
145
|
+
resource: string;
|
|
146
|
+
action: string;
|
|
147
|
+
label: string;
|
|
148
|
+
description: string;
|
|
149
|
+
}];
|
|
150
|
+
}, {
|
|
151
|
+
readonly resource: "cruises";
|
|
152
|
+
readonly label: "Cruises";
|
|
153
|
+
readonly description: "Read and manage cruise products and sailing data.";
|
|
154
|
+
readonly permissions: [{
|
|
155
|
+
resource: string;
|
|
156
|
+
action: string;
|
|
157
|
+
label: string;
|
|
158
|
+
description: string;
|
|
159
|
+
}, {
|
|
160
|
+
resource: string;
|
|
161
|
+
action: string;
|
|
162
|
+
label: string;
|
|
163
|
+
description: string;
|
|
164
|
+
}];
|
|
165
|
+
}, {
|
|
166
|
+
readonly resource: "workflows";
|
|
167
|
+
readonly label: "Workflows";
|
|
168
|
+
readonly description: "Trigger workflow automation from external systems.";
|
|
169
|
+
readonly permissions: [{
|
|
170
|
+
resource: string;
|
|
171
|
+
action: string;
|
|
172
|
+
label: string;
|
|
173
|
+
description: string;
|
|
174
|
+
}];
|
|
175
|
+
}, {
|
|
176
|
+
readonly resource: "webhooks";
|
|
177
|
+
readonly label: "Webhooks";
|
|
178
|
+
readonly description: "Relay webhook events into Voyant runtimes.";
|
|
179
|
+
readonly permissions: [{
|
|
180
|
+
resource: string;
|
|
181
|
+
action: string;
|
|
182
|
+
label: string;
|
|
183
|
+
description: string;
|
|
184
|
+
}];
|
|
185
|
+
}];
|
|
186
|
+
export declare const API_KEY_PERMISSION_PRESETS: {
|
|
187
|
+
readonly "catalog-read": {
|
|
188
|
+
readonly label: "Catalog read";
|
|
189
|
+
readonly description: "Read/search catalog, product, departure, and itinerary content.";
|
|
190
|
+
readonly permissions: {
|
|
191
|
+
readonly catalog: ["read", "search"];
|
|
192
|
+
readonly products: ["read"];
|
|
193
|
+
readonly departures: ["read"];
|
|
194
|
+
readonly itineraries: ["read"];
|
|
195
|
+
};
|
|
118
196
|
};
|
|
119
|
-
readonly
|
|
120
|
-
readonly label: "
|
|
121
|
-
readonly description: "
|
|
122
|
-
readonly
|
|
197
|
+
readonly "commerce-read": {
|
|
198
|
+
readonly label: "Commerce read";
|
|
199
|
+
readonly description: "Read bookings, availability, products, pricing, and suppliers.";
|
|
200
|
+
readonly permissions: {
|
|
201
|
+
readonly bookings: ["read"];
|
|
202
|
+
readonly availability: ["read"];
|
|
203
|
+
readonly products: ["read"];
|
|
204
|
+
readonly pricing: ["read"];
|
|
205
|
+
readonly suppliers: ["read"];
|
|
206
|
+
};
|
|
123
207
|
};
|
|
124
|
-
readonly
|
|
125
|
-
readonly label: "
|
|
126
|
-
readonly description: "
|
|
127
|
-
readonly
|
|
208
|
+
readonly automation: {
|
|
209
|
+
readonly label: "Automation";
|
|
210
|
+
readonly description: "Trigger workflows and relay webhooks.";
|
|
211
|
+
readonly permissions: {
|
|
212
|
+
readonly workflows: ["trigger"];
|
|
213
|
+
readonly webhooks: ["relay"];
|
|
214
|
+
};
|
|
128
215
|
};
|
|
129
|
-
readonly
|
|
130
|
-
readonly label: "
|
|
131
|
-
readonly description: "
|
|
132
|
-
readonly
|
|
216
|
+
readonly "read-only": {
|
|
217
|
+
readonly label: "Read only";
|
|
218
|
+
readonly description: "Read across every resource that accepts API tokens.";
|
|
219
|
+
readonly permissions: {
|
|
220
|
+
readonly "*": ["read"];
|
|
221
|
+
};
|
|
133
222
|
};
|
|
134
|
-
readonly "
|
|
135
|
-
readonly label: "
|
|
136
|
-
readonly description: "
|
|
137
|
-
readonly
|
|
223
|
+
readonly "full-access": {
|
|
224
|
+
readonly label: "Full access";
|
|
225
|
+
readonly description: "All resources and all actions. Use only for trusted automation.";
|
|
226
|
+
readonly permissions: {
|
|
227
|
+
readonly "*": ["*"];
|
|
228
|
+
};
|
|
138
229
|
};
|
|
139
230
|
};
|
|
140
|
-
export type
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
export declare const SCOPE_TEMPLATES: Record<string, ScopeTemplate>;
|
|
150
|
-
export type ScopeTemplateKey = "read-only" | "full-access" | "operator-admin" | "reseller";
|
|
151
|
-
/**
|
|
152
|
-
* Expiration presets for key creation
|
|
153
|
-
*/
|
|
231
|
+
export type ApiKeyPermissionPresetKey = keyof typeof API_KEY_PERMISSION_PRESETS;
|
|
232
|
+
export declare const apiKeyPermissionStringSchema: z.ZodString & z.ZodType<ApiKeyPermissionString, string, z.core.$ZodTypeInternals<ApiKeyPermissionString, string>>;
|
|
233
|
+
export declare const apiKeyPermissionsSchema: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>, z.ZodTransform<ApiKeyPermissions, Record<string, string[]>>>;
|
|
234
|
+
export declare function normalizeApiKeyPermissions(permissions: string | ApiKeyPermissions | null | undefined): ApiKeyPermissions;
|
|
235
|
+
export declare function permissionStringsToPermissions(permissions: readonly string[]): ApiKeyPermissions;
|
|
236
|
+
export declare function permissionsToStrings(permissions: string | ApiKeyPermissions | null | undefined): ApiKeyPermissionString[];
|
|
237
|
+
export declare function hasApiKeyPermission(permissions: string | ApiKeyPermissions | null | undefined, resource: string, action: string): boolean;
|
|
238
|
+
export declare function hasApiKeyPermissions(permissions: string | ApiKeyPermissions | null | undefined, required: ApiKeyPermissions): boolean;
|
|
239
|
+
export declare function describePermissions(permissions: string | ApiKeyPermissions | null | undefined): string;
|
|
154
240
|
export declare const EXPIRATION_PRESETS: {
|
|
155
241
|
readonly never: {
|
|
156
242
|
readonly label: "Never";
|
|
@@ -182,25 +268,283 @@ export declare const EXPIRATION_PRESETS: {
|
|
|
182
268
|
};
|
|
183
269
|
};
|
|
184
270
|
export type ExpirationPresetKey = keyof typeof EXPIRATION_PRESETS;
|
|
185
|
-
/**
|
|
186
|
-
* Helper functions for scope validation
|
|
187
|
-
*/
|
|
188
|
-
/**
|
|
189
|
-
* Check if a scope pattern matches a required scope
|
|
190
|
-
* Handles wildcards: "operators:*", "*:read", "*"
|
|
191
|
-
*/
|
|
192
|
-
export declare function scopeMatches(userScope: string, requiredScope: string): boolean;
|
|
193
|
-
/**
|
|
194
|
-
* Check if user has all required scopes
|
|
195
|
-
*/
|
|
196
|
-
export declare function hasScopes(userScopes: string[], requiredScopes: string[]): boolean;
|
|
197
|
-
/**
|
|
198
|
-
* Get human-readable description of scopes
|
|
199
|
-
*/
|
|
200
|
-
export declare function describescopes(scopes: string[]): string;
|
|
201
|
-
/**
|
|
202
|
-
* Calculate expiration date from preset
|
|
203
|
-
*/
|
|
204
271
|
export declare function calculateExpirationDate(preset: ExpirationPresetKey, customDate?: Date): Date | null;
|
|
205
|
-
|
|
272
|
+
/** @deprecated Use ApiKeyPermissionString. */
|
|
273
|
+
export type ApiKeyScope = ApiKeyPermissionString;
|
|
274
|
+
/** @deprecated Use ApiKeyPermissionDescriptor. */
|
|
275
|
+
export type ApiKeyScopeDescriptor = ApiKeyPermissionDescriptor & {
|
|
276
|
+
scope: ApiKeyPermissionString;
|
|
277
|
+
};
|
|
278
|
+
/** @deprecated Use API_KEY_PERMISSION_GROUPS. */
|
|
279
|
+
export declare const API_KEY_SCOPE_GROUPS: ({
|
|
280
|
+
scopes: {
|
|
281
|
+
scope: ApiKeyPermissionString;
|
|
282
|
+
resource: string;
|
|
283
|
+
action: string;
|
|
284
|
+
label: string;
|
|
285
|
+
description: string;
|
|
286
|
+
}[];
|
|
287
|
+
resource: "catalog";
|
|
288
|
+
label: "Catalog";
|
|
289
|
+
description: "Search and read unified catalog content.";
|
|
290
|
+
permissions: [{
|
|
291
|
+
resource: string;
|
|
292
|
+
action: string;
|
|
293
|
+
label: string;
|
|
294
|
+
description: string;
|
|
295
|
+
}, {
|
|
296
|
+
resource: string;
|
|
297
|
+
action: string;
|
|
298
|
+
label: string;
|
|
299
|
+
description: string;
|
|
300
|
+
}];
|
|
301
|
+
} | {
|
|
302
|
+
scopes: {
|
|
303
|
+
scope: ApiKeyPermissionString;
|
|
304
|
+
resource: string;
|
|
305
|
+
action: string;
|
|
306
|
+
label: string;
|
|
307
|
+
description: string;
|
|
308
|
+
}[];
|
|
309
|
+
resource: "products";
|
|
310
|
+
label: "Products";
|
|
311
|
+
description: "Read and manage products, options, content, and media.";
|
|
312
|
+
permissions: [{
|
|
313
|
+
resource: string;
|
|
314
|
+
action: string;
|
|
315
|
+
label: string;
|
|
316
|
+
description: string;
|
|
317
|
+
}, {
|
|
318
|
+
resource: string;
|
|
319
|
+
action: string;
|
|
320
|
+
label: string;
|
|
321
|
+
description: string;
|
|
322
|
+
}, {
|
|
323
|
+
resource: string;
|
|
324
|
+
action: string;
|
|
325
|
+
label: string;
|
|
326
|
+
description: string;
|
|
327
|
+
}];
|
|
328
|
+
} | {
|
|
329
|
+
scopes: {
|
|
330
|
+
scope: ApiKeyPermissionString;
|
|
331
|
+
resource: string;
|
|
332
|
+
action: string;
|
|
333
|
+
label: string;
|
|
334
|
+
description: string;
|
|
335
|
+
}[];
|
|
336
|
+
resource: "departures";
|
|
337
|
+
label: "Departures";
|
|
338
|
+
description: "Read and manage scheduled departures.";
|
|
339
|
+
permissions: [{
|
|
340
|
+
resource: string;
|
|
341
|
+
action: string;
|
|
342
|
+
label: string;
|
|
343
|
+
description: string;
|
|
344
|
+
}, {
|
|
345
|
+
resource: string;
|
|
346
|
+
action: string;
|
|
347
|
+
label: string;
|
|
348
|
+
description: string;
|
|
349
|
+
}];
|
|
350
|
+
} | {
|
|
351
|
+
scopes: {
|
|
352
|
+
scope: ApiKeyPermissionString;
|
|
353
|
+
resource: string;
|
|
354
|
+
action: string;
|
|
355
|
+
label: string;
|
|
356
|
+
description: string;
|
|
357
|
+
}[];
|
|
358
|
+
resource: "itineraries";
|
|
359
|
+
label: "Itineraries";
|
|
360
|
+
description: "Read and manage day-by-day itinerary content.";
|
|
361
|
+
permissions: [{
|
|
362
|
+
resource: string;
|
|
363
|
+
action: string;
|
|
364
|
+
label: string;
|
|
365
|
+
description: string;
|
|
366
|
+
}, {
|
|
367
|
+
resource: string;
|
|
368
|
+
action: string;
|
|
369
|
+
label: string;
|
|
370
|
+
description: string;
|
|
371
|
+
}];
|
|
372
|
+
} | {
|
|
373
|
+
scopes: {
|
|
374
|
+
scope: ApiKeyPermissionString;
|
|
375
|
+
resource: string;
|
|
376
|
+
action: string;
|
|
377
|
+
label: string;
|
|
378
|
+
description: string;
|
|
379
|
+
}[];
|
|
380
|
+
resource: "bookings";
|
|
381
|
+
label: "Bookings";
|
|
382
|
+
description: "Read and manage booking records and booking workflows.";
|
|
383
|
+
permissions: [{
|
|
384
|
+
resource: string;
|
|
385
|
+
action: string;
|
|
386
|
+
label: string;
|
|
387
|
+
description: string;
|
|
388
|
+
}, {
|
|
389
|
+
resource: string;
|
|
390
|
+
action: string;
|
|
391
|
+
label: string;
|
|
392
|
+
description: string;
|
|
393
|
+
}, {
|
|
394
|
+
resource: string;
|
|
395
|
+
action: string;
|
|
396
|
+
label: string;
|
|
397
|
+
description: string;
|
|
398
|
+
}];
|
|
399
|
+
} | {
|
|
400
|
+
scopes: {
|
|
401
|
+
scope: ApiKeyPermissionString;
|
|
402
|
+
resource: string;
|
|
403
|
+
action: string;
|
|
404
|
+
label: string;
|
|
405
|
+
description: string;
|
|
406
|
+
}[];
|
|
407
|
+
resource: "availability";
|
|
408
|
+
label: "Availability";
|
|
409
|
+
description: "Read and manage availability rules, slots, and closeouts.";
|
|
410
|
+
permissions: [{
|
|
411
|
+
resource: string;
|
|
412
|
+
action: string;
|
|
413
|
+
label: string;
|
|
414
|
+
description: string;
|
|
415
|
+
}, {
|
|
416
|
+
resource: string;
|
|
417
|
+
action: string;
|
|
418
|
+
label: string;
|
|
419
|
+
description: string;
|
|
420
|
+
}];
|
|
421
|
+
} | {
|
|
422
|
+
scopes: {
|
|
423
|
+
scope: ApiKeyPermissionString;
|
|
424
|
+
resource: string;
|
|
425
|
+
action: string;
|
|
426
|
+
label: string;
|
|
427
|
+
description: string;
|
|
428
|
+
}[];
|
|
429
|
+
resource: "hospitality";
|
|
430
|
+
label: "Hospitality";
|
|
431
|
+
description: "Read and manage properties, rooms, rates, and hospitality bookings.";
|
|
432
|
+
permissions: [{
|
|
433
|
+
resource: string;
|
|
434
|
+
action: string;
|
|
435
|
+
label: string;
|
|
436
|
+
description: string;
|
|
437
|
+
}, {
|
|
438
|
+
resource: string;
|
|
439
|
+
action: string;
|
|
440
|
+
label: string;
|
|
441
|
+
description: string;
|
|
442
|
+
}];
|
|
443
|
+
} | {
|
|
444
|
+
scopes: {
|
|
445
|
+
scope: ApiKeyPermissionString;
|
|
446
|
+
resource: string;
|
|
447
|
+
action: string;
|
|
448
|
+
label: string;
|
|
449
|
+
description: string;
|
|
450
|
+
}[];
|
|
451
|
+
resource: "ground";
|
|
452
|
+
label: "Ground";
|
|
453
|
+
description: "Read and manage ground transport operations.";
|
|
454
|
+
permissions: [{
|
|
455
|
+
resource: string;
|
|
456
|
+
action: string;
|
|
457
|
+
label: string;
|
|
458
|
+
description: string;
|
|
459
|
+
}, {
|
|
460
|
+
resource: string;
|
|
461
|
+
action: string;
|
|
462
|
+
label: string;
|
|
463
|
+
description: string;
|
|
464
|
+
}];
|
|
465
|
+
} | {
|
|
466
|
+
scopes: {
|
|
467
|
+
scope: ApiKeyPermissionString;
|
|
468
|
+
resource: string;
|
|
469
|
+
action: string;
|
|
470
|
+
label: string;
|
|
471
|
+
description: string;
|
|
472
|
+
}[];
|
|
473
|
+
resource: "cruises";
|
|
474
|
+
label: "Cruises";
|
|
475
|
+
description: "Read and manage cruise products and sailing data.";
|
|
476
|
+
permissions: [{
|
|
477
|
+
resource: string;
|
|
478
|
+
action: string;
|
|
479
|
+
label: string;
|
|
480
|
+
description: string;
|
|
481
|
+
}, {
|
|
482
|
+
resource: string;
|
|
483
|
+
action: string;
|
|
484
|
+
label: string;
|
|
485
|
+
description: string;
|
|
486
|
+
}];
|
|
487
|
+
} | {
|
|
488
|
+
scopes: {
|
|
489
|
+
scope: ApiKeyPermissionString;
|
|
490
|
+
resource: string;
|
|
491
|
+
action: string;
|
|
492
|
+
label: string;
|
|
493
|
+
description: string;
|
|
494
|
+
}[];
|
|
495
|
+
resource: "workflows";
|
|
496
|
+
label: "Workflows";
|
|
497
|
+
description: "Trigger workflow automation from external systems.";
|
|
498
|
+
permissions: [{
|
|
499
|
+
resource: string;
|
|
500
|
+
action: string;
|
|
501
|
+
label: string;
|
|
502
|
+
description: string;
|
|
503
|
+
}];
|
|
504
|
+
} | {
|
|
505
|
+
scopes: {
|
|
506
|
+
scope: ApiKeyPermissionString;
|
|
507
|
+
resource: string;
|
|
508
|
+
action: string;
|
|
509
|
+
label: string;
|
|
510
|
+
description: string;
|
|
511
|
+
}[];
|
|
512
|
+
resource: "webhooks";
|
|
513
|
+
label: "Webhooks";
|
|
514
|
+
description: "Relay webhook events into Voyant runtimes.";
|
|
515
|
+
permissions: [{
|
|
516
|
+
resource: string;
|
|
517
|
+
action: string;
|
|
518
|
+
label: string;
|
|
519
|
+
description: string;
|
|
520
|
+
}];
|
|
521
|
+
})[];
|
|
522
|
+
/** @deprecated Use API_KEY_PERMISSION_PRESETS. */
|
|
523
|
+
export declare const API_KEY_SCOPE_PRESETS: Record<string, {
|
|
524
|
+
label: string;
|
|
525
|
+
description: string;
|
|
526
|
+
scopes: ApiKeyPermissionString[];
|
|
527
|
+
}>;
|
|
528
|
+
/** @deprecated Use ApiKeyPermissionPresetKey. */
|
|
529
|
+
export type ApiKeyScopePresetKey = ApiKeyPermissionPresetKey;
|
|
530
|
+
/** @deprecated Use apiKeyPermissionStringSchema. */
|
|
531
|
+
export declare const apiKeyScopeSchema: z.ZodString & z.ZodType<ApiKeyPermissionString, string, z.core.$ZodTypeInternals<ApiKeyPermissionString, string>>;
|
|
532
|
+
/** @deprecated Use array of apiKeyPermissionStringSchema only for display strings. */
|
|
533
|
+
export declare const apiKeyScopesSchema: z.ZodDefault<z.ZodArray<z.ZodString & z.ZodType<ApiKeyPermissionString, string, z.core.$ZodTypeInternals<ApiKeyPermissionString, string>>>>;
|
|
534
|
+
/** @deprecated Use permissionStringsToPermissions. */
|
|
535
|
+
export declare const scopesToPermissions: typeof permissionStringsToPermissions;
|
|
536
|
+
/** @deprecated Use permissionsToStrings. */
|
|
537
|
+
export declare const permissionsToScopes: typeof permissionsToStrings;
|
|
538
|
+
/** @deprecated Use permissionsToStrings. */
|
|
539
|
+
export declare const normalizeApiKeyScopes: typeof permissionsToStrings;
|
|
540
|
+
/** @deprecated Use apiKeyPermissionStringSchema.parse. */
|
|
541
|
+
export declare function normalizeApiKeyScope(scope: string): ApiKeyPermissionString;
|
|
542
|
+
/** @deprecated Use hasApiKeyPermission. */
|
|
543
|
+
export declare function scopeMatches(userScope: string, requiredScope: string): boolean;
|
|
544
|
+
/** @deprecated Use hasApiKeyPermissions. */
|
|
545
|
+
export declare function hasScopes(userScopes: readonly string[], requiredScopes: readonly string[]): boolean;
|
|
546
|
+
/** @deprecated Use describePermissions. */
|
|
547
|
+
export declare const describeScopes: typeof describePermissions;
|
|
548
|
+
/** @deprecated Use describePermissions. */
|
|
549
|
+
export declare const describescopes: typeof describePermissions;
|
|
206
550
|
//# sourceMappingURL=api-keys.d.ts.map
|
package/dist/api-keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"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"}
|
package/dist/api-keys.js
CHANGED
|
@@ -1,161 +1,275 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
* API Key Scope Definitions
|
|
4
|
-
*
|
|
5
|
-
* Following resource:action pattern similar to Stripe/Shopify
|
|
6
|
-
* Format: "{resource}:{action}" or wildcards
|
|
7
|
-
*/
|
|
8
|
-
// Resource types
|
|
2
|
+
export const API_KEY_ACTIONS = ["read", "write", "delete", "trigger", "relay", "search"];
|
|
9
3
|
export const API_KEY_RESOURCES = [
|
|
10
|
-
"operators",
|
|
11
|
-
"connections",
|
|
12
|
-
"oauth-clients",
|
|
13
|
-
"products",
|
|
14
4
|
"availability",
|
|
15
5
|
"bookings",
|
|
6
|
+
"catalog",
|
|
7
|
+
"crm",
|
|
8
|
+
"cruises",
|
|
9
|
+
"departures",
|
|
10
|
+
"finance",
|
|
11
|
+
"ground",
|
|
12
|
+
"hospitality",
|
|
13
|
+
"itineraries",
|
|
14
|
+
"legal",
|
|
15
|
+
"notifications",
|
|
16
|
+
"pricing",
|
|
17
|
+
"products",
|
|
18
|
+
"resources",
|
|
19
|
+
"storefront",
|
|
16
20
|
"suppliers",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
21
|
+
"transactions",
|
|
22
|
+
"webhooks",
|
|
23
|
+
"workflows",
|
|
19
24
|
];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"oauth-clients:write",
|
|
43
|
-
"oauth-clients:delete",
|
|
44
|
-
"oauth-clients:*",
|
|
45
|
-
// Products
|
|
46
|
-
"products:read",
|
|
47
|
-
"products:*",
|
|
48
|
-
// Availability
|
|
49
|
-
"availability:read",
|
|
50
|
-
"availability:*",
|
|
51
|
-
// Bookings
|
|
52
|
-
"bookings:read",
|
|
53
|
-
"bookings:write",
|
|
54
|
-
"bookings:delete",
|
|
55
|
-
"bookings:*",
|
|
56
|
-
// Suppliers
|
|
57
|
-
"suppliers:read",
|
|
58
|
-
"suppliers:*",
|
|
59
|
-
// Grants
|
|
60
|
-
"grants:read",
|
|
61
|
-
"grants:write",
|
|
62
|
-
"grants:delete",
|
|
63
|
-
"grants:*",
|
|
64
|
-
// Audit Logs
|
|
65
|
-
"audit-logs:read",
|
|
66
|
-
"audit-logs:*",
|
|
67
|
-
// Wildcard patterns
|
|
68
|
-
"*:read", // Read-only access to all resources
|
|
69
|
-
"*:write", // Write access to all resources
|
|
70
|
-
"*:delete", // Delete access to all resources
|
|
71
|
-
"*", // Full access (God mode)
|
|
72
|
-
];
|
|
73
|
-
// Zod schema for scope validation
|
|
74
|
-
export const apiKeyScopeSchema = z.enum(VALID_SCOPES);
|
|
75
|
-
export const apiKeyScopesSchema = z.array(apiKeyScopeSchema).default([]);
|
|
76
|
-
/**
|
|
77
|
-
* Scope groups for UI display
|
|
78
|
-
* Grouped by resource for nested checkbox UX
|
|
79
|
-
*/
|
|
80
|
-
export const SCOPE_GROUPS = {
|
|
81
|
-
operators: {
|
|
82
|
-
label: "Operators",
|
|
83
|
-
description: "Manage operator registrations and configuration",
|
|
84
|
-
scopes: ["operators:read", "operators:write", "operators:delete"],
|
|
25
|
+
function permission(resource, action, label, description) {
|
|
26
|
+
return { resource, action, label, description };
|
|
27
|
+
}
|
|
28
|
+
export const API_KEY_PERMISSION_GROUPS = [
|
|
29
|
+
{
|
|
30
|
+
resource: "catalog",
|
|
31
|
+
label: "Catalog",
|
|
32
|
+
description: "Search and read unified catalog content.",
|
|
33
|
+
permissions: [
|
|
34
|
+
permission("catalog", "read", "Read catalog", "Read catalog records and storefront-ready content."),
|
|
35
|
+
permission("catalog", "search", "Search catalog", "Run catalog search and discovery requests."),
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
resource: "products",
|
|
40
|
+
label: "Products",
|
|
41
|
+
description: "Read and manage products, options, content, and media.",
|
|
42
|
+
permissions: [
|
|
43
|
+
permission("products", "read", "Read products", "Read product, option, media, category, and tag data."),
|
|
44
|
+
permission("products", "write", "Write products", "Create or update products and product content."),
|
|
45
|
+
permission("products", "delete", "Delete products", "Delete products and product-owned records."),
|
|
46
|
+
],
|
|
85
47
|
},
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
48
|
+
{
|
|
49
|
+
resource: "departures",
|
|
50
|
+
label: "Departures",
|
|
51
|
+
description: "Read and manage scheduled departures.",
|
|
52
|
+
permissions: [
|
|
53
|
+
permission("departures", "read", "Read departures", "Read departure schedules and availability context."),
|
|
54
|
+
permission("departures", "write", "Write departures", "Create or update scheduled departures."),
|
|
55
|
+
],
|
|
90
56
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
57
|
+
{
|
|
58
|
+
resource: "itineraries",
|
|
59
|
+
label: "Itineraries",
|
|
60
|
+
description: "Read and manage day-by-day itinerary content.",
|
|
61
|
+
permissions: [
|
|
62
|
+
permission("itineraries", "read", "Read itineraries", "Read itinerary days, services, and descriptions."),
|
|
63
|
+
permission("itineraries", "write", "Write itineraries", "Create or update itinerary content."),
|
|
64
|
+
],
|
|
95
65
|
},
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
66
|
+
{
|
|
67
|
+
resource: "bookings",
|
|
68
|
+
label: "Bookings",
|
|
69
|
+
description: "Read and manage booking records and booking workflows.",
|
|
70
|
+
permissions: [
|
|
71
|
+
permission("bookings", "read", "Read bookings", "Read booking records and non-sensitive booking state."),
|
|
72
|
+
permission("bookings", "write", "Write bookings", "Create, update, confirm, or cancel bookings."),
|
|
73
|
+
permission("bookings", "delete", "Delete bookings", "Delete booking-owned records where supported."),
|
|
74
|
+
],
|
|
100
75
|
},
|
|
101
|
-
|
|
76
|
+
{
|
|
77
|
+
resource: "availability",
|
|
102
78
|
label: "Availability",
|
|
103
|
-
description: "
|
|
104
|
-
|
|
79
|
+
description: "Read and manage availability rules, slots, and closeouts.",
|
|
80
|
+
permissions: [
|
|
81
|
+
permission("availability", "read", "Read availability", "Read availability slots, rules, pickup points, and closeouts."),
|
|
82
|
+
permission("availability", "write", "Write availability", "Create or update availability configuration."),
|
|
83
|
+
],
|
|
105
84
|
},
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
85
|
+
{
|
|
86
|
+
resource: "hospitality",
|
|
87
|
+
label: "Hospitality",
|
|
88
|
+
description: "Read and manage properties, rooms, rates, and hospitality bookings.",
|
|
89
|
+
permissions: [
|
|
90
|
+
permission("hospitality", "read", "Read hospitality", "Read hospitality inventory, properties, and rates."),
|
|
91
|
+
permission("hospitality", "write", "Write hospitality", "Create or update hospitality records."),
|
|
92
|
+
],
|
|
110
93
|
},
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
94
|
+
{
|
|
95
|
+
resource: "ground",
|
|
96
|
+
label: "Ground",
|
|
97
|
+
description: "Read and manage ground transport operations.",
|
|
98
|
+
permissions: [
|
|
99
|
+
permission("ground", "read", "Read ground", "Read transport schedules, vehicles, dispatch, and operations data."),
|
|
100
|
+
permission("ground", "write", "Write ground", "Create or update ground transport records."),
|
|
101
|
+
],
|
|
115
102
|
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
103
|
+
{
|
|
104
|
+
resource: "cruises",
|
|
105
|
+
label: "Cruises",
|
|
106
|
+
description: "Read and manage cruise products and sailing data.",
|
|
107
|
+
permissions: [
|
|
108
|
+
permission("cruises", "read", "Read cruises", "Read cruise products, sailings, cabins, and itinerary data."),
|
|
109
|
+
permission("cruises", "write", "Write cruises", "Create or update cruise records."),
|
|
110
|
+
],
|
|
120
111
|
},
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
112
|
+
{
|
|
113
|
+
resource: "workflows",
|
|
114
|
+
label: "Workflows",
|
|
115
|
+
description: "Trigger workflow automation from external systems.",
|
|
116
|
+
permissions: [
|
|
117
|
+
permission("workflows", "trigger", "Trigger workflows", "Trigger workflow runs and ingest workflow events."),
|
|
118
|
+
],
|
|
125
119
|
},
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
120
|
+
{
|
|
121
|
+
resource: "webhooks",
|
|
122
|
+
label: "Webhooks",
|
|
123
|
+
description: "Relay webhook events into Voyant runtimes.",
|
|
124
|
+
permissions: [
|
|
125
|
+
permission("webhooks", "relay", "Relay webhooks", "Relay validated third-party webhook events."),
|
|
126
|
+
],
|
|
132
127
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
128
|
+
];
|
|
129
|
+
export const API_KEY_PERMISSION_PRESETS = {
|
|
130
|
+
"catalog-read": {
|
|
131
|
+
label: "Catalog read",
|
|
132
|
+
description: "Read/search catalog, product, departure, and itinerary content.",
|
|
133
|
+
permissions: {
|
|
134
|
+
catalog: ["read", "search"],
|
|
135
|
+
products: ["read"],
|
|
136
|
+
departures: ["read"],
|
|
137
|
+
itineraries: ["read"],
|
|
138
|
+
},
|
|
137
139
|
},
|
|
138
|
-
"
|
|
139
|
-
|
|
140
|
-
description: "
|
|
141
|
-
|
|
140
|
+
"commerce-read": {
|
|
141
|
+
label: "Commerce read",
|
|
142
|
+
description: "Read bookings, availability, products, pricing, and suppliers.",
|
|
143
|
+
permissions: {
|
|
144
|
+
bookings: ["read"],
|
|
145
|
+
availability: ["read"],
|
|
146
|
+
products: ["read"],
|
|
147
|
+
pricing: ["read"],
|
|
148
|
+
suppliers: ["read"],
|
|
149
|
+
},
|
|
142
150
|
},
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
description: "
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
automation: {
|
|
152
|
+
label: "Automation",
|
|
153
|
+
description: "Trigger workflows and relay webhooks.",
|
|
154
|
+
permissions: {
|
|
155
|
+
workflows: ["trigger"],
|
|
156
|
+
webhooks: ["relay"],
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
"read-only": {
|
|
160
|
+
label: "Read only",
|
|
161
|
+
description: "Read across every resource that accepts API tokens.",
|
|
162
|
+
permissions: {
|
|
163
|
+
"*": ["read"],
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
"full-access": {
|
|
167
|
+
label: "Full access",
|
|
168
|
+
description: "All resources and all actions. Use only for trusted automation.",
|
|
169
|
+
permissions: {
|
|
170
|
+
"*": ["*"],
|
|
171
|
+
},
|
|
154
172
|
},
|
|
155
173
|
};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
174
|
+
const permissionNamePattern = /^(\*|[a-z][a-z0-9-]*)$/;
|
|
175
|
+
const permissionStringPattern = /^(\*|[a-z][a-z0-9-]*):(\*|[a-z][a-z0-9-]*)$/;
|
|
176
|
+
export const apiKeyPermissionStringSchema = z
|
|
177
|
+
.string()
|
|
178
|
+
.trim()
|
|
179
|
+
.refine((value) => value === "*" || value === "*:*" || permissionStringPattern.test(value), {
|
|
180
|
+
message: "Permission must be '*' or use the resource:action format.",
|
|
181
|
+
});
|
|
182
|
+
export const apiKeyPermissionsSchema = z
|
|
183
|
+
.record(z.string(), z.array(z.string()))
|
|
184
|
+
.transform((permissions) => normalizeApiKeyPermissions(permissions));
|
|
185
|
+
function parsePermissionsJson(permissions) {
|
|
186
|
+
try {
|
|
187
|
+
const parsed = JSON.parse(permissions);
|
|
188
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
189
|
+
return {};
|
|
190
|
+
return normalizeApiKeyPermissions(parsed);
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
return {};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
export function normalizeApiKeyPermissions(permissions) {
|
|
197
|
+
if (!permissions)
|
|
198
|
+
return {};
|
|
199
|
+
if (typeof permissions === "string")
|
|
200
|
+
return parsePermissionsJson(permissions);
|
|
201
|
+
const normalized = {};
|
|
202
|
+
for (const [resourceInput, actionsInput] of Object.entries(permissions)) {
|
|
203
|
+
const resource = resourceInput.trim().toLowerCase();
|
|
204
|
+
if (!permissionNamePattern.test(resource) || !Array.isArray(actionsInput))
|
|
205
|
+
continue;
|
|
206
|
+
const actions = Array.from(new Set(actionsInput
|
|
207
|
+
.map((action) => action.trim().toLowerCase())
|
|
208
|
+
.filter((action) => permissionNamePattern.test(action)))).sort();
|
|
209
|
+
if (actions.length > 0) {
|
|
210
|
+
normalized[resource] = actions;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return normalized;
|
|
214
|
+
}
|
|
215
|
+
export function permissionStringsToPermissions(permissions) {
|
|
216
|
+
const next = {};
|
|
217
|
+
for (const permissionInput of permissions) {
|
|
218
|
+
const permission = permissionInput.trim().toLowerCase();
|
|
219
|
+
if (permission === "*" || permission === "*:*") {
|
|
220
|
+
next["*"] = ["*"];
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (!permissionStringPattern.test(permission))
|
|
224
|
+
continue;
|
|
225
|
+
const [resource, action] = permission.split(":");
|
|
226
|
+
if (!resource || !action)
|
|
227
|
+
continue;
|
|
228
|
+
next[resource] = Array.from(new Set([...(next[resource] ?? []), action])).sort();
|
|
229
|
+
}
|
|
230
|
+
return normalizeApiKeyPermissions(next);
|
|
231
|
+
}
|
|
232
|
+
export function permissionsToStrings(permissions) {
|
|
233
|
+
const normalized = normalizeApiKeyPermissions(permissions);
|
|
234
|
+
const strings = [];
|
|
235
|
+
for (const [resource, actions] of Object.entries(normalized)) {
|
|
236
|
+
if (resource === "*" && actions.includes("*")) {
|
|
237
|
+
strings.push("*");
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
for (const action of actions) {
|
|
241
|
+
strings.push(`${resource}:${action}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return Array.from(new Set(strings)).sort();
|
|
245
|
+
}
|
|
246
|
+
export function hasApiKeyPermission(permissions, resource, action) {
|
|
247
|
+
const normalized = normalizeApiKeyPermissions(permissions);
|
|
248
|
+
const resourceKey = resource.trim().toLowerCase();
|
|
249
|
+
const actionKey = action.trim().toLowerCase();
|
|
250
|
+
return (normalized["*"]?.includes("*") === true ||
|
|
251
|
+
normalized["*"]?.includes(actionKey) === true ||
|
|
252
|
+
normalized[resourceKey]?.includes("*") === true ||
|
|
253
|
+
normalized[resourceKey]?.includes(actionKey) === true);
|
|
254
|
+
}
|
|
255
|
+
export function hasApiKeyPermissions(permissions, required) {
|
|
256
|
+
return Object.entries(normalizeApiKeyPermissions(required)).every(([resource, actions]) => actions.every((action) => hasApiKeyPermission(permissions, resource, action)));
|
|
257
|
+
}
|
|
258
|
+
export function describePermissions(permissions) {
|
|
259
|
+
const normalized = normalizeApiKeyPermissions(permissions);
|
|
260
|
+
const permissionStrings = permissionsToStrings(normalized);
|
|
261
|
+
if (normalized["*"]?.includes("*"))
|
|
262
|
+
return "Full access";
|
|
263
|
+
if (permissionStrings.length === 0)
|
|
264
|
+
return "No permissions";
|
|
265
|
+
if (permissionStrings.length === 1 && permissionStrings[0] === "*:read")
|
|
266
|
+
return "Read-only access";
|
|
267
|
+
const resources = Object.keys(normalized).filter((resource) => resource !== "*");
|
|
268
|
+
const actions = new Set(Object.values(normalized)
|
|
269
|
+
.flat()
|
|
270
|
+
.filter((action) => action !== "*"));
|
|
271
|
+
return `${resources.length || "All"} resource${resources.length === 1 ? "" : "s"} / ${actions.size || "all"} action${actions.size === 1 ? "" : "s"}`;
|
|
272
|
+
}
|
|
159
273
|
export const EXPIRATION_PRESETS = {
|
|
160
274
|
never: {
|
|
161
275
|
label: "Never",
|
|
@@ -186,63 +300,6 @@ export const EXPIRATION_PRESETS = {
|
|
|
186
300
|
days: null,
|
|
187
301
|
},
|
|
188
302
|
};
|
|
189
|
-
/**
|
|
190
|
-
* Helper functions for scope validation
|
|
191
|
-
*/
|
|
192
|
-
/**
|
|
193
|
-
* Check if a scope pattern matches a required scope
|
|
194
|
-
* Handles wildcards: "operators:*", "*:read", "*"
|
|
195
|
-
*/
|
|
196
|
-
export function scopeMatches(userScope, requiredScope) {
|
|
197
|
-
// Full wildcard
|
|
198
|
-
if (userScope === "*")
|
|
199
|
-
return true;
|
|
200
|
-
// Exact match
|
|
201
|
-
if (userScope === requiredScope)
|
|
202
|
-
return true;
|
|
203
|
-
const [userResource, userAction] = userScope.split(":");
|
|
204
|
-
const [reqResource, reqAction] = requiredScope.split(":");
|
|
205
|
-
// Resource wildcard (e.g., "operators:*" matches "operators:read")
|
|
206
|
-
if (userResource === reqResource && userAction === "*")
|
|
207
|
-
return true;
|
|
208
|
-
// Action wildcard (e.g., "*:read" matches "operators:read")
|
|
209
|
-
if (userResource === "*" && userAction === reqAction)
|
|
210
|
-
return true;
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Check if user has all required scopes
|
|
215
|
-
*/
|
|
216
|
-
export function hasScopes(userScopes, requiredScopes) {
|
|
217
|
-
return requiredScopes.every((required) => userScopes.some((userScope) => scopeMatches(userScope, required)));
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Get human-readable description of scopes
|
|
221
|
-
*/
|
|
222
|
-
export function describescopes(scopes) {
|
|
223
|
-
if (scopes.includes("*")) {
|
|
224
|
-
return "Full access to all resources";
|
|
225
|
-
}
|
|
226
|
-
if (scopes.includes("*:read") && scopes.length === 1) {
|
|
227
|
-
return "Read-only access to all resources";
|
|
228
|
-
}
|
|
229
|
-
const resources = new Set();
|
|
230
|
-
const actions = new Set();
|
|
231
|
-
for (const scope of scopes) {
|
|
232
|
-
const [resource, action] = scope.split(":");
|
|
233
|
-
if (resource && resource !== "*")
|
|
234
|
-
resources.add(resource);
|
|
235
|
-
if (action && action !== "*")
|
|
236
|
-
actions.add(action);
|
|
237
|
-
}
|
|
238
|
-
if (resources.size === 0) {
|
|
239
|
-
return `${actions.size} permission${actions.size > 1 ? "s" : ""}`;
|
|
240
|
-
}
|
|
241
|
-
return `${resources.size} resource${resources.size > 1 ? "s" : ""}`;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Calculate expiration date from preset
|
|
245
|
-
*/
|
|
246
303
|
export function calculateExpirationDate(preset, customDate) {
|
|
247
304
|
if (preset === "never")
|
|
248
305
|
return null;
|
|
@@ -255,4 +312,49 @@ export function calculateExpirationDate(preset, customDate) {
|
|
|
255
312
|
expiresAt.setDate(expiresAt.getDate() + config.days);
|
|
256
313
|
return expiresAt;
|
|
257
314
|
}
|
|
315
|
+
/** @deprecated Use API_KEY_PERMISSION_GROUPS. */
|
|
316
|
+
export const API_KEY_SCOPE_GROUPS = API_KEY_PERMISSION_GROUPS.map((group) => ({
|
|
317
|
+
...group,
|
|
318
|
+
scopes: group.permissions.map((item) => ({
|
|
319
|
+
...item,
|
|
320
|
+
scope: `${item.resource}:${item.action}`,
|
|
321
|
+
})),
|
|
322
|
+
}));
|
|
323
|
+
/** @deprecated Use API_KEY_PERMISSION_PRESETS. */
|
|
324
|
+
export const API_KEY_SCOPE_PRESETS = Object.fromEntries(Object.entries(API_KEY_PERMISSION_PRESETS).map(([key, preset]) => [
|
|
325
|
+
key,
|
|
326
|
+
{ ...preset, scopes: permissionsToStrings(preset.permissions) },
|
|
327
|
+
]));
|
|
328
|
+
/** @deprecated Use apiKeyPermissionStringSchema. */
|
|
329
|
+
export const apiKeyScopeSchema = apiKeyPermissionStringSchema;
|
|
330
|
+
/** @deprecated Use array of apiKeyPermissionStringSchema only for display strings. */
|
|
331
|
+
export const apiKeyScopesSchema = z.array(apiKeyPermissionStringSchema).default([]);
|
|
332
|
+
/** @deprecated Use permissionStringsToPermissions. */
|
|
333
|
+
export const scopesToPermissions = permissionStringsToPermissions;
|
|
334
|
+
/** @deprecated Use permissionsToStrings. */
|
|
335
|
+
export const permissionsToScopes = permissionsToStrings;
|
|
336
|
+
/** @deprecated Use permissionsToStrings. */
|
|
337
|
+
export const normalizeApiKeyScopes = permissionsToStrings;
|
|
338
|
+
/** @deprecated Use apiKeyPermissionStringSchema.parse. */
|
|
339
|
+
export function normalizeApiKeyScope(scope) {
|
|
340
|
+
const normalized = scope.trim().toLowerCase();
|
|
341
|
+
if (normalized === "*:*")
|
|
342
|
+
return "*";
|
|
343
|
+
return apiKeyPermissionStringSchema.parse(normalized);
|
|
344
|
+
}
|
|
345
|
+
/** @deprecated Use hasApiKeyPermission. */
|
|
346
|
+
export function scopeMatches(userScope, requiredScope) {
|
|
347
|
+
const [resource, action] = requiredScope.split(":");
|
|
348
|
+
if (!resource || !action)
|
|
349
|
+
return false;
|
|
350
|
+
return hasApiKeyPermission(permissionStringsToPermissions([userScope]), resource, action);
|
|
351
|
+
}
|
|
352
|
+
/** @deprecated Use hasApiKeyPermissions. */
|
|
353
|
+
export function hasScopes(userScopes, requiredScopes) {
|
|
354
|
+
return hasApiKeyPermissions(permissionStringsToPermissions(userScopes), permissionStringsToPermissions(requiredScopes));
|
|
355
|
+
}
|
|
356
|
+
/** @deprecated Use describePermissions. */
|
|
357
|
+
export const describeScopes = describePermissions;
|
|
358
|
+
/** @deprecated Use describePermissions. */
|
|
359
|
+
export const describescopes = describePermissions;
|
|
258
360
|
//# sourceMappingURL=api-keys.js.map
|
package/dist/api-keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/types",
|
|
3
|
-
"version": "0.31.
|
|
3
|
+
"version": "0.31.2",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"zod": "^4.3.6",
|
|
37
|
-
"@voyantjs/db": "0.31.
|
|
37
|
+
"@voyantjs/db": "0.31.2"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"typescript": "^6.0.2",
|