@apiquest/fracture 1.0.2 → 1.0.5

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.
Files changed (195) hide show
  1. package/README.md +207 -0
  2. package/bin/cli.js +2 -2
  3. package/dist/CollectionRunner.d.ts +2 -0
  4. package/dist/CollectionRunner.d.ts.map +1 -1
  5. package/dist/CollectionRunner.js +23 -5
  6. package/dist/CollectionRunner.js.map +1 -1
  7. package/dist/LibraryLoader.d.ts +49 -0
  8. package/dist/LibraryLoader.d.ts.map +1 -0
  9. package/dist/LibraryLoader.js +198 -0
  10. package/dist/LibraryLoader.js.map +1 -0
  11. package/dist/PluginLoader.d.ts.map +1 -1
  12. package/dist/PluginLoader.js +9 -6
  13. package/dist/PluginLoader.js.map +1 -1
  14. package/dist/PluginResolver.d.ts +1 -1
  15. package/dist/PluginResolver.d.ts.map +1 -1
  16. package/dist/PluginResolver.js +1 -1
  17. package/dist/PluginResolver.js.map +1 -1
  18. package/dist/ScriptEngine.d.ts +2 -1
  19. package/dist/ScriptEngine.d.ts.map +1 -1
  20. package/dist/ScriptEngine.js +19 -12
  21. package/dist/ScriptEngine.js.map +1 -1
  22. package/dist/cli/index.js +35 -3
  23. package/dist/cli/index.js.map +1 -1
  24. package/dist/cli/plugin-commands.d.ts.map +1 -1
  25. package/dist/cli/plugin-commands.js +48 -81
  26. package/dist/cli/plugin-commands.js.map +1 -1
  27. package/dist/cli/plugin-installer.d.ts +48 -0
  28. package/dist/cli/plugin-installer.d.ts.map +1 -0
  29. package/dist/cli/plugin-installer.js +136 -0
  30. package/dist/cli/plugin-installer.js.map +1 -0
  31. package/dist/cli/plugin-registry.d.ts +17 -0
  32. package/dist/cli/plugin-registry.d.ts.map +1 -0
  33. package/dist/cli/plugin-registry.js +77 -0
  34. package/dist/cli/plugin-registry.js.map +1 -0
  35. package/package.json +55 -50
  36. package/tsconfig.json +20 -20
  37. package/tsconfig.test.json +5 -5
  38. package/vitest.config.ts +22 -22
  39. package/dist/ExecutionTree.d.ts +0 -77
  40. package/dist/ExecutionTree.d.ts.map +0 -1
  41. package/dist/ExecutionTree.js +0 -265
  42. package/dist/ExecutionTree.js.map +0 -1
  43. package/dist/fracture/src/CollectionAnalyzer.d.ts +0 -17
  44. package/dist/fracture/src/CollectionAnalyzer.d.ts.map +0 -1
  45. package/dist/fracture/src/CollectionAnalyzer.js +0 -70
  46. package/dist/fracture/src/CollectionAnalyzer.js.map +0 -1
  47. package/dist/fracture/src/CollectionRunner.d.ts +0 -39
  48. package/dist/fracture/src/CollectionRunner.d.ts.map +0 -1
  49. package/dist/fracture/src/CollectionRunner.js +0 -802
  50. package/dist/fracture/src/CollectionRunner.js.map +0 -1
  51. package/dist/fracture/src/CollectionRunner.types.d.ts +0 -8
  52. package/dist/fracture/src/CollectionRunner.types.d.ts.map +0 -1
  53. package/dist/fracture/src/CollectionRunner.types.js +0 -2
  54. package/dist/fracture/src/CollectionRunner.types.js.map +0 -1
  55. package/dist/fracture/src/CollectionValidator.d.ts +0 -14
  56. package/dist/fracture/src/CollectionValidator.d.ts.map +0 -1
  57. package/dist/fracture/src/CollectionValidator.js +0 -145
  58. package/dist/fracture/src/CollectionValidator.js.map +0 -1
  59. package/dist/fracture/src/ConsoleReporter.d.ts +0 -24
  60. package/dist/fracture/src/ConsoleReporter.d.ts.map +0 -1
  61. package/dist/fracture/src/ConsoleReporter.js +0 -123
  62. package/dist/fracture/src/ConsoleReporter.js.map +0 -1
  63. package/dist/fracture/src/CookieJar.d.ts +0 -70
  64. package/dist/fracture/src/CookieJar.d.ts.map +0 -1
  65. package/dist/fracture/src/CookieJar.js +0 -233
  66. package/dist/fracture/src/CookieJar.js.map +0 -1
  67. package/dist/fracture/src/ExecutionTree.d.ts +0 -77
  68. package/dist/fracture/src/ExecutionTree.d.ts.map +0 -1
  69. package/dist/fracture/src/ExecutionTree.js +0 -258
  70. package/dist/fracture/src/ExecutionTree.js.map +0 -1
  71. package/dist/fracture/src/Logger.d.ts +0 -25
  72. package/dist/fracture/src/Logger.d.ts.map +0 -1
  73. package/dist/fracture/src/Logger.js +0 -78
  74. package/dist/fracture/src/Logger.js.map +0 -1
  75. package/dist/fracture/src/PluginLoader.d.ts +0 -23
  76. package/dist/fracture/src/PluginLoader.d.ts.map +0 -1
  77. package/dist/fracture/src/PluginLoader.js +0 -102
  78. package/dist/fracture/src/PluginLoader.js.map +0 -1
  79. package/dist/fracture/src/PluginManager.d.ts +0 -64
  80. package/dist/fracture/src/PluginManager.d.ts.map +0 -1
  81. package/dist/fracture/src/PluginManager.js +0 -162
  82. package/dist/fracture/src/PluginManager.js.map +0 -1
  83. package/dist/fracture/src/PluginResolver.d.ts +0 -35
  84. package/dist/fracture/src/PluginResolver.d.ts.map +0 -1
  85. package/dist/fracture/src/PluginResolver.js +0 -128
  86. package/dist/fracture/src/PluginResolver.js.map +0 -1
  87. package/dist/fracture/src/QuestAPI.d.ts +0 -9
  88. package/dist/fracture/src/QuestAPI.d.ts.map +0 -1
  89. package/dist/fracture/src/QuestAPI.js +0 -679
  90. package/dist/fracture/src/QuestAPI.js.map +0 -1
  91. package/dist/fracture/src/QuestAPI.types.d.ts +0 -35
  92. package/dist/fracture/src/QuestAPI.types.d.ts.map +0 -1
  93. package/dist/fracture/src/QuestAPI.types.js +0 -3
  94. package/dist/fracture/src/QuestAPI.types.js.map +0 -1
  95. package/dist/fracture/src/QuestTestAPI.d.ts +0 -12
  96. package/dist/fracture/src/QuestTestAPI.d.ts.map +0 -1
  97. package/dist/fracture/src/QuestTestAPI.js +0 -133
  98. package/dist/fracture/src/QuestTestAPI.js.map +0 -1
  99. package/dist/fracture/src/ScriptEngine.d.ts +0 -21
  100. package/dist/fracture/src/ScriptEngine.d.ts.map +0 -1
  101. package/dist/fracture/src/ScriptEngine.js +0 -183
  102. package/dist/fracture/src/ScriptEngine.js.map +0 -1
  103. package/dist/fracture/src/ScriptValidator.d.ts +0 -68
  104. package/dist/fracture/src/ScriptValidator.d.ts.map +0 -1
  105. package/dist/fracture/src/ScriptValidator.js +0 -351
  106. package/dist/fracture/src/ScriptValidator.js.map +0 -1
  107. package/dist/fracture/src/TestCounter.d.ts +0 -18
  108. package/dist/fracture/src/TestCounter.d.ts.map +0 -1
  109. package/dist/fracture/src/TestCounter.js +0 -82
  110. package/dist/fracture/src/TestCounter.js.map +0 -1
  111. package/dist/fracture/src/VariableResolver.d.ts +0 -20
  112. package/dist/fracture/src/VariableResolver.d.ts.map +0 -1
  113. package/dist/fracture/src/VariableResolver.js +0 -100
  114. package/dist/fracture/src/VariableResolver.js.map +0 -1
  115. package/dist/fracture/src/cli/index.d.ts +0 -3
  116. package/dist/fracture/src/cli/index.d.ts.map +0 -1
  117. package/dist/fracture/src/cli/index.js +0 -347
  118. package/dist/fracture/src/cli/index.js.map +0 -1
  119. package/dist/fracture/src/cli/plugin-commands.d.ts +0 -6
  120. package/dist/fracture/src/cli/plugin-commands.d.ts.map +0 -1
  121. package/dist/fracture/src/cli/plugin-commands.js +0 -263
  122. package/dist/fracture/src/cli/plugin-commands.js.map +0 -1
  123. package/dist/fracture/src/cli/plugin-discovery.d.ts +0 -11
  124. package/dist/fracture/src/cli/plugin-discovery.d.ts.map +0 -1
  125. package/dist/fracture/src/cli/plugin-discovery.js +0 -64
  126. package/dist/fracture/src/cli/plugin-discovery.js.map +0 -1
  127. package/dist/fracture/src/index.d.ts +0 -13
  128. package/dist/fracture/src/index.d.ts.map +0 -1
  129. package/dist/fracture/src/index.js +0 -17
  130. package/dist/fracture/src/index.js.map +0 -1
  131. package/dist/fracture/src/utils.d.ts +0 -28
  132. package/dist/fracture/src/utils.d.ts.map +0 -1
  133. package/dist/fracture/src/utils.js +0 -48
  134. package/dist/fracture/src/utils.js.map +0 -1
  135. package/dist/plugin-auth/src/apikey-auth.d.ts +0 -3
  136. package/dist/plugin-auth/src/apikey-auth.d.ts.map +0 -1
  137. package/dist/plugin-auth/src/apikey-auth.js +0 -73
  138. package/dist/plugin-auth/src/apikey-auth.js.map +0 -1
  139. package/dist/plugin-auth/src/basic-auth.d.ts +0 -3
  140. package/dist/plugin-auth/src/basic-auth.d.ts.map +0 -1
  141. package/dist/plugin-auth/src/basic-auth.js +0 -61
  142. package/dist/plugin-auth/src/basic-auth.js.map +0 -1
  143. package/dist/plugin-auth/src/bearer-auth.d.ts +0 -3
  144. package/dist/plugin-auth/src/bearer-auth.d.ts.map +0 -1
  145. package/dist/plugin-auth/src/bearer-auth.js +0 -49
  146. package/dist/plugin-auth/src/bearer-auth.js.map +0 -1
  147. package/dist/plugin-auth/src/helpers.d.ts +0 -3
  148. package/dist/plugin-auth/src/helpers.d.ts.map +0 -1
  149. package/dist/plugin-auth/src/helpers.js +0 -8
  150. package/dist/plugin-auth/src/helpers.js.map +0 -1
  151. package/dist/plugin-auth/src/index.d.ts +0 -10
  152. package/dist/plugin-auth/src/index.d.ts.map +0 -1
  153. package/dist/plugin-auth/src/index.js +0 -25
  154. package/dist/plugin-auth/src/index.js.map +0 -1
  155. package/dist/plugin-auth/src/oauth2-auth.d.ts +0 -35
  156. package/dist/plugin-auth/src/oauth2-auth.d.ts.map +0 -1
  157. package/dist/plugin-auth/src/oauth2-auth.js +0 -266
  158. package/dist/plugin-auth/src/oauth2-auth.js.map +0 -1
  159. package/dist/plugin-http/src/index.d.ts +0 -4
  160. package/dist/plugin-http/src/index.d.ts.map +0 -1
  161. package/dist/plugin-http/src/index.js +0 -266
  162. package/dist/plugin-http/src/index.js.map +0 -1
  163. package/dist/plugin-vault-file/src/index.d.ts +0 -67
  164. package/dist/plugin-vault-file/src/index.d.ts.map +0 -1
  165. package/dist/plugin-vault-file/src/index.js +0 -171
  166. package/dist/plugin-vault-file/src/index.js.map +0 -1
  167. package/dist/types.d.ts +0 -374
  168. package/dist/types.d.ts.map +0 -1
  169. package/dist/types.js +0 -13
  170. package/dist/types.js.map +0 -1
  171. package/src/CollectionAnalyzer.ts +0 -102
  172. package/src/CollectionRunner.ts +0 -1423
  173. package/src/CollectionRunner.types.ts +0 -9
  174. package/src/CollectionValidator.ts +0 -289
  175. package/src/ConsoleReporter.ts +0 -143
  176. package/src/CookieJar.ts +0 -258
  177. package/src/DagScheduler.ts +0 -439
  178. package/src/Logger.ts +0 -85
  179. package/src/PluginLoader.ts +0 -126
  180. package/src/PluginManager.ts +0 -208
  181. package/src/PluginResolver.ts +0 -154
  182. package/src/QuestAPI.ts +0 -764
  183. package/src/QuestAPI.types.ts +0 -33
  184. package/src/QuestTestAPI.ts +0 -164
  185. package/src/RequestFilter.ts +0 -224
  186. package/src/ScriptEngine.ts +0 -219
  187. package/src/ScriptValidator.ts +0 -428
  188. package/src/TaskGraph.ts +0 -598
  189. package/src/TestCounter.ts +0 -109
  190. package/src/VariableResolver.ts +0 -114
  191. package/src/cli/index.ts +0 -480
  192. package/src/cli/plugin-commands.ts +0 -341
  193. package/src/cli/plugin-discovery.ts +0 -44
  194. package/src/index.ts +0 -24
  195. package/src/utils.ts +0 -52
