@silkweave/auth 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,17 @@
1
1
 
2
2
  
3
- > @silkweave/auth@1.3.2 build /Users/atomic/projects/ai/silkweave/packages/auth
4
- > tsup
3
+ > @silkweave/auth@1.4.1 build /Users/atomic/projects/ai/silkweave/packages/auth
4
+ > tsdown
5
5
 
6
- CLI Building entry: src/index.ts
7
- CLI Using tsconfig: tsconfig.json
8
- CLI tsup v8.5.1
9
- CLI Using tsup config: /Users/atomic/projects/ai/silkweave/packages/auth/tsup.config.ts
10
- CLI Target: node18
11
- CLI Cleaning output folder
12
- ESM Build start
13
- ESM build/index.js 26.07 KB
14
- ESM build/index.js.map 48.54 KB
15
- ESM ⚡️ Build success in 12ms
16
- DTS Build start
17
- DTS ⚡️ Build success in 527ms
18
- DTS build/index.d.ts 5.84 KB
6
+ ℹ tsdown v0.21.8 powered by rolldown v1.0.0-rc.15
7
+ ℹ config file: /Users/atomic/projects/ai/silkweave/packages/auth/tsdown.config.ts
8
+ ℹ entry: ./src/index.ts
9
+ ℹ tsconfig: tsconfig.json
10
+ ℹ Build start
11
+ ℹ Cleaning 4 files
12
+ ℹ build/index.mjs 24.45 kB │ gzip: 5.82 kB
13
+ ℹ build/index.mjs.map 46.54 kB │ gzip: 11.29 kB
14
+ ℹ build/index.d.mts.map  3.35 kB │ gzip: 0.96 kB
15
+ ℹ build/index.d.mts  6.26 kB │ gzip: 1.51 kB
16
+ ℹ 4 files, total: 80.59 kB
17
+ ✔ Build complete in 613ms
@@ -1,12 +1,13 @@
1
-
2
- > @silkweave/auth@1.3.2 check /Users/atomic/projects/ai/silkweave/packages/auth
3
- > pnpm lint && pnpm typecheck
4
-
5
-
6
- > @silkweave/auth@1.3.2 lint /Users/atomic/projects/ai/silkweave/packages/auth
7
- > eslint
8
-
9
-
10
- > @silkweave/auth@1.3.2 typecheck /Users/atomic/projects/ai/silkweave/packages/auth
11
- > tsc --noEmit
12
-
1
+
2
+ 
3
+ > @silkweave/auth@1.4.1 check /Users/atomic/projects/ai/silkweave/packages/auth
4
+ > pnpm lint && pnpm typecheck
5
+
6
+
7
+ > @silkweave/auth@1.4.1 lint /Users/atomic/projects/ai/silkweave/packages/auth
8
+ > eslint
9
+
10
+
11
+ > @silkweave/auth@1.4.1 typecheck /Users/atomic/projects/ai/silkweave/packages/auth
12
+ > tsc --noEmit
13
+
@@ -1,5 +1,5 @@
1
1
 
2
2
  
3
- > @silkweave/auth@1.3.2 lint /Users/atomic/projects/ai/silkweave/packages/auth
3
+ > @silkweave/auth@1.4.1 lint /Users/atomic/projects/ai/silkweave/packages/auth
4
4
  > eslint
5
5
 
@@ -1,26 +1,24 @@
1
1
 
2
2
  
3
- > @silkweave/auth@1.4.0 prepack /Users/atomic/projects/ai/silkweave/packages/auth
3
+ > @silkweave/auth@1.5.0 prepack /Users/atomic/projects/ai/silkweave/packages/auth
4
4
  > pnpm clean && pnpm build
5
5
 
6
6
 
7
- > @silkweave/auth@1.4.0 clean /Users/atomic/projects/ai/silkweave/packages/auth
7
+ > @silkweave/auth@1.5.0 clean /Users/atomic/projects/ai/silkweave/packages/auth
8
8
  > rimraf build
9
9
 
10
10
 
11
- > @silkweave/auth@1.4.0 build /Users/atomic/projects/ai/silkweave/packages/auth
12
- > tsup
11
+ > @silkweave/auth@1.5.0 build /Users/atomic/projects/ai/silkweave/packages/auth
12
+ > tsdown
13
13
 
