@mondaydotcomorg/atp-protocol 0.17.14
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 +241 -0
- package/dist/auth.d.ts +173 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +202 -0
- package/dist/auth.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth.d.ts +63 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +5 -0
- package/dist/oauth.js.map +1 -0
- package/dist/providers.d.ts +167 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +33 -0
- package/dist/providers.js.map +1 -0
- package/dist/schemas.d.ts +6 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +51 -0
- package/dist/schemas.js.map +1 -0
- package/dist/types.d.ts +489 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +88 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +76 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +129 -0
- package/dist/validation.js.map +1 -0
- package/package.json +41 -0
- package/src/auth.ts +404 -0
- package/src/index.ts +6 -0
- package/src/oauth.ts +74 -0
- package/src/providers.ts +227 -0
- package/src/schemas.ts +55 -0
- package/src/types.ts +547 -0
- package/src/validation.ts +162 -0
package/README.md
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# @mondaydotcomorg/atp-protocol
|
|
2
|
+
|
|
3
|
+
Core protocol types, schemas, validation, and authentication for Agent Tool Protocol.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This package provides the foundational types and interfaces used across ATP, including JSON-RPC schemas, OAuth providers, authentication, and validation utilities.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @mondaydotcomorg/atp-protocol
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Architecture
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
graph TB
|
|
19
|
+
Types[types.ts] --> Schemas[schemas.ts]
|
|
20
|
+
Schemas --> Validation[validation.ts]
|
|
21
|
+
Types --> Auth[auth.ts]
|
|
22
|
+
Auth --> OAuth[oauth.ts]
|
|
23
|
+
Auth --> Providers[providers.ts]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Core Components
|
|
27
|
+
|
|
28
|
+
### Types
|
|
29
|
+
|
|
30
|
+
Defines all core ATP types including:
|
|
31
|
+
|
|
32
|
+
- **Protocol**: `AgentToolProtocolRequest`, `AgentToolProtocolResponse`, JSON-RPC messages
|
|
33
|
+
- **Execution**: `ExecutionConfig`, `ExecutionResult`, `ExecutionStatus`
|
|
34
|
+
- **Callbacks**: `CallbackType`, `ClientLLMHandler`, `ClientApprovalHandler`, `ClientEmbeddingHandler`
|
|
35
|
+
- **Tools**: `ClientTool`, `ToolMetadata`, `CustomFunctionDef`
|
|
36
|
+
- **Providers**: `CacheProvider`, `AuthProvider`, `AuditSink`
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
import type {
|
|
40
|
+
AgentToolProtocolRequest,
|
|
41
|
+
ExecutionResult,
|
|
42
|
+
ExecutionConfig,
|
|
43
|
+
CallbackType,
|
|
44
|
+
ClientLLMHandler,
|
|
45
|
+
} from '@mondaydotcomorg/atp-protocol';
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Schemas
|
|
49
|
+
|
|
50
|
+
Zod schemas for runtime validation:
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
import {
|
|
54
|
+
ExecutionConfigSchema,
|
|
55
|
+
ExecutionResultSchema,
|
|
56
|
+
SearchOptionsSchema,
|
|
57
|
+
} from '@mondaydotcomorg/atp-protocol';
|
|
58
|
+
|
|
59
|
+
// Validate execution config
|
|
60
|
+
const config = ExecutionConfigSchema.parse(userInput);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Validation
|
|
64
|
+
|
|
65
|
+
Validation utilities:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { validateExecutionConfig, validateToolDefinition } from '@mondaydotcomorg/atp-protocol';
|
|
69
|
+
|
|
70
|
+
const errors = validateExecutionConfig(config);
|
|
71
|
+
if (errors.length > 0) {
|
|
72
|
+
console.error('Validation failed:', errors);
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Authentication
|
|
77
|
+
|
|
78
|
+
Base interfaces for authentication:
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
import type { AuthProvider } from '@mondaydotcomorg/atp-protocol';
|
|
82
|
+
|
|
83
|
+
class CustomAuthProvider implements AuthProvider {
|
|
84
|
+
name = 'custom';
|
|
85
|
+
|
|
86
|
+
async getCredentials(key: string) {
|
|
87
|
+
// Return credentials for the given key
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### OAuth
|
|
93
|
+
|
|
94
|
+
OAuth provider interfaces and utilities:
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
import type { OAuthProvider, OAuthScopeChecker } from '@mondaydotcomorg/atp-protocol';
|
|
98
|
+
|
|
99
|
+
// Implement OAuth provider
|
|
100
|
+
class GoogleOAuthProvider implements OAuthProvider {
|
|
101
|
+
name = 'google';
|
|
102
|
+
|
|
103
|
+
async generateAuthUrl(config) {
|
|
104
|
+
// Generate OAuth URL
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
async handleCallback(code, config) {
|
|
108
|
+
// Exchange code for tokens
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Key Types
|
|
114
|
+
|
|
115
|
+
### Execution
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
interface ExecutionConfig {
|
|
119
|
+
code: string;
|
|
120
|
+
apiKey?: string;
|
|
121
|
+
timeout?: number;
|
|
122
|
+
pausable?: boolean;
|
|
123
|
+
resumeFromState?: ResumeState;
|
|
124
|
+
context?: Record<string, unknown>;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
interface ExecutionResult {
|
|
128
|
+
status: ExecutionStatus;
|
|
129
|
+
result?: unknown;
|
|
130
|
+
error?: string;
|
|
131
|
+
pauseReason?: string;
|
|
132
|
+
executionId?: string;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
enum ExecutionStatus {
|
|
136
|
+
SUCCESS = 'success',
|
|
137
|
+
ERROR = 'error',
|
|
138
|
+
PAUSED = 'paused',
|
|
139
|
+
TIMEOUT = 'timeout',
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Callbacks
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
enum CallbackType {
|
|
147
|
+
LLM = 'llm',
|
|
148
|
+
APPROVAL = 'approval',
|
|
149
|
+
EMBEDDING = 'embedding',
|
|
150
|
+
TOOL = 'tool',
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
interface ClientServices {
|
|
154
|
+
hasLLM: boolean;
|
|
155
|
+
hasApproval: boolean;
|
|
156
|
+
hasEmbedding: boolean;
|
|
157
|
+
hasTools: boolean;
|
|
158
|
+
toolNames?: string[];
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Providers
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
interface CacheProvider {
|
|
166
|
+
name: string;
|
|
167
|
+
get<T>(key: string): Promise<T | null>;
|
|
168
|
+
set(key: string, value: unknown, ttl?: number): Promise<void>;
|
|
169
|
+
delete(key: string): Promise<void>;
|
|
170
|
+
has(key: string): Promise<boolean>;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
interface AuthProvider {
|
|
174
|
+
name: string;
|
|
175
|
+
getCredentials(key: string): Promise<UserCredentialData | null>;
|
|
176
|
+
setCredentials(key: string, credentials: UserCredentialData): Promise<void>;
|
|
177
|
+
deleteCredentials(key: string): Promise<void>;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
interface AuditSink {
|
|
181
|
+
write(event: AuditEvent): Promise<void>;
|
|
182
|
+
flush?(): Promise<void>;
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Exports
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
// Types
|
|
190
|
+
export * from './types';
|
|
191
|
+
|
|
192
|
+
// Schemas (Zod)
|
|
193
|
+
export * from './schemas';
|
|
194
|
+
|
|
195
|
+
// Validation utilities
|
|
196
|
+
export * from './validation';
|
|
197
|
+
|
|
198
|
+
// Auth interfaces
|
|
199
|
+
export * from './auth';
|
|
200
|
+
|
|
201
|
+
// OAuth interfaces
|
|
202
|
+
export * from './oauth';
|
|
203
|
+
|
|
204
|
+
// Provider interfaces
|
|
205
|
+
export * from './providers';
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Usage Example
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
import {
|
|
212
|
+
type AgentToolProtocolRequest,
|
|
213
|
+
type ExecutionConfig,
|
|
214
|
+
ExecutionConfigSchema,
|
|
215
|
+
ExecutionStatus,
|
|
216
|
+
CallbackType,
|
|
217
|
+
} from '@mondaydotcomorg/atp-protocol';
|
|
218
|
+
|
|
219
|
+
// Create execution config with validation
|
|
220
|
+
const config: ExecutionConfig = {
|
|
221
|
+
code: 'const result = await atp.llm.call({ prompt: "Hello" });',
|
|
222
|
+
timeout: 30000,
|
|
223
|
+
pausable: true,
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
// Validate
|
|
227
|
+
const validated = ExecutionConfigSchema.parse(config);
|
|
228
|
+
|
|
229
|
+
// Check status
|
|
230
|
+
if (result.status === ExecutionStatus.PAUSED) {
|
|
231
|
+
console.log('Execution paused for callback');
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## TypeScript Support
|
|
236
|
+
|
|
237
|
+
Full TypeScript definitions included with strict type checking.
|
|
238
|
+
|
|
239
|
+
## License
|
|
240
|
+
|
|
241
|
+
MIT
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication and credential management types for Agent Tool Protocol
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Supported authentication schemes
|
|
6
|
+
*/
|
|
7
|
+
export type AuthScheme = 'apiKey' | 'bearer' | 'basic' | 'oauth2' | 'custom' | 'composite';
|
|
8
|
+
/**
|
|
9
|
+
* Base authentication configuration
|
|
10
|
+
*/
|
|
11
|
+
export interface BaseAuthConfig {
|
|
12
|
+
scheme: AuthScheme;
|
|
13
|
+
/** Environment variable name to read credentials from */
|
|
14
|
+
envVar?: string;
|
|
15
|
+
/** Direct credential value (not recommended for production) */
|
|
16
|
+
value?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Credential source: 'server' for server-level env vars (default), 'user' for user-scoped OAuth
|
|
19
|
+
*/
|
|
20
|
+
source?: 'server' | 'user';
|
|
21
|
+
/**
|
|
22
|
+
* OAuth provider name for user-scoped credentials (e.g., 'github', 'google')
|
|
23
|
+
* Required when source='user'. Used to look up user's OAuth token from AuthProvider.
|
|
24
|
+
* Note: This is different from the 'provider' field which is for runtime credential providers.
|
|
25
|
+
*/
|
|
26
|
+
oauthProvider?: string;
|
|
27
|
+
/** Runtime credential provider function name */
|
|
28
|
+
provider?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* API Key authentication (in header or query param)
|
|
32
|
+
*/
|
|
33
|
+
export interface APIKeyAuthConfig extends BaseAuthConfig {
|
|
34
|
+
scheme: 'apiKey';
|
|
35
|
+
/** Where to send the API key */
|
|
36
|
+
in: 'header' | 'query';
|
|
37
|
+
/** Parameter/header name */
|
|
38
|
+
name: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Bearer token authentication
|
|
42
|
+
*/
|
|
43
|
+
export interface BearerAuthConfig extends BaseAuthConfig {
|
|
44
|
+
scheme: 'bearer';
|
|
45
|
+
/** Optional bearer format (e.g., 'JWT') */
|
|
46
|
+
bearerFormat?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* HTTP Basic authentication
|
|
50
|
+
*/
|
|
51
|
+
export interface BasicAuthConfig extends BaseAuthConfig {
|
|
52
|
+
scheme: 'basic';
|
|
53
|
+
/** Username (can use envVar for dynamic value) */
|
|
54
|
+
username?: string;
|
|
55
|
+
/** Username environment variable */
|
|
56
|
+
usernameEnvVar?: string;
|
|
57
|
+
/** Password environment variable */
|
|
58
|
+
passwordEnvVar?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* OAuth2 authentication with automatic token refresh
|
|
62
|
+
*/
|
|
63
|
+
export interface OAuth2AuthConfig extends BaseAuthConfig {
|
|
64
|
+
scheme: 'oauth2';
|
|
65
|
+
/** OAuth2 flow type */
|
|
66
|
+
flow: 'clientCredentials' | 'authorizationCode' | 'implicit' | 'password';
|
|
67
|
+
/** Token endpoint URL */
|
|
68
|
+
tokenUrl: string;
|
|
69
|
+
/** Authorization endpoint (for authorizationCode/implicit) */
|
|
70
|
+
authorizationUrl?: string;
|
|
71
|
+
/** Client ID */
|
|
72
|
+
clientId?: string;
|
|
73
|
+
/** Client ID environment variable */
|
|
74
|
+
clientIdEnvVar?: string;
|
|
75
|
+
/** Client secret environment variable */
|
|
76
|
+
clientSecretEnvVar?: string;
|
|
77
|
+
/** Scopes required */
|
|
78
|
+
scopes?: string[];
|
|
79
|
+
/** Refresh token environment variable (for token refresh) */
|
|
80
|
+
refreshTokenEnvVar?: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Custom authentication with arbitrary headers
|
|
84
|
+
*/
|
|
85
|
+
export interface CustomAuthConfig extends BaseAuthConfig {
|
|
86
|
+
scheme: 'custom';
|
|
87
|
+
/** Custom headers to inject */
|
|
88
|
+
headers: Record<string, string>;
|
|
89
|
+
/** Environment variables to use for header values */
|
|
90
|
+
headerEnvVars?: Record<string, string>;
|
|
91
|
+
/** Query parameters to inject */
|
|
92
|
+
queryParams?: Record<string, string>;
|
|
93
|
+
/** Environment variables to use for query parameter values */
|
|
94
|
+
queryParamEnvVars?: Record<string, string>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Composite authentication - combines multiple auth mechanisms
|
|
98
|
+
* Useful for APIs that require multiple credentials (e.g., projectId + apiKey + secret)
|
|
99
|
+
*/
|
|
100
|
+
export interface CompositeAuthConfig extends BaseAuthConfig {
|
|
101
|
+
scheme: 'composite';
|
|
102
|
+
/**
|
|
103
|
+
* Multiple credentials to combine
|
|
104
|
+
* Example: { projectId: { envVar: 'PROJECT_ID' }, apiKey: { envVar: 'API_KEY' }, secret: { envVar: 'API_SECRET' } }
|
|
105
|
+
*/
|
|
106
|
+
credentials: Record<string, CredentialConfig>;
|
|
107
|
+
/** How to inject credentials: 'header', 'query', or 'both' */
|
|
108
|
+
injectAs?: 'header' | 'query' | 'both';
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Individual credential configuration for composite auth
|
|
112
|
+
*/
|
|
113
|
+
export interface CredentialConfig {
|
|
114
|
+
/** Environment variable to read from */
|
|
115
|
+
envVar?: string;
|
|
116
|
+
/** Direct value (not recommended) */
|
|
117
|
+
value?: string;
|
|
118
|
+
/** Header name if injecting as header */
|
|
119
|
+
headerName?: string;
|
|
120
|
+
/** Query param name if injecting as query */
|
|
121
|
+
queryParamName?: string;
|
|
122
|
+
/** Whether this credential is required */
|
|
123
|
+
required?: boolean;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Union type of all auth configurations
|
|
127
|
+
*/
|
|
128
|
+
export type AuthConfig = APIKeyAuthConfig | BearerAuthConfig | BasicAuthConfig | OAuth2AuthConfig | CustomAuthConfig | CompositeAuthConfig;
|
|
129
|
+
/**
|
|
130
|
+
* Runtime credential provider
|
|
131
|
+
* Allows dynamic credential resolution at runtime
|
|
132
|
+
*/
|
|
133
|
+
export interface CredentialProvider {
|
|
134
|
+
name: string;
|
|
135
|
+
/** Resolves credentials dynamically */
|
|
136
|
+
resolve: () => Promise<Credentials> | Credentials;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Resolved credentials ready to be injected into requests
|
|
140
|
+
*/
|
|
141
|
+
export interface Credentials {
|
|
142
|
+
headers?: Record<string, string>;
|
|
143
|
+
queryParams?: Record<string, string>;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Credential resolver - resolves auth config to actual credentials
|
|
147
|
+
*/
|
|
148
|
+
export declare class CredentialResolver {
|
|
149
|
+
private providers;
|
|
150
|
+
/**
|
|
151
|
+
* Registers a runtime credential provider
|
|
152
|
+
*/
|
|
153
|
+
registerProvider(provider: CredentialProvider): void;
|
|
154
|
+
/**
|
|
155
|
+
* Resolves auth configuration to credentials
|
|
156
|
+
*/
|
|
157
|
+
resolve(authConfig: AuthConfig): Promise<Credentials>;
|
|
158
|
+
private resolveAPIKey;
|
|
159
|
+
private resolveBearer;
|
|
160
|
+
private resolveBasic;
|
|
161
|
+
private resolveOAuth2;
|
|
162
|
+
private resolveCustom;
|
|
163
|
+
private resolveComposite;
|
|
164
|
+
/**
|
|
165
|
+
* Gets credential value from config (env var or direct value)
|
|
166
|
+
*/
|
|
167
|
+
private getValue;
|
|
168
|
+
/**
|
|
169
|
+
* Fetches OAuth2 token using client credentials flow
|
|
170
|
+
*/
|
|
171
|
+
private fetchOAuth2Token;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication and credential management types for Agent Tool Protocol
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Credential resolver - resolves auth config to actual credentials
|
|
6
|
+
*/
|
|
7
|
+
export class CredentialResolver {
|
|
8
|
+
providers = new Map();
|
|
9
|
+
/**
|
|
10
|
+
* Registers a runtime credential provider
|
|
11
|
+
*/
|
|
12
|
+
registerProvider(provider) {
|
|
13
|
+
this.providers.set(provider.name, provider);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Resolves auth configuration to credentials
|
|
17
|
+
*/
|
|
18
|
+
async resolve(authConfig) {
|
|
19
|
+
if (authConfig.provider) {
|
|
20
|
+
const provider = this.providers.get(authConfig.provider);
|
|
21
|
+
if (!provider) {
|
|
22
|
+
throw new Error(`Credential provider '${authConfig.provider}' not found`);
|
|
23
|
+
}
|
|
24
|
+
return await provider.resolve();
|
|
25
|
+
}
|
|
26
|
+
switch (authConfig.scheme) {
|
|
27
|
+
case 'apiKey':
|
|
28
|
+
return this.resolveAPIKey(authConfig);
|
|
29
|
+
case 'bearer':
|
|
30
|
+
return this.resolveBearer(authConfig);
|
|
31
|
+
case 'basic':
|
|
32
|
+
return this.resolveBasic(authConfig);
|
|
33
|
+
case 'oauth2':
|
|
34
|
+
return this.resolveOAuth2(authConfig);
|
|
35
|
+
case 'custom':
|
|
36
|
+
return this.resolveCustom(authConfig);
|
|
37
|
+
case 'composite':
|
|
38
|
+
return this.resolveComposite(authConfig);
|
|
39
|
+
default:
|
|
40
|
+
throw new Error(`Unsupported auth scheme: ${authConfig.scheme}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
resolveAPIKey(config) {
|
|
44
|
+
const value = this.getValue(config);
|
|
45
|
+
if (!value) {
|
|
46
|
+
throw new Error(`API key not provided for '${config.name}'`);
|
|
47
|
+
}
|
|
48
|
+
if (config.in === 'header') {
|
|
49
|
+
return { headers: { [config.name]: value } };
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return { queryParams: { [config.name]: value } };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
resolveBearer(config) {
|
|
56
|
+
const token = this.getValue(config);
|
|
57
|
+
if (!token) {
|
|
58
|
+
throw new Error('Bearer token not provided');
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
headers: {
|
|
62
|
+
Authorization: `Bearer ${token}`,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
resolveBasic(config) {
|
|
67
|
+
const username = config.usernameEnvVar ? process.env[config.usernameEnvVar] : config.username;
|
|
68
|
+
const password = config.passwordEnvVar
|
|
69
|
+
? process.env[config.passwordEnvVar]
|
|
70
|
+
: this.getValue(config);
|
|
71
|
+
if (!username || !password) {
|
|
72
|
+
throw new Error('Basic auth username and password not provided');
|
|
73
|
+
}
|
|
74
|
+
const credentials = Buffer.from(`${username}:${password}`).toString('base64');
|
|
75
|
+
return {
|
|
76
|
+
headers: {
|
|
77
|
+
Authorization: `Basic ${credentials}`,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
async resolveOAuth2(config) {
|
|
82
|
+
const clientId = config.clientIdEnvVar ? process.env[config.clientIdEnvVar] : config.clientId;
|
|
83
|
+
const clientSecret = config.clientSecretEnvVar
|
|
84
|
+
? process.env[config.clientSecretEnvVar]
|
|
85
|
+
: undefined;
|
|
86
|
+
if (!clientId || !clientSecret) {
|
|
87
|
+
throw new Error('OAuth2 client credentials not provided');
|
|
88
|
+
}
|
|
89
|
+
if (config.flow === 'clientCredentials') {
|
|
90
|
+
const token = await this.fetchOAuth2Token(config.tokenUrl, clientId, clientSecret, config.scopes);
|
|
91
|
+
return {
|
|
92
|
+
headers: {
|
|
93
|
+
Authorization: `Bearer ${token}`,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const token = this.getValue(config);
|
|
98
|
+
if (token) {
|
|
99
|
+
return {
|
|
100
|
+
headers: {
|
|
101
|
+
Authorization: `Bearer ${token}`,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
throw new Error(`OAuth2 flow '${config.flow}' requires manual token setup`);
|
|
106
|
+
}
|
|
107
|
+
resolveCustom(config) {
|
|
108
|
+
const headers = {};
|
|
109
|
+
const queryParams = {};
|
|
110
|
+
Object.assign(headers, config.headers);
|
|
111
|
+
if (config.headerEnvVars) {
|
|
112
|
+
for (const [headerName, envVar] of Object.entries(config.headerEnvVars)) {
|
|
113
|
+
const value = process.env[envVar];
|
|
114
|
+
if (value) {
|
|
115
|
+
headers[headerName] = value;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (config.queryParams) {
|
|
120
|
+
Object.assign(queryParams, config.queryParams);
|
|
121
|
+
}
|
|
122
|
+
if (config.queryParamEnvVars) {
|
|
123
|
+
for (const [paramName, envVar] of Object.entries(config.queryParamEnvVars)) {
|
|
124
|
+
const value = process.env[envVar];
|
|
125
|
+
if (value) {
|
|
126
|
+
queryParams[paramName] = value;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
headers: Object.keys(headers).length > 0 ? headers : undefined,
|
|
132
|
+
queryParams: Object.keys(queryParams).length > 0 ? queryParams : undefined,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
resolveComposite(config) {
|
|
136
|
+
const headers = {};
|
|
137
|
+
const queryParams = {};
|
|
138
|
+
for (const [credName, credConfig] of Object.entries(config.credentials)) {
|
|
139
|
+
const value = credConfig.envVar ? process.env[credConfig.envVar] : credConfig.value;
|
|
140
|
+
if (!value) {
|
|
141
|
+
if (credConfig.required !== false) {
|
|
142
|
+
throw new Error(`Required credential '${credName}' not provided`);
|
|
143
|
+
}
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
const injectAs = config.injectAs || 'header';
|
|
147
|
+
if ((injectAs === 'header' || injectAs === 'both') && credConfig.headerName) {
|
|
148
|
+
headers[credConfig.headerName] = value;
|
|
149
|
+
}
|
|
150
|
+
if ((injectAs === 'query' || injectAs === 'both') && credConfig.queryParamName) {
|
|
151
|
+
queryParams[credConfig.queryParamName] = value;
|
|
152
|
+
}
|
|
153
|
+
if (!credConfig.headerName && !credConfig.queryParamName) {
|
|
154
|
+
if (injectAs === 'query' || injectAs === 'both') {
|
|
155
|
+
queryParams[credName] = value;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
headers[`X-${credName}`] = value;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
headers: Object.keys(headers).length > 0 ? headers : undefined,
|
|
164
|
+
queryParams: Object.keys(queryParams).length > 0 ? queryParams : undefined,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Gets credential value from config (env var or direct value)
|
|
169
|
+
*/
|
|
170
|
+
getValue(config) {
|
|
171
|
+
if (config.envVar) {
|
|
172
|
+
return process.env[config.envVar];
|
|
173
|
+
}
|
|
174
|
+
return config.value;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Fetches OAuth2 token using client credentials flow
|
|
178
|
+
*/
|
|
179
|
+
async fetchOAuth2Token(tokenUrl, clientId, clientSecret, scopes) {
|
|
180
|
+
const params = new URLSearchParams({
|
|
181
|
+
grant_type: 'client_credentials',
|
|
182
|
+
client_id: clientId,
|
|
183
|
+
client_secret: clientSecret,
|
|
184
|
+
});
|
|
185
|
+
if (scopes && scopes.length > 0) {
|
|
186
|
+
params.append('scope', scopes.join(' '));
|
|
187
|
+
}
|
|
188
|
+
const response = await fetch(tokenUrl, {
|
|
189
|
+
method: 'POST',
|
|
190
|
+
headers: {
|
|
191
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
192
|
+
},
|
|
193
|
+
body: params.toString(),
|
|
194
|
+
});
|
|
195
|
+
if (!response.ok) {
|
|
196
|
+
throw new Error(`OAuth2 token fetch failed: ${response.statusText}`);
|
|
197
|
+
}
|
|
198
|
+
const data = (await response.json());
|
|
199
|
+
return data.access_token;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|