@shware/security 1.3.5 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/oauth2/client.cjs +7 -7
- package/dist/oauth2/client.cjs.map +1 -1
- package/dist/oauth2/client.d.cts +9 -8
- package/dist/oauth2/client.d.ts +9 -8
- package/dist/oauth2/client.mjs +7 -7
- package/dist/oauth2/client.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -7,7 +7,8 @@ export { Principal } from './core/index.cjs';
|
|
|
7
7
|
export { KVRepository, Namespace, Session, SessionRepository } from './session/types.cjs';
|
|
8
8
|
export { OAuth2Token, OidcScopes, OidcToken, StandardClaims, UserInfo } from './oauth2/types.cjs';
|
|
9
9
|
export { AuthConfig, AuthService } from './auth/types.cjs';
|
|
10
|
-
import 'zod/v4';
|
|
10
|
+
import 'zod/v4/core';
|
|
11
|
+
import 'zod/v4-mini';
|
|
11
12
|
import './session/map-session.cjs';
|
|
12
13
|
import 'ioredis';
|
|
13
14
|
import './utils/http.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ export { Principal } from './core/index.js';
|
|
|
7
7
|
export { KVRepository, Namespace, Session, SessionRepository } from './session/types.js';
|
|
8
8
|
export { OAuth2Token, OidcScopes, OidcToken, StandardClaims, UserInfo } from './oauth2/types.js';
|
|
9
9
|
export { AuthConfig, AuthService } from './auth/types.js';
|
|
10
|
-
import 'zod/v4';
|
|
10
|
+
import 'zod/v4/core';
|
|
11
|
+
import 'zod/v4-mini';
|
|
11
12
|
import './session/map-session.js';
|
|
12
13
|
import 'ioredis';
|
|
13
14
|
import './utils/http.js';
|
package/dist/oauth2/client.cjs
CHANGED
|
@@ -34,14 +34,14 @@ __export(client_exports, {
|
|
|
34
34
|
oauth2RedirectQuerySchema: () => oauth2RedirectQuerySchema
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(client_exports);
|
|
37
|
-
var
|
|
37
|
+
var import_v4_mini = require("zod/v4-mini");
|
|
38
38
|
var import_tiny_invariant = __toESM(require("tiny-invariant"), 1);
|
|
39
|
-
var oauth2RedirectQuerySchema =
|
|
40
|
-
code:
|
|
41
|
-
state:
|
|
42
|
-
error:
|
|
43
|
-
error_description:
|
|
44
|
-
error_uri:
|
|
39
|
+
var oauth2RedirectQuerySchema = (0, import_v4_mini.object)({
|
|
40
|
+
code: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
41
|
+
state: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
42
|
+
error: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
43
|
+
error_description: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
44
|
+
error_uri: (0, import_v4_mini.optional)((0, import_v4_mini.string)())
|
|
45
45
|
});
|
|
46
46
|
var OAuth2Client = class {
|
|
47
47
|
config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/oauth2/client.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/oauth2/client.ts"],"sourcesContent":["import { string, object, optional } from 'zod/v4-mini';\nimport invariant from 'tiny-invariant';\nimport {\n NativeCredential,\n OAuth2ClientConfig,\n OAuth2Token,\n OidcToken,\n PkceParameters,\n} from './types';\n\nexport const oauth2RedirectQuerySchema = object({\n code: optional(string()),\n state: optional(string()),\n error: optional(string()),\n error_description: optional(string()),\n error_uri: optional(string()),\n});\n\nexport class OAuth2Client {\n private config: OAuth2ClientConfig;\n constructor(config: OAuth2ClientConfig) {\n this.config = config;\n }\n\n get baseUri() {\n return this.config.baseUri;\n }\n\n get successUri() {\n return this.config.successUri;\n }\n\n get errorUri() {\n return this.config.errorUri;\n }\n\n getClientConfig(registrationId: string) {\n const registration = this.config.registration[registrationId];\n invariant(registration, `Registration ${registrationId} not found`);\n const provider = this.config.provider[registration.provider ?? registrationId];\n invariant(provider, `Provider ${registration.provider ?? registrationId} not found`);\n return { registration, provider };\n }\n\n createAuthorizationUri({\n registrationId,\n state,\n pkce,\n }: {\n registrationId: string;\n state: string;\n pkce?: PkceParameters;\n }): URL {\n const { provider, registration } = this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { scope, clientId, redirectUri } = registration;\n return provider.createAuthorizationUri({\n pkce,\n state,\n scope,\n clientId,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async exchangeAuthorizationCode({\n registrationId,\n code,\n pkce,\n }: {\n registrationId: string;\n code: string;\n pkce?: PkceParameters;\n }): Promise<OAuth2Token> {\n const { provider, registration } = this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n return provider.exchangeAuthorizationCode({\n code,\n pkce,\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async getUserInfo({\n registrationId,\n token,\n }: {\n registrationId: string;\n token: OAuth2Token | OidcToken;\n }) {\n const { provider } = this.getClientConfig(registrationId);\n return provider.getUserInfo(token);\n }\n\n async refreshAccessToken({\n registrationId,\n refreshToken,\n }: {\n registrationId: string;\n refreshToken: string;\n }): Promise<OAuth2Token> {\n const { provider, registration } = this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.refreshAccessToken, 'Provider does not support refreshAccessToken');\n return provider.refreshAccessToken({ refreshToken, clientId, clientSecret });\n }\n\n async revokeToken(registrationId: string, token: string) {\n const { provider, registration } = this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.revokeToken, 'Provider does not support revokeToken');\n await provider.revokeToken({ token, clientId, clientSecret });\n }\n\n async loginOAuth2Native({\n registrationId,\n credentials,\n pkce,\n }: {\n registrationId: string;\n credentials: NativeCredential;\n pkce?: PkceParameters;\n }) {\n const { provider, registration } = this.getClientConfig(registrationId);\n invariant(provider.loginOAuth2Native, 'Provider does not support loginOAuth2Native');\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n\n return provider.loginOAuth2Native({\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n credentials,\n pkce,\n });\n }\n}\n"],"mappings":"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","names":["invariant"]}
|
package/dist/oauth2/client.d.cts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { OAuth2ClientConfig, Registration, Provider, PkceParameters, OAuth2Token, OidcToken, UserInfo, NativeCredential } from './types.cjs';
|
|
2
|
-
import
|
|
2
|
+
import * as zod_v4_core from 'zod/v4/core';
|
|
3
|
+
import * as zod_v4_mini from 'zod/v4-mini';
|
|
3
4
|
|
|
4
|
-
declare const oauth2RedirectQuerySchema:
|
|
5
|
-
code:
|
|
6
|
-
state:
|
|
7
|
-
error:
|
|
8
|
-
error_description:
|
|
9
|
-
error_uri:
|
|
10
|
-
},
|
|
5
|
+
declare const oauth2RedirectQuerySchema: zod_v4_mini.ZodMiniObject<{
|
|
6
|
+
code: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
7
|
+
state: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
8
|
+
error: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
9
|
+
error_description: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
10
|
+
error_uri: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
11
|
+
}, zod_v4_core.$strip>;
|
|
11
12
|
declare class OAuth2Client {
|
|
12
13
|
private config;
|
|
13
14
|
constructor(config: OAuth2ClientConfig);
|
package/dist/oauth2/client.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { OAuth2ClientConfig, Registration, Provider, PkceParameters, OAuth2Token, OidcToken, UserInfo, NativeCredential } from './types.js';
|
|
2
|
-
import
|
|
2
|
+
import * as zod_v4_core from 'zod/v4/core';
|
|
3
|
+
import * as zod_v4_mini from 'zod/v4-mini';
|
|
3
4
|
|
|
4
|
-
declare const oauth2RedirectQuerySchema:
|
|
5
|
-
code:
|
|
6
|
-
state:
|
|
7
|
-
error:
|
|
8
|
-
error_description:
|
|
9
|
-
error_uri:
|
|
10
|
-
},
|
|
5
|
+
declare const oauth2RedirectQuerySchema: zod_v4_mini.ZodMiniObject<{
|
|
6
|
+
code: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
7
|
+
state: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
8
|
+
error: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
9
|
+
error_description: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
10
|
+
error_uri: zod_v4_mini.ZodMiniOptional<zod_v4_mini.ZodMiniString<string>>;
|
|
11
|
+
}, zod_v4_core.$strip>;
|
|
11
12
|
declare class OAuth2Client {
|
|
12
13
|
private config;
|
|
13
14
|
constructor(config: OAuth2ClientConfig);
|
package/dist/oauth2/client.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// src/oauth2/client.ts
|
|
2
|
-
import {
|
|
2
|
+
import { string, object, optional } from "zod/v4-mini";
|
|
3
3
|
import invariant from "tiny-invariant";
|
|
4
|
-
var oauth2RedirectQuerySchema =
|
|
5
|
-
code:
|
|
6
|
-
state:
|
|
7
|
-
error:
|
|
8
|
-
error_description:
|
|
9
|
-
error_uri:
|
|
4
|
+
var oauth2RedirectQuerySchema = object({
|
|
5
|
+
code: optional(string()),
|
|
6
|
+
state: optional(string()),
|
|
7
|
+
error: optional(string()),
|
|
8
|
+
error_description: optional(string()),
|
|
9
|
+
error_uri: optional(string())
|
|
10
10
|
});
|
|
11
11
|
var OAuth2Client = class {
|
|
12
12
|
config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/oauth2/client.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/oauth2/client.ts"],"sourcesContent":["import { string, object, optional } from 'zod/v4-mini';\nimport invariant from 'tiny-invariant';\nimport {\n NativeCredential,\n OAuth2ClientConfig,\n OAuth2Token,\n OidcToken,\n PkceParameters,\n} from './types';\n\nexport const oauth2RedirectQuerySchema = object({\n code: optional(string()),\n state: optional(string()),\n error: optional(string()),\n error_description: optional(string()),\n error_uri: optional(string()),\n});\n\nexport class OAuth2Client {\n private config: OAuth2ClientConfig;\n constructor(config: OAuth2ClientConfig) {\n this.config = config;\n }\n\n get baseUri() {\n return this.config.baseUri;\n }\n\n get successUri() {\n return this.config.successUri;\n }\n\n get errorUri() {\n return this.config.errorUri;\n }\n\n getClientConfig(registrationId: string) {\n const registration = this.config.registration[registrationId];\n invariant(registration, `Registration ${registrationId} not found`);\n const provider = this.config.provider[registration.provider ?? registrationId];\n invariant(provider, `Provider ${registration.provider ?? registrationId} not found`);\n return { registration, provider };\n }\n\n createAuthorizationUri({\n registrationId,\n state,\n pkce,\n }: {\n registrationId: string;\n state: string;\n pkce?: PkceParameters;\n }): URL {\n const { provider, registration } = this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { scope, clientId, redirectUri } = registration;\n return provider.createAuthorizationUri({\n pkce,\n state,\n scope,\n clientId,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async exchangeAuthorizationCode({\n registrationId,\n code,\n pkce,\n }: {\n registrationId: string;\n code: string;\n pkce?: PkceParameters;\n }): Promise<OAuth2Token> {\n const { provider, registration } = this.getClientConfig(registrationId);\n\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n return provider.exchangeAuthorizationCode({\n code,\n pkce,\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n });\n }\n\n async getUserInfo({\n registrationId,\n token,\n }: {\n registrationId: string;\n token: OAuth2Token | OidcToken;\n }) {\n const { provider } = this.getClientConfig(registrationId);\n return provider.getUserInfo(token);\n }\n\n async refreshAccessToken({\n registrationId,\n refreshToken,\n }: {\n registrationId: string;\n refreshToken: string;\n }): Promise<OAuth2Token> {\n const { provider, registration } = this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.refreshAccessToken, 'Provider does not support refreshAccessToken');\n return provider.refreshAccessToken({ refreshToken, clientId, clientSecret });\n }\n\n async revokeToken(registrationId: string, token: string) {\n const { provider, registration } = this.getClientConfig(registrationId);\n const { clientId, clientSecret } = registration;\n\n invariant(provider.revokeToken, 'Provider does not support revokeToken');\n await provider.revokeToken({ token, clientId, clientSecret });\n }\n\n async loginOAuth2Native({\n registrationId,\n credentials,\n pkce,\n }: {\n registrationId: string;\n credentials: NativeCredential;\n pkce?: PkceParameters;\n }) {\n const { provider, registration } = this.getClientConfig(registrationId);\n invariant(provider.loginOAuth2Native, 'Provider does not support loginOAuth2Native');\n const { baseUri } = this.config;\n const { clientId, clientSecret, redirectUri } = registration;\n\n return provider.loginOAuth2Native({\n clientId,\n clientSecret,\n redirectUri: redirectUri ?? `${baseUri}/login/oauth2/code/${registrationId}`,\n credentials,\n pkce,\n });\n }\n}\n"],"mappings":";AAAA,SAAS,QAAQ,QAAQ,gBAAgB;AACzC,OAAO,eAAe;AASf,IAAM,4BAA4B,OAAO;AAAA,EAC9C,MAAM,SAAS,OAAO,CAAC;AAAA,EACvB,OAAO,SAAS,OAAO,CAAC;AAAA,EACxB,OAAO,SAAS,OAAO,CAAC;AAAA,EACxB,mBAAmB,SAAS,OAAO,CAAC;AAAA,EACpC,WAAW,SAAS,OAAO,CAAC;AAC9B,CAAC;AAEM,IAAM,eAAN,MAAmB;AAAA,EAChB;AAAA,EACR,YAAY,QAA4B;AACtC,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,gBAAgB,gBAAwB;AACtC,UAAM,eAAe,KAAK,OAAO,aAAa,cAAc;AAC5D,cAAU,cAAc,gBAAgB,cAAc,YAAY;AAClE,UAAM,WAAW,KAAK,OAAO,SAAS,aAAa,YAAY,cAAc;AAC7E,cAAU,UAAU,YAAY,aAAa,YAAY,cAAc,YAAY;AACnF,WAAO,EAAE,cAAc,SAAS;AAAA,EAClC;AAAA,EAEA,uBAAuB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAIQ;AACN,UAAM,EAAE,UAAU,aAAa,IAAI,KAAK,gBAAgB,cAAc;AAEtE,UAAM,EAAE,QAAQ,IAAI,KAAK;AACzB,UAAM,EAAE,OAAO,UAAU,YAAY,IAAI;AACzC,WAAO,SAAS,uBAAuB;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,eAAe,GAAG,OAAO,sBAAsB,cAAc;AAAA,IAC5E,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,0BAA0B;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAIyB;AACvB,UAAM,EAAE,UAAU,aAAa,IAAI,KAAK,gBAAgB,cAAc;AAEtE,UAAM,EAAE,QAAQ,IAAI,KAAK;AACzB,UAAM,EAAE,UAAU,cAAc,YAAY,IAAI;AAChD,WAAO,SAAS,0BAA0B;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,eAAe,GAAG,OAAO,sBAAsB,cAAc;AAAA,IAC5E,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,YAAY;AAAA,IAChB;AAAA,IACA;AAAA,EACF,GAGG;AACD,UAAM,EAAE,SAAS,IAAI,KAAK,gBAAgB,cAAc;AACxD,WAAO,SAAS,YAAY,KAAK;AAAA,EACnC;AAAA,EAEA,MAAM,mBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,EACF,GAGyB;AACvB,UAAM,EAAE,UAAU,aAAa,IAAI,KAAK,gBAAgB,cAAc;AACtE,UAAM,EAAE,UAAU,aAAa,IAAI;AAEnC,cAAU,SAAS,oBAAoB,8CAA8C;AACrF,WAAO,SAAS,mBAAmB,EAAE,cAAc,UAAU,aAAa,CAAC;AAAA,EAC7E;AAAA,EAEA,MAAM,YAAY,gBAAwB,OAAe;AACvD,UAAM,EAAE,UAAU,aAAa,IAAI,KAAK,gBAAgB,cAAc;AACtE,UAAM,EAAE,UAAU,aAAa,IAAI;AAEnC,cAAU,SAAS,aAAa,uCAAuC;AACvE,UAAM,SAAS,YAAY,EAAE,OAAO,UAAU,aAAa,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAIG;AACD,UAAM,EAAE,UAAU,aAAa,IAAI,KAAK,gBAAgB,cAAc;AACtE,cAAU,SAAS,mBAAmB,6CAA6C;AACnF,UAAM,EAAE,QAAQ,IAAI,KAAK;AACzB,UAAM,EAAE,UAAU,cAAc,YAAY,IAAI;AAEhD,WAAO,SAAS,kBAAkB;AAAA,MAChC;AAAA,MACA;AAAA,MACA,aAAa,eAAe,GAAG,OAAO,sBAAsB,cAAc;AAAA,MAC1E;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
|