@apiquest/fracture 1.0.4 → 1.0.6

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 (87) hide show
  1. package/README.md +90 -2
  2. package/dist/CollectionRunner.d.ts +3 -0
  3. package/dist/CollectionRunner.d.ts.map +1 -1
  4. package/dist/CollectionRunner.js +249 -154
  5. package/dist/CollectionRunner.js.map +1 -1
  6. package/dist/CollectionValidator.d.ts.map +1 -1
  7. package/dist/CollectionValidator.js +11 -0
  8. package/dist/CollectionValidator.js.map +1 -1
  9. package/dist/ConsoleReporter.d.ts.map +1 -1
  10. package/dist/ConsoleReporter.js +9 -6
  11. package/dist/ConsoleReporter.js.map +1 -1
  12. package/dist/DagScheduler.d.ts.map +1 -1
  13. package/dist/DagScheduler.js +11 -0
  14. package/dist/DagScheduler.js.map +1 -1
  15. package/dist/LibraryLoader.d.ts +49 -0
  16. package/dist/LibraryLoader.d.ts.map +1 -0
  17. package/dist/LibraryLoader.js +198 -0
  18. package/dist/LibraryLoader.js.map +1 -0
  19. package/dist/PluginLoader.d.ts.map +1 -1
  20. package/dist/PluginLoader.js +9 -6
  21. package/dist/PluginLoader.js.map +1 -1
  22. package/dist/PluginManager.d.ts.map +1 -1
  23. package/dist/PluginManager.js +11 -7
  24. package/dist/PluginManager.js.map +1 -1
  25. package/dist/PluginResolver.d.ts +1 -1
  26. package/dist/PluginResolver.d.ts.map +1 -1
  27. package/dist/PluginResolver.js +1 -1
  28. package/dist/PluginResolver.js.map +1 -1
  29. package/dist/QuestAPI.d.ts.map +1 -1
  30. package/dist/QuestAPI.js +114 -217
  31. package/dist/QuestAPI.js.map +1 -1
  32. package/dist/ScriptEngine.d.ts +2 -1
  33. package/dist/ScriptEngine.d.ts.map +1 -1
  34. package/dist/ScriptEngine.js +15 -8
  35. package/dist/ScriptEngine.js.map +1 -1
  36. package/dist/TaskGraph.d.ts +2 -1
  37. package/dist/TaskGraph.d.ts.map +1 -1
  38. package/dist/TaskGraph.js +28 -26
  39. package/dist/TaskGraph.js.map +1 -1
  40. package/dist/VariableResolver.d.ts +1 -1
  41. package/dist/VariableResolver.js +10 -10
  42. package/dist/VariableResolver.js.map +1 -1
  43. package/dist/cli/index.js +35 -3
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/cli/plugin-commands.d.ts.map +1 -1
  46. package/dist/cli/plugin-commands.js +47 -81
  47. package/dist/cli/plugin-commands.js.map +1 -1
  48. package/dist/cli/plugin-installer.d.ts +48 -0
  49. package/dist/cli/plugin-installer.d.ts.map +1 -0
  50. package/dist/cli/plugin-installer.js +136 -0
  51. package/dist/cli/plugin-installer.js.map +1 -0
  52. package/dist/cli/plugin-registry.d.ts +17 -0
  53. package/dist/cli/plugin-registry.d.ts.map +1 -0
  54. package/dist/cli/plugin-registry.js +77 -0
  55. package/dist/cli/plugin-registry.js.map +1 -0
  56. package/package.json +1 -1
  57. package/tsconfig.json +1 -0
  58. package/tsconfig.test.json +3 -0
  59. package/dist/QuestAPI.types.d.ts +0 -35
  60. package/dist/QuestAPI.types.d.ts.map +0 -1
  61. package/dist/QuestAPI.types.js +0 -3
  62. package/dist/QuestAPI.types.js.map +0 -1
  63. package/src/CollectionAnalyzer.ts +0 -102
  64. package/src/CollectionRunner.ts +0 -1423
  65. package/src/CollectionRunner.types.ts +0 -9
  66. package/src/CollectionValidator.ts +0 -289
  67. package/src/ConsoleReporter.ts +0 -143
  68. package/src/CookieJar.ts +0 -258
  69. package/src/DagScheduler.ts +0 -439
  70. package/src/Logger.ts +0 -85
  71. package/src/PluginLoader.ts +0 -126
  72. package/src/PluginManager.ts +0 -208
  73. package/src/PluginResolver.ts +0 -154
  74. package/src/QuestAPI.ts +0 -764
  75. package/src/QuestAPI.types.ts +0 -33
  76. package/src/QuestTestAPI.ts +0 -164
  77. package/src/RequestFilter.ts +0 -224
  78. package/src/ScriptEngine.ts +0 -219
  79. package/src/ScriptValidator.ts +0 -428
  80. package/src/TaskGraph.ts +0 -598
  81. package/src/TestCounter.ts +0 -109
  82. package/src/VariableResolver.ts +0 -114
  83. package/src/cli/index.ts +0 -480
  84. package/src/cli/plugin-commands.ts +0 -342
  85. package/src/cli/plugin-discovery.ts +0 -44
  86. package/src/index.ts +0 -24
  87. package/src/utils.ts +0 -52
