@atxp/common 0.2.10 → 0.2.12

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 CHANGED
@@ -11,7 +11,7 @@ The ATXP Common package provides shared utilities, types, and core functionality
11
11
  ## Features
12
12
 
13
13
  - 🔐 **JWT Token Management**: Secure token creation, validation, and parsing
14
- - 🗄️ **OAuth Database**: Abstract database interface with memory and SQLite implementations
14
+ - 🗄️ **OAuth Database**: Abstract database interface with memory implementation
15
15
  - 📡 **MCP JSON Utilities**: Type-safe MCP protocol message handling
16
16
  - 💰 **Payment Error Handling**: Structured payment requirement error types
17
17
  - 🛠️ **Platform Utilities**: Cross-platform compatibility helpers
@@ -99,19 +99,18 @@ throw new PaymentRequiredError({
99
99
  ### Platform Utilities
100
100
 
101
101
  ```typescript
102
- import { Platform } from '@atxp/common';
102
+ import { crypto, isNode, getIsReactNative } from '@atxp/common';
103
103
 
104
104
  // Detect runtime environment
105
- const platform = Platform.detect();
106
-
107
- if (platform.isNode) {
108
- // Node.js specific code
109
- } else if (platform.isExpo) {
110
- // Expo/React Native specific code
105
+ if (isNode) {
106
+ // Node.js specific code - can use SQLite or Redis
107
+ } else if (getIsReactNative()) {
108
+ // React Native/Expo - use MemoryOAuthDb
111
109
  }
112
110
 
113
- // Get appropriate database implementation
114
- const db = Platform.createOAuthDb();
111
+ // Use platform-specific crypto
112
+ const hash = await crypto.digest(new TextEncoder().encode('data'));
113
+ const uuid = crypto.randomUUID();
115
114
  ```
116
115
 
117
116
  ## Type Definitions
@@ -136,11 +135,17 @@ const db = new MemoryOAuthDb();
136
135
  // Tokens stored in memory, cleared on process restart
137
136
  ```
138
137
 
139
- ### SQLite Implementation
138
+ ### Additional Database Options
139
+
140
+ For production use cases requiring persistent storage, see separate database packages:
141
+
142
+ - **`@atxp/sqlite`**: SQLite implementation using `better-sqlite3` (Node.js only)
143
+ - **`@atxp/redis`**: Redis implementation using `ioredis` for distributed applications
140
144
 
141
- Platform-specific SQLite implementations are automatically selected:
142
- - Node.js: Uses `better-sqlite3`
143
- - Expo/React Native: Uses `expo-sqlite`
145
+ ```bash
146
+ npm install @atxp/sqlite # For SQLite storage
147
+ npm install @atxp/redis # For Redis storage
148
+ ```
144
149
 
145
150
  ## Logging
146
151
 
package/dist/index.d.ts CHANGED
@@ -1,9 +1,6 @@
1
1
  export * from './jwt.js';
2
2
  export * from './logger.js';
3
- export * from './oAuthDb.js';
4
3
  export * from './memoryOAuthDb.js';
5
- export * from './oAuthDbFactory.js';
6
- export * from './redisOAuthDb.js';
7
4
  export * from './oAuthResource.js';
8
5
  export * from './paymentRequiredError.js';
9
6
  export * from './servers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,6 @@
1
1
  export * from './jwt.js';
2
2
  export * from './logger.js';
3
- export * from './oAuthDb.js';
4
3
  export * from './memoryOAuthDb.js';
5
- export * from './oAuthDbFactory.js';
6
- export * from './redisOAuthDb.js';
7
4
  export * from './oAuthResource.js';
8
5
  export * from './paymentRequiredError.js';
9
6
  export * from './servers.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
@@ -9,6 +9,6 @@ export function paymentRequiredError(server, paymentRequestId, chargeAmount) {
9
9
  const paymentRequestUrl = `${server}/payment-request/${paymentRequestId}`;
10
10
  const data = { paymentRequestId, paymentRequestUrl, chargeAmount };
11
11
  const amountText = chargeAmount ? ` You will be charged ${chargeAmount.toString()}.` : '';
12
- return new McpError(PAYMENT_REQUIRED_ERROR_CODE, `${PAYMENT_REQUIRED_PREAMBLE}${amountText} Please pay at: ${paymentRequestUrl}`, data);
12
+ return new McpError(PAYMENT_REQUIRED_ERROR_CODE, `${PAYMENT_REQUIRED_PREAMBLE}${amountText} Please pay at: ${paymentRequestUrl} and then try again.`, data);
13
13
  }
14
14
  //# sourceMappingURL=paymentRequiredError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paymentRequiredError.js","sourceRoot":"","sources":["../src/paymentRequiredError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAI9D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,CAAC,CAAC,mBAAmB;AACtE,+FAA+F;AAC/F,iEAAiE;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,gCAAgC,CAAC;AAE1E,MAAM,UAAU,oBAAoB,CAAC,MAA8B,EAAE,gBAAwB,EAAE,YAAwB;IACrH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,GAAG,SAAS,CAAC,MAAgC,CAAC;IAEpD,MAAM,iBAAiB,GAAG,GAAG,MAAM,oBAAoB,gBAAgB,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;IACnE,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,wBAAwB,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE,GAAG,yBAAyB,GAAG,UAAU,mBAAmB,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1I,CAAC"}
1
+ {"version":3,"file":"paymentRequiredError.js","sourceRoot":"","sources":["../src/paymentRequiredError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAI9D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,CAAC,CAAC,mBAAmB;AACtE,+FAA+F;AAC/F,iEAAiE;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,gCAAgC,CAAC;AAE1E,MAAM,UAAU,oBAAoB,CAAC,MAA8B,EAAE,gBAAwB,EAAE,YAAwB;IACrH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,GAAG,SAAS,CAAC,MAAgC,CAAC;IAEpD,MAAM,iBAAiB,GAAG,GAAG,MAAM,oBAAoB,gBAAgB,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;IACnE,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,wBAAwB,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE,GAAG,yBAAyB,GAAG,UAAU,mBAAmB,iBAAiB,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAC9J,CAAC"}
@@ -4,21 +4,6 @@ export interface PlatformCrypto {
4
4
  randomUUID: () => string;
5
5
  toHex: (data: Uint8Array) => string;
6
6
  }
7
- export interface PlatformSQLite {
8
- openDatabase: (name: string) => SQLiteDatabase;
9
- }
10
- export interface SQLiteDatabase {
11
- execAsync: (sql: string) => Promise<void>;
12
- prepareAsync: (sql: string) => Promise<SQLiteStatement>;
13
- closeAsync: () => Promise<void>;
14
- }
15
- export interface SQLiteStatement {
16
- executeAsync: <T = any>(...params: any[]) => Promise<SQLiteResult<T>>;
17
- finalizeAsync: () => Promise<void>;
18
- }
19
- export interface SQLiteResult<T> {
20
- getFirstAsync: () => Promise<T | null>;
21
- }
22
7
  export declare function getIsReactNative(): boolean;
23
8
  export declare const isNode: boolean;
24
9
  export declare const isBrowser: boolean;
@@ -26,5 +11,4 @@ export declare const isNextJS: boolean;
26
11
  export declare const isWebEnvironment: boolean;
27
12
  export declare const createReactNativeSafeFetch: (originalFetch: FetchLike) => FetchLike;
28
13
  export declare let crypto: PlatformCrypto;
29
- export declare let sqlite: PlatformSQLite;
30
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CACxC;AAGD,wBAAgB,gBAAgB,YAG/B;AACD,eAAO,MAAM,MAAM,SAA6D,CAAC;AACjF,eAAO,MAAM,SAAS,SAAmE,CAAC;AAC1F,eAAO,MAAM,QAAQ,SAA2E,CAAC;AACjG,eAAO,MAAM,gBAAgB,SAAwB,CAAC;AAkCtD,eAAO,MAAM,0BAA0B,GAAI,eAAe,SAAS,KAAG,SA4BrE,CAAC;AAoKF,eAAO,IAAI,MAAM,EAAE,cAAc,CAAC;AAClC,eAAO,IAAI,MAAM,EAAE,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;CACrC;AAID,wBAAgB,gBAAgB,YAG/B;AACD,eAAO,MAAM,MAAM,SAA6D,CAAC;AACjF,eAAO,MAAM,SAAS,SAAmE,CAAC;AAC1F,eAAO,MAAM,QAAQ,SAA2E,CAAC;AACjG,eAAO,MAAM,gBAAgB,SAAwB,CAAC;AAkCtD,eAAO,MAAM,0BAA0B,GAAI,eAAe,SAAS,KAAG,SA4BrE,CAAC;AA6EF,eAAO,IAAI,MAAM,EAAE,cAAc,CAAC"}
@@ -86,19 +86,6 @@ function createReactNativeCrypto() {
86
86
  toHex: (data) => Array.from(data).map(b => b.toString(16).padStart(2, '0')).join(''),
87
87
  };
88
88
  }
89
- function createReactNativeSQLite() {
90
- let expoSqlite;
91
- try {
92
- expoSqlite = loadModule('expo-sqlite');
93
- }
94
- catch {
95
- throw new Error('React Native detected but expo-sqlite package is required. ' +
96
- 'Please install it: npm install expo-sqlite');
97
- }
98
- return {
99
- openDatabase: (name) => expoSqlite.openDatabaseSync(name),
100
- };
101
- }
102
89
  function createBrowserCrypto() {
103
90
  return {
104
91
  digest: async (data) => {
@@ -144,96 +131,15 @@ function createNodeCrypto() {
144
131
  toHex: (data) => Buffer.from(data).toString('hex'),
145
132
  };
146
133
  }
147
- function createNodeSQLite() {
148
- return {
149
- openDatabase: (name) => {
150
- let db = null;
151
- let dbPromise = null;
152
- const getDbAsync = async () => {
153
- if (db)
154
- return db;
155
- if (!dbPromise) {
156
- dbPromise = (async () => {
157
- try {
158
- // Try synchronous loading first (works in CJS)
159
- const Database = loadModule('better-sqlite3');
160
- db = new Database(name);
161
- }
162
- catch {
163
- // Fall back to async loading for ESM
164
- const module = await import('better-sqlite3');
165
- const Database = module.default || module;
166
- db = new Database(name);
167
- }
168
- return db;
169
- })();
170
- }
171
- return dbPromise;
172
- };
173
- return {
174
- execAsync: async (sql) => {
175
- const database = await getDbAsync();
176
- database.exec(sql);
177
- },
178
- prepareAsync: async (sql) => {
179
- const database = await getDbAsync();
180
- const stmt = database.prepare(sql);
181
- return {
182
- executeAsync: async (...params) => {
183
- // Use .all() for SELECT, .run() for others
184
- const isSelect = /^\s*select/i.test(sql);
185
- let resultRows = [];
186
- if (isSelect) {
187
- resultRows = stmt.all(...params);
188
- }
189
- else {
190
- stmt.run(...params);
191
- }
192
- return {
193
- getFirstAsync: async () => {
194
- if (isSelect) {
195
- return resultRows[0] || null;
196
- }
197
- else {
198
- return null;
199
- }
200
- },
201
- // Optionally, you could expose runResult for non-SELECTs if needed
202
- };
203
- },
204
- finalizeAsync: async () => {
205
- // better-sqlite3 statements are automatically finalized when they go out of scope
206
- },
207
- };
208
- },
209
- closeAsync: async () => {
210
- if (db) {
211
- db.close();
212
- db = null;
213
- }
214
- },
215
- };
216
- },
217
- };
218
- }
219
134
  // Export platform-specific implementations
220
135
  export let crypto;
221
- export let sqlite;
222
136
  if (getIsReactNative()) {
223
137
  crypto = createReactNativeCrypto();
224
- sqlite = createReactNativeSQLite();
225
138
  }
226
139
  else if (isWebEnvironment) {
227
140
  crypto = createBrowserCrypto();
228
- // Browser SQLite will need to use IndexedDB or similar - for now throw error
229
- sqlite = {
230
- openDatabase: () => {
231
- throw new Error('SQLite not available in browser environment. Use MemoryOAuthDb instead.');
232
- }
233
- };
234
141
  }
235
142
  else {
236
143
  crypto = createNodeCrypto();
237
- sqlite = createNodeSQLite();
238
144
  }
239
145
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -23,6 +23,7 @@ export type PaymentRequestData = {
23
23
  source: string;
24
24
  resource: URL;
25
25
  resourceName: string;
26
+ payeeName?: string | null;
26
27
  iss: string;
27
28
  };
28
29
  export type CustomJWTPayload = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atxp/common",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "description": "ATXP Core - Shared utilities and types for Authorization Token Exchange Protocol",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -19,13 +19,10 @@
19
19
  "typecheck": "tsc --noEmit",
20
20
  "lint": "eslint . --ext .ts",
21
21
  "lint:fix": "eslint . --ext .ts --fix",
22
- "test": "vitest run",
23
- "test:integration": "vitest run src/redisOAuthDb.integration.test.ts --reporter=verbose"
22
+ "test": "vitest run"
24
23
  },
25
24
  "dependencies": {
26
- "better-sqlite3": "^12.2.0",
27
25
  "bignumber.js": "^9.3.0",
28
- "ioredis": "^5.7.0",
29
26
  "jose": "^6.0.11",
30
27
  "oauth4webapi": "^3.5.0",
31
28
  "tweetnacl": "^1.0.3",
package/dist/oAuthDb.d.ts DELETED
@@ -1,26 +0,0 @@
1
- import { SQLiteDatabase } from './platform/index.js';
2
- import type { AccessToken, ClientCredentials, Logger, OAuthDb, PKCEValues } from './types.js';
3
- export interface OAuthDbConfig {
4
- db?: string | SQLiteDatabase;
5
- encrypt?: (data: string) => string;
6
- decrypt?: (data: string) => string;
7
- logger?: Logger;
8
- }
9
- export declare class SqliteOAuthDb implements OAuthDb {
10
- private db;
11
- private initialized;
12
- private encrypt;
13
- private decrypt;
14
- private logger;
15
- static getDefaultDbPath(): string;
16
- constructor({ db, encrypt, decrypt, logger }?: OAuthDbConfig);
17
- ensureInitialized: () => Promise<void>;
18
- getClientCredentials: (resourceUrl: string) => Promise<ClientCredentials | null>;
19
- saveClientCredentials: (resourceUrl: string, credentials: ClientCredentials) => Promise<void>;
20
- getPKCEValues: (userId: string, state: string) => Promise<PKCEValues | null>;
21
- savePKCEValues: (userId: string, state: string, values: PKCEValues) => Promise<void>;
22
- getAccessToken: (userId: string, url: string) => Promise<AccessToken | null>;
23
- saveAccessToken: (userId: string, url: string, token: AccessToken) => Promise<void>;
24
- close: () => Promise<void>;
25
- }
26
- //# sourceMappingURL=oAuthDb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oAuthDb.d.ts","sourceRoot":"","sources":["../src/oAuthDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE9F,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAS;IAEvB,MAAM,CAAC,gBAAgB,IAAI,MAAM;gBAIrB,EACV,EAAqC,EACrC,OAAgC,EAChC,OAAgC,EAChC,MAA4B,EAC7B,GAAE,aAAkB;IAOrB,iBAAiB,QAAa,OAAO,CAAC,IAAI,CAAC,CAkC1C;IAED,oBAAoB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAgBpF;IAED,qBAAqB,GACnB,aAAa,MAAM,EACnB,aAAa,iBAAiB,KAC7B,OAAO,CAAC,IAAI,CAAC,CAef;IAED,aAAa,GAAU,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAkBhF;IAED,cAAc,GACZ,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,UAAU,KACjB,OAAO,CAAC,IAAI,CAAC,CAiBf;IAED,cAAc,GAAU,QAAQ,MAAM,EAAE,KAAK,MAAM,KAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAoBhF;IAED,eAAe,GACb,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,OAAO,WAAW,KACjB,OAAO,CAAC,IAAI,CAAC,CAiBf;IAED,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAW9B;CACF"}
package/dist/oAuthDb.js DELETED
@@ -1,145 +0,0 @@
1
- import { sqlite } from './platform/index.js';
2
- import { ConsoleLogger } from './logger.js';
3
- export class SqliteOAuthDb {
4
- static getDefaultDbPath() {
5
- return 'oauthClient.db';
6
- }
7
- constructor({ db = SqliteOAuthDb.getDefaultDbPath(), encrypt = (data) => data, decrypt = (data) => data, logger = new ConsoleLogger() } = {}) {
8
- this.initialized = false;
9
- this.ensureInitialized = async () => {
10
- if (this.initialized)
11
- return;
12
- // Create tables
13
- await this.db.execAsync(`
14
- CREATE TABLE IF NOT EXISTS oauth_client_credentials (
15
- resource_url TEXT PRIMARY KEY,
16
- encrypted_client_id TEXT NOT NULL,
17
- encrypted_client_secret TEXT NOT NULL,
18
- redirect_uri TEXT NOT NULL
19
- );
20
-
21
- CREATE TABLE IF NOT EXISTS oauth_pkce_values (
22
- user_id TEXT NOT NULL,
23
- state TEXT NOT NULL,
24
- encrypted_code_verifier TEXT NOT NULL,
25
- encrypted_code_challenge TEXT NOT NULL,
26
- resource_url TEXT NOT NULL,
27
- url TEXT NOT NULL,
28
- PRIMARY KEY (user_id, state)
29
- );
30
-
31
- CREATE TABLE IF NOT EXISTS oauth_access_tokens (
32
- user_id TEXT NOT NULL,
33
- url TEXT NOT NULL,
34
- resource_url TEXT NOT NULL,
35
- encrypted_access_token TEXT NOT NULL,
36
- encrypted_refresh_token TEXT,
37
- expires_at TEXT,
38
- PRIMARY KEY (user_id, url)
39
- );
40
- `);
41
- this.initialized = true;
42
- };
43
- this.getClientCredentials = async (resourceUrl) => {
44
- await this.ensureInitialized();
45
- const preparedRow = await this.db.prepareAsync('SELECT encrypted_client_id, encrypted_client_secret, redirect_uri FROM oauth_client_credentials WHERE resource_url = ?');
46
- try {
47
- const rowIterator = await preparedRow.executeAsync(resourceUrl);
48
- const row = await rowIterator.getFirstAsync();
49
- return row ? {
50
- clientId: this.decrypt(row.encrypted_client_id),
51
- clientSecret: this.decrypt(row.encrypted_client_secret),
52
- redirectUri: row.redirect_uri
53
- } : null;
54
- }
55
- finally {
56
- await preparedRow.finalizeAsync();
57
- }
58
- };
59
- this.saveClientCredentials = async (resourceUrl, credentials) => {
60
- await this.ensureInitialized();
61
- const statement = await this.db.prepareAsync('INSERT OR REPLACE INTO oauth_client_credentials (resource_url, encrypted_client_id, encrypted_client_secret, redirect_uri) VALUES (?, ?, ?, ?)');
62
- try {
63
- await statement.executeAsync(resourceUrl, this.encrypt(credentials.clientId), this.encrypt(credentials.clientSecret), credentials.redirectUri);
64
- }
65
- finally {
66
- await statement.finalizeAsync();
67
- }
68
- };
69
- this.getPKCEValues = async (userId, state) => {
70
- await this.ensureInitialized();
71
- const statement = await this.db.prepareAsync('SELECT encrypted_code_verifier, encrypted_code_challenge, resource_url, url FROM oauth_pkce_values WHERE user_id = ? AND state = ?');
72
- try {
73
- const result = await statement.executeAsync(userId, state);
74
- const row = await result.getFirstAsync();
75
- return row ? {
76
- codeVerifier: this.decrypt(row.encrypted_code_verifier),
77
- codeChallenge: this.decrypt(row.encrypted_code_challenge),
78
- resourceUrl: row.resource_url,
79
- url: row.url
80
- } : null;
81
- }
82
- finally {
83
- await statement.finalizeAsync();
84
- }
85
- };
86
- this.savePKCEValues = async (userId, state, values) => {
87
- await this.ensureInitialized();
88
- const statement = await this.db.prepareAsync('INSERT INTO oauth_pkce_values (user_id, state, encrypted_code_verifier, encrypted_code_challenge, resource_url, url) VALUES (?, ?, ?, ?, ?, ?)');
89
- try {
90
- await statement.executeAsync(userId, state, this.encrypt(values.codeVerifier), this.encrypt(values.codeChallenge), values.resourceUrl, values.url);
91
- }
92
- finally {
93
- await statement.finalizeAsync();
94
- }
95
- };
96
- this.getAccessToken = async (userId, url) => {
97
- await this.ensureInitialized();
98
- const statement = await this.db.prepareAsync('SELECT resource_url, encrypted_access_token, encrypted_refresh_token, expires_at FROM oauth_access_tokens WHERE user_id = ? AND url = ?');
99
- try {
100
- const result = await statement.executeAsync(userId, url);
101
- const row = await result.getFirstAsync();
102
- if (!row)
103
- return null;
104
- return {
105
- accessToken: this.decrypt(row.encrypted_access_token),
106
- refreshToken: row.encrypted_refresh_token ? this.decrypt(row.encrypted_refresh_token) : undefined,
107
- expiresAt: row.expires_at ? parseInt(row.expires_at) : undefined,
108
- resourceUrl: row.resource_url
109
- };
110
- }
111
- finally {
112
- await statement.finalizeAsync();
113
- }
114
- };
115
- this.saveAccessToken = async (userId, url, token) => {
116
- await this.ensureInitialized();
117
- const statement = await this.db.prepareAsync('INSERT OR REPLACE INTO oauth_access_tokens (user_id, url, resource_url, encrypted_access_token, encrypted_refresh_token, expires_at) VALUES (?, ?, ?, ?, ?, ?)');
118
- try {
119
- await statement.executeAsync(userId, url, token.resourceUrl, this.encrypt(token.accessToken), token.refreshToken ? this.encrypt(token.refreshToken) : null, token.expiresAt?.toString() ?? null);
120
- }
121
- finally {
122
- await statement.finalizeAsync();
123
- }
124
- };
125
- this.close = async () => {
126
- try {
127
- await this.db.closeAsync();
128
- }
129
- catch (error) {
130
- // If database is already closed, just log and continue
131
- if (error && typeof error === 'object' && 'code' in error && error.code === 'SQLITE_MISUSE') {
132
- this.logger.warn('Database already closed');
133
- }
134
- else {
135
- throw error;
136
- }
137
- }
138
- };
139
- this.db = typeof db === 'string' ? sqlite.openDatabase(db) : db;
140
- this.encrypt = encrypt;
141
- this.decrypt = decrypt;
142
- this.logger = logger;
143
- }
144
- }
145
- //# sourceMappingURL=oAuthDb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oAuthDb.js","sourceRoot":"","sources":["../src/oAuthDb.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { OAuthDb, Logger } from './types.js';
2
- import { SqliteOAuthDb, OAuthDbConfig } from './oAuthDb.js';
3
- import { MemoryOAuthDb, MemoryOAuthDbConfig } from './memoryOAuthDb.js';
4
- import { RedisOAuthDb, RedisOAuthDbConfig } from './redisOAuthDb.js';
5
- export interface OAuthDbFactoryConfig {
6
- db?: string;
7
- encrypt?: (data: string) => string;
8
- decrypt?: (data: string) => string;
9
- logger?: Logger;
10
- }
11
- /**
12
- * Factory function that creates the appropriate OAuthDb implementation.
13
- * Uses RedisOAuthDb when Redis client or URL is provided.
14
- * Uses MemoryOAuthDb for ':memory:' databases to avoid SQLite dependency.
15
- * Uses SqliteOAuthDb for persistent storage.
16
- */
17
- export declare function createOAuthDb(config?: OAuthDbFactoryConfig): OAuthDb;
18
- /**
19
- * Convenience function for creating an in-memory OAuth database
20
- */
21
- export declare function createMemoryOAuthDb(config?: MemoryOAuthDbConfig): MemoryOAuthDb;
22
- /**
23
- * Convenience function for creating a SQLite OAuth database
24
- */
25
- export declare function createSqliteOAuthDb(config?: OAuthDbConfig): SqliteOAuthDb;
26
- /**
27
- * Convenience function for creating a Redis OAuth database
28
- */
29
- export declare function createRedisOAuthDb(config: RedisOAuthDbConfig): RedisOAuthDb;
30
- //# sourceMappingURL=oAuthDbFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oAuthDbFactory.d.ts","sourceRoot":"","sources":["../src/oAuthDbFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAUxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,mBAAwB,GAAG,aAAa,CAEnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,aAAkB,GAAG,aAAa,CAE7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAE3E"}
@@ -1,37 +0,0 @@
1
- import { SqliteOAuthDb } from './oAuthDb.js';
2
- import { MemoryOAuthDb } from './memoryOAuthDb.js';
3
- import { RedisOAuthDb } from './redisOAuthDb.js';
4
- /**
5
- * Factory function that creates the appropriate OAuthDb implementation.
6
- * Uses RedisOAuthDb when Redis client or URL is provided.
7
- * Uses MemoryOAuthDb for ':memory:' databases to avoid SQLite dependency.
8
- * Uses SqliteOAuthDb for persistent storage.
9
- */
10
- export function createOAuthDb(config = {}) {
11
- const { db = SqliteOAuthDb.getDefaultDbPath(), ...otherConfig } = config;
12
- // Use in-memory implementation for ':memory:' databases
13
- if (db === ':memory:') {
14
- return new MemoryOAuthDb({ logger: otherConfig.logger });
15
- }
16
- // Use SQLite implementation for persistent storage
17
- return new SqliteOAuthDb({ db, ...otherConfig });
18
- }
19
- /**
20
- * Convenience function for creating an in-memory OAuth database
21
- */
22
- export function createMemoryOAuthDb(config = {}) {
23
- return new MemoryOAuthDb(config);
24
- }
25
- /**
26
- * Convenience function for creating a SQLite OAuth database
27
- */
28
- export function createSqliteOAuthDb(config = {}) {
29
- return new SqliteOAuthDb(config);
30
- }
31
- /**
32
- * Convenience function for creating a Redis OAuth database
33
- */
34
- export function createRedisOAuthDb(config) {
35
- return new RedisOAuthDb(config);
36
- }
37
- //# sourceMappingURL=oAuthDbFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oAuthDbFactory.js","sourceRoot":"","sources":["../src/oAuthDbFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAiB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAuB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AASrE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAA+B,EAAE;IAC7D,MAAM,EAAE,EAAE,GAAG,aAAa,CAAC,gBAAgB,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC;IAEzE,wDAAwD;IACxD,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QACtB,OAAO,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,mDAAmD;IACnD,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAA8B,EAAE;IAClE,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAwB,EAAE;IAC5D,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -1,36 +0,0 @@
1
- import type { AccessToken, ClientCredentials, Logger, OAuthDb, PKCEValues } from './types.js';
2
- export interface RedisClient {
3
- get(key: string): Promise<string | null>;
4
- set(key: string, value: string): Promise<unknown>;
5
- setex(key: string, seconds: number, value: string): Promise<unknown>;
6
- del(key: string): Promise<number>;
7
- quit(): Promise<unknown>;
8
- }
9
- export interface RedisOAuthDbConfig {
10
- redis: RedisClient | string;
11
- encrypt?: (data: string) => string;
12
- decrypt?: (data: string) => string;
13
- logger?: Logger;
14
- keyPrefix?: string;
15
- ttl?: number;
16
- }
17
- export declare class RedisOAuthDb implements OAuthDb {
18
- private redis;
19
- private encrypt;
20
- private decrypt;
21
- private logger;
22
- private keyPrefix;
23
- private ttl?;
24
- constructor({ redis, encrypt, decrypt, logger, keyPrefix, ttl }: RedisOAuthDbConfig);
25
- private createRedisClient;
26
- private getRedisClient;
27
- private getKey;
28
- getClientCredentials(resourceUrl: string): Promise<ClientCredentials | null>;
29
- saveClientCredentials(resourceUrl: string, credentials: ClientCredentials): Promise<void>;
30
- getPKCEValues(userId: string, state: string): Promise<PKCEValues | null>;
31
- savePKCEValues(userId: string, state: string, values: PKCEValues): Promise<void>;
32
- getAccessToken(userId: string, url: string): Promise<AccessToken | null>;
33
- saveAccessToken(userId: string, url: string, token: AccessToken): Promise<void>;
34
- close(): Promise<void>;
35
- }
36
- //# sourceMappingURL=redisOAuthDb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redisOAuthDb.d.ts","sourceRoot":"","sources":["../src/redisOAuthDb.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE9F,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAC,CAAS;gBAET,EACV,KAAK,EACL,OAAgC,EAChC,OAAgC,EAChC,MAA4B,EAC5B,SAAoB,EACpB,GAAG,EACJ,EAAE,kBAAkB;YAeP,iBAAiB;YAUjB,cAAc;IAO5B,OAAO,CAAC,MAAM;IAIR,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAoB5E,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqBxE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAehF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAgCxE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB/E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
@@ -1,160 +0,0 @@
1
- import { ConsoleLogger } from './logger.js';
2
- export class RedisOAuthDb {
3
- constructor({ redis, encrypt = (data) => data, decrypt = (data) => data, logger = new ConsoleLogger(), keyPrefix = 'oauth:', ttl }) {
4
- if (typeof redis === 'string') {
5
- // Dynamic import to avoid bundling issues
6
- this.redis = this.createRedisClient(redis);
7
- }
8
- else {
9
- this.redis = redis;
10
- }
11
- this.encrypt = encrypt;
12
- this.decrypt = decrypt;
13
- this.logger = logger;
14
- this.keyPrefix = keyPrefix;
15
- this.ttl = ttl;
16
- }
17
- async createRedisClient(redisUrl) {
18
- // Use dynamic import to avoid bundling issues with optional dependencies
19
- try {
20
- const { default: Redis } = await import('ioredis');
21
- return new Redis(redisUrl);
22
- }
23
- catch (error) {
24
- throw new Error(`Failed to create Redis client from URL "${redisUrl}". Make sure ioredis is installed: npm install ioredis. Error: ${error}`);
25
- }
26
- }
27
- async getRedisClient() {
28
- if (this.redis instanceof Promise) {
29
- this.redis = await this.redis; // Resolve once and cache
30
- }
31
- return this.redis;
32
- }
33
- getKey(type, ...parts) {
34
- return `${this.keyPrefix}${type}:${parts.join(':')}`;
35
- }
36
- async getClientCredentials(resourceUrl) {
37
- const redis = await this.getRedisClient();
38
- const key = this.getKey('client_credentials', resourceUrl);
39
- const data = await redis.get(key);
40
- if (!data)
41
- return null;
42
- try {
43
- const parsed = JSON.parse(data);
44
- return {
45
- clientId: this.decrypt(parsed.encrypted_client_id),
46
- clientSecret: this.decrypt(parsed.encrypted_client_secret),
47
- redirectUri: parsed.redirect_uri
48
- };
49
- }
50
- catch (error) {
51
- this.logger.error(`Failed to parse client credentials for ${resourceUrl}: ${error}`);
52
- return null;
53
- }
54
- }
55
- async saveClientCredentials(resourceUrl, credentials) {
56
- const redis = await this.getRedisClient();
57
- const key = this.getKey('client_credentials', resourceUrl);
58
- const data = JSON.stringify({
59
- encrypted_client_id: this.encrypt(credentials.clientId),
60
- encrypted_client_secret: this.encrypt(credentials.clientSecret),
61
- redirect_uri: credentials.redirectUri
62
- });
63
- await redis.set(key, data);
64
- }
65
- async getPKCEValues(userId, state) {
66
- const redis = await this.getRedisClient();
67
- const key = this.getKey('pkce', userId, state);
68
- const data = await redis.get(key);
69
- if (!data)
70
- return null;
71
- try {
72
- const parsed = JSON.parse(data);
73
- return {
74
- codeVerifier: this.decrypt(parsed.encrypted_code_verifier),
75
- codeChallenge: this.decrypt(parsed.encrypted_code_challenge),
76
- resourceUrl: parsed.resource_url,
77
- url: parsed.url
78
- };
79
- }
80
- catch (error) {
81
- this.logger.error(`Failed to parse PKCE values for ${userId}:${state}: ${error}`);
82
- return null;
83
- }
84
- }
85
- async savePKCEValues(userId, state, values) {
86
- const key = this.getKey('pkce', userId, state);
87
- const data = JSON.stringify({
88
- encrypted_code_verifier: this.encrypt(values.codeVerifier),
89
- encrypted_code_challenge: this.encrypt(values.codeChallenge),
90
- resource_url: values.resourceUrl,
91
- url: values.url
92
- });
93
- // PKCE values are short-lived, set a reasonable TTL (10 minutes)
94
- const redis = await this.getRedisClient();
95
- const pkceTtl = 600; // 10 minutes
96
- await redis.setex(key, pkceTtl, data);
97
- }
98
- async getAccessToken(userId, url) {
99
- const redis = await this.getRedisClient();
100
- const key = this.getKey('access_token', userId, url);
101
- const data = await redis.get(key);
102
- if (!data)
103
- return null;
104
- try {
105
- const parsed = JSON.parse(data);
106
- // Check if token is expired
107
- if (parsed.expires_at) {
108
- const expiresAt = parseInt(parsed.expires_at);
109
- if (Date.now() >= expiresAt * 1000) {
110
- // Token is expired, remove it
111
- await redis.del(key);
112
- return null;
113
- }
114
- }
115
- return {
116
- accessToken: this.decrypt(parsed.encrypted_access_token),
117
- refreshToken: parsed.encrypted_refresh_token ? this.decrypt(parsed.encrypted_refresh_token) : undefined,
118
- expiresAt: parsed.expires_at ? parseInt(parsed.expires_at) : undefined,
119
- resourceUrl: parsed.resource_url
120
- };
121
- }
122
- catch (error) {
123
- this.logger.error(`Failed to parse access token for ${userId}:${url}: ${error}`);
124
- return null;
125
- }
126
- }
127
- async saveAccessToken(userId, url, token) {
128
- const redis = await this.getRedisClient();
129
- const key = this.getKey('access_token', userId, url);
130
- const data = JSON.stringify({
131
- resource_url: token.resourceUrl,
132
- encrypted_access_token: this.encrypt(token.accessToken),
133
- encrypted_refresh_token: token.refreshToken ? this.encrypt(token.refreshToken) : null,
134
- expires_at: token.expiresAt?.toString() ?? null
135
- });
136
- if (this.ttl) {
137
- // Use configured TTL
138
- await redis.setex(key, this.ttl, data);
139
- }
140
- else if (token.expiresAt) {
141
- // Use token's expiration time
142
- const ttlSeconds = Math.max(1, token.expiresAt - Math.floor(Date.now() / 1000));
143
- await redis.setex(key, ttlSeconds, data);
144
- }
145
- else {
146
- // No expiration, store indefinitely
147
- await redis.set(key, data);
148
- }
149
- }
150
- async close() {
151
- try {
152
- const redis = await this.getRedisClient();
153
- await redis.quit();
154
- }
155
- catch (error) {
156
- this.logger.warn(`Error closing Redis connection: ${error}`);
157
- }
158
- }
159
- }
160
- //# sourceMappingURL=redisOAuthDb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redisOAuthDb.js","sourceRoot":"","sources":["../src/redisOAuthDb.ts"],"names":[],"mappings":"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"}