@apiquest/fracture 1.0.2 → 1.0.4
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 +119 -0
- package/bin/cli.js +2 -2
- package/dist/CollectionRunner.js +3 -3
- package/dist/ScriptEngine.js +4 -4
- package/dist/cli/plugin-commands.d.ts.map +1 -1
- package/dist/cli/plugin-commands.js +2 -1
- package/dist/cli/plugin-commands.js.map +1 -1
- package/package.json +55 -50
- package/src/CollectionAnalyzer.ts +102 -102
- package/src/CollectionRunner.ts +1423 -1423
- package/src/CollectionRunner.types.ts +9 -9
- package/src/CollectionValidator.ts +289 -289
- package/src/ConsoleReporter.ts +143 -143
- package/src/CookieJar.ts +258 -258
- package/src/DagScheduler.ts +439 -439
- package/src/Logger.ts +85 -85
- package/src/PluginLoader.ts +126 -126
- package/src/PluginManager.ts +208 -208
- package/src/PluginResolver.ts +154 -154
- package/src/QuestAPI.ts +764 -764
- package/src/QuestAPI.types.ts +33 -33
- package/src/QuestTestAPI.ts +164 -164
- package/src/RequestFilter.ts +224 -224
- package/src/ScriptEngine.ts +219 -219
- package/src/ScriptValidator.ts +428 -428
- package/src/TaskGraph.ts +598 -598
- package/src/TestCounter.ts +109 -109
- package/src/VariableResolver.ts +114 -114
- package/src/cli/index.ts +480 -480
- package/src/cli/plugin-commands.ts +342 -341
- package/src/cli/plugin-discovery.ts +44 -44
- package/src/index.ts +24 -24
- package/src/utils.ts +52 -52
- package/tsconfig.json +20 -20
- package/tsconfig.test.json +5 -5
- package/vitest.config.ts +22 -22
- package/dist/ExecutionTree.d.ts +0 -77
- package/dist/ExecutionTree.d.ts.map +0 -1
- package/dist/ExecutionTree.js +0 -265
- package/dist/ExecutionTree.js.map +0 -1
- package/dist/fracture/src/CollectionAnalyzer.d.ts +0 -17
- package/dist/fracture/src/CollectionAnalyzer.d.ts.map +0 -1
- package/dist/fracture/src/CollectionAnalyzer.js +0 -70
- package/dist/fracture/src/CollectionAnalyzer.js.map +0 -1
- package/dist/fracture/src/CollectionRunner.d.ts +0 -39
- package/dist/fracture/src/CollectionRunner.d.ts.map +0 -1
- package/dist/fracture/src/CollectionRunner.js +0 -802
- package/dist/fracture/src/CollectionRunner.js.map +0 -1
- package/dist/fracture/src/CollectionRunner.types.d.ts +0 -8
- package/dist/fracture/src/CollectionRunner.types.d.ts.map +0 -1
- package/dist/fracture/src/CollectionRunner.types.js +0 -2
- package/dist/fracture/src/CollectionRunner.types.js.map +0 -1
- package/dist/fracture/src/CollectionValidator.d.ts +0 -14
- package/dist/fracture/src/CollectionValidator.d.ts.map +0 -1
- package/dist/fracture/src/CollectionValidator.js +0 -145
- package/dist/fracture/src/CollectionValidator.js.map +0 -1
- package/dist/fracture/src/ConsoleReporter.d.ts +0 -24
- package/dist/fracture/src/ConsoleReporter.d.ts.map +0 -1
- package/dist/fracture/src/ConsoleReporter.js +0 -123
- package/dist/fracture/src/ConsoleReporter.js.map +0 -1
- package/dist/fracture/src/CookieJar.d.ts +0 -70
- package/dist/fracture/src/CookieJar.d.ts.map +0 -1
- package/dist/fracture/src/CookieJar.js +0 -233
- package/dist/fracture/src/CookieJar.js.map +0 -1
- package/dist/fracture/src/ExecutionTree.d.ts +0 -77
- package/dist/fracture/src/ExecutionTree.d.ts.map +0 -1
- package/dist/fracture/src/ExecutionTree.js +0 -258
- package/dist/fracture/src/ExecutionTree.js.map +0 -1
- package/dist/fracture/src/Logger.d.ts +0 -25
- package/dist/fracture/src/Logger.d.ts.map +0 -1
- package/dist/fracture/src/Logger.js +0 -78
- package/dist/fracture/src/Logger.js.map +0 -1
- package/dist/fracture/src/PluginLoader.d.ts +0 -23
- package/dist/fracture/src/PluginLoader.d.ts.map +0 -1
- package/dist/fracture/src/PluginLoader.js +0 -102
- package/dist/fracture/src/PluginLoader.js.map +0 -1
- package/dist/fracture/src/PluginManager.d.ts +0 -64
- package/dist/fracture/src/PluginManager.d.ts.map +0 -1
- package/dist/fracture/src/PluginManager.js +0 -162
- package/dist/fracture/src/PluginManager.js.map +0 -1
- package/dist/fracture/src/PluginResolver.d.ts +0 -35
- package/dist/fracture/src/PluginResolver.d.ts.map +0 -1
- package/dist/fracture/src/PluginResolver.js +0 -128
- package/dist/fracture/src/PluginResolver.js.map +0 -1
- package/dist/fracture/src/QuestAPI.d.ts +0 -9
- package/dist/fracture/src/QuestAPI.d.ts.map +0 -1
- package/dist/fracture/src/QuestAPI.js +0 -679
- package/dist/fracture/src/QuestAPI.js.map +0 -1
- package/dist/fracture/src/QuestAPI.types.d.ts +0 -35
- package/dist/fracture/src/QuestAPI.types.d.ts.map +0 -1
- package/dist/fracture/src/QuestAPI.types.js +0 -3
- package/dist/fracture/src/QuestAPI.types.js.map +0 -1
- package/dist/fracture/src/QuestTestAPI.d.ts +0 -12
- package/dist/fracture/src/QuestTestAPI.d.ts.map +0 -1
- package/dist/fracture/src/QuestTestAPI.js +0 -133
- package/dist/fracture/src/QuestTestAPI.js.map +0 -1
- package/dist/fracture/src/ScriptEngine.d.ts +0 -21
- package/dist/fracture/src/ScriptEngine.d.ts.map +0 -1
- package/dist/fracture/src/ScriptEngine.js +0 -183
- package/dist/fracture/src/ScriptEngine.js.map +0 -1
- package/dist/fracture/src/ScriptValidator.d.ts +0 -68
- package/dist/fracture/src/ScriptValidator.d.ts.map +0 -1
- package/dist/fracture/src/ScriptValidator.js +0 -351
- package/dist/fracture/src/ScriptValidator.js.map +0 -1
- package/dist/fracture/src/TestCounter.d.ts +0 -18
- package/dist/fracture/src/TestCounter.d.ts.map +0 -1
- package/dist/fracture/src/TestCounter.js +0 -82
- package/dist/fracture/src/TestCounter.js.map +0 -1
- package/dist/fracture/src/VariableResolver.d.ts +0 -20
- package/dist/fracture/src/VariableResolver.d.ts.map +0 -1
- package/dist/fracture/src/VariableResolver.js +0 -100
- package/dist/fracture/src/VariableResolver.js.map +0 -1
- package/dist/fracture/src/cli/index.d.ts +0 -3
- package/dist/fracture/src/cli/index.d.ts.map +0 -1
- package/dist/fracture/src/cli/index.js +0 -347
- package/dist/fracture/src/cli/index.js.map +0 -1
- package/dist/fracture/src/cli/plugin-commands.d.ts +0 -6
- package/dist/fracture/src/cli/plugin-commands.d.ts.map +0 -1
- package/dist/fracture/src/cli/plugin-commands.js +0 -263
- package/dist/fracture/src/cli/plugin-commands.js.map +0 -1
- package/dist/fracture/src/cli/plugin-discovery.d.ts +0 -11
- package/dist/fracture/src/cli/plugin-discovery.d.ts.map +0 -1
- package/dist/fracture/src/cli/plugin-discovery.js +0 -64
- package/dist/fracture/src/cli/plugin-discovery.js.map +0 -1
- package/dist/fracture/src/index.d.ts +0 -13
- package/dist/fracture/src/index.d.ts.map +0 -1
- package/dist/fracture/src/index.js +0 -17
- package/dist/fracture/src/index.js.map +0 -1
- package/dist/fracture/src/utils.d.ts +0 -28
- package/dist/fracture/src/utils.d.ts.map +0 -1
- package/dist/fracture/src/utils.js +0 -48
- package/dist/fracture/src/utils.js.map +0 -1
- package/dist/plugin-auth/src/apikey-auth.d.ts +0 -3
- package/dist/plugin-auth/src/apikey-auth.d.ts.map +0 -1
- package/dist/plugin-auth/src/apikey-auth.js +0 -73
- package/dist/plugin-auth/src/apikey-auth.js.map +0 -1
- package/dist/plugin-auth/src/basic-auth.d.ts +0 -3
- package/dist/plugin-auth/src/basic-auth.d.ts.map +0 -1
- package/dist/plugin-auth/src/basic-auth.js +0 -61
- package/dist/plugin-auth/src/basic-auth.js.map +0 -1
- package/dist/plugin-auth/src/bearer-auth.d.ts +0 -3
- package/dist/plugin-auth/src/bearer-auth.d.ts.map +0 -1
- package/dist/plugin-auth/src/bearer-auth.js +0 -49
- package/dist/plugin-auth/src/bearer-auth.js.map +0 -1
- package/dist/plugin-auth/src/helpers.d.ts +0 -3
- package/dist/plugin-auth/src/helpers.d.ts.map +0 -1
- package/dist/plugin-auth/src/helpers.js +0 -8
- package/dist/plugin-auth/src/helpers.js.map +0 -1
- package/dist/plugin-auth/src/index.d.ts +0 -10
- package/dist/plugin-auth/src/index.d.ts.map +0 -1
- package/dist/plugin-auth/src/index.js +0 -25
- package/dist/plugin-auth/src/index.js.map +0 -1
- package/dist/plugin-auth/src/oauth2-auth.d.ts +0 -35
- package/dist/plugin-auth/src/oauth2-auth.d.ts.map +0 -1
- package/dist/plugin-auth/src/oauth2-auth.js +0 -266
- package/dist/plugin-auth/src/oauth2-auth.js.map +0 -1
- package/dist/plugin-http/src/index.d.ts +0 -4
- package/dist/plugin-http/src/index.d.ts.map +0 -1
- package/dist/plugin-http/src/index.js +0 -266
- package/dist/plugin-http/src/index.js.map +0 -1
- package/dist/plugin-vault-file/src/index.d.ts +0 -67
- package/dist/plugin-vault-file/src/index.d.ts.map +0 -1
- package/dist/plugin-vault-file/src/index.js +0 -171
- package/dist/plugin-vault-file/src/index.js.map +0 -1
- package/dist/types.d.ts +0 -374
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -13
- package/dist/types.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# @apiquest/fracture
|
|
2
|
+
|
|
3
|
+
Core collection runner engine for ApiQuest with integrated CLI. Executes JSON-based API test collections with support for multiple protocols via plugins.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @apiquest/fracture
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Plugins
|
|
12
|
+
|
|
13
|
+
Protocol and authentication plugins extend fracture capabilities:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Using fracture CLI (recommended)
|
|
17
|
+
fracture plugin install http # HTTP/REST APIs
|
|
18
|
+
fracture plugin install auth # Authentication
|
|
19
|
+
fracture plugin install vault-file # File-based secrets vault
|
|
20
|
+
fracture plugin install graphql # GraphQL
|
|
21
|
+
fracture plugin install sse # Server-Sent Events
|
|
22
|
+
|
|
23
|
+
# Or using npm
|
|
24
|
+
npm install -g @apiquest/plugin-http
|
|
25
|
+
npm install -g @apiquest/plugin-auth
|
|
26
|
+
npm install -g @apiquest/plugin-vault-file
|
|
27
|
+
npm install -g @apiquest/plugin-graphql
|
|
28
|
+
npm install -g @apiquest/plugin-sse
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Quick Start
|
|
32
|
+
|
|
33
|
+
### CLI
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Run a collection
|
|
37
|
+
fracture run ./collection.json
|
|
38
|
+
|
|
39
|
+
# With environment and global variables
|
|
40
|
+
fracture run ./collection.json \
|
|
41
|
+
-e ./environment.json \
|
|
42
|
+
-g baseUrl=https://api.example.com
|
|
43
|
+
|
|
44
|
+
# With iteration data
|
|
45
|
+
fracture run ./collection.json \
|
|
46
|
+
--data ./users.csv \
|
|
47
|
+
--iterations 10
|
|
48
|
+
|
|
49
|
+
# Parallel execution
|
|
50
|
+
fracture run ./collection.json \
|
|
51
|
+
--parallel \
|
|
52
|
+
--concurrency 5
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Programmatic API
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import { CollectionRunner } from '@apiquest/fracture';
|
|
59
|
+
import type { Collection } from '@apiquest/types';
|
|
60
|
+
|
|
61
|
+
const runner = new CollectionRunner();
|
|
62
|
+
const result = await runner.run(collection, {
|
|
63
|
+
globalVariables: { baseUrl: 'https://api.example.com' }
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
console.log(`Tests: ${result.passedTests}/${result.totalTests} passed`);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Key Features
|
|
70
|
+
|
|
71
|
+
- **Deterministic DAG-based parallel execution** - Explicit dependency graphs ensure stable, reproducible runs
|
|
72
|
+
- **Pre-run validation** - AST-based script analysis validates syntax before execution
|
|
73
|
+
- **Deterministic test counting** - Test counts known before execution starts
|
|
74
|
+
- **Plugin architecture** - Support for HTTP, GraphQL, gRPC, WebSocket, SSE via plugins
|
|
75
|
+
- **Collection-level iterations** - Data-driven testing with CSV/JSON files
|
|
76
|
+
- **Event-based reporting** - Real-time progress events for custom reporters
|
|
77
|
+
|
|
78
|
+
## Collection Schema
|
|
79
|
+
|
|
80
|
+
Collections are JSON files following the ApiQuest schema:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"$schema": "https://apiquest.net/schemas/collection-v1.0.json",
|
|
85
|
+
"info": {
|
|
86
|
+
"id": "basic-api",
|
|
87
|
+
"name": "Basic API Test Collection",
|
|
88
|
+
"version": "1.0.0"
|
|
89
|
+
},
|
|
90
|
+
"variables": {
|
|
91
|
+
"baseUrl": "https://jsonplaceholder.typicode.com"
|
|
92
|
+
},
|
|
93
|
+
"protocol": "http",
|
|
94
|
+
"items": [
|
|
95
|
+
{
|
|
96
|
+
"type": "request",
|
|
97
|
+
"id": "req-1",
|
|
98
|
+
"name": "Get Single Post",
|
|
99
|
+
"data": {
|
|
100
|
+
"method": "GET",
|
|
101
|
+
"url": "{{baseUrl}}/posts/1",
|
|
102
|
+
"headers": {
|
|
103
|
+
"Accept": "application/json"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"postRequestScript": "quest.test('Status is 200', () => {\n expect(quest.response.status).to.equal(200);\n});\n\nquest.test('Response has userId', () => {\n const body = quest.response.json();\n expect(body).to.have.property('userId');\n});"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Documentation
|
|
113
|
+
|
|
114
|
+
- [Fracture Documentation](https://apiquest.net/docs/fracture)
|
|
115
|
+
- [Schema Specification](https://apiquest.net/schemas/collection-v1.0.json)
|
|
116
|
+
|
|
117
|
+
## License
|
|
118
|
+
|
|
119
|
+
Dual-licensed under AGPL-3.0-or-later and commercial license. See [LICENSE](./LICENSE.txt) for details.
|
package/bin/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import '../dist/cli/index.js';
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import '../dist/cli/index.js';
|
package/dist/CollectionRunner.js
CHANGED
|
@@ -549,9 +549,9 @@ export class CollectionRunner extends EventEmitter {
|
|
|
549
549
|
async evaluateCondition(condition, context) {
|
|
550
550
|
try {
|
|
551
551
|
// Use workaround: store result in global variable
|
|
552
|
-
const wrappedScript = `
|
|
553
|
-
const __conditionResult = (${condition});
|
|
554
|
-
quest.global.variables.set('__conditionResult', String(__conditionResult === true));
|
|
552
|
+
const wrappedScript = `
|
|
553
|
+
const __conditionResult = (${condition});
|
|
554
|
+
quest.global.variables.set('__conditionResult', String(__conditionResult === true));
|
|
555
555
|
`;
|
|
556
556
|
const result = await this.scriptEngine.execute(wrappedScript, context, ScriptType.PreRequest, () => { });
|
|
557
557
|
if (result.success === false) {
|
package/dist/ScriptEngine.js
CHANGED
|
@@ -50,10 +50,10 @@ export class ScriptEngine {
|
|
|
50
50
|
const vmContext = vm.createContext(sandbox);
|
|
51
51
|
this.logger.trace('VM context created');
|
|
52
52
|
// Wrap script in async function to support top-level await
|
|
53
|
-
const wrappedScript = `
|
|
54
|
-
(async () => {
|
|
55
|
-
${script}
|
|
56
|
-
})()
|
|
53
|
+
const wrappedScript = `
|
|
54
|
+
(async () => {
|
|
55
|
+
${script}
|
|
56
|
+
})()
|
|
57
57
|
`;
|
|
58
58
|
// Execute script and get the promise
|
|
59
59
|
const startTime = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-commands.d.ts","sourceRoot":"","sources":["../../src/cli/plugin-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"plugin-commands.d.ts","sourceRoot":"","sources":["../../src/cli/plugin-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsIxD"}
|
|
@@ -71,6 +71,7 @@ export function addPluginCommands(program) {
|
|
|
71
71
|
console.log(` Description: ${plugin.description}`);
|
|
72
72
|
}
|
|
73
73
|
printCapabilities(plugin.provides, ' ');
|
|
74
|
+
console.log('');
|
|
74
75
|
}
|
|
75
76
|
console.log('');
|
|
76
77
|
}
|
|
@@ -176,7 +177,7 @@ async function listPluginsFromDir(dir, label) {
|
|
|
176
177
|
}
|
|
177
178
|
async function fetchAvailablePlugins() {
|
|
178
179
|
const searchUrl = new URL('https://registry.npmjs.org/-/v1/search');
|
|
179
|
-
searchUrl.searchParams.set('text', '
|
|
180
|
+
searchUrl.searchParams.set('text', '@apiquest/plugin');
|
|
180
181
|
searchUrl.searchParams.set('size', '250');
|
|
181
182
|
const response = await fetch(searchUrl.toString(), {
|
|
182
183
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-commands.js","sourceRoot":"","sources":["../../src/cli/plugin-commands.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin-commands.js","sourceRoot":"","sources":["../../src/cli/plugin-commands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,50 +1,55 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@apiquest/fracture",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Core collection runner engine for ApiQuest with integrated CLI",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"bin": {
|
|
9
|
-
"apiquest": "bin/cli.js",
|
|
10
|
-
"fracture": "bin/cli.js",
|
|
11
|
-
"quest": "bin/cli.js"
|
|
12
|
-
},
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
},
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@apiquest/fracture",
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "Core collection runner engine for ApiQuest with integrated CLI",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"bin": {
|
|
9
|
+
"apiquest": "bin/cli.js",
|
|
10
|
+
"fracture": "bin/cli.js",
|
|
11
|
+
"quest": "bin/cli.js"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/hh-apiquest/fracture.git",
|
|
16
|
+
"directory": "packages/fracture"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"test": "vitest"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"api",
|
|
25
|
+
"testing",
|
|
26
|
+
"runner",
|
|
27
|
+
"quest",
|
|
28
|
+
"apiquest",
|
|
29
|
+
"fracture",
|
|
30
|
+
"cli"
|
|
31
|
+
],
|
|
32
|
+
"author": "ApiQuest",
|
|
33
|
+
"license": "AGPL-3.0-or-later",
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@apiquest/types": "workspace:*",
|
|
36
|
+
"@types/graphlib": "^2.1.12",
|
|
37
|
+
"@types/lodash": "^4.17.23",
|
|
38
|
+
"acorn": "^8.11.0",
|
|
39
|
+
"acorn-walk": "^8.3.0",
|
|
40
|
+
"chai": "^6.2.2",
|
|
41
|
+
"commander": "14.0.3",
|
|
42
|
+
"got": "^14.6.6",
|
|
43
|
+
"graphlib": "^2.1.8",
|
|
44
|
+
"lodash": "^4.17.23",
|
|
45
|
+
"moment": "^2.30.1",
|
|
46
|
+
"tough-cookie": "^6.0.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/acorn": "^4.0.6",
|
|
50
|
+
"@types/chai": "^5.2.3",
|
|
51
|
+
"@types/node": "^25.2.3",
|
|
52
|
+
"typescript": "^5.3.3",
|
|
53
|
+
"vitest": "^4.0.18"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
import type { Collection, Request, CollectionItem, Auth, Variable } from '@apiquest/types';
|
|
2
|
-
import { isNullOrEmpty, hasItems, isValidAuth, isValidAuthType } from './utils.js';
|
|
3
|
-
import { Logger } from './Logger.js';
|
|
4
|
-
|
|
5
|
-
export interface PluginRequirements {
|
|
6
|
-
protocols: Set<string>;
|
|
7
|
-
authTypes: Set<string>;
|
|
8
|
-
valueProviders: Set<string>;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export class CollectionAnalyzer {
|
|
12
|
-
private logger: Logger;
|
|
13
|
-
|
|
14
|
-
constructor(baseLogger?: Logger) {
|
|
15
|
-
this.logger = baseLogger?.createLogger('CollectionAnalyzer') ?? new Logger('CollectionAnalyzer');
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Analyze a collection to determine which plugins are needed
|
|
20
|
-
* Per schema: protocol is collection-level, auth can be at any level, variables can have providers
|
|
21
|
-
*/
|
|
22
|
-
analyzeRequirements(collection: Collection): PluginRequirements {
|
|
23
|
-
this.logger.debug(`Analyzing collection requirements: ${collection.info.name}`);
|
|
24
|
-
const requirements: PluginRequirements = {
|
|
25
|
-
protocols: new Set(),
|
|
26
|
-
authTypes: new Set(),
|
|
27
|
-
valueProviders: new Set()
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
// Protocol is at collection level (schema line 16-18)
|
|
31
|
-
if (!isNullOrEmpty(collection.protocol)) {
|
|
32
|
-
requirements.protocols.add(collection.protocol);
|
|
33
|
-
this.logger.trace(`Protocol requirement: ${collection.protocol}`);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Scan collection-level auth
|
|
37
|
-
if (isValidAuth(collection.auth)) {
|
|
38
|
-
this.logger.trace(`Collection auth requirement: ${collection.auth?.type}`);
|
|
39
|
-
this.scanAuth(collection.auth, requirements);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Scan all items for folder/request-level auth
|
|
43
|
-
if (hasItems(collection.items)) {
|
|
44
|
-
this.scanItems(collection.items, requirements);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Scan variables for provider field (schema line 123-126)
|
|
48
|
-
this.scanVariables(collection, requirements);
|
|
49
|
-
|
|
50
|
-
this.logger.debug(
|
|
51
|
-
`Requirements resolved: protocols=${requirements.protocols.size}, auth=${requirements.authTypes.size}, providers=${requirements.valueProviders.size}`
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
return requirements;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
private scanItems(items: CollectionItem[], requirements: PluginRequirements): void {
|
|
58
|
-
for (const item of items) {
|
|
59
|
-
if (item.type === 'folder' && hasItems(item.items)) {
|
|
60
|
-
// Scan folder-level auth
|
|
61
|
-
if (isValidAuth(item.auth)) {
|
|
62
|
-
this.logger.trace(`Folder auth requirement: ${item.auth?.type}`);
|
|
63
|
-
this.scanAuth(item.auth, requirements);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Recursively scan folder items
|
|
67
|
-
this.scanItems(item.items, requirements);
|
|
68
|
-
} else if (item.type === 'request') {
|
|
69
|
-
const request = item;
|
|
70
|
-
|
|
71
|
-
// Scan request-level auth
|
|
72
|
-
if (isValidAuth(request.auth)) {
|
|
73
|
-
this.logger.trace(`Request auth requirement: ${request.auth?.type}`);
|
|
74
|
-
this.scanAuth(request.auth, requirements);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
private scanAuth(auth: Auth, requirements: PluginRequirements): void {
|
|
81
|
-
// Skip 'none' and 'inherit' - they're not plugin types
|
|
82
|
-
if (isValidAuthType(auth.type)) {
|
|
83
|
-
requirements.authTypes.add(auth.type);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
private scanVariables(collection: Collection, requirements: PluginRequirements): void {
|
|
88
|
-
// Scan collection variables for provider field (variable objects, not just strings)
|
|
89
|
-
const variables = collection.variables ?? {};
|
|
90
|
-
|
|
91
|
-
for (const value of Object.values(variables)) {
|
|
92
|
-
// Variables can be strings OR variable objects with provider field
|
|
93
|
-
if (typeof value === 'object' && value !== null) {
|
|
94
|
-
const varObj = value;
|
|
95
|
-
if (varObj.provider !== null && varObj.provider !== undefined && varObj.provider !== '') {
|
|
96
|
-
requirements.valueProviders.add(varObj.provider);
|
|
97
|
-
this.logger.trace(`Variable provider requirement: ${varObj.provider}`);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
1
|
+
import type { Collection, Request, CollectionItem, Auth, Variable } from '@apiquest/types';
|
|
2
|
+
import { isNullOrEmpty, hasItems, isValidAuth, isValidAuthType } from './utils.js';
|
|
3
|
+
import { Logger } from './Logger.js';
|
|
4
|
+
|
|
5
|
+
export interface PluginRequirements {
|
|
6
|
+
protocols: Set<string>;
|
|
7
|
+
authTypes: Set<string>;
|
|
8
|
+
valueProviders: Set<string>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class CollectionAnalyzer {
|
|
12
|
+
private logger: Logger;
|
|
13
|
+
|
|
14
|
+
constructor(baseLogger?: Logger) {
|
|
15
|
+
this.logger = baseLogger?.createLogger('CollectionAnalyzer') ?? new Logger('CollectionAnalyzer');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Analyze a collection to determine which plugins are needed
|
|
20
|
+
* Per schema: protocol is collection-level, auth can be at any level, variables can have providers
|
|
21
|
+
*/
|
|
22
|
+
analyzeRequirements(collection: Collection): PluginRequirements {
|
|
23
|
+
this.logger.debug(`Analyzing collection requirements: ${collection.info.name}`);
|
|
24
|
+
const requirements: PluginRequirements = {
|
|
25
|
+
protocols: new Set(),
|
|
26
|
+
authTypes: new Set(),
|
|
27
|
+
valueProviders: new Set()
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// Protocol is at collection level (schema line 16-18)
|
|
31
|
+
if (!isNullOrEmpty(collection.protocol)) {
|
|
32
|
+
requirements.protocols.add(collection.protocol);
|
|
33
|
+
this.logger.trace(`Protocol requirement: ${collection.protocol}`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Scan collection-level auth
|
|
37
|
+
if (isValidAuth(collection.auth)) {
|
|
38
|
+
this.logger.trace(`Collection auth requirement: ${collection.auth?.type}`);
|
|
39
|
+
this.scanAuth(collection.auth, requirements);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Scan all items for folder/request-level auth
|
|
43
|
+
if (hasItems(collection.items)) {
|
|
44
|
+
this.scanItems(collection.items, requirements);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Scan variables for provider field (schema line 123-126)
|
|
48
|
+
this.scanVariables(collection, requirements);
|
|
49
|
+
|
|
50
|
+
this.logger.debug(
|
|
51
|
+
`Requirements resolved: protocols=${requirements.protocols.size}, auth=${requirements.authTypes.size}, providers=${requirements.valueProviders.size}`
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
return requirements;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
private scanItems(items: CollectionItem[], requirements: PluginRequirements): void {
|
|
58
|
+
for (const item of items) {
|
|
59
|
+
if (item.type === 'folder' && hasItems(item.items)) {
|
|
60
|
+
// Scan folder-level auth
|
|
61
|
+
if (isValidAuth(item.auth)) {
|
|
62
|
+
this.logger.trace(`Folder auth requirement: ${item.auth?.type}`);
|
|
63
|
+
this.scanAuth(item.auth, requirements);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Recursively scan folder items
|
|
67
|
+
this.scanItems(item.items, requirements);
|
|
68
|
+
} else if (item.type === 'request') {
|
|
69
|
+
const request = item;
|
|
70
|
+
|
|
71
|
+
// Scan request-level auth
|
|
72
|
+
if (isValidAuth(request.auth)) {
|
|
73
|
+
this.logger.trace(`Request auth requirement: ${request.auth?.type}`);
|
|
74
|
+
this.scanAuth(request.auth, requirements);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private scanAuth(auth: Auth, requirements: PluginRequirements): void {
|
|
81
|
+
// Skip 'none' and 'inherit' - they're not plugin types
|
|
82
|
+
if (isValidAuthType(auth.type)) {
|
|
83
|
+
requirements.authTypes.add(auth.type);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private scanVariables(collection: Collection, requirements: PluginRequirements): void {
|
|
88
|
+
// Scan collection variables for provider field (variable objects, not just strings)
|
|
89
|
+
const variables = collection.variables ?? {};
|
|
90
|
+
|
|
91
|
+
for (const value of Object.values(variables)) {
|
|
92
|
+
// Variables can be strings OR variable objects with provider field
|
|
93
|
+
if (typeof value === 'object' && value !== null) {
|
|
94
|
+
const varObj = value;
|
|
95
|
+
if (varObj.provider !== null && varObj.provider !== undefined && varObj.provider !== '') {
|
|
96
|
+
requirements.valueProviders.add(varObj.provider);
|
|
97
|
+
this.logger.trace(`Variable provider requirement: ${varObj.provider}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|