@oatfi/oatfi-sdk-ts 0.10.2 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/lib/config.d.ts +2 -2
- package/dist/commonjs/lib/config.js +2 -2
- package/dist/commonjs/sdk/sdk.d.ts +94 -0
- package/dist/commonjs/sdk/sdk.d.ts.map +1 -1
- package/dist/commonjs/sdk/sdk.js +143 -0
- package/dist/commonjs/sdk/sdk.js.map +1 -1
- package/dist/esm/lib/config.d.ts +2 -2
- package/dist/esm/lib/config.js +2 -2
- package/dist/esm/sdk/sdk.d.ts +94 -0
- package/dist/esm/sdk/sdk.d.ts.map +1 -1
- package/dist/esm/sdk/sdk.js +143 -0
- package/dist/esm/sdk/sdk.js.map +1 -1
- package/examples/package-lock.json +1 -1
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/src/lib/config.ts +2 -2
- package/src/sdk/sdk.ts +185 -0
|
@@ -31,8 +31,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
|
|
|
31
31
|
export declare const SDK_METADATA: {
|
|
32
32
|
readonly language: "typescript";
|
|
33
33
|
readonly openapiDocVersion: "3.0.0";
|
|
34
|
-
readonly sdkVersion: "0.
|
|
34
|
+
readonly sdkVersion: "0.11.2";
|
|
35
35
|
readonly genVersion: "2.731.6";
|
|
36
|
-
readonly userAgent: "speakeasy-sdk/typescript 0.
|
|
36
|
+
readonly userAgent: "speakeasy-sdk/typescript 0.11.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts";
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -39,8 +39,8 @@ function serverURLFromOptions(options) {
|
|
|
39
39
|
exports.SDK_METADATA = {
|
|
40
40
|
language: "typescript",
|
|
41
41
|
openapiDocVersion: "3.0.0",
|
|
42
|
-
sdkVersion: "0.
|
|
42
|
+
sdkVersion: "0.11.2",
|
|
43
43
|
genVersion: "2.731.6",
|
|
44
|
-
userAgent: "speakeasy-sdk/typescript 0.
|
|
44
|
+
userAgent: "speakeasy-sdk/typescript 0.11.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts",
|
|
45
45
|
};
|
|
46
46
|
//# sourceMappingURL=config.js.map
|
|
@@ -87,5 +87,99 @@ export declare class OatFiSDK extends ClientSDK {
|
|
|
87
87
|
get programSettings(): ProgramSettings;
|
|
88
88
|
private _users?;
|
|
89
89
|
get users(): Users;
|
|
90
|
+
/**
|
|
91
|
+
* Token cache for managing access tokens per API key/server combination.
|
|
92
|
+
* Map key format: "{serverURL || serverIdx}-{apiKeyLast10Chars}"
|
|
93
|
+
*/
|
|
94
|
+
private static tokenCache;
|
|
95
|
+
/**
|
|
96
|
+
* Initialize an authenticated SDK instance with automatic token management.
|
|
97
|
+
*
|
|
98
|
+
* This method handles the two-step authentication process:
|
|
99
|
+
* 1. Checks for cached token (uses cache if valid)
|
|
100
|
+
* 2. If needed, creates temporary SDK to exchange API key for bearer token
|
|
101
|
+
* 3. Caches the token with expiration
|
|
102
|
+
* 4. Returns SDK instance with bearer token
|
|
103
|
+
*
|
|
104
|
+
* Tokens are automatically cached per API key/server combination.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const sdk = await OatFiSDK.initialize({
|
|
109
|
+
* apiKey: 'your-api-key',
|
|
110
|
+
* serverIdx: 0
|
|
111
|
+
* });
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
static initialize(config: {
|
|
115
|
+
apiKey: string;
|
|
116
|
+
serverIdx?: number;
|
|
117
|
+
serverURL?: string;
|
|
118
|
+
debug?: boolean;
|
|
119
|
+
retryConfig?: import("../lib/retries.js").RetryConfig;
|
|
120
|
+
timeoutMs?: number;
|
|
121
|
+
}): Promise<OatFiSDK>;
|
|
122
|
+
/**
|
|
123
|
+
* Create SDK from API key with automatic token exchange (simple factory method).
|
|
124
|
+
*
|
|
125
|
+
* This is a convenience method that calls initialize() internally.
|
|
126
|
+
* For advanced token management, use initialize() instead.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const sdk = await OatFiSDK.createFromApiKey({
|
|
131
|
+
* apiKey: 'your-api-key',
|
|
132
|
+
* serverIdx: 0
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
static createFromApiKey(config: {
|
|
137
|
+
apiKey: string;
|
|
138
|
+
serverIdx?: number;
|
|
139
|
+
serverURL?: string;
|
|
140
|
+
debug?: boolean;
|
|
141
|
+
retryConfig?: import("../lib/retries.js").RetryConfig;
|
|
142
|
+
timeoutMs?: number;
|
|
143
|
+
}): Promise<OatFiSDK>;
|
|
144
|
+
/**
|
|
145
|
+
* Manually refresh the access token for a given configuration.
|
|
146
|
+
* This clears the cache and forces a new token exchange.
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const sdk = await OatFiSDK.refreshToken({
|
|
151
|
+
* apiKey: 'your-api-key',
|
|
152
|
+
* serverIdx: 0
|
|
153
|
+
* });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
static refreshToken(config: {
|
|
157
|
+
apiKey: string;
|
|
158
|
+
serverIdx?: number;
|
|
159
|
+
serverURL?: string;
|
|
160
|
+
debug?: boolean;
|
|
161
|
+
}): Promise<OatFiSDK>;
|
|
162
|
+
/**
|
|
163
|
+
* Get the current cached access token for a configuration.
|
|
164
|
+
* Returns null if no token is cached or token is expired.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* const token = OatFiSDK.getCachedToken({
|
|
169
|
+
* apiKey: 'your-api-key',
|
|
170
|
+
* serverIdx: 0
|
|
171
|
+
* });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
static getCachedToken(config: {
|
|
175
|
+
apiKey: string;
|
|
176
|
+
serverIdx?: number;
|
|
177
|
+
serverURL?: string;
|
|
178
|
+
}): string | null;
|
|
179
|
+
/**
|
|
180
|
+
* Clear the entire token cache.
|
|
181
|
+
* Useful when switching users or debugging.
|
|
182
|
+
*/
|
|
183
|
+
static clearTokenCache(): void;
|
|
90
184
|
}
|
|
91
185
|
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/commonjs/sdk/sdk.js
CHANGED
|
@@ -34,6 +34,10 @@ const platformsettings_js_1 = require("./platformsettings.js");
|
|
|
34
34
|
const programs_js_1 = require("./programs.js");
|
|
35
35
|
const programsettings_js_1 = require("./programsettings.js");
|
|
36
36
|
const users_js_1 = require("./users.js");
|
|
37
|
+
// #region imports
|
|
38
|
+
// Add your custom imports here
|
|
39
|
+
// Example: import { MyCustomUtility } from "../lib/custom-utility.js";
|
|
40
|
+
// #endregion imports
|
|
37
41
|
class OatFiSDK extends sdks_js_1.ClientSDK {
|
|
38
42
|
get applications() {
|
|
39
43
|
return (this._applications ?? (this._applications = new applications_js_1.Applications(this._options)));
|
|
@@ -122,6 +126,145 @@ class OatFiSDK extends sdks_js_1.ClientSDK {
|
|
|
122
126
|
get users() {
|
|
123
127
|
return (this._users ?? (this._users = new users_js_1.Users(this._options)));
|
|
124
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Initialize an authenticated SDK instance with automatic token management.
|
|
131
|
+
*
|
|
132
|
+
* This method handles the two-step authentication process:
|
|
133
|
+
* 1. Checks for cached token (uses cache if valid)
|
|
134
|
+
* 2. If needed, creates temporary SDK to exchange API key for bearer token
|
|
135
|
+
* 3. Caches the token with expiration
|
|
136
|
+
* 4. Returns SDK instance with bearer token
|
|
137
|
+
*
|
|
138
|
+
* Tokens are automatically cached per API key/server combination.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* const sdk = await OatFiSDK.initialize({
|
|
143
|
+
* apiKey: 'your-api-key',
|
|
144
|
+
* serverIdx: 0
|
|
145
|
+
* });
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
static async initialize(config) {
|
|
149
|
+
const { apiKey, serverIdx = 0, serverURL, debug = false } = config;
|
|
150
|
+
// Create cache key based on config
|
|
151
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
152
|
+
// Check if we have a valid cached token
|
|
153
|
+
const cached = OatFiSDK.tokenCache.get(cacheKey);
|
|
154
|
+
const now = Date.now();
|
|
155
|
+
let accessToken;
|
|
156
|
+
if (cached && cached.expiresAt > now + 60000) { // Refresh if expiring in <1min
|
|
157
|
+
accessToken = cached.token;
|
|
158
|
+
if (debug)
|
|
159
|
+
console.log("Using cached access token");
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// Step 1: Create temporary SDK for token exchange
|
|
163
|
+
const authSDK = new OatFiSDK({
|
|
164
|
+
serverIdx,
|
|
165
|
+
serverURL,
|
|
166
|
+
...(debug && { debug: true }),
|
|
167
|
+
});
|
|
168
|
+
// Step 2: Exchange API key for bearer token
|
|
169
|
+
if (debug)
|
|
170
|
+
console.log("Exchanging API key for bearer token...");
|
|
171
|
+
const tokenResult = await authSDK.authentications.token({
|
|
172
|
+
apiKey: apiKey,
|
|
173
|
+
});
|
|
174
|
+
accessToken = tokenResult.accessToken;
|
|
175
|
+
// Cache the token (assume 1 hour expiry unless we get expiresIn)
|
|
176
|
+
const expiresIn = tokenResult.expiresIn || 3600;
|
|
177
|
+
OatFiSDK.tokenCache.set(cacheKey, {
|
|
178
|
+
token: accessToken,
|
|
179
|
+
expiresAt: now + expiresIn * 1000,
|
|
180
|
+
});
|
|
181
|
+
if (debug)
|
|
182
|
+
console.log("Access token obtained and cached");
|
|
183
|
+
}
|
|
184
|
+
// Step 3: Create the main SDK with bearer token
|
|
185
|
+
return new OatFiSDK({
|
|
186
|
+
bearer: accessToken,
|
|
187
|
+
serverIdx,
|
|
188
|
+
serverURL,
|
|
189
|
+
...(debug && { debug: true }),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Create SDK from API key with automatic token exchange (simple factory method).
|
|
194
|
+
*
|
|
195
|
+
* This is a convenience method that calls initialize() internally.
|
|
196
|
+
* For advanced token management, use initialize() instead.
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* const sdk = await OatFiSDK.createFromApiKey({
|
|
201
|
+
* apiKey: 'your-api-key',
|
|
202
|
+
* serverIdx: 0
|
|
203
|
+
* });
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
static async createFromApiKey(config) {
|
|
207
|
+
return OatFiSDK.initialize(config);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Manually refresh the access token for a given configuration.
|
|
211
|
+
* This clears the cache and forces a new token exchange.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* const sdk = await OatFiSDK.refreshToken({
|
|
216
|
+
* apiKey: 'your-api-key',
|
|
217
|
+
* serverIdx: 0
|
|
218
|
+
* });
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
static async refreshToken(config) {
|
|
222
|
+
const { apiKey, serverIdx = 0, serverURL } = config;
|
|
223
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
224
|
+
// Clear cache for this key
|
|
225
|
+
OatFiSDK.tokenCache.delete(cacheKey);
|
|
226
|
+
// Re-initialize to get fresh token
|
|
227
|
+
return OatFiSDK.initialize(config);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get the current cached access token for a configuration.
|
|
231
|
+
* Returns null if no token is cached or token is expired.
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```typescript
|
|
235
|
+
* const token = OatFiSDK.getCachedToken({
|
|
236
|
+
* apiKey: 'your-api-key',
|
|
237
|
+
* serverIdx: 0
|
|
238
|
+
* });
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
static getCachedToken(config) {
|
|
242
|
+
const { apiKey, serverIdx = 0, serverURL } = config;
|
|
243
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
244
|
+
const cached = OatFiSDK.tokenCache.get(cacheKey);
|
|
245
|
+
if (!cached)
|
|
246
|
+
return null;
|
|
247
|
+
const now = Date.now();
|
|
248
|
+
if (cached.expiresAt <= now) {
|
|
249
|
+
// Expired, remove from cache
|
|
250
|
+
OatFiSDK.tokenCache.delete(cacheKey);
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
return cached.token;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Clear the entire token cache.
|
|
257
|
+
* Useful when switching users or debugging.
|
|
258
|
+
*/
|
|
259
|
+
static clearTokenCache() {
|
|
260
|
+
OatFiSDK.tokenCache.clear();
|
|
261
|
+
}
|
|
125
262
|
}
|
|
126
263
|
exports.OatFiSDK = OatFiSDK;
|
|
264
|
+
// #region sdk-class-body
|
|
265
|
+
/**
|
|
266
|
+
* Token cache for managing access tokens per API key/server combination.
|
|
267
|
+
* Map key format: "{serverURL || serverIdx}-{apiKeyLast10Chars}"
|
|
268
|
+
*/
|
|
269
|
+
OatFiSDK.tokenCache = new Map();
|
|
127
270
|
//# sourceMappingURL=sdk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA2C;AAC3C,+DAAyD;AACzD,uDAAiD;AACjD,mEAA6D;AAC7D,uCAAiC;AACjC,2DAAqD;AACrD,6DAAuD;AACvD,mDAA6C;AAC7C,yDAAmD;AACnD,iFAA2E;AAC3E,yDAAmD;AACnD,6DAAuD;AACvD,qEAA+D;AAC/D,yCAAmC;AACnC,yCAAmC;AACnC,iEAA2D;AAC3D,yCAAmC;AACnC,uEAAiE;AACjE,uDAAiD;AACjD,2DAAqD;AACrD,+CAAyC;AACzC,6CAAuC;AACvC,qDAA+C;AAC/C,6DAAuD;AACvD,mEAA6D;AAC7D,iDAA2C;AAC3C,+DAAyD;AACzD,+CAAyC;AACzC,6DAAuD;AACvD,yCAAmC;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/lib/config.d.ts
CHANGED
|
@@ -31,8 +31,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
|
|
|
31
31
|
export declare const SDK_METADATA: {
|
|
32
32
|
readonly language: "typescript";
|
|
33
33
|
readonly openapiDocVersion: "3.0.0";
|
|
34
|
-
readonly sdkVersion: "0.
|
|
34
|
+
readonly sdkVersion: "0.11.2";
|
|
35
35
|
readonly genVersion: "2.731.6";
|
|
36
|
-
readonly userAgent: "speakeasy-sdk/typescript 0.
|
|
36
|
+
readonly userAgent: "speakeasy-sdk/typescript 0.11.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts";
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/esm/lib/config.js
CHANGED
|
@@ -35,8 +35,8 @@ export function serverURLFromOptions(options) {
|
|
|
35
35
|
export const SDK_METADATA = {
|
|
36
36
|
language: "typescript",
|
|
37
37
|
openapiDocVersion: "3.0.0",
|
|
38
|
-
sdkVersion: "0.
|
|
38
|
+
sdkVersion: "0.11.2",
|
|
39
39
|
genVersion: "2.731.6",
|
|
40
|
-
userAgent: "speakeasy-sdk/typescript 0.
|
|
40
|
+
userAgent: "speakeasy-sdk/typescript 0.11.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts",
|
|
41
41
|
};
|
|
42
42
|
//# sourceMappingURL=config.js.map
|
package/dist/esm/sdk/sdk.d.ts
CHANGED
|
@@ -87,5 +87,99 @@ export declare class OatFiSDK extends ClientSDK {
|
|
|
87
87
|
get programSettings(): ProgramSettings;
|
|
88
88
|
private _users?;
|
|
89
89
|
get users(): Users;
|
|
90
|
+
/**
|
|
91
|
+
* Token cache for managing access tokens per API key/server combination.
|
|
92
|
+
* Map key format: "{serverURL || serverIdx}-{apiKeyLast10Chars}"
|
|
93
|
+
*/
|
|
94
|
+
private static tokenCache;
|
|
95
|
+
/**
|
|
96
|
+
* Initialize an authenticated SDK instance with automatic token management.
|
|
97
|
+
*
|
|
98
|
+
* This method handles the two-step authentication process:
|
|
99
|
+
* 1. Checks for cached token (uses cache if valid)
|
|
100
|
+
* 2. If needed, creates temporary SDK to exchange API key for bearer token
|
|
101
|
+
* 3. Caches the token with expiration
|
|
102
|
+
* 4. Returns SDK instance with bearer token
|
|
103
|
+
*
|
|
104
|
+
* Tokens are automatically cached per API key/server combination.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const sdk = await OatFiSDK.initialize({
|
|
109
|
+
* apiKey: 'your-api-key',
|
|
110
|
+
* serverIdx: 0
|
|
111
|
+
* });
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
static initialize(config: {
|
|
115
|
+
apiKey: string;
|
|
116
|
+
serverIdx?: number;
|
|
117
|
+
serverURL?: string;
|
|
118
|
+
debug?: boolean;
|
|
119
|
+
retryConfig?: import("../lib/retries.js").RetryConfig;
|
|
120
|
+
timeoutMs?: number;
|
|
121
|
+
}): Promise<OatFiSDK>;
|
|
122
|
+
/**
|
|
123
|
+
* Create SDK from API key with automatic token exchange (simple factory method).
|
|
124
|
+
*
|
|
125
|
+
* This is a convenience method that calls initialize() internally.
|
|
126
|
+
* For advanced token management, use initialize() instead.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const sdk = await OatFiSDK.createFromApiKey({
|
|
131
|
+
* apiKey: 'your-api-key',
|
|
132
|
+
* serverIdx: 0
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
static createFromApiKey(config: {
|
|
137
|
+
apiKey: string;
|
|
138
|
+
serverIdx?: number;
|
|
139
|
+
serverURL?: string;
|
|
140
|
+
debug?: boolean;
|
|
141
|
+
retryConfig?: import("../lib/retries.js").RetryConfig;
|
|
142
|
+
timeoutMs?: number;
|
|
143
|
+
}): Promise<OatFiSDK>;
|
|
144
|
+
/**
|
|
145
|
+
* Manually refresh the access token for a given configuration.
|
|
146
|
+
* This clears the cache and forces a new token exchange.
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const sdk = await OatFiSDK.refreshToken({
|
|
151
|
+
* apiKey: 'your-api-key',
|
|
152
|
+
* serverIdx: 0
|
|
153
|
+
* });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
static refreshToken(config: {
|
|
157
|
+
apiKey: string;
|
|
158
|
+
serverIdx?: number;
|
|
159
|
+
serverURL?: string;
|
|
160
|
+
debug?: boolean;
|
|
161
|
+
}): Promise<OatFiSDK>;
|
|
162
|
+
/**
|
|
163
|
+
* Get the current cached access token for a configuration.
|
|
164
|
+
* Returns null if no token is cached or token is expired.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* const token = OatFiSDK.getCachedToken({
|
|
169
|
+
* apiKey: 'your-api-key',
|
|
170
|
+
* serverIdx: 0
|
|
171
|
+
* });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
static getCachedToken(config: {
|
|
175
|
+
apiKey: string;
|
|
176
|
+
serverIdx?: number;
|
|
177
|
+
serverURL?: string;
|
|
178
|
+
}): string | null;
|
|
179
|
+
/**
|
|
180
|
+
* Clear the entire token cache.
|
|
181
|
+
* Useful when switching users or debugging.
|
|
182
|
+
*/
|
|
183
|
+
static clearTokenCache(): void;
|
|
90
184
|
}
|
|
91
185
|
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/sdk/sdk.js
CHANGED
|
@@ -31,6 +31,10 @@ import { PlatformSettings } from "./platformsettings.js";
|
|
|
31
31
|
import { Programs } from "./programs.js";
|
|
32
32
|
import { ProgramSettings } from "./programsettings.js";
|
|
33
33
|
import { Users } from "./users.js";
|
|
34
|
+
// #region imports
|
|
35
|
+
// Add your custom imports here
|
|
36
|
+
// Example: import { MyCustomUtility } from "../lib/custom-utility.js";
|
|
37
|
+
// #endregion imports
|
|
34
38
|
export class OatFiSDK extends ClientSDK {
|
|
35
39
|
get applications() {
|
|
36
40
|
return (this._applications ?? (this._applications = new Applications(this._options)));
|
|
@@ -119,5 +123,144 @@ export class OatFiSDK extends ClientSDK {
|
|
|
119
123
|
get users() {
|
|
120
124
|
return (this._users ?? (this._users = new Users(this._options)));
|
|
121
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Initialize an authenticated SDK instance with automatic token management.
|
|
128
|
+
*
|
|
129
|
+
* This method handles the two-step authentication process:
|
|
130
|
+
* 1. Checks for cached token (uses cache if valid)
|
|
131
|
+
* 2. If needed, creates temporary SDK to exchange API key for bearer token
|
|
132
|
+
* 3. Caches the token with expiration
|
|
133
|
+
* 4. Returns SDK instance with bearer token
|
|
134
|
+
*
|
|
135
|
+
* Tokens are automatically cached per API key/server combination.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* const sdk = await OatFiSDK.initialize({
|
|
140
|
+
* apiKey: 'your-api-key',
|
|
141
|
+
* serverIdx: 0
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
static async initialize(config) {
|
|
146
|
+
const { apiKey, serverIdx = 0, serverURL, debug = false } = config;
|
|
147
|
+
// Create cache key based on config
|
|
148
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
149
|
+
// Check if we have a valid cached token
|
|
150
|
+
const cached = OatFiSDK.tokenCache.get(cacheKey);
|
|
151
|
+
const now = Date.now();
|
|
152
|
+
let accessToken;
|
|
153
|
+
if (cached && cached.expiresAt > now + 60000) { // Refresh if expiring in <1min
|
|
154
|
+
accessToken = cached.token;
|
|
155
|
+
if (debug)
|
|
156
|
+
console.log("Using cached access token");
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Step 1: Create temporary SDK for token exchange
|
|
160
|
+
const authSDK = new OatFiSDK({
|
|
161
|
+
serverIdx,
|
|
162
|
+
serverURL,
|
|
163
|
+
...(debug && { debug: true }),
|
|
164
|
+
});
|
|
165
|
+
// Step 2: Exchange API key for bearer token
|
|
166
|
+
if (debug)
|
|
167
|
+
console.log("Exchanging API key for bearer token...");
|
|
168
|
+
const tokenResult = await authSDK.authentications.token({
|
|
169
|
+
apiKey: apiKey,
|
|
170
|
+
});
|
|
171
|
+
accessToken = tokenResult.accessToken;
|
|
172
|
+
// Cache the token (assume 1 hour expiry unless we get expiresIn)
|
|
173
|
+
const expiresIn = tokenResult.expiresIn || 3600;
|
|
174
|
+
OatFiSDK.tokenCache.set(cacheKey, {
|
|
175
|
+
token: accessToken,
|
|
176
|
+
expiresAt: now + expiresIn * 1000,
|
|
177
|
+
});
|
|
178
|
+
if (debug)
|
|
179
|
+
console.log("Access token obtained and cached");
|
|
180
|
+
}
|
|
181
|
+
// Step 3: Create the main SDK with bearer token
|
|
182
|
+
return new OatFiSDK({
|
|
183
|
+
bearer: accessToken,
|
|
184
|
+
serverIdx,
|
|
185
|
+
serverURL,
|
|
186
|
+
...(debug && { debug: true }),
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Create SDK from API key with automatic token exchange (simple factory method).
|
|
191
|
+
*
|
|
192
|
+
* This is a convenience method that calls initialize() internally.
|
|
193
|
+
* For advanced token management, use initialize() instead.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* const sdk = await OatFiSDK.createFromApiKey({
|
|
198
|
+
* apiKey: 'your-api-key',
|
|
199
|
+
* serverIdx: 0
|
|
200
|
+
* });
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
static async createFromApiKey(config) {
|
|
204
|
+
return OatFiSDK.initialize(config);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Manually refresh the access token for a given configuration.
|
|
208
|
+
* This clears the cache and forces a new token exchange.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* const sdk = await OatFiSDK.refreshToken({
|
|
213
|
+
* apiKey: 'your-api-key',
|
|
214
|
+
* serverIdx: 0
|
|
215
|
+
* });
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
static async refreshToken(config) {
|
|
219
|
+
const { apiKey, serverIdx = 0, serverURL } = config;
|
|
220
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
221
|
+
// Clear cache for this key
|
|
222
|
+
OatFiSDK.tokenCache.delete(cacheKey);
|
|
223
|
+
// Re-initialize to get fresh token
|
|
224
|
+
return OatFiSDK.initialize(config);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get the current cached access token for a configuration.
|
|
228
|
+
* Returns null if no token is cached or token is expired.
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* const token = OatFiSDK.getCachedToken({
|
|
233
|
+
* apiKey: 'your-api-key',
|
|
234
|
+
* serverIdx: 0
|
|
235
|
+
* });
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
static getCachedToken(config) {
|
|
239
|
+
const { apiKey, serverIdx = 0, serverURL } = config;
|
|
240
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
241
|
+
const cached = OatFiSDK.tokenCache.get(cacheKey);
|
|
242
|
+
if (!cached)
|
|
243
|
+
return null;
|
|
244
|
+
const now = Date.now();
|
|
245
|
+
if (cached.expiresAt <= now) {
|
|
246
|
+
// Expired, remove from cache
|
|
247
|
+
OatFiSDK.tokenCache.delete(cacheKey);
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
return cached.token;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Clear the entire token cache.
|
|
254
|
+
* Useful when switching users or debugging.
|
|
255
|
+
*/
|
|
256
|
+
static clearTokenCache() {
|
|
257
|
+
OatFiSDK.tokenCache.clear();
|
|
258
|
+
}
|
|
122
259
|
}
|
|
260
|
+
// #region sdk-class-body
|
|
261
|
+
/**
|
|
262
|
+
* Token cache for managing access tokens per API key/server combination.
|
|
263
|
+
* Map key format: "{serverURL || serverIdx}-{apiKeyLast10Chars}"
|
|
264
|
+
*/
|
|
265
|
+
OatFiSDK.tokenCache = new Map();
|
|
123
266
|
//# sourceMappingURL=sdk.js.map
|
package/dist/esm/sdk/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,kBAAkB;AAClB,+BAA+B;AAC/B,uEAAuE;AACvE,qBAAqB;AAErB,MAAM,OAAO,QAAS,SAAQ,SAAS;IAErC,IAAI,YAAY;QACd,OAAO,CAAC,IAAI,CAAC,aAAa,KAAlB,IAAI,CAAC,aAAa,GAAK,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAClE,CAAC;IAGD,IAAI,eAAe;QACjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,KAArB,IAAI,CAAC,gBAAgB,GAAK,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACxE,CAAC;IAGD,IAAI,cAAc;QAChB,OAAO,CAAC,IAAI,CAAC,eAAe,KAApB,IAAI,CAAC,eAAe,GAAK,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACtE,CAAC;IAGD,IAAI,IAAI;QACN,OAAO,CAAC,IAAI,CAAC,KAAK,KAAV,IAAI,CAAC,KAAK,GAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAClD,CAAC;IAGD,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACxD,CAAC;IAGD,IAAI,eAAe;QACjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,KAArB,IAAI,CAAC,gBAAgB,GAAK,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACxE,CAAC;IAGD,IAAI,UAAU;QACZ,OAAO,CAAC,IAAI,CAAC,WAAW,KAAhB,IAAI,CAAC,WAAW,GAAK,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC9D,CAAC;IAGD,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,MAAM,KAAX,IAAI,CAAC,MAAM,GAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACpD,CAAC;IAGD,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,MAAM,KAAX,IAAI,CAAC,MAAM,GAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACpD,CAAC;IAGD,IAAI,aAAa;QACf,OAAO,CAAC,IAAI,CAAC,cAAc,KAAnB,IAAI,CAAC,cAAc,GAAK,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACpE,CAAC;IAGD,IAAI,gBAAgB;QAClB,OAAO,CAAC,IAAI,CAAC,iBAAiB,KAAtB,IAAI,CAAC,iBAAiB,GAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC1E,CAAC;IAGD,IAAI,kBAAkB;QACpB,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAxB,IAAI,CAAC,mBAAmB,GAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC9E,CAAC;IAGD,IAAI,cAAc;QAChB,OAAO,CAAC,IAAI,CAAC,eAAe,KAApB,IAAI,CAAC,eAAe,GAAK,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACtE,CAAC;IAGD,IAAI,YAAY;QACd,OAAO,CAAC,IAAI,CAAC,aAAa,KAAlB,IAAI,CAAC,aAAa,GAAK,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAClE,CAAC;IAGD,IAAI,iBAAiB;QACnB,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAvB,IAAI,CAAC,kBAAkB,GAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC5E,CAAC;IAGD,IAAI,yBAAyB;QAC3B,OAAO,CAAC,IAAI,CAAC,0BAA0B,KAA/B,IAAI,CAAC,0BAA0B,GAAK,IAAI,yBAAyB,CACvE,IAAI,CAAC,QAAQ,CACd,EAAC,CAAC;IACL,CAAC;IAGD,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,MAAM,KAAX,IAAI,CAAC,MAAM,GAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACpD,CAAC;IAGD,IAAI,aAAa;QACf,OAAO,CAAC,IAAI,CAAC,cAAc,KAAnB,IAAI,CAAC,cAAc,GAAK,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACpE,CAAC;IAGD,IAAI,oBAAoB;QACtB,OAAO,CAAC,IAAI,CAAC,qBAAqB,KAA1B,IAAI,CAAC,qBAAqB,GAAK,IAAI,oBAAoB,CAC7D,IAAI,CAAC,QAAQ,CACd,EAAC,CAAC;IACL,CAAC;IAGD,IAAI,QAAQ;QACV,OAAO,CAAC,IAAI,CAAC,SAAS,KAAd,IAAI,CAAC,SAAS,GAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC1D,CAAC;IAGD,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,YAAY,KAAjB,IAAI,CAAC,YAAY,GAAK,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAChE,CAAC;IAGD,IAAI,mBAAmB;QACrB,OAAO,CAAC,IAAI,CAAC,oBAAoB,KAAzB,IAAI,CAAC,oBAAoB,GAAK,IAAI,mBAAmB,CAC3D,IAAI,CAAC,QAAQ,CACd,EAAC,CAAC;IACL,CAAC;IAGD,IAAI,SAAS;QACX,OAAO,CAAC,IAAI,CAAC,UAAU,KAAf,IAAI,CAAC,UAAU,GAAK,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC5D,CAAC;IAGD,IAAI,gBAAgB;QAClB,OAAO,CAAC,IAAI,CAAC,iBAAiB,KAAtB,IAAI,CAAC,iBAAiB,GAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC1E,CAAC;IAGD,IAAI,eAAe;QACjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,KAArB,IAAI,CAAC,gBAAgB,GAAK,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACxE,CAAC;IAGD,IAAI,kBAAkB;QACpB,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAxB,IAAI,CAAC,mBAAmB,GAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC9E,CAAC;IAGD,IAAI,QAAQ;QACV,OAAO,CAAC,IAAI,CAAC,SAAS,KAAd,IAAI,CAAC,SAAS,GAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IAC1D,CAAC;IAGD,IAAI,eAAe;QACjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,KAArB,IAAI,CAAC,gBAAgB,GAAK,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACxE,CAAC;IAGD,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,MAAM,KAAX,IAAI,CAAC,MAAM,GAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;IACpD,CAAC;IAWD;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAOvB;QACC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAEnE,mCAAmC;QACnC,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAElE,wCAAwC;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,WAAmB,CAAC;QAExB,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,+BAA+B;YAC7E,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC;gBAC3B,SAAS;gBACT,SAAS;gBACT,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC9B,CAAC,CAAC;YAEH,4CAA4C;YAC5C,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;gBACtD,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;YAEtC,iEAAiE;YACjE,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChC,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;aAClC,CAAC,CAAC;YAEH,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAC7D,CAAC;QAED,gDAAgD;QAChD,OAAO,IAAI,QAAQ,CAAC;YAClB,MAAM,EAAE,WAAW;YACnB,SAAS;YACT,SAAS;YACT,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAO7B;QACC,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAKzB;QACC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACpD,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAElE,2BAA2B;QAC3B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAErC,mCAAmC;QACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,cAAc,CAAC,MAIrB;QACC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACpD,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;YAC5B,6BAA6B;YAC7B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe;QACpB,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;;AAjLD,yBAAyB;AAEzB;;;GAGG;AACY,mBAAU,GACvB,IAAI,GAAG,EAAE,CAAC"}
|
package/jsr.json
CHANGED
package/package.json
CHANGED
package/src/lib/config.ts
CHANGED
|
@@ -69,8 +69,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
|
|
|
69
69
|
export const SDK_METADATA = {
|
|
70
70
|
language: "typescript",
|
|
71
71
|
openapiDocVersion: "3.0.0",
|
|
72
|
-
sdkVersion: "0.
|
|
72
|
+
sdkVersion: "0.11.2",
|
|
73
73
|
genVersion: "2.731.6",
|
|
74
74
|
userAgent:
|
|
75
|
-
"speakeasy-sdk/typescript 0.
|
|
75
|
+
"speakeasy-sdk/typescript 0.11.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts",
|
|
76
76
|
} as const;
|
package/src/sdk/sdk.ts
CHANGED
|
@@ -32,6 +32,10 @@ import { PlatformSettings } from "./platformsettings.js";
|
|
|
32
32
|
import { Programs } from "./programs.js";
|
|
33
33
|
import { ProgramSettings } from "./programsettings.js";
|
|
34
34
|
import { Users } from "./users.js";
|
|
35
|
+
// #region imports
|
|
36
|
+
// Add your custom imports here
|
|
37
|
+
// Example: import { MyCustomUtility } from "../lib/custom-utility.js";
|
|
38
|
+
// #endregion imports
|
|
35
39
|
|
|
36
40
|
export class OatFiSDK extends ClientSDK {
|
|
37
41
|
private _applications?: Applications;
|
|
@@ -184,4 +188,185 @@ export class OatFiSDK extends ClientSDK {
|
|
|
184
188
|
get users(): Users {
|
|
185
189
|
return (this._users ??= new Users(this._options));
|
|
186
190
|
}
|
|
191
|
+
|
|
192
|
+
// #region sdk-class-body
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Token cache for managing access tokens per API key/server combination.
|
|
196
|
+
* Map key format: "{serverURL || serverIdx}-{apiKeyLast10Chars}"
|
|
197
|
+
*/
|
|
198
|
+
private static tokenCache: Map<string, { token: string; expiresAt: number }> =
|
|
199
|
+
new Map();
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Initialize an authenticated SDK instance with automatic token management.
|
|
203
|
+
*
|
|
204
|
+
* This method handles the two-step authentication process:
|
|
205
|
+
* 1. Checks for cached token (uses cache if valid)
|
|
206
|
+
* 2. If needed, creates temporary SDK to exchange API key for bearer token
|
|
207
|
+
* 3. Caches the token with expiration
|
|
208
|
+
* 4. Returns SDK instance with bearer token
|
|
209
|
+
*
|
|
210
|
+
* Tokens are automatically cached per API key/server combination.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```typescript
|
|
214
|
+
* const sdk = await OatFiSDK.initialize({
|
|
215
|
+
* apiKey: 'your-api-key',
|
|
216
|
+
* serverIdx: 0
|
|
217
|
+
* });
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
static async initialize(config: {
|
|
221
|
+
apiKey: string;
|
|
222
|
+
serverIdx?: number;
|
|
223
|
+
serverURL?: string;
|
|
224
|
+
debug?: boolean;
|
|
225
|
+
retryConfig?: import("../lib/retries.js").RetryConfig;
|
|
226
|
+
timeoutMs?: number;
|
|
227
|
+
}): Promise<OatFiSDK> {
|
|
228
|
+
const { apiKey, serverIdx = 0, serverURL, debug = false } = config;
|
|
229
|
+
|
|
230
|
+
// Create cache key based on config
|
|
231
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
232
|
+
|
|
233
|
+
// Check if we have a valid cached token
|
|
234
|
+
const cached = OatFiSDK.tokenCache.get(cacheKey);
|
|
235
|
+
const now = Date.now();
|
|
236
|
+
|
|
237
|
+
let accessToken: string;
|
|
238
|
+
|
|
239
|
+
if (cached && cached.expiresAt > now + 60000) { // Refresh if expiring in <1min
|
|
240
|
+
accessToken = cached.token;
|
|
241
|
+
if (debug) console.log("Using cached access token");
|
|
242
|
+
} else {
|
|
243
|
+
// Step 1: Create temporary SDK for token exchange
|
|
244
|
+
const authSDK = new OatFiSDK({
|
|
245
|
+
serverIdx,
|
|
246
|
+
serverURL,
|
|
247
|
+
...(debug && { debug: true }),
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// Step 2: Exchange API key for bearer token
|
|
251
|
+
if (debug) console.log("Exchanging API key for bearer token...");
|
|
252
|
+
const tokenResult = await authSDK.authentications.token({
|
|
253
|
+
apiKey: apiKey,
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
accessToken = tokenResult.accessToken;
|
|
257
|
+
|
|
258
|
+
// Cache the token (assume 1 hour expiry unless we get expiresIn)
|
|
259
|
+
const expiresIn = tokenResult.expiresIn || 3600;
|
|
260
|
+
OatFiSDK.tokenCache.set(cacheKey, {
|
|
261
|
+
token: accessToken,
|
|
262
|
+
expiresAt: now + expiresIn * 1000,
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
if (debug) console.log("Access token obtained and cached");
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// Step 3: Create the main SDK with bearer token
|
|
269
|
+
return new OatFiSDK({
|
|
270
|
+
bearer: accessToken,
|
|
271
|
+
serverIdx,
|
|
272
|
+
serverURL,
|
|
273
|
+
...(debug && { debug: true }),
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Create SDK from API key with automatic token exchange (simple factory method).
|
|
279
|
+
*
|
|
280
|
+
* This is a convenience method that calls initialize() internally.
|
|
281
|
+
* For advanced token management, use initialize() instead.
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* ```typescript
|
|
285
|
+
* const sdk = await OatFiSDK.createFromApiKey({
|
|
286
|
+
* apiKey: 'your-api-key',
|
|
287
|
+
* serverIdx: 0
|
|
288
|
+
* });
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
static async createFromApiKey(config: {
|
|
292
|
+
apiKey: string;
|
|
293
|
+
serverIdx?: number;
|
|
294
|
+
serverURL?: string;
|
|
295
|
+
debug?: boolean;
|
|
296
|
+
retryConfig?: import("../lib/retries.js").RetryConfig;
|
|
297
|
+
timeoutMs?: number;
|
|
298
|
+
}): Promise<OatFiSDK> {
|
|
299
|
+
return OatFiSDK.initialize(config);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Manually refresh the access token for a given configuration.
|
|
304
|
+
* This clears the cache and forces a new token exchange.
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```typescript
|
|
308
|
+
* const sdk = await OatFiSDK.refreshToken({
|
|
309
|
+
* apiKey: 'your-api-key',
|
|
310
|
+
* serverIdx: 0
|
|
311
|
+
* });
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
static async refreshToken(config: {
|
|
315
|
+
apiKey: string;
|
|
316
|
+
serverIdx?: number;
|
|
317
|
+
serverURL?: string;
|
|
318
|
+
debug?: boolean;
|
|
319
|
+
}): Promise<OatFiSDK> {
|
|
320
|
+
const { apiKey, serverIdx = 0, serverURL } = config;
|
|
321
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
322
|
+
|
|
323
|
+
// Clear cache for this key
|
|
324
|
+
OatFiSDK.tokenCache.delete(cacheKey);
|
|
325
|
+
|
|
326
|
+
// Re-initialize to get fresh token
|
|
327
|
+
return OatFiSDK.initialize(config);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Get the current cached access token for a configuration.
|
|
332
|
+
* Returns null if no token is cached or token is expired.
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```typescript
|
|
336
|
+
* const token = OatFiSDK.getCachedToken({
|
|
337
|
+
* apiKey: 'your-api-key',
|
|
338
|
+
* serverIdx: 0
|
|
339
|
+
* });
|
|
340
|
+
* ```
|
|
341
|
+
*/
|
|
342
|
+
static getCachedToken(config: {
|
|
343
|
+
apiKey: string;
|
|
344
|
+
serverIdx?: number;
|
|
345
|
+
serverURL?: string;
|
|
346
|
+
}): string | null {
|
|
347
|
+
const { apiKey, serverIdx = 0, serverURL } = config;
|
|
348
|
+
const cacheKey = `${serverURL || serverIdx}-${apiKey.slice(-10)}`;
|
|
349
|
+
const cached = OatFiSDK.tokenCache.get(cacheKey);
|
|
350
|
+
|
|
351
|
+
if (!cached) return null;
|
|
352
|
+
|
|
353
|
+
const now = Date.now();
|
|
354
|
+
if (cached.expiresAt <= now) {
|
|
355
|
+
// Expired, remove from cache
|
|
356
|
+
OatFiSDK.tokenCache.delete(cacheKey);
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
return cached.token;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Clear the entire token cache.
|
|
365
|
+
* Useful when switching users or debugging.
|
|
366
|
+
*/
|
|
367
|
+
static clearTokenCache(): void {
|
|
368
|
+
OatFiSDK.tokenCache.clear();
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// #endregion sdk-class-body
|
|
187
372
|
}
|