14
- CLI Building entry: src/index.ts
15
- CLI Using tsconfig: tsconfig.json
16
- CLI tsup v8.5.1
17
- CLI Using tsup config: /Users/atomic/projects/ai/silkweave/packages/auth/tsup.config.ts
18
- CLI Target: node18
19
- CLI Cleaning output folder
20
- ESM Build start
21
- ESM build/index.js 26.07 KB
22
- ESM build/index.js.map 48.54 KB
23
- ESM ⚡️ Build success in 9ms
24
- DTS Build start
25
- DTS ⚡️ Build success in 530ms
26
- DTS build/index.d.ts 5.84 KB
14
+ ℹ tsdown v0.21.8 powered by rolldown v1.0.0-rc.15
15
+ ℹ config file: /Users/atomic/projects/ai/silkweave/packages/auth/tsdown.config.ts
16
+ ℹ entry: ./src/index.ts
17
+ ℹ tsconfig: tsconfig.json
18
+ ℹ Build start
19
+ ℹ build/index.mjs 24.45 kB │ gzip: 5.82 kB
20
+ ℹ build/index.mjs.map 46.54 kB │ gzip: 11.29 kB
21
+ ℹ build/index.d.mts.map  3.35 kB │ gzip: 0.96 kB
22
+ ℹ build/index.d.mts  6.26 kB │ gzip: 1.51 kB
23
+ ℹ 4 files, total: 80.59 kB
24
+ ✔ Build complete in 701ms
@@ -0,0 +1,188 @@
1
+ import { SilkweaveContext } from "@silkweave/core";
2
+
3
+ //#region src/errors.d.ts
4
+ declare class AuthError extends Error {
5
+ readonly code: string;
6
+ readonly statusCode: number;
7
+ constructor(message: string, code: string, statusCode?: number);
8
+ }
9
+ declare function invalidToken(message?: string): AuthError;
10
+ declare function insufficientScope(message?: string): AuthError;
11
+ //#endregion
12
+ //#region src/extract.d.ts
13
+ declare function extractBearerToken(header: string | null | undefined): string | null;
14
+ declare function buildWWWAuthenticate(error?: string, description?: string, resourceMetadataUrl?: string): string;
15
+ //#endregion
16
+ //#region src/metadata.d.ts
17
+ interface ProtectedResourceMetadata {
18
+ resource: string;
19
+ authorization_servers: string[];
20
+ scopes_supported?: string[];
21
+ bearer_methods_supported?: string[];
22
+ }
23
+ declare function generateProtectedResourceMetadata(resourceUrl: string, authorizationServers: string[]): ProtectedResourceMetadata;
24
+ //#endregion
25
+ //#region src/provider/types.d.ts
26
+ interface AuthInfo {
27
+ token: string;
28
+ clientId?: string;
29
+ scopes?: string[];
30
+ expiresAt?: number;
31
+ [key: string]: unknown;
32
+ }
33
+ interface OAuthRequest {
34
+ method: string;
35
+ url: URL;
36
+ headers: Record<string, string | undefined>;
37
+ body?: Record<string, string>;
38
+ }
39
+ interface OAuthResponse {
40
+ status: number;
41
+ headers: Record<string, string>;
42
+ body?: string | Record<string, unknown>;
43
+ }
44
+ interface OAuthProvider {
45
+ authorize(req: OAuthRequest): Promise<OAuthResponse>;
46
+ callback(req: OAuthRequest): Promise<OAuthResponse>;
47
+ token(req: OAuthRequest): Promise<OAuthResponse>;
48
+ register(req: OAuthRequest): Promise<OAuthResponse>;
49
+ metadata(): OAuthResponse;
50
+ verifyToken(token: string): Promise<AuthInfo | undefined>;
51
+ }
52
+ //#endregion
53
+ //#region src/types.d.ts
54
+ type VerifyToken = (token: string, context: SilkweaveContext) => Promise<AuthInfo | undefined>;
55
+ interface AuthConfig {
56
+ verifyToken: VerifyToken;
57
+ required?: boolean;
58
+ resourceUrl?: string;
59
+ authorizationServers?: string[];
60
+ requiredScopes?: string[];
61
+ provider?: OAuthProvider;
62
+ callbackPath?: string;
63
+ }
64
+ //#endregion
65
+ //#region src/provider/store.d.ts
66
+ interface AuthCodeData {
67
+ clientId: string;
68
+ redirectUri: string;
69
+ codeChallenge: string;
70
+ codeChallengeMethod: string;
71
+ scopes: string[];
72
+ upstreamAccessToken: string;
73
+ upstreamIdToken?: string;
74
+ email?: string;
75
+ sub?: string;
76
+ expiresAt: number;
77
+ }
78
+ interface PendingAuthData {
79
+ clientId: string;
80
+ redirectUri: string;
81
+ codeChallenge: string;
82
+ codeChallengeMethod: string;
83
+ scope: string;
84
+ clientState: string;
85
+ resource?: string;
86
+ expiresAt: number;
87
+ }
88
+ interface ClientRegistration {
89
+ clientId: string;
90
+ clientSecret: string;
91
+ redirectUris: string[];
92
+ clientName?: string;
93
+ createdAt: number;
94
+ }
95
+ interface RefreshTokenData {
96
+ clientId: string;
97
+ scopes: string[];
98
+ email?: string;
99
+ sub?: string;
100
+ expiresAt: number;
101
+ }
102
+ interface OAuthStore {
103
+ saveAuthCode(code: string, data: AuthCodeData): Promise<void>;
104
+ getAuthCode(code: string): Promise<AuthCodeData | undefined>;
105
+ deleteAuthCode(code: string): Promise<void>;
106
+ savePendingAuth(state: string, data: PendingAuthData): Promise<void>;
107
+ getPendingAuth(state: string): Promise<PendingAuthData | undefined>;
108
+ deletePendingAuth(state: string): Promise<void>;
109
+ savePkceVerifier(state: string, verifier: string): Promise<void>;
110
+ getPkceVerifier(state: string): Promise<string | undefined>;
111
+ deletePkceVerifier(state: string): Promise<void>;
112
+ saveClient(clientId: string, data: ClientRegistration): Promise<void>;
113
+ getClient(clientId: string): Promise<ClientRegistration | undefined>;
114
+ saveRefreshToken(token: string, data: RefreshTokenData): Promise<void>;
115
+ getRefreshToken(token: string): Promise<RefreshTokenData | undefined>;
116
+ deleteRefreshToken(token: string): Promise<void>;
117
+ }
118
+ //#endregion
119
+ //#region src/provider/google.d.ts
120
+ interface GoogleOAuthOptions {
121
+ clientId: string;
122
+ clientSecret: string;
123
+ resourceUrl: string;
124
+ redirectUris: string[];
125
+ requiredScopes?: string[];
126
+ callbackPath?: string;
127
+ signingKey?: string;
128
+ tokenTtl?: number;
129
+ store?: OAuthStore;
130
+ }
131
+ declare function google(options: GoogleOAuthOptions): AuthConfig;
132
+ //#endregion
133
+ //#region src/provider/proxy.d.ts
134
+ interface OAuthProxyConfig {
135
+ authorizeUrl: string;
136
+ tokenUrl: string;
137
+ userinfoUrl?: string;
138
+ clientId: string;
139
+ clientSecret: string;
140
+ resourceUrl: string;
141
+ redirectUris: string[];
142
+ requiredScopes?: string[];
143
+ callbackPath?: string;
144
+ signingKey?: string;
145
+ tokenTtl?: number;
146
+ store?: OAuthStore;
147
+ }
148
+ declare function createOAuthProxy(config: OAuthProxyConfig): OAuthProvider;
149
+ //#endregion
150
+ //#region src/provider/uri.d.ts
151
+ declare function matchRedirectUri(uri: string, patterns: string[]): boolean;
152
+ //#endregion
153
+ //#region src/store/json-store.d.ts
154
+ declare function createJsonStore(path: string): OAuthStore;
155
+ //#endregion
156
+ //#region src/store/memory-store.d.ts
157
+ declare function createMemoryStore(): OAuthStore;
158
+ //#endregion
159
+ //#region src/store/redis-store.d.ts
160
+ interface RedisClient {
161
+ get(key: string): Promise<unknown>;
162
+ set(key: string, value: string, options?: {
163
+ ex?: number;
164
+ }): Promise<unknown>;
165
+ del(key: string): Promise<unknown>;
166
+ }
167
+ interface RedisStoreOptions {
168
+ client: RedisClient;
169
+ prefix?: string;
170
+ }
171
+ declare function createRedisStore(options: RedisStoreOptions): OAuthStore;
172
+ //#endregion
173
+ //#region src/validate.d.ts
174
+ interface ValidateResult {
175
+ auth?: AuthInfo;
176
+ error?: {
177
+ statusCode: number;
178
+ headers: Record<string, string>;
179
+ body: {
180
+ error: string;
181
+ error_description: string;
182
+ };
183
+ };
184
+ }
185
+ declare function validateToken(authorizationHeader: string | null | undefined, config: AuthConfig, context: SilkweaveContext): Promise<ValidateResult>;
186
+ //#endregion
187
+ export { AuthCodeData, AuthConfig, AuthError, type AuthInfo, ClientRegistration, GoogleOAuthOptions, OAuthProvider, OAuthProxyConfig, OAuthRequest, OAuthResponse, OAuthStore, PendingAuthData, ProtectedResourceMetadata, RedisClient, RedisStoreOptions, RefreshTokenData, ValidateResult, VerifyToken, buildWWWAuthenticate, createJsonStore, createMemoryStore, createOAuthProxy, createRedisStore, extractBearerToken, generateProtectedResourceMetadata, google, insufficientScope, invalidToken, matchRedirectUri, validateToken };
188
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/extract.ts","../src/metadata.ts","../src/provider/types.ts","../src/types.ts","../src/provider/store.ts","../src/provider/google.ts","../src/provider/proxy.ts","../src/provider/uri.ts","../src/store/json-store.ts","../src/store/memory-store.ts","../src/store/redis-store.ts","../src/validate.ts"],"mappings":"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"}