@blimu/backend 1.2.1 → 1.2.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/README.md +9 -0
- package/dist/client.cjs +43 -0
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.mts +3 -1
- package/dist/client.d.ts +3 -1
- package/dist/client.mjs +43 -0
- package/dist/client.mjs.map +1 -1
- package/dist/index.cjs +101 -92
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +31 -18
- package/dist/index.d.ts +31 -18
- package/dist/index.mjs +99 -92
- package/dist/index.mjs.map +1 -1
- package/dist/{schema-CGYqiv8k.d.mts → schema-CdEZKE7E.d.mts} +17 -2
- package/dist/{schema-CGYqiv8k.d.ts → schema-CdEZKE7E.d.ts} +17 -2
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.mts +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/services/auth_jwks.cjs +69 -0
- package/dist/services/auth_jwks.cjs.map +1 -0
- package/dist/services/auth_jwks.d.mts +13 -0
- package/dist/services/auth_jwks.d.ts +13 -0
- package/dist/services/auth_jwks.mjs +44 -0
- package/dist/services/auth_jwks.mjs.map +1 -0
- package/dist/services/bulk_resources.d.mts +1 -1
- package/dist/services/bulk_resources.d.ts +1 -1
- package/dist/services/bulk_roles.d.mts +1 -1
- package/dist/services/bulk_roles.d.ts +1 -1
- package/dist/services/entitlements.d.mts +1 -1
- package/dist/services/entitlements.d.ts +1 -1
- package/dist/services/oauth.d.mts +1 -1
- package/dist/services/oauth.d.ts +1 -1
- package/dist/services/plans.d.mts +1 -1
- package/dist/services/plans.d.ts +1 -1
- package/dist/services/resource_members.d.mts +1 -1
- package/dist/services/resource_members.d.ts +1 -1
- package/dist/services/resources.d.mts +1 -1
- package/dist/services/resources.d.ts +1 -1
- package/dist/services/roles.d.mts +1 -1
- package/dist/services/roles.d.ts +1 -1
- package/dist/services/usage.d.mts +1 -1
- package/dist/services/usage.d.ts +1 -1
- package/dist/services/users.d.mts +1 -1
- package/dist/services/users.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -2,11 +2,13 @@ export { Blimu, BlimuError, ClientOption } from './client.mjs';
|
|
|
2
2
|
export * from '@blimu/fetch';
|
|
3
3
|
export { FetchError, parseNDJSONStream, parseSSEStream } from '@blimu/fetch';
|
|
4
4
|
export { PaginableQuery, isNotUndefined, listAll, paginate } from './utils.mjs';
|
|
5
|
-
|
|
5
|
+
import { J as JWK$1 } from './schema-CdEZKE7E.mjs';
|
|
6
|
+
export { s as Schema } from './schema-CdEZKE7E.mjs';
|
|
6
7
|
import { z } from 'zod';
|
|
7
8
|
export { BulkResourcesService } from './services/bulk_resources.mjs';
|
|
8
9
|
export { BulkRolesService } from './services/bulk_roles.mjs';
|
|
9
10
|
export { EntitlementsService } from './services/entitlements.mjs';
|
|
11
|
+
export { AuthJwksService } from './services/auth_jwks.mjs';
|
|
10
12
|
export { PlansService } from './services/plans.mjs';
|
|
11
13
|
export { ResourceMembersService } from './services/resource_members.mjs';
|
|
12
14
|
export { ResourcesService } from './services/resources.mjs';
|
|
@@ -109,6 +111,16 @@ declare const IntrospectionResponseSchema: z.ZodObject<{
|
|
|
109
111
|
token_type: z.ZodOptional<z.ZodString>;
|
|
110
112
|
username: z.ZodOptional<z.ZodString>;
|
|
111
113
|
}, z.core.$strip>;
|
|
114
|
+
declare const JWKSchema: z.ZodObject<{
|
|
115
|
+
keys: z.ZodArray<z.ZodObject<{
|
|
116
|
+
alg: z.ZodString;
|
|
117
|
+
e: z.ZodString;
|
|
118
|
+
kid: z.ZodString;
|
|
119
|
+
kty: z.ZodString;
|
|
120
|
+
n: z.ZodString;
|
|
121
|
+
use: z.ZodString;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
}, z.core.$strip>;
|
|
112
124
|
declare const PlanDeleteResponseSchema: z.ZodObject<{
|
|
113
125
|
success: z.ZodBoolean;
|
|
114
126
|
}, z.core.$strip>;
|
|
@@ -471,6 +483,9 @@ declare const ResourceListSchema: z.ZodObject<{
|
|
|
471
483
|
page: z.ZodNumber;
|
|
472
484
|
total: z.ZodNumber;
|
|
473
485
|
}, z.core.$strip>;
|
|
486
|
+
declare const AuthJwksGetOAuthAppJwksQuerySchema: z.ZodObject<{
|
|
487
|
+
client_id: z.ZodOptional<z.ZodString>;
|
|
488
|
+
}, z.core.$strip>;
|
|
474
489
|
declare const EntitlementsListForResourceQuerySchema: z.ZodObject<{
|
|
475
490
|
userId: z.ZodString;
|
|
476
491
|
}, z.core.$strip>;
|
|
@@ -521,6 +536,7 @@ declare const UsersListQuerySchema: z.ZodObject<{
|
|
|
521
536
|
search: z.ZodOptional<z.ZodString>;
|
|
522
537
|
}, z.core.$strip>;
|
|
523
538
|
|
|
539
|
+
declare const schema_zod_AuthJwksGetOAuthAppJwksQuerySchema: typeof AuthJwksGetOAuthAppJwksQuerySchema;
|
|
524
540
|
declare const schema_zod_AuthorizeRequestSchema: typeof AuthorizeRequestSchema;
|
|
525
541
|
declare const schema_zod_BalanceResponseSchema: typeof BalanceResponseSchema;
|
|
526
542
|
declare const schema_zod_CheckLimitResponseSchema: typeof CheckLimitResponseSchema;
|
|
@@ -539,6 +555,7 @@ declare const schema_zod_EntitlementsListForTenantQuerySchema: typeof Entitlemen
|
|
|
539
555
|
declare const schema_zod_EntitlementsListResultSchema: typeof EntitlementsListResultSchema;
|
|
540
556
|
declare const schema_zod_IntrospectionRequestSchema: typeof IntrospectionRequestSchema;
|
|
541
557
|
declare const schema_zod_IntrospectionResponseSchema: typeof IntrospectionResponseSchema;
|
|
558
|
+
declare const schema_zod_JWKSchema: typeof JWKSchema;
|
|
542
559
|
declare const schema_zod_OauthCheckConsentRequiredQuerySchema: typeof OauthCheckConsentRequiredQuerySchema;
|
|
543
560
|
declare const schema_zod_PlanAssignBodySchema: typeof PlanAssignBodySchema;
|
|
544
561
|
declare const schema_zod_PlanDeleteResponseSchema: typeof PlanDeleteResponseSchema;
|
|
@@ -578,23 +595,14 @@ declare const schema_zod_UserSchema: typeof UserSchema;
|
|
|
578
595
|
declare const schema_zod_UserUpdateBodySchema: typeof UserUpdateBodySchema;
|
|
579
596
|
declare const schema_zod_UsersListQuerySchema: typeof UsersListQuerySchema;
|
|
580
597
|
declare namespace schema_zod {
|
|
581
|
-
export { schema_zod_AuthorizeRequestSchema as AuthorizeRequestSchema, schema_zod_BalanceResponseSchema as BalanceResponseSchema, schema_zod_CheckLimitResponseSchema as CheckLimitResponseSchema, schema_zod_ConsentCheckResponseSchema as ConsentCheckResponseSchema, schema_zod_DeviceAuthorizeRequestSchema as DeviceAuthorizeRequestSchema, schema_zod_DeviceAuthorizeResponseSchema as DeviceAuthorizeResponseSchema, schema_zod_DeviceCodeInfoResponseSchema as DeviceCodeInfoResponseSchema, schema_zod_DeviceCodeRequestSchema as DeviceCodeRequestSchema, schema_zod_DeviceCodeResponseSchema as DeviceCodeResponseSchema, schema_zod_DeviceTokenRequestSchema as DeviceTokenRequestSchema, schema_zod_EntitlementCheckBodySchema as EntitlementCheckBodySchema, schema_zod_EntitlementCheckResultSchema as EntitlementCheckResultSchema, schema_zod_EntitlementTypeSchema as EntitlementTypeSchema, schema_zod_EntitlementsListForResourceQuerySchema as EntitlementsListForResourceQuerySchema, schema_zod_EntitlementsListForTenantQuerySchema as EntitlementsListForTenantQuerySchema, schema_zod_EntitlementsListResultSchema as EntitlementsListResultSchema, schema_zod_IntrospectionRequestSchema as IntrospectionRequestSchema, schema_zod_IntrospectionResponseSchema as IntrospectionResponseSchema, schema_zod_OauthCheckConsentRequiredQuerySchema as OauthCheckConsentRequiredQuerySchema, schema_zod_PlanAssignBodySchema as PlanAssignBodySchema, schema_zod_PlanDeleteResponseSchema as PlanDeleteResponseSchema, schema_zod_PlanResponseSchema as PlanResponseSchema, schema_zod_PlanTypeSchema as PlanTypeSchema, schema_zod_ResourceBulkCreateBodySchema as ResourceBulkCreateBodySchema, schema_zod_ResourceBulkResultSchema as ResourceBulkResultSchema, schema_zod_ResourceCreateBodySchema as ResourceCreateBodySchema, schema_zod_ResourceListSchema as ResourceListSchema, schema_zod_ResourceMemberListSchema as ResourceMemberListSchema, schema_zod_ResourceMembersListQuerySchema as ResourceMembersListQuerySchema, schema_zod_ResourceSchema as ResourceSchema, schema_zod_ResourceTypeSchema as ResourceTypeSchema, schema_zod_ResourceUpdateBodySchema as ResourceUpdateBodySchema, schema_zod_ResourcesListQuerySchema as ResourcesListQuerySchema, schema_zod_RevocationRequestSchema as RevocationRequestSchema, schema_zod_RoleBulkCreateBodySchema as RoleBulkCreateBodySchema, schema_zod_RoleBulkResultSchema as RoleBulkResultSchema, schema_zod_RoleCreateBodySchema as RoleCreateBodySchema, schema_zod_RoleListSchema as RoleListSchema, schema_zod_RoleSchema as RoleSchema, schema_zod_RolesListQuerySchema as RolesListQuerySchema, schema_zod_TokenRequestSchema as TokenRequestSchema, schema_zod_TokenResponseSchema as TokenResponseSchema, schema_zod_TransactionHistoryResponseSchema as TransactionHistoryResponseSchema, schema_zod_UsageCheckBodySchema as UsageCheckBodySchema, schema_zod_UsageConsumeBodySchema as UsageConsumeBodySchema, schema_zod_UsageCreditBodySchema as UsageCreditBodySchema, schema_zod_UsageGetBalanceQuerySchema as UsageGetBalanceQuerySchema, schema_zod_UsageGetTransactionHistoryQuerySchema as UsageGetTransactionHistoryQuerySchema, schema_zod_UsageLimitTypeSchema as UsageLimitTypeSchema, schema_zod_UsageWalletResponseSchema as UsageWalletResponseSchema, schema_zod_UserCreateBodySchema as UserCreateBodySchema, schema_zod_UserListSchema as UserListSchema, schema_zod_UserResourceListSchema as UserResourceListSchema, schema_zod_UserSchema as UserSchema, schema_zod_UserUpdateBodySchema as UserUpdateBodySchema, schema_zod_UsersListQuerySchema as UsersListQuerySchema };
|
|
598
|
+
export { schema_zod_AuthJwksGetOAuthAppJwksQuerySchema as AuthJwksGetOAuthAppJwksQuerySchema, schema_zod_AuthorizeRequestSchema as AuthorizeRequestSchema, schema_zod_BalanceResponseSchema as BalanceResponseSchema, schema_zod_CheckLimitResponseSchema as CheckLimitResponseSchema, schema_zod_ConsentCheckResponseSchema as ConsentCheckResponseSchema, schema_zod_DeviceAuthorizeRequestSchema as DeviceAuthorizeRequestSchema, schema_zod_DeviceAuthorizeResponseSchema as DeviceAuthorizeResponseSchema, schema_zod_DeviceCodeInfoResponseSchema as DeviceCodeInfoResponseSchema, schema_zod_DeviceCodeRequestSchema as DeviceCodeRequestSchema, schema_zod_DeviceCodeResponseSchema as DeviceCodeResponseSchema, schema_zod_DeviceTokenRequestSchema as DeviceTokenRequestSchema, schema_zod_EntitlementCheckBodySchema as EntitlementCheckBodySchema, schema_zod_EntitlementCheckResultSchema as EntitlementCheckResultSchema, schema_zod_EntitlementTypeSchema as EntitlementTypeSchema, schema_zod_EntitlementsListForResourceQuerySchema as EntitlementsListForResourceQuerySchema, schema_zod_EntitlementsListForTenantQuerySchema as EntitlementsListForTenantQuerySchema, schema_zod_EntitlementsListResultSchema as EntitlementsListResultSchema, schema_zod_IntrospectionRequestSchema as IntrospectionRequestSchema, schema_zod_IntrospectionResponseSchema as IntrospectionResponseSchema, schema_zod_JWKSchema as JWKSchema, schema_zod_OauthCheckConsentRequiredQuerySchema as OauthCheckConsentRequiredQuerySchema, schema_zod_PlanAssignBodySchema as PlanAssignBodySchema, schema_zod_PlanDeleteResponseSchema as PlanDeleteResponseSchema, schema_zod_PlanResponseSchema as PlanResponseSchema, schema_zod_PlanTypeSchema as PlanTypeSchema, schema_zod_ResourceBulkCreateBodySchema as ResourceBulkCreateBodySchema, schema_zod_ResourceBulkResultSchema as ResourceBulkResultSchema, schema_zod_ResourceCreateBodySchema as ResourceCreateBodySchema, schema_zod_ResourceListSchema as ResourceListSchema, schema_zod_ResourceMemberListSchema as ResourceMemberListSchema, schema_zod_ResourceMembersListQuerySchema as ResourceMembersListQuerySchema, schema_zod_ResourceSchema as ResourceSchema, schema_zod_ResourceTypeSchema as ResourceTypeSchema, schema_zod_ResourceUpdateBodySchema as ResourceUpdateBodySchema, schema_zod_ResourcesListQuerySchema as ResourcesListQuerySchema, schema_zod_RevocationRequestSchema as RevocationRequestSchema, schema_zod_RoleBulkCreateBodySchema as RoleBulkCreateBodySchema, schema_zod_RoleBulkResultSchema as RoleBulkResultSchema, schema_zod_RoleCreateBodySchema as RoleCreateBodySchema, schema_zod_RoleListSchema as RoleListSchema, schema_zod_RoleSchema as RoleSchema, schema_zod_RolesListQuerySchema as RolesListQuerySchema, schema_zod_TokenRequestSchema as TokenRequestSchema, schema_zod_TokenResponseSchema as TokenResponseSchema, schema_zod_TransactionHistoryResponseSchema as TransactionHistoryResponseSchema, schema_zod_UsageCheckBodySchema as UsageCheckBodySchema, schema_zod_UsageConsumeBodySchema as UsageConsumeBodySchema, schema_zod_UsageCreditBodySchema as UsageCreditBodySchema, schema_zod_UsageGetBalanceQuerySchema as UsageGetBalanceQuerySchema, schema_zod_UsageGetTransactionHistoryQuerySchema as UsageGetTransactionHistoryQuerySchema, schema_zod_UsageLimitTypeSchema as UsageLimitTypeSchema, schema_zod_UsageWalletResponseSchema as UsageWalletResponseSchema, schema_zod_UserCreateBodySchema as UserCreateBodySchema, schema_zod_UserListSchema as UserListSchema, schema_zod_UserResourceListSchema as UserResourceListSchema, schema_zod_UserSchema as UserSchema, schema_zod_UserUpdateBodySchema as UserUpdateBodySchema, schema_zod_UsersListQuerySchema as UsersListQuerySchema };
|
|
582
599
|
}
|
|
583
600
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
use: string;
|
|
587
|
-
kid: string;
|
|
588
|
-
alg: string;
|
|
589
|
-
n: string;
|
|
590
|
-
e: string;
|
|
591
|
-
}
|
|
592
|
-
interface JWKSet {
|
|
593
|
-
keys: JWK[];
|
|
594
|
-
}
|
|
601
|
+
type JWK = JWK$1['keys'][number];
|
|
602
|
+
type JWKSet = JWK$1;
|
|
595
603
|
interface VerifyTokenOptions {
|
|
596
|
-
url?: string;
|
|
597
604
|
secretKey?: string;
|
|
605
|
+
clientId?: string;
|
|
598
606
|
token: string;
|
|
599
607
|
runtimeApiUrl?: string | undefined;
|
|
600
608
|
}
|
|
@@ -605,14 +613,19 @@ interface TokenVerifierOptions {
|
|
|
605
613
|
declare class TokenVerifier {
|
|
606
614
|
private readonly cache;
|
|
607
615
|
private readonly cacheTTL;
|
|
608
|
-
private readonly
|
|
616
|
+
private readonly baseURL;
|
|
609
617
|
constructor(options?: TokenVerifierOptions);
|
|
610
|
-
private fetchJWKSet;
|
|
611
618
|
private jwkToKeyObject;
|
|
612
619
|
private getPublicKey;
|
|
613
620
|
verifyToken<T = unknown>(options: VerifyTokenOptions): Promise<T>;
|
|
614
|
-
clearCache(
|
|
621
|
+
clearCache(cacheKey?: string): void;
|
|
615
622
|
}
|
|
616
623
|
declare function verifyToken<T = unknown>(options: VerifyTokenOptions): Promise<T>;
|
|
624
|
+
interface VerifyOAuthTokenOptions {
|
|
625
|
+
token: string;
|
|
626
|
+
clientId: string;
|
|
627
|
+
runtimeApiUrl?: string | undefined;
|
|
628
|
+
}
|
|
629
|
+
declare function verifyOAuthToken<T = unknown>(options: VerifyOAuthTokenOptions): Promise<T>;
|
|
617
630
|
|
|
618
|
-
export { type JWK, type JWKSet, TokenVerifier, type TokenVerifierOptions, type VerifyTokenOptions, schema_zod as ZodSchema, verifyToken };
|
|
631
|
+
export { type JWK, type JWKSet, TokenVerifier, type TokenVerifierOptions, type VerifyOAuthTokenOptions, type VerifyTokenOptions, schema_zod as ZodSchema, verifyOAuthToken, verifyToken };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,11 +2,13 @@ export { Blimu, BlimuError, ClientOption } from './client.js';
|
|
|
2
2
|
export * from '@blimu/fetch';
|
|
3
3
|
export { FetchError, parseNDJSONStream, parseSSEStream } from '@blimu/fetch';
|
|
4
4
|
export { PaginableQuery, isNotUndefined, listAll, paginate } from './utils.js';
|
|
5
|
-
|
|
5
|
+
import { J as JWK$1 } from './schema-CdEZKE7E.js';
|
|
6
|
+
export { s as Schema } from './schema-CdEZKE7E.js';
|
|
6
7
|
import { z } from 'zod';
|
|
7
8
|
export { BulkResourcesService } from './services/bulk_resources.js';
|
|
8
9
|
export { BulkRolesService } from './services/bulk_roles.js';
|
|
9
10
|
export { EntitlementsService } from './services/entitlements.js';
|
|
11
|
+
export { AuthJwksService } from './services/auth_jwks.js';
|
|
10
12
|
export { PlansService } from './services/plans.js';
|
|
11
13
|
export { ResourceMembersService } from './services/resource_members.js';
|
|
12
14
|
export { ResourcesService } from './services/resources.js';
|
|
@@ -109,6 +111,16 @@ declare const IntrospectionResponseSchema: z.ZodObject<{
|
|
|
109
111
|
token_type: z.ZodOptional<z.ZodString>;
|
|
110
112
|
username: z.ZodOptional<z.ZodString>;
|
|
111
113
|
}, z.core.$strip>;
|
|
114
|
+
declare const JWKSchema: z.ZodObject<{
|
|
115
|
+
keys: z.ZodArray<z.ZodObject<{
|
|
116
|
+
alg: z.ZodString;
|
|
117
|
+
e: z.ZodString;
|
|
118
|
+
kid: z.ZodString;
|
|
119
|
+
kty: z.ZodString;
|
|
120
|
+
n: z.ZodString;
|
|
121
|
+
use: z.ZodString;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
}, z.core.$strip>;
|
|
112
124
|
declare const PlanDeleteResponseSchema: z.ZodObject<{
|
|
113
125
|
success: z.ZodBoolean;
|
|
114
126
|
}, z.core.$strip>;
|
|
@@ -471,6 +483,9 @@ declare const ResourceListSchema: z.ZodObject<{
|
|
|
471
483
|
page: z.ZodNumber;
|
|
472
484
|
total: z.ZodNumber;
|
|
473
485
|
}, z.core.$strip>;
|
|
486
|
+
declare const AuthJwksGetOAuthAppJwksQuerySchema: z.ZodObject<{
|
|
487
|
+
client_id: z.ZodOptional<z.ZodString>;
|
|
488
|
+
}, z.core.$strip>;
|
|
474
489
|
declare const EntitlementsListForResourceQuerySchema: z.ZodObject<{
|
|
475
490
|
userId: z.ZodString;
|
|
476
491
|
}, z.core.$strip>;
|
|
@@ -521,6 +536,7 @@ declare const UsersListQuerySchema: z.ZodObject<{
|
|
|
521
536
|
search: z.ZodOptional<z.ZodString>;
|
|
522
537
|
}, z.core.$strip>;
|
|
523
538
|
|
|
539
|
+
declare const schema_zod_AuthJwksGetOAuthAppJwksQuerySchema: typeof AuthJwksGetOAuthAppJwksQuerySchema;
|
|
524
540
|
declare const schema_zod_AuthorizeRequestSchema: typeof AuthorizeRequestSchema;
|
|
525
541
|
declare const schema_zod_BalanceResponseSchema: typeof BalanceResponseSchema;
|
|
526
542
|
declare const schema_zod_CheckLimitResponseSchema: typeof CheckLimitResponseSchema;
|
|
@@ -539,6 +555,7 @@ declare const schema_zod_EntitlementsListForTenantQuerySchema: typeof Entitlemen
|
|
|
539
555
|
declare const schema_zod_EntitlementsListResultSchema: typeof EntitlementsListResultSchema;
|
|
540
556
|
declare const schema_zod_IntrospectionRequestSchema: typeof IntrospectionRequestSchema;
|
|
541
557
|
declare const schema_zod_IntrospectionResponseSchema: typeof IntrospectionResponseSchema;
|
|
558
|
+
declare const schema_zod_JWKSchema: typeof JWKSchema;
|
|
542
559
|
declare const schema_zod_OauthCheckConsentRequiredQuerySchema: typeof OauthCheckConsentRequiredQuerySchema;
|
|
543
560
|
declare const schema_zod_PlanAssignBodySchema: typeof PlanAssignBodySchema;
|
|
544
561
|
declare const schema_zod_PlanDeleteResponseSchema: typeof PlanDeleteResponseSchema;
|
|
@@ -578,23 +595,14 @@ declare const schema_zod_UserSchema: typeof UserSchema;
|
|
|
578
595
|
declare const schema_zod_UserUpdateBodySchema: typeof UserUpdateBodySchema;
|
|
579
596
|
declare const schema_zod_UsersListQuerySchema: typeof UsersListQuerySchema;
|
|
580
597
|
declare namespace schema_zod {
|
|
581
|
-
export { schema_zod_AuthorizeRequestSchema as AuthorizeRequestSchema, schema_zod_BalanceResponseSchema as BalanceResponseSchema, schema_zod_CheckLimitResponseSchema as CheckLimitResponseSchema, schema_zod_ConsentCheckResponseSchema as ConsentCheckResponseSchema, schema_zod_DeviceAuthorizeRequestSchema as DeviceAuthorizeRequestSchema, schema_zod_DeviceAuthorizeResponseSchema as DeviceAuthorizeResponseSchema, schema_zod_DeviceCodeInfoResponseSchema as DeviceCodeInfoResponseSchema, schema_zod_DeviceCodeRequestSchema as DeviceCodeRequestSchema, schema_zod_DeviceCodeResponseSchema as DeviceCodeResponseSchema, schema_zod_DeviceTokenRequestSchema as DeviceTokenRequestSchema, schema_zod_EntitlementCheckBodySchema as EntitlementCheckBodySchema, schema_zod_EntitlementCheckResultSchema as EntitlementCheckResultSchema, schema_zod_EntitlementTypeSchema as EntitlementTypeSchema, schema_zod_EntitlementsListForResourceQuerySchema as EntitlementsListForResourceQuerySchema, schema_zod_EntitlementsListForTenantQuerySchema as EntitlementsListForTenantQuerySchema, schema_zod_EntitlementsListResultSchema as EntitlementsListResultSchema, schema_zod_IntrospectionRequestSchema as IntrospectionRequestSchema, schema_zod_IntrospectionResponseSchema as IntrospectionResponseSchema, schema_zod_OauthCheckConsentRequiredQuerySchema as OauthCheckConsentRequiredQuerySchema, schema_zod_PlanAssignBodySchema as PlanAssignBodySchema, schema_zod_PlanDeleteResponseSchema as PlanDeleteResponseSchema, schema_zod_PlanResponseSchema as PlanResponseSchema, schema_zod_PlanTypeSchema as PlanTypeSchema, schema_zod_ResourceBulkCreateBodySchema as ResourceBulkCreateBodySchema, schema_zod_ResourceBulkResultSchema as ResourceBulkResultSchema, schema_zod_ResourceCreateBodySchema as ResourceCreateBodySchema, schema_zod_ResourceListSchema as ResourceListSchema, schema_zod_ResourceMemberListSchema as ResourceMemberListSchema, schema_zod_ResourceMembersListQuerySchema as ResourceMembersListQuerySchema, schema_zod_ResourceSchema as ResourceSchema, schema_zod_ResourceTypeSchema as ResourceTypeSchema, schema_zod_ResourceUpdateBodySchema as ResourceUpdateBodySchema, schema_zod_ResourcesListQuerySchema as ResourcesListQuerySchema, schema_zod_RevocationRequestSchema as RevocationRequestSchema, schema_zod_RoleBulkCreateBodySchema as RoleBulkCreateBodySchema, schema_zod_RoleBulkResultSchema as RoleBulkResultSchema, schema_zod_RoleCreateBodySchema as RoleCreateBodySchema, schema_zod_RoleListSchema as RoleListSchema, schema_zod_RoleSchema as RoleSchema, schema_zod_RolesListQuerySchema as RolesListQuerySchema, schema_zod_TokenRequestSchema as TokenRequestSchema, schema_zod_TokenResponseSchema as TokenResponseSchema, schema_zod_TransactionHistoryResponseSchema as TransactionHistoryResponseSchema, schema_zod_UsageCheckBodySchema as UsageCheckBodySchema, schema_zod_UsageConsumeBodySchema as UsageConsumeBodySchema, schema_zod_UsageCreditBodySchema as UsageCreditBodySchema, schema_zod_UsageGetBalanceQuerySchema as UsageGetBalanceQuerySchema, schema_zod_UsageGetTransactionHistoryQuerySchema as UsageGetTransactionHistoryQuerySchema, schema_zod_UsageLimitTypeSchema as UsageLimitTypeSchema, schema_zod_UsageWalletResponseSchema as UsageWalletResponseSchema, schema_zod_UserCreateBodySchema as UserCreateBodySchema, schema_zod_UserListSchema as UserListSchema, schema_zod_UserResourceListSchema as UserResourceListSchema, schema_zod_UserSchema as UserSchema, schema_zod_UserUpdateBodySchema as UserUpdateBodySchema, schema_zod_UsersListQuerySchema as UsersListQuerySchema };
|
|
598
|
+
export { schema_zod_AuthJwksGetOAuthAppJwksQuerySchema as AuthJwksGetOAuthAppJwksQuerySchema, schema_zod_AuthorizeRequestSchema as AuthorizeRequestSchema, schema_zod_BalanceResponseSchema as BalanceResponseSchema, schema_zod_CheckLimitResponseSchema as CheckLimitResponseSchema, schema_zod_ConsentCheckResponseSchema as ConsentCheckResponseSchema, schema_zod_DeviceAuthorizeRequestSchema as DeviceAuthorizeRequestSchema, schema_zod_DeviceAuthorizeResponseSchema as DeviceAuthorizeResponseSchema, schema_zod_DeviceCodeInfoResponseSchema as DeviceCodeInfoResponseSchema, schema_zod_DeviceCodeRequestSchema as DeviceCodeRequestSchema, schema_zod_DeviceCodeResponseSchema as DeviceCodeResponseSchema, schema_zod_DeviceTokenRequestSchema as DeviceTokenRequestSchema, schema_zod_EntitlementCheckBodySchema as EntitlementCheckBodySchema, schema_zod_EntitlementCheckResultSchema as EntitlementCheckResultSchema, schema_zod_EntitlementTypeSchema as EntitlementTypeSchema, schema_zod_EntitlementsListForResourceQuerySchema as EntitlementsListForResourceQuerySchema, schema_zod_EntitlementsListForTenantQuerySchema as EntitlementsListForTenantQuerySchema, schema_zod_EntitlementsListResultSchema as EntitlementsListResultSchema, schema_zod_IntrospectionRequestSchema as IntrospectionRequestSchema, schema_zod_IntrospectionResponseSchema as IntrospectionResponseSchema, schema_zod_JWKSchema as JWKSchema, schema_zod_OauthCheckConsentRequiredQuerySchema as OauthCheckConsentRequiredQuerySchema, schema_zod_PlanAssignBodySchema as PlanAssignBodySchema, schema_zod_PlanDeleteResponseSchema as PlanDeleteResponseSchema, schema_zod_PlanResponseSchema as PlanResponseSchema, schema_zod_PlanTypeSchema as PlanTypeSchema, schema_zod_ResourceBulkCreateBodySchema as ResourceBulkCreateBodySchema, schema_zod_ResourceBulkResultSchema as ResourceBulkResultSchema, schema_zod_ResourceCreateBodySchema as ResourceCreateBodySchema, schema_zod_ResourceListSchema as ResourceListSchema, schema_zod_ResourceMemberListSchema as ResourceMemberListSchema, schema_zod_ResourceMembersListQuerySchema as ResourceMembersListQuerySchema, schema_zod_ResourceSchema as ResourceSchema, schema_zod_ResourceTypeSchema as ResourceTypeSchema, schema_zod_ResourceUpdateBodySchema as ResourceUpdateBodySchema, schema_zod_ResourcesListQuerySchema as ResourcesListQuerySchema, schema_zod_RevocationRequestSchema as RevocationRequestSchema, schema_zod_RoleBulkCreateBodySchema as RoleBulkCreateBodySchema, schema_zod_RoleBulkResultSchema as RoleBulkResultSchema, schema_zod_RoleCreateBodySchema as RoleCreateBodySchema, schema_zod_RoleListSchema as RoleListSchema, schema_zod_RoleSchema as RoleSchema, schema_zod_RolesListQuerySchema as RolesListQuerySchema, schema_zod_TokenRequestSchema as TokenRequestSchema, schema_zod_TokenResponseSchema as TokenResponseSchema, schema_zod_TransactionHistoryResponseSchema as TransactionHistoryResponseSchema, schema_zod_UsageCheckBodySchema as UsageCheckBodySchema, schema_zod_UsageConsumeBodySchema as UsageConsumeBodySchema, schema_zod_UsageCreditBodySchema as UsageCreditBodySchema, schema_zod_UsageGetBalanceQuerySchema as UsageGetBalanceQuerySchema, schema_zod_UsageGetTransactionHistoryQuerySchema as UsageGetTransactionHistoryQuerySchema, schema_zod_UsageLimitTypeSchema as UsageLimitTypeSchema, schema_zod_UsageWalletResponseSchema as UsageWalletResponseSchema, schema_zod_UserCreateBodySchema as UserCreateBodySchema, schema_zod_UserListSchema as UserListSchema, schema_zod_UserResourceListSchema as UserResourceListSchema, schema_zod_UserSchema as UserSchema, schema_zod_UserUpdateBodySchema as UserUpdateBodySchema, schema_zod_UsersListQuerySchema as UsersListQuerySchema };
|
|
582
599
|
}
|
|
583
600
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
use: string;
|
|
587
|
-
kid: string;
|
|
588
|
-
alg: string;
|
|
589
|
-
n: string;
|
|
590
|
-
e: string;
|
|
591
|
-
}
|
|
592
|
-
interface JWKSet {
|
|
593
|
-
keys: JWK[];
|
|
594
|
-
}
|
|
601
|
+
type JWK = JWK$1['keys'][number];
|
|
602
|
+
type JWKSet = JWK$1;
|
|
595
603
|
interface VerifyTokenOptions {
|
|
596
|
-
url?: string;
|
|
597
604
|
secretKey?: string;
|
|
605
|
+
clientId?: string;
|
|
598
606
|
token: string;
|
|
599
607
|
runtimeApiUrl?: string | undefined;
|
|
600
608
|
}
|
|
@@ -605,14 +613,19 @@ interface TokenVerifierOptions {
|
|
|
605
613
|
declare class TokenVerifier {
|
|
606
614
|
private readonly cache;
|
|
607
615
|
private readonly cacheTTL;
|
|
608
|
-
private readonly
|
|
616
|
+
private readonly baseURL;
|
|
609
617
|
constructor(options?: TokenVerifierOptions);
|
|
610
|
-
private fetchJWKSet;
|
|
611
618
|
private jwkToKeyObject;
|
|
612
619
|
private getPublicKey;
|
|
613
620
|
verifyToken<T = unknown>(options: VerifyTokenOptions): Promise<T>;
|
|
614
|
-
clearCache(
|
|
621
|
+
clearCache(cacheKey?: string): void;
|
|
615
622
|
}
|
|
616
623
|
declare function verifyToken<T = unknown>(options: VerifyTokenOptions): Promise<T>;
|
|
624
|
+
interface VerifyOAuthTokenOptions {
|
|
625
|
+
token: string;
|
|
626
|
+
clientId: string;
|
|
627
|
+
runtimeApiUrl?: string | undefined;
|
|
628
|
+
}
|
|
629
|
+
declare function verifyOAuthToken<T = unknown>(options: VerifyOAuthTokenOptions): Promise<T>;
|
|
617
630
|
|
|
618
|
-
export { type JWK, type JWKSet, TokenVerifier, type TokenVerifierOptions, type VerifyTokenOptions, schema_zod as ZodSchema, verifyToken };
|
|
631
|
+
export { type JWK, type JWKSet, TokenVerifier, type TokenVerifierOptions, type VerifyOAuthTokenOptions, type VerifyTokenOptions, schema_zod as ZodSchema, verifyOAuthToken, verifyToken };
|
package/dist/index.mjs
CHANGED
|
@@ -22,6 +22,47 @@ function buildAuthStrategies(cfg) {
|
|
|
22
22
|
return authStrategies;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
// src/services/auth_jwks.ts
|
|
26
|
+
var AuthJwksService = class {
|
|
27
|
+
constructor(core) {
|
|
28
|
+
this.core = core;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* GET /v1/auth/.well-known/jwks.json*
|
|
32
|
+
* @summary Get JSON Web Key Set for environment (Public)*
|
|
33
|
+
* @description Returns the public keys used to verify JWT tokens issued by this environment. Authenticate using either x-api-key header (secretKey) or x-blimu-publishable-key header (publishableKey).*/
|
|
34
|
+
getJwks(init) {
|
|
35
|
+
return this.core.request({
|
|
36
|
+
method: "GET",
|
|
37
|
+
path: `/v1/auth/.well-known/jwks.json`,
|
|
38
|
+
...init ?? {}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* GET /v1/auth/.well-known/public-key.pem*
|
|
43
|
+
* @summary Get environment public key (PEM)*
|
|
44
|
+
* @description Returns the public key in PEM format for verifying JWT tokens. Authenticate with x-api-key or x-blimu-publishable-key.*/
|
|
45
|
+
getPublicKeyPem(init) {
|
|
46
|
+
return this.core.request({
|
|
47
|
+
method: "GET",
|
|
48
|
+
path: `/v1/auth/.well-known/public-key.pem`,
|
|
49
|
+
...init ?? {}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* GET /v1/auth/oauth/.well-known/jwks.json*
|
|
54
|
+
* @summary Get JSON Web Key Set for OAuth app (Public)*
|
|
55
|
+
* @description Returns the public key for a specific OAuth app to verify JWT tokens. This is a public endpoint following OAuth2/OIDC standards. Provide client_id to get keys for a specific OAuth app, or use authenticated endpoint for environment keys.*/
|
|
56
|
+
getOAuthAppJwks(query, init) {
|
|
57
|
+
return this.core.request({
|
|
58
|
+
method: "GET",
|
|
59
|
+
path: `/v1/auth/oauth/.well-known/jwks.json`,
|
|
60
|
+
query,
|
|
61
|
+
...init ?? {}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
25
66
|
// src/services/bulk_resources.ts
|
|
26
67
|
var BulkResourcesService = class {
|
|
27
68
|
constructor(core) {
|
|
@@ -529,6 +570,7 @@ var UsersService = class {
|
|
|
529
570
|
|
|
530
571
|
// src/client.ts
|
|
531
572
|
var Blimu = class {
|
|
573
|
+
authJwks;
|
|
532
574
|
bulkResources;
|
|
533
575
|
bulkRoles;
|
|
534
576
|
entitlements;
|
|
@@ -548,6 +590,7 @@ var Blimu = class {
|
|
|
548
590
|
baseURL: options?.baseURL ?? "https://api.blimu.dev",
|
|
549
591
|
...authStrategies.length > 0 ? { authStrategies } : {}
|
|
550
592
|
});
|
|
593
|
+
this.authJwks = new AuthJwksService(core);
|
|
551
594
|
this.bulkResources = new BulkResourcesService(core);
|
|
552
595
|
this.bulkRoles = new BulkRolesService(core);
|
|
553
596
|
this.entitlements = new EntitlementsService(core);
|
|
@@ -598,6 +641,7 @@ var schema_exports = {};
|
|
|
598
641
|
// src/schema.zod.ts
|
|
599
642
|
var schema_zod_exports = {};
|
|
600
643
|
__export(schema_zod_exports, {
|
|
644
|
+
AuthJwksGetOAuthAppJwksQuerySchema: () => AuthJwksGetOAuthAppJwksQuerySchema,
|
|
601
645
|
AuthorizeRequestSchema: () => AuthorizeRequestSchema,
|
|
602
646
|
BalanceResponseSchema: () => BalanceResponseSchema,
|
|
603
647
|
CheckLimitResponseSchema: () => CheckLimitResponseSchema,
|
|
@@ -616,6 +660,7 @@ __export(schema_zod_exports, {
|
|
|
616
660
|
EntitlementsListResultSchema: () => EntitlementsListResultSchema,
|
|
617
661
|
IntrospectionRequestSchema: () => IntrospectionRequestSchema,
|
|
618
662
|
IntrospectionResponseSchema: () => IntrospectionResponseSchema,
|
|
663
|
+
JWKSchema: () => JWKSchema,
|
|
619
664
|
OauthCheckConsentRequiredQuerySchema: () => OauthCheckConsentRequiredQuerySchema,
|
|
620
665
|
PlanAssignBodySchema: () => PlanAssignBodySchema,
|
|
621
666
|
PlanDeleteResponseSchema: () => PlanDeleteResponseSchema,
|
|
@@ -781,6 +826,16 @@ var IntrospectionResponseSchema = z.object({
|
|
|
781
826
|
/** Username or user ID */
|
|
782
827
|
username: z.string().optional()
|
|
783
828
|
});
|
|
829
|
+
var JWKSchema = z.object({
|
|
830
|
+
keys: z.object({
|
|
831
|
+
alg: z.string(),
|
|
832
|
+
e: z.string(),
|
|
833
|
+
kid: z.string(),
|
|
834
|
+
kty: z.string(),
|
|
835
|
+
n: z.string(),
|
|
836
|
+
use: z.string()
|
|
837
|
+
}).array()
|
|
838
|
+
});
|
|
784
839
|
var PlanDeleteResponseSchema = z.object({ success: z.boolean() });
|
|
785
840
|
var ResourceMemberListSchema = z.object({
|
|
786
841
|
items: z.object({
|
|
@@ -1138,6 +1193,10 @@ var ResourceListSchema = z.object({
|
|
|
1138
1193
|
page: z.number(),
|
|
1139
1194
|
total: z.number()
|
|
1140
1195
|
});
|
|
1196
|
+
var AuthJwksGetOAuthAppJwksQuerySchema = z.object({
|
|
1197
|
+
/** OAuth app client ID to get public keys for */
|
|
1198
|
+
client_id: z.string().optional()
|
|
1199
|
+
});
|
|
1141
1200
|
var EntitlementsListForResourceQuerySchema = z.object({
|
|
1142
1201
|
/** The unique identifier of the user */
|
|
1143
1202
|
userId: z.string()
|
|
@@ -1206,40 +1265,14 @@ var UsersListQuerySchema = z.object({
|
|
|
1206
1265
|
// src/token-verifier.ts
|
|
1207
1266
|
import * as crypto from "crypto";
|
|
1208
1267
|
import * as jwt from "jsonwebtoken";
|
|
1268
|
+
import { FetchClient as FetchClient2 } from "@blimu/fetch";
|
|
1209
1269
|
var TokenVerifier = class {
|
|
1210
1270
|
cache = /* @__PURE__ */ new Map();
|
|
1211
1271
|
cacheTTL;
|
|
1212
|
-
|
|
1272
|
+
baseURL;
|
|
1213
1273
|
constructor(options) {
|
|
1214
1274
|
this.cacheTTL = options?.cacheTTL ?? 60 * 60 * 1e3;
|
|
1215
|
-
this.
|
|
1216
|
-
}
|
|
1217
|
-
/**
|
|
1218
|
-
* Fetch JWK Set from runtime-api
|
|
1219
|
-
*/
|
|
1220
|
-
async fetchJWKSet(endpoint, headers) {
|
|
1221
|
-
console.log(`[TokenVerifier] \u{1F4E1} Fetching JWK Set from: ${endpoint}`);
|
|
1222
|
-
if (headers) {
|
|
1223
|
-
console.log(
|
|
1224
|
-
`[TokenVerifier] \u{1F4E1} Request headers: ${JSON.stringify(Object.keys(headers).map((k) => `${k}: ${k === "x-api-key" ? "***" : headers[k]}`))}`
|
|
1225
|
-
);
|
|
1226
|
-
}
|
|
1227
|
-
const response = await fetch(endpoint, {
|
|
1228
|
-
method: "GET",
|
|
1229
|
-
headers: {
|
|
1230
|
-
"Content-Type": "application/json",
|
|
1231
|
-
...headers
|
|
1232
|
-
}
|
|
1233
|
-
});
|
|
1234
|
-
console.log(`[TokenVerifier] \u{1F4E1} Response status: ${response.status} ${response.statusText}`);
|
|
1235
|
-
if (!response.ok) {
|
|
1236
|
-
const errorText = await response.text();
|
|
1237
|
-
console.error(`[TokenVerifier] \u274C Failed to fetch JWKs: ${response.status} ${errorText}`);
|
|
1238
|
-
throw new FetchError("Failed to fetch JWKs", response.status, errorText);
|
|
1239
|
-
}
|
|
1240
|
-
const jwkSet = await response.json();
|
|
1241
|
-
console.log(`[TokenVerifier] \u2705 Successfully fetched JWK Set with ${jwkSet.keys.length} keys`);
|
|
1242
|
-
return jwkSet;
|
|
1275
|
+
this.baseURL = options?.runtimeApiUrl ?? "https://api.blimu.dev";
|
|
1243
1276
|
}
|
|
1244
1277
|
/**
|
|
1245
1278
|
* Convert JWK to KeyObject
|
|
@@ -1258,25 +1291,19 @@ var TokenVerifier = class {
|
|
|
1258
1291
|
/**
|
|
1259
1292
|
* Get public key for a specific key ID
|
|
1260
1293
|
*/
|
|
1261
|
-
async getPublicKey(kid, cacheKey,
|
|
1294
|
+
async getPublicKey(kid, cacheKey, fetchJwks) {
|
|
1262
1295
|
const cached = this.cache.get(cacheKey);
|
|
1263
1296
|
if (cached && cached.expiresAt > Date.now()) {
|
|
1264
|
-
console.log(`[TokenVerifier] \u2705 Using cached key for kid: ${kid}`);
|
|
1265
1297
|
return cached.key;
|
|
1266
1298
|
}
|
|
1267
|
-
|
|
1268
|
-
const jwkSet = await this.fetchJWKSet(endpoint, headers);
|
|
1299
|
+
const jwkSet = await fetchJwks();
|
|
1269
1300
|
const jwk = jwkSet.keys.find((k) => k.kid === kid);
|
|
1270
1301
|
if (!jwk) {
|
|
1271
1302
|
const availableKids = jwkSet.keys.map((k) => k.kid).join(", ");
|
|
1272
|
-
console.error(
|
|
1273
|
-
`[TokenVerifier] \u274C Key with kid '${kid}' not found in JWK Set. Available kids: ${availableKids}`
|
|
1274
|
-
);
|
|
1275
1303
|
throw new Error(
|
|
1276
1304
|
`Key with kid '${kid}' not found in JWK Set. Available kids: ${availableKids}`
|
|
1277
1305
|
);
|
|
1278
1306
|
}
|
|
1279
|
-
console.log(`[TokenVerifier] \u2705 Found key with kid: ${kid}`);
|
|
1280
1307
|
const keyObject = this.jwkToKeyObject(jwk);
|
|
1281
1308
|
this.cache.set(cacheKey, {
|
|
1282
1309
|
key: keyObject,
|
|
@@ -1286,15 +1313,16 @@ var TokenVerifier = class {
|
|
|
1286
1313
|
return keyObject;
|
|
1287
1314
|
}
|
|
1288
1315
|
/**
|
|
1289
|
-
* Verify JWT token using JWKs from runtime
|
|
1316
|
+
* Verify JWT token using JWKs from Blimu runtime API.
|
|
1317
|
+
* Supports: environment/session tokens (secretKey) or OAuth app tokens (clientId).
|
|
1290
1318
|
*/
|
|
1291
1319
|
async verifyToken(options) {
|
|
1292
|
-
const {
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1320
|
+
const { secretKey, clientId, token, runtimeApiUrl } = options;
|
|
1321
|
+
const provided = [secretKey, clientId].filter(Boolean);
|
|
1322
|
+
if (provided.length !== 1) {
|
|
1323
|
+
throw new Error(
|
|
1324
|
+
"Exactly one of secretKey or clientId must be provided. Use secretKey for environment/session tokens, clientId for OAuth app access tokens."
|
|
1325
|
+
);
|
|
1298
1326
|
}
|
|
1299
1327
|
const decoded = jwt.decode(token, { complete: true });
|
|
1300
1328
|
if (!decoded || typeof decoded === "string") {
|
|
@@ -1304,67 +1332,38 @@ var TokenVerifier = class {
|
|
|
1304
1332
|
if (!header.kid) {
|
|
1305
1333
|
throw new Error("Token missing kid in header");
|
|
1306
1334
|
}
|
|
1307
|
-
|
|
1335
|
+
const baseURL = runtimeApiUrl ?? this.baseURL;
|
|
1308
1336
|
let cacheKey;
|
|
1309
|
-
let
|
|
1337
|
+
let fetchJwks;
|
|
1310
1338
|
if (secretKey) {
|
|
1311
|
-
const apiUrl = runtimeApiUrl ?? this.runtimeApiUrl;
|
|
1312
|
-
endpoint = `${apiUrl}/v1/auth/.well-known/jwks.json`;
|
|
1313
1339
|
cacheKey = secretKey;
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
);
|
|
1340
|
+
const core = new FetchClient2({
|
|
1341
|
+
baseURL,
|
|
1342
|
+
authStrategies: buildAuthStrategies({ apiKey: secretKey, baseURL })
|
|
1343
|
+
});
|
|
1344
|
+
const authJwks = new AuthJwksService(core);
|
|
1345
|
+
fetchJwks = () => authJwks.getJwks();
|
|
1320
1346
|
} else {
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
);
|
|
1347
|
+
cacheKey = `oauth:${clientId}`;
|
|
1348
|
+
const core = new FetchClient2({ baseURL });
|
|
1349
|
+
const authJwks = new AuthJwksService(core);
|
|
1350
|
+
fetchJwks = () => authJwks.getOAuthAppJwks({ client_id: clientId });
|
|
1326
1351
|
}
|
|
1327
1352
|
let publicKey;
|
|
1328
1353
|
try {
|
|
1329
|
-
publicKey = await this.getPublicKey(header.kid, cacheKey,
|
|
1330
|
-
|
|
1331
|
-
} catch (error) {
|
|
1332
|
-
console.error(
|
|
1333
|
-
`[TokenVerifier] \u274C Failed to get public key (first attempt): ${error instanceof Error ? error.message : String(error)}`
|
|
1334
|
-
);
|
|
1354
|
+
publicKey = await this.getPublicKey(header.kid, cacheKey, fetchJwks);
|
|
1355
|
+
} catch {
|
|
1335
1356
|
this.clearCache(cacheKey);
|
|
1336
|
-
|
|
1337
|
-
try {
|
|
1338
|
-
publicKey = await this.getPublicKey(header.kid, cacheKey, endpoint, headers);
|
|
1339
|
-
console.log(
|
|
1340
|
-
`[TokenVerifier] \u2705 Successfully retrieved public key for kid: ${header.kid} (retry)`
|
|
1341
|
-
);
|
|
1342
|
-
} catch (retryError) {
|
|
1343
|
-
console.error(
|
|
1344
|
-
`[TokenVerifier] \u274C Failed to get public key (retry): ${retryError instanceof Error ? retryError.message : String(retryError)}`
|
|
1345
|
-
);
|
|
1346
|
-
throw retryError;
|
|
1347
|
-
}
|
|
1348
|
-
}
|
|
1349
|
-
try {
|
|
1350
|
-
const payload = jwt.verify(token, publicKey, {
|
|
1351
|
-
algorithms: ["RS256"]
|
|
1352
|
-
});
|
|
1353
|
-
console.log(`[TokenVerifier] \u2705 Token verified successfully`);
|
|
1354
|
-
return payload;
|
|
1355
|
-
} catch (error) {
|
|
1356
|
-
console.error(
|
|
1357
|
-
`[TokenVerifier] \u274C JWT verification failed: ${error instanceof Error ? error.message : String(error)}`
|
|
1358
|
-
);
|
|
1359
|
-
throw error;
|
|
1357
|
+
publicKey = await this.getPublicKey(header.kid, cacheKey, fetchJwks);
|
|
1360
1358
|
}
|
|
1359
|
+
return jwt.verify(token, publicKey, { algorithms: ["RS256"] });
|
|
1361
1360
|
}
|
|
1362
1361
|
/**
|
|
1363
1362
|
* Clear cache (useful for testing or key rotation)
|
|
1364
1363
|
*/
|
|
1365
|
-
clearCache(
|
|
1366
|
-
if (
|
|
1367
|
-
this.cache.delete(
|
|
1364
|
+
clearCache(cacheKey) {
|
|
1365
|
+
if (cacheKey) {
|
|
1366
|
+
this.cache.delete(cacheKey);
|
|
1368
1367
|
} else {
|
|
1369
1368
|
this.cache.clear();
|
|
1370
1369
|
}
|
|
@@ -1374,7 +1373,14 @@ async function verifyToken(options) {
|
|
|
1374
1373
|
const verifier = new TokenVerifier();
|
|
1375
1374
|
return verifier.verifyToken(options);
|
|
1376
1375
|
}
|
|
1376
|
+
async function verifyOAuthToken(options) {
|
|
1377
|
+
return verifyToken({
|
|
1378
|
+
...options,
|
|
1379
|
+
clientId: options.clientId
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1377
1382
|
export {
|
|
1383
|
+
AuthJwksService,
|
|
1378
1384
|
Blimu,
|
|
1379
1385
|
BlimuError,
|
|
1380
1386
|
BulkResourcesService,
|
|
@@ -1395,6 +1401,7 @@ export {
|
|
|
1395
1401
|
paginate,
|
|
1396
1402
|
parseNDJSONStream,
|
|
1397
1403
|
parseSSEStream,
|
|
1404
|
+
verifyOAuthToken,
|
|
1398
1405
|
verifyToken
|
|
1399
1406
|
};
|
|
1400
1407
|
//# sourceMappingURL=index.mjs.map
|