@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.
@@ -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.10.2";
34
+ readonly sdkVersion: "0.11.2";
35
35
  readonly genVersion: "2.731.6";
36
- readonly userAgent: "speakeasy-sdk/typescript 0.10.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts";
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.10.2",
42
+ sdkVersion: "0.11.2",
43
43
  genVersion: "2.731.6",
44
- userAgent: "speakeasy-sdk/typescript 0.10.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts",
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":"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"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
@@ -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.10.2";
34
+ readonly sdkVersion: "0.11.2";
35
35
  readonly genVersion: "2.731.6";
36
- readonly userAgent: "speakeasy-sdk/typescript 0.10.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts";
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
@@ -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.10.2",
38
+ sdkVersion: "0.11.2",
39
39
  genVersion: "2.731.6",
40
- userAgent: "speakeasy-sdk/typescript 0.10.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts",
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
@@ -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":"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"}
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;AAMnC,qBAAa,QAAS,SAAQ,SAAS;IACrC,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAC/C,IAAI,iBAAiB,IAAI,iBAAiB,CAEzC;IAED,OAAO,CAAC,0BAA0B,CAAC,CAA4B;IAC/D,IAAI,yBAAyB,IAAI,yBAAyB,CAIzD;IAED,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IACrD,IAAI,oBAAoB,IAAI,oBAAoB,CAI/C;IAED,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,OAAO,CAAC,oBAAoB,CAAC,CAAsB;IACnD,IAAI,mBAAmB,IAAI,mBAAmB,CAI7C;IAED,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,IAAI,KAAK,IAAI,KAAK,CAEjB;IAID;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CACb;IAEZ;;;;;;;;;;;;;;;;;;OAkBG;WACU,UAAU,CAAC,MAAM,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,WAAW,CAAC;QACtD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkDrB;;;;;;;;;;;;;OAaG;WACU,gBAAgB,CAAC,MAAM,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,WAAW,CAAC;QACtD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrB;;;;;;;;;;;OAWG;WACU,YAAY,CAAC,MAAM,EAAE;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAWrB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,MAAM,GAAG,IAAI;IAiBjB;;;OAGG;IACH,MAAM,CAAC,eAAe,IAAI,IAAI;CAK/B"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "..": {
20
20
  "name": "@oatfi/oatfi-sdk-ts",
21
- "version": "0.10.2",
21
+ "version": "0.11.2",
22
22
  "dependencies": {
23
23
  "jsonpath-rfc9535": "1.1.0",
24
24
  "zod": "^3.25.0 || ^4.0.0"
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "@oatfi/oatfi-sdk-ts",
5
- "version": "0.10.2",
5
+ "version": "0.11.2",
6
6
  "exports": {
7
7
  ".": "./src/index.ts",
8
8
  "./models/errors": "./src/models/errors/index.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oatfi/oatfi-sdk-ts",
3
- "version": "0.10.2",
3
+ "version": "0.11.2",
4
4
  "author": "OatFi",
5
5
  "type": "module",
6
6
  "tshy": {
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.10.2",
72
+ sdkVersion: "0.11.2",
73
73
  genVersion: "2.731.6",
74
74
  userAgent:
75
- "speakeasy-sdk/typescript 0.10.2 2.731.6 3.0.0 @oatfi/oatfi-sdk-ts",
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
  }