@@ -1,266 +0,0 @@
1
- // OAuth 2.0 Authentication
2
- import got from 'got';
3
- import { isNullOrEmpty, isNullOrWhitespace } from './helpers.js';
4
- // Simple in-memory token cache
5
- const tokenCache = new Map();
6
- // Helper function for OAuth2 token retrieval
7
- async function getOAuth2AccessToken(config, logger) {
8
- logger?.trace('OAuth2', 'Token request initiated');
9
- logger?.trace('OAuth2', '- Grant type:', config.grantType);
10
- logger?.trace('OAuth2', '- URL:', config.accessTokenUrl);
11
- logger?.trace('OAuth2', '- Client ID:', config.clientId);
12
- logger?.trace('OAuth2', '- Client auth method:', config.clientAuthentication ?? 'body');
13
- const cachingEnabled = (config.cacheToken ?? true);
14
- logger?.trace('OAuth2', '- Caching:', cachingEnabled ? 'enabled' : 'disabled');
15
- // Create cache key
16
- const cacheKey = `${config.accessTokenUrl}:${config.clientId}:${config.grantType}`;
17
- // Check cache (only if caching is enabled, defaults to true)
18
- const useCaching = (config.cacheToken ?? true);
19
- if (useCaching) {
20
- const cached = tokenCache.get(cacheKey);
21
- if (cached !== undefined && cached.expiresAt > Date.now()) {
22
- logger?.trace('OAuth2', 'Using cached token (expires in', Math.floor((cached.expiresAt - Date.now()) / 1000), 'seconds)');
23
- return cached.token;
24
- }
25
- else if (cached !== undefined) {
26
- logger?.trace('OAuth2', 'Cached token expired, fetching new token');
27
- }
28
- }
29
- else {
30
- logger?.trace('OAuth2', 'Token caching disabled, fetching new token');
31
- }
32
- // Determine client authentication method (default to 'body')
33
- const clientAuth = config.clientAuthentication ?? 'body';
34
- // Build request parameters
35
- const params = new URLSearchParams();
36
- params.append('grant_type', config.grantType);
37
- // Add client credentials based on authentication method
38
- if (clientAuth === 'body') {
39
- params.append('client_id', config.clientId);
40
- params.append('client_secret', config.clientSecret);
41
- }
42
- // Add scope if specified
43
- if (!isNullOrWhitespace(config.scope) && config.scope !== undefined) {
44
- params.append('scope', config.scope);
45
- }
46
- // Grant type specific params
47
- if (config.grantType === 'password' && !isNullOrEmpty(config.username) && !isNullOrEmpty(config.password)) {
48
- params.append('username', config.username ?? '');
49
- params.append('password', config.password ?? '');
50
- }
51
- else if (config.grantType === 'authorization_code' && !isNullOrEmpty(config.authorizationCode)) {
52
- params.append('code', config.authorizationCode ?? '');
53
- if (!isNullOrEmpty(config.redirectUri)) {
54
- params.append('redirect_uri', config.redirectUri ?? '');
55
- }
56
- }
57
- // Add extra body parameters
58
- if (config.extraBody !== null && config.extraBody !== undefined) {
59
- for (const [key, value] of Object.entries(config.extraBody)) {
60
- params.append(key, String(value));
61
- }
62
- }
63
- // Build headers
64
- const headers = {
65
- 'Content-Type': 'application/x-www-form-urlencoded'
66
- };
67
- // Add client credentials to headers if needed
68
- if (clientAuth === 'basic') {
69
- const credentials = Buffer.from(`${config.clientId}:${config.clientSecret}`).toString('base64');
70
- headers['Authorization'] = `Basic ${credentials}`;
71
- }
72
- else if (clientAuth === 'header') {
73
- const idField = config.clientIdField ?? 'X-Client-Id';
74
- const secretField = config.clientSecretField ?? 'X-Client-Secret';
75
- headers[idField] = config.clientId;
76
- headers[secretField] = config.clientSecret;
77
- }
78
- // Add extra headers
79
- if (config.extraHeaders !== null && config.extraHeaders !== undefined) {
80
- Object.assign(headers, config.extraHeaders);
81
- }
82
- // Build URL with query parameters if needed
83
- let tokenUrl = config.accessTokenUrl;
84
- if (clientAuth === 'query') {
85
- const url = new URL(config.accessTokenUrl);
86
- const idField = config.clientIdField ?? 'client_id';
87
- const secretField = config.clientSecretField ?? 'client_secret';
88
- url.searchParams.set(idField, config.clientId);
89
- url.searchParams.set(secretField, config.clientSecret);
90
- // Add extra query parameters
91
- if (config.extraQuery !== null && config.extraQuery !== undefined) {
92
- for (const [key, value] of Object.entries(config.extraQuery)) {
93
- url.searchParams.set(key, value);
94
- }
95
- }
96
- tokenUrl = url.toString();
97
- }
98
- // Debug logging - showing raw values for troubleshooting
99
- logger?.trace('OAuth2', '- URL:', tokenUrl);
100
- logger?.trace('OAuth2', '- Headers:', JSON.stringify(headers, null, 2));
101
- logger?.trace('OAuth2', '- Body:', params.toString());
102
- try {
103
- const response = await got.post(tokenUrl, {
104
- body: params.toString(),
105
- headers,
106
- responseType: 'json'
107
- });
108
- const data = response.body;
109
- const accessToken = data.access_token;
110
- const expiresIn = (typeof data.expires_in === 'number' && data.expires_in > 0) ? data.expires_in : 3600; // Default 1 hour
111
- logger?.trace('OAuth2', 'Token retrieved successfully (expires in', expiresIn, 'seconds)');
112
- if (accessToken === undefined) {
113
- throw new Error('No access_token in OAuth2 response');
114
- }
115
- // Cache token (expire 5 minutes early to be safe) if caching is enabled
116
- if (useCaching) {
117
- const expiresAt = Date.now() + (expiresIn - 300) * 1000;
118
- tokenCache.set(cacheKey, { token: accessToken, expiresAt });
119
- logger?.trace('OAuth2', 'Token cached until', new Date(expiresAt).toISOString());
120
- }
121
- return accessToken;
122
- }
123
- catch (error) {
124
- const err = error;
125
- const details = [];
126
- details.push(`OAuth2 token request failed: ${err.message}`);
127
- if (err.response !== undefined) {
128
- details.push(` Status: ${err.response.statusCode}`);
129
- details.push(` Response: ${JSON.stringify(err.response.body)}`);
130
- }
131
- details.push(` URL: ${tokenUrl}`);
132
- details.push(` Method: ${clientAuth}`);
133
- details.push(` Body: ${params.toString()}`);
134
- const fullError = details.join('\n');
135
- logger?.debug('OAuth2', 'Error details:', fullError);
136
- throw new Error(fullError);
137
- }
138
- }
139
- export const oauth2Auth = {
140
- // Identity
141
- name: 'OAuth 2.0',
142
- version: '1.0.0',
143
- description: 'OAuth 2.0 authentication (multiple grant types supported)',
144
- // What auth types this provides
145
- authTypes: ['oauth2'],
146
- // Which protocols this works with
147
- protocols: ['http', 'graphql', 'grpc'],
148
- dataSchema: {
149
- type: 'object',
150
- required: ['grantType', 'accessTokenUrl', 'clientId', 'clientSecret'],
151
- properties: {
152
- grantType: {
153
- type: 'string',
154
- enum: ['client_credentials', 'password', 'authorization_code'],
155
- description: 'OAuth 2.0 grant type'
156
- },
157
- accessTokenUrl: {
158
- type: 'string',
159
- description: 'Token endpoint URL'
160
- },
161
- clientId: {
162
- type: 'string',
163
- description: 'OAuth client ID (always required, contains the credential value)'
164
- },
165
- clientSecret: {
166
- type: 'string',
167
- description: 'OAuth client secret (always required, contains the credential value)'
168
- },
169
- username: {
170
- type: 'string',
171
- description: 'Username (for password grant)'
172
- },
173
- password: {
174
- type: 'string',
175
- description: 'Password (for password grant)'
176
- },
177
- scope: {
178
- type: 'string',
179
- description: 'OAuth scope'
180
- },
181
- authorizationCode: {
182
- type: 'string',
183
- description: 'Authorization code (for authorization_code grant)'
184
- },
185
- redirectUri: {
186
- type: 'string',
187
- description: 'Redirect URI'
188
- },
189
- clientAuthentication: {
190
- type: 'string',
191
- enum: ['body', 'basic', 'header', 'query'],
192
- default: 'body',
193
- description: 'How to send client credentials: body (form), basic (HTTP Basic Auth), header (custom headers), query (URL params)'
194
- },
195
- clientIdField: {
196
- type: 'string',
197
- description: 'Field name for client ID when using header or query authentication (default: client_id for query, X-Client-Id for header)'
198
- },
199
- clientSecretField: {
200
- type: 'string',
201
- description: 'Field name for client secret when using header or query authentication (default: client_secret for query, X-Client-Secret for header)'
202
- },
203
- extraHeaders: {
204
- type: 'object',
205
- description: 'Additional headers to include in token request (e.g., {"X-Trace-Id": "trace-123"})'
206
- },
207
- extraBody: {
208
- type: 'object',
209
- description: 'Additional form body parameters to include in token request (e.g., {"audience": "api"})'
210
- },
211
- extraQuery: {
212
- type: 'object',
213
- description: 'Additional query parameters to include in token request (e.g., {"audience": "api"})'
214
- },
215
- cacheToken: {
216
- type: 'boolean',
217
- default: true,
218
- description: 'Whether to cache tokens across requests (default: true). Set to false for deterministic/stateless execution.'
219
- }
220
- }
221
- },
222
- validate(auth, options) {
223
- const errors = [];
224
- const config = auth.data;
225
- if (config === null || config === undefined || isNullOrWhitespace(config.accessTokenUrl)) {
226
- errors.push({
227
- message: 'OAuth2 accessTokenUrl is required',
228
- location: '',
229
- source: 'auth'
230
- });
231
- }
232
- if (config === null || config === undefined || isNullOrWhitespace(config.clientId)) {
233
- errors.push({
234
- message: 'OAuth2 clientId is required',
235
- location: '',
236
- source: 'auth'
237
- });
238
- }
239
- if (config === null || config === undefined || isNullOrWhitespace(config.clientSecret)) {
240
- errors.push({
241
- message: 'OAuth2 clientSecret is required',
242
- location: '',
243
- source: 'auth'
244
- });
245
- }
246
- return errors.length > 0 ? { valid: false, errors } : { valid: true };
247
- },
248
- async apply(request, auth, options, logger) {
249
- // Skip if Authorization header already exists
250
- if (request.data.headers?.['Authorization'] !== undefined) {
251
- return request;
252
- }
253
- const config = auth.data;
254
- if (isNullOrEmpty(config.accessTokenUrl) || isNullOrEmpty(config.clientId) || isNullOrEmpty(config.clientSecret)) {
255
- throw new Error('OAuth2 requires accessTokenUrl, clientId, and clientSecret');
256
- }
257
- // Get access token
258
- const token = await getOAuth2AccessToken(config, logger);
259
- // Ensure headers exist
260
- request.data.headers ??= {};
261
- // Add Authorization header
262
- request.data.headers['Authorization'] = `Bearer ${token}`;
263
- return request;
264
- }
265
- };
266
- //# sourceMappingURL=oauth2-auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-auth.js","sourceRoot":"","sources":["../../../../plugin-auth/src/oauth2-auth.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { IProtocolPlugin } from '@apiquest/types';
2
- export declare const httpPlugin: IProtocolPlugin;
3
- export default httpPlugin;
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../plugin-http/src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA2G,MAAM,iBAAiB,CAAC;AAmBhK,eAAO,MAAM,UAAU,EAAE,eAmRxB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,266 +0,0 @@
1
- import got, { RequestError } from 'got';
2
- // Helper functions for string validation
3
- function isNullOrEmpty(value) {
4
- return value === null || value === undefined || value === '';
5
- }
6
- function isNullOrWhitespace(value) {
7
- return value === null || value === undefined || value.trim() === '';
8
- }
9
- export const httpPlugin = {
10
- name: 'HTTP Client',
11
- version: '1.0.0',
12
- description: 'HTTP/HTTPS protocol support for REST APIs',
13
- // What protocols this plugin provides
14
- protocols: ['http'],
15
- // Supported authentication types
16
- supportedAuthTypes: ['bearer', 'basic', 'oauth2', 'apikey', 'digest', 'ntlm'],
17
- // Accept additional auth plugins beyond the listed types
18
- strictAuthList: false,
19
- // Data schema for HTTP requests
20
- dataSchema: {
21
- type: 'object',
22
- required: ['method', 'url'],
23
- properties: {
24
- method: {
25
- type: 'string',
26
- enum: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'],
27
- description: 'HTTP method'
28
- },
29
- url: {
30
- type: 'string',
31
- description: 'Request URL'
32
- },
33
- headers: {
34
- type: 'object',
35
- description: 'HTTP headers',
36
- additionalProperties: { type: 'string' }
37
- },
38
- body: {
39
- description: 'Request body (string or structured object)',
40
- oneOf: [
41
- { type: 'string' },
42
- { type: 'object' }
43
- ]
44
- }
45
- }
46
- },
47
- // Options schema for runtime configuration
48
- optionsSchema: {
49
- keepAlive: {
50
- type: 'boolean',
51
- default: true,
52
- description: 'Keep TCP connections alive between requests'
53
- },
54
- timeout: {
55
- type: 'number',
56
- default: 30000,
57
- description: 'Request timeout in milliseconds'
58
- },
59
- followRedirects: {
60
- type: 'boolean',
61
- default: true,
62
- description: 'Follow HTTP redirects automatically'
63
- },
64
- maxRedirects: {
65
- type: 'number',
66
- default: 5,
67
- description: 'Maximum number of redirects to follow'
68
- },
69
- validateCertificates: {
70
- type: 'boolean',
71
- default: true,
72
- description: 'Validate SSL/TLS certificates'
73
- }
74
- },
75
- async execute(request, context, options, emitEvent, logger) {
76
- const startTime = Date.now();
77
- // Extract URL early so it's available in catch block for cookie storage
78
- const url = String(request.data.url ?? '');
79
- try {
80
- // Extract HTTP-specific data from request
81
- const method = String(request.data.method ?? 'GET');
82
- const headers = typeof request.data.headers === 'object' && request.data.headers !== null
83
- ? Object.fromEntries(Object.entries(request.data.headers).map(([k, v]) => [k, String(v)]))
84
- : {};
85
- const body = request.data.body;
86
- if (isNullOrWhitespace(url)) {
87
- throw new Error('URL is required for HTTP requests');
88
- }
89
- // Get HTTP-specific options (with defaults)
90
- const httpOptions = options.plugins?.http ?? {};
91
- const httpTimeout = typeof httpOptions.timeout === 'number' ? httpOptions.timeout : null;
92
- const timeout = options.timeout?.request ?? httpTimeout ?? 60000;
93
- const httpFollowRedirects = typeof httpOptions.followRedirects === 'boolean' ? httpOptions.followRedirects : null;
94
- const followRedirects = options.followRedirects ?? httpFollowRedirects ?? true;
95
- const httpMaxRedirects = typeof httpOptions.maxRedirects === 'number' ? httpOptions.maxRedirects : null;
96
- const maxRedirects = options.maxRedirects ?? httpMaxRedirects ?? 5;
97
- const httpValidateCerts = typeof httpOptions.validateCertificates === 'boolean' ? httpOptions.validateCertificates : null;
98
- const validateCerts = options.ssl?.validateCertificates ?? httpValidateCerts ?? true;
99
- // Get cookies from jar and add Cookie header if cookies exist
100
- const cookieHeader = context.cookieJar.getCookieHeader(url);
101
- if (cookieHeader !== null) {
102
- headers['Cookie'] = cookieHeader;
103
- }
104
- // Build got options
105
- const gotOptions = {
106
- method: method.toUpperCase(),
107
- headers: { ...headers },
108
- throwHttpErrors: false, // We handle non-2xx statuses ourselves
109
- timeout: { request: timeout },
110
- followRedirect: followRedirects,
111
- allowGetBody: true,
112
- https: {
113
- rejectUnauthorized: validateCerts
114
- }
115
- };
116
- // Add body if present (and method supports it)
117
- if (body !== undefined && body !== null && body !== '') {
118
- if (typeof body === 'string') {
119
- gotOptions.body = body;
120
- }
121
- else if (typeof body === 'object') {
122
- // Handle body objects
123
- const bodyObj = body;
124
- // Skip if mode is 'none'
125
- if (bodyObj.mode === 'none') {
126
- // Intentionally do nothing - no body should be sent
127
- }
128
- else if (bodyObj.mode === 'raw' && typeof bodyObj.raw === 'string') {
129
- gotOptions.body = bodyObj.raw;
130
- }
131
- else if (bodyObj.mode === 'urlencoded' && Array.isArray(bodyObj.urlencoded)) {
132
- // Convert to URLSearchParams
133
- const params = new URLSearchParams();
134
- bodyObj.urlencoded.forEach((item) => {
135
- if (typeof item.key === 'string' && item.value !== undefined) {
136
- params.append(item.key, String(item.value));
137
- }
138
- });
139
- gotOptions.body = params.toString();
140
- gotOptions.headers ??= {};
141
- gotOptions.headers['content-type'] = 'application/x-www-form-urlencoded';
142
- }
143
- else if (bodyObj.mode === 'formdata' && Array.isArray(bodyObj.formdata)) {
144
- // For form-data, we'd need FormData which isn't straightforward in Node
145
- // For now, treat as JSON
146
- gotOptions.json = bodyObj;
147
- }
148
- else {
149
- gotOptions.json = bodyObj;
150
- }
151
- }
152
- }
153
- // Execute request
154
- const response = await got(url, gotOptions);
155
- const duration = Date.now() - startTime;
156
- // Normalize headers to lowercase keys
157
- // got returns Record<string, string | string[]> - preserve multi-value headers
158
- const normalizedHeaders = {};
159
- if (typeof response.headers === 'object' && response.headers !== null) {
160
- Object.entries(response.headers).forEach(([key, value]) => {
161
- if (Array.isArray(value)) {
162
- // Multi-value header (e.g., set-cookie)
163
- normalizedHeaders[key.toLowerCase()] = value.map(item => String(item));
164
- }
165
- else if (value !== undefined && value !== null) {
166
- normalizedHeaders[key.toLowerCase()] = String(value);
167
- }
168
- });
169
- }
170
- // Store cookies from Set-Cookie headers into jar
171
- if (normalizedHeaders['set-cookie'] !== undefined) {
172
- context.cookieJar.store(normalizedHeaders['set-cookie'], url);
173
- }
174
- // Build response object
175
- return {
176
- status: response.statusCode,
177
- statusText: (response.statusMessage !== null && response.statusMessage !== undefined && response.statusMessage.length > 0) ? response.statusMessage : '',
178
- headers: normalizedHeaders,
179
- body: String(response.body), // got always returns string
180
- duration,
181
- };
182
- }
183
- catch (err) {
184
- const duration = Date.now() - startTime;
185
- const error = err;
186
- // Handle got errors
187
- if (error instanceof RequestError) {
188
- if (error.response !== undefined) {
189
- // Server responded with error status
190
- const normalizedHeaders = {};
191
- if (typeof error.response.headers === 'object' && error.response.headers !== null) {
192
- Object.entries(error.response.headers).forEach(([key, value]) => {
193
- if (Array.isArray(value)) {
194
- normalizedHeaders[key.toLowerCase()] = value.map(item => String(item));
195
- }
196
- else if (value !== undefined && value !== null) {
197
- normalizedHeaders[key.toLowerCase()] = String(value);
198
- }
199
- });
200
- }
201
- // Store cookies from Set-Cookie headers into jar (even for error responses)
202
- if (normalizedHeaders['set-cookie'] !== undefined) {
203
- context.cookieJar.store(normalizedHeaders['set-cookie'], url);
204
- }
205
- return {
206
- status: error.response.statusCode,
207
- statusText: (error.response.statusMessage !== null && error.response.statusMessage !== undefined && error.response.statusMessage.length > 0) ? error.response.statusMessage : '',
208
- headers: normalizedHeaders,
209
- body: String(error.response.body),
210
- duration,
211
- };
212
- }
213
- else {
214
- // Request made but no response received (network error)
215
- return {
216
- status: 0,
217
- statusText: 'Network Error',
218
- headers: {},
219
- body: '',
220
- duration,
221
- error: !isNullOrEmpty(error.message) ? error.message : 'Network request failed'
222
- };
223
- }
224
- }
225
- // Other errors
226
- return {
227
- status: 0,
228
- statusText: 'Error',
229
- headers: {},
230
- body: '',
231
- duration,
232
- error: err instanceof Error ? err.message : String(err)
233
- };
234
- }
235
- },
236
- validate(request, options) {
237
- const errors = [];
238
- // Check URL
239
- if (typeof request.data.url !== 'string' || isNullOrWhitespace(request.data.url)) {
240
- errors.push({
241
- message: 'URL is required',
242
- location: '',
243
- source: 'protocol'
244
- });
245
- }
246
- // Check method
247
- const method = (typeof request.data.method === 'string' && !isNullOrEmpty(request.data.method)) ? request.data.method.toUpperCase() : 'GET';
248
- const validMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'];
249
- if (!validMethods.includes(method)) {
250
- errors.push({
251
- message: `Invalid HTTP method: ${method}`,
252
- location: '',
253
- source: 'protocol'
254
- });
255
- }
256
- if (errors.length > 0) {
257
- return {
258
- valid: false,
259
- errors
260
- };
261
- }
262
- return { valid: true };
263
- }
264
- };
265
- export default httpPlugin;
266
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../plugin-http/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAuC,YAAY,EAAE,MAAM,KAAK,CAAC;AAW7E,yCAAyC;AACzC,SAAS,aAAa,CAAC,KAAgC;IACrD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAgC;IAC1D,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,2CAA2C;IAExD,sCAAsC;IACtC,SAAS,EAAE,CAAC,MAAM,CAAC;IAEnB,iCAAiC;IACjC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;IAE7E,yDAAyD;IACzD,cAAc,EAAE,KAAK;IAErB,gCAAgC;IAChC,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC3B,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;gBAClE,WAAW,EAAE,aAAa;aAC3B;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,aAAa;aAC3B;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,cAAc;gBAC3B,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC;YACD,IAAI,EAAE;gBACJ,WAAW,EAAE,4CAA4C;gBACzD,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAClB,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACnB;aACF;SACF;KACF;IAED,2CAA2C;IAC3C,aAAa,EAAE;QACb,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,6CAA6C;SAC3D;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,iCAAiC;SAC/C;QACD,eAAe,EAAE;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,qCAAqC;SACnD;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,uCAAuC;SACrD;QACD,oBAAoB,EAAE;YACpB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,+BAA+B;SAC7C;KACF;IAED,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,OAAyB,EAAE,OAAuB,EAAE,SAAoE,EAAE,MAAgB;QACxK,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,wEAAwE;QACxE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YACpD,MAAM,OAAO,GAA2B,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI;gBAC/G,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAkC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAChG;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,GAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAExC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,4CAA4C;YAC5C,MAAM,WAAW,GAA6B,OAAO,CAAC,OAAO,EAAE,IAAmD,IAAI,EAAE,CAAC;YACzH,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,WAAW,IAAI,KAAK,CAAC;YACjE,MAAM,mBAAmB,GAAG,OAAO,WAAW,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;YAClH,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,mBAAmB,IAAI,IAAI,CAAC;YAC/E,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;YACxG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,gBAAgB,IAAI,CAAC,CAAC;YACnE,MAAM,iBAAiB,GAAG,OAAO,WAAW,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1H,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,IAAI,iBAAiB,IAAI,IAAI,CAAC;YAErF,8DAA8D;YAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YACnC,CAAC;YAED,oBAAoB;YACpB,MAAM,UAAU,GAA8B;gBAC5C,MAAM,EAAE,MAAM,CAAC,WAAW,EAAsE;gBAChG,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE;gBACvB,eAAe,EAAE,KAAK,EAAE,uCAAuC;gBAC/D,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;gBAC7B,cAAc,EAAE,eAAe;gBAC/B,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE;oBACL,kBAAkB,EAAE,aAAa;iBAClC;aACF,CAAC;YAEF,+CAA+C;YAC/C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBACvD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;gBACzB,CAAC;qBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACpC,sBAAsB;oBACtB,MAAM,OAAO,GAAG,IAAkB,CAAC;oBAEnC,yBAAyB;oBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC5B,oDAAoD;oBACtD,CAAC;yBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;wBACrE,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;oBAChC,CAAC;yBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9E,6BAA6B;wBAC7B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;wBACrC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAA2D,EAAE,EAAE;4BACzF,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gCAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC9C,CAAC;wBACH,CAAC,CAAC,CAAC;wBACH,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACpC,UAAU,CAAC,OAAO,KAAK,EAAE,CAAC;wBAC1B,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,mCAAmC,CAAC;oBAC3E,CAAC;yBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1E,wEAAwE;wBACxE,yBAAyB;wBACzB,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,MAAM,QAAQ,GAAa,MAAM,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAExC,sCAAsC;YACtC,+EAA+E;YAC/E,MAAM,iBAAiB,GAAsC,EAAE,CAAC;YAChE,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACxD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,wCAAwC;wBACxC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC;yBAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACjD,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,iDAAiD;YACjD,IAAI,iBAAiB,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;YAChE,CAAC;YAED,wBAAwB;YACxB,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,UAAU;gBAC3B,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,IAAI,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACxJ,OAAO,EAAE,iBAAiB;gBAC1B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,4BAA4B;gBACzD,QAAQ;aACT,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,KAAK,GAAG,GAAmB,CAAC;YAElC,oBAAoB;YACpB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACjC,qCAAqC;oBACrC,MAAM,iBAAiB,GAAsC,EAAE,CAAC;oBAChE,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;wBAClF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;4BAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gCACzB,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;4BACzE,CAAC;iCAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gCACjD,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BACvD,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,4EAA4E;oBAC5E,IAAI,iBAAiB,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;wBAClD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;oBAChE,CAAC;oBAED,OAAO;wBACL,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;wBACjC,UAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;wBAChL,OAAO,EAAE,iBAAiB;wBAC1B,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACjC,QAAQ;qBACT,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,wDAAwD;oBACxD,OAAO;wBACL,MAAM,EAAE,CAAC;wBACT,UAAU,EAAE,eAAe;wBAC3B,OAAO,EAAE,EAAE;wBACX,IAAI,EAAE,EAAE;wBACR,QAAQ;wBACR,KAAK,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;qBAChF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,eAAe;YACf,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,EAAE;gBACR,QAAQ;gBACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,OAAgB,EAAE,OAAuB;QAChD,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,YAAY;QACZ,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5I,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,wBAAwB,MAAM,EAAE;gBACzC,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM;aACP,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,67 +0,0 @@
1
- import { IValueProviderPlugin, ValidationResult, ExecutionContext } from '@apiquest/types';
2
- /**
3
- * File-based Vault Provider Plugin
4
- * Reads secrets from a JSON file
5
- *
6
- * Configuration:
7
- * - filePath: Path to JSON file containing secrets
8
- *
9
- * Usage in collection:
10
- * {
11
- * "variables": [
12
- * {
13
- * "key": "apiKey",
14
- * "value": "",
15
- * "provider": "vault:file",
16
- * "type": "secret"
17
- * }
18
- * ],
19
- * "options": {
20
- * "plugins": {
21
- * "vault:file": {
22
- * "filePath": "./secrets.json"
23
- * }
24
- * }
25
- * }
26
- * }
27
- *
28
- * secrets.json format:
29
- * {
30
- * "apiKey": "secret-value",
31
- * "database": {
32
- * "password": "db-password"
33
- * }
34
- * }
35
- *
36
- * Access nested keys with dot notation: "database.password"
37
- */
38
- export declare class FileVaultProvider implements IValueProviderPlugin {
39
- provider: string;
40
- name: string;
41
- description: string;
42
- configSchema: {
43
- type: string;
44
- properties: {
45
- filePath: {
46
- type: string;
47
- description: string;
48
- };
49
- };
50
- required: string[];
51
- };
52
- private cache;
53
- getValue(key: string, config?: any, context?: ExecutionContext): Promise<string | null>;
54
- validate(config?: any): ValidationResult;
55
- /**
56
- * Get nested value from object using dot notation
57
- * Example: getNestedValue({ a: { b: { c: 'value' } } }, 'a.b.c') => 'value'
58
- */
59
- private getNestedValue;
60
- /**
61
- * Clear the cache (useful for testing or forcing reload)
62
- */
63
- clearCache(): void;
64
- }
65
- export declare const fileVaultProvider: FileVaultProvider;
66
- export default fileVaultProvider;
67
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../plugin-vault-file/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAmB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAI5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,iBAAkB,YAAW,oBAAoB;IAC5D,QAAQ,SAAgB;IACxB,IAAI,SAAyB;IAC7B,WAAW,SAA8C;IAEzD,YAAY;;;;;;;;;MASV;IAEF,OAAO,CAAC,KAAK,CAA0B;IAEjC,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqCzB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,gBAAgB;IAiExC;;;OAGG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAC;AAGzD,eAAe,iBAAiB,CAAC"}