package/README.md CHANGED
@@ -50,6 +50,10 @@ fracture run ./collection.json \
50
50
  fracture run ./collection.json \
51
51
  --parallel \
52
52
  --concurrency 5
53
+
54
+ # With external libraries (npm, file, or CDN)
55
+ fracture run ./collection.json \
56
+ --allow-external-libraries
53
57
  ```
54
58
 
55
59
  ### Programmatic API
@@ -74,6 +78,7 @@ console.log(`Tests: ${result.passedTests}/${result.totalTests} passed`);
74
78
  - **Plugin architecture** - Support for HTTP, GraphQL, gRPC, WebSocket, SSE via plugins
75
79
  - **Collection-level iterations** - Data-driven testing with CSV/JSON files
76
80
  - **Event-based reporting** - Real-time progress events for custom reporters
81
+ - **External libraries** - Load npm packages, local files, or CDN scripts (opt-in)
77
82
 
78
83
  ## Collection Schema
79
84
 
@@ -109,10 +114,93 @@ Collections are JSON files following the ApiQuest schema:
109
114
  }
110
115
  ```
111
116
 
117
+ ## CLI Options
118
+
119
+ Key runtime options (see [full CLI reference](../../docs/quest_cli.md) for all options):
120
+
121
+ ```bash
122
+ # Variables & Environment
123
+ -g, --global <key=value> Set global variable
124
+ -e, --environment <file> Environment file
125
+ --env-var <key=value> Set environment variable
126
+
127
+ # Execution
128
+ --parallel Enable parallel execution
129
+ --concurrency <number> Max concurrent requests
130
+ --bail Stop on first test failure
131
+ --delay <ms> Delay between requests
132
+ --timeout <ms> Request timeout
133
+
134
+ # SSL/TLS
135
+ --ssl-cert <path> Client certificate (PEM)
136
+ --ssl-key <path> Client private key
137
+ --insecure Disable SSL validation
138
+
139
+ # Proxy
140
+ --proxy <url> HTTP/HTTPS proxy
141
+ --proxy-auth <user:pass> Proxy credentials
142
+
143
+ # Plugins & Libraries
144
+ --install-plugins Auto-install missing plugins
145
+ --allow-external-libraries Enable external libraries (npm/file/cdn)
146
+
147
+ # Output
148
+ --silent Suppress output
149
+ --log-level <level> error|warn|info|debug|trace
150
+ --no-color Disable colors
151
+ ```
152
+
153
+ **Exit Codes:**
154
+ - `0` — All tests passed
155
+ - `1` — One or more tests failed
156
+ - `2` — Invalid CLI input
157
+ - `3` — Pre-run validation failed
158
+ - `4` — Runtime error
159
+
160
+ ## External Libraries
161
+
162
+ Load npm packages, local files, or CDN scripts in your test scripts. Requires `--allow-external-libraries` flag for security.
163
+
164
+ ```json
165
+ {
166
+ "options": {
167
+ "libraries": [
168
+ {
169
+ "name": "validator",
170
+ "source": { "type": "npm", "package": "validator" },
171
+ "version": "^13.11.0"
172
+ },
173
+ {
174
+ "name": "myutils",
175
+ "source": { "type": "file", "path": "./utils/helpers.js" }
176
+ },
177
+ {
178
+ "name": "lodash",
179
+ "source": { "type": "cdn", "url": "https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js" }
180
+ }
181
+ ]
182
+ }
183
+ }
184
+ ```
185
+
186
+ Use in scripts with `require()`:
187
+
188
+ ```javascript
189
+ const validator = require('validator');
190
+ quest.test('Valid email', () => {
191
+ expect(validator.isEmail('test@example.com')).to.be.true;
192
+ });
193
+ ```
194
+
195
+ Run with: `fracture run collection.json --allow-external-libraries`
196
+
197
+ See [CLI documentation](../../docs/quest_cli.md#external-libraries) for details.
198
+
112
199
  ## Documentation
113
200
 
114
- - [Fracture Documentation](https://apiquest.net/docs/fracture)
115
- - [Schema Specification](https://apiquest.net/schemas/collection-v1.0.json)
201
+ - [CLI Reference](../../docs/quest_cli.md)
202
+ - [Runner API](../../docs/quest_runner.md)
203
+ - [Schema Specification](../../docs/quest_schema_spec.md)
116
204
 
117
205
  ## License
118
206
 
@@ -18,6 +18,9 @@ export declare class CollectionRunner extends EventEmitter {
18
18
  private bailEnabled;
19
19
  private abortReason?;
20
20
  private shouldDelayNextRequest;
21
+ private libraryLoader;
22
+ private loadedLibraries;
23
+ private folderScopeById;
21
24
  constructor(options?: CollectionRunnerOptions);
22
25
  /**
23
26
  * Queue script execution to ensure sequential execution (thread-safe)
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionRunner.d.ts","sourceRoot":"","sources":["../src/CollectionRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EAQT,uBAAuB,EAMvB,eAAe,EACf,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAkBzB,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,uBAAuB,CAA4B;IAC3D,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,OAAO,CAAC,EAAE,uBAAuB;IA6B7C;;OAEG;YACW,WAAW;IASzB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI7C,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAI7C,OAAO,CAAC,iBAAiB;IAmBzB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAwBtE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,cAAc;IAWhB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAmX/E,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,YAAY;IA2EpB;;;OAGG;YACW,iBAAiB;IAqC/B;;OAEG;YACW,cAAc;IAsD5B;;OAEG;YACW,mBAAmB;YAwDnB,0BAA0B;YA2B1B,2BAA2B;IA2BzC;;;OAGG;YACW,kBAAkB;IAsBhC;;;;;;OAMG;YACW,iBAAiB;YA2BjB,sBAAsB;YA+BtB,uBAAuB;YA+BvB,wBAAwB;IAqCtC;;;OAGG;YACW,sBAAsB;CAwXrC"}
1
+ {"version":3,"file":"CollectionRunner.d.ts","sourceRoot":"","sources":["../src/CollectionRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EAQT,uBAAuB,EAMvB,eAAe,EACf,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAmBzB,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,uBAAuB,CAA4B;IAC3D,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,eAAe,CAAwC;gBAEnD,OAAO,CAAC,EAAE,uBAAuB;IA8B7C;;OAEG;YACW,WAAW;IASzB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI7C,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAI7C,OAAO,CAAC,iBAAiB;IAmBzB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAwBtE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,cAAc;IAWhB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IA+Y/E,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,YAAY;IA0FpB;;;OAGG;YACW,iBAAiB;IAuC/B;;OAEG;YACW,cAAc;IAsD5B;;OAEG;YACW,mBAAmB;YAwDnB,0BAA0B;YA2B1B,2BAA2B;IA2BzC;;;OAGG;YACW,kBAAkB;IAgChC;;;;;;OAMG;YACW,iBAAiB;YAuBjB,sBAAsB;YA+BtB,uBAAuB;YA+BvB,wBAAwB;IAqCtC;;;OAGG;YACW,sBAAsB;CA2arC"}