cursortoys 0.2.0 → 0.4.0

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 (48) hide show
  1. package/README.md +100 -107
  2. package/dist/assertionParser.d.ts.map +1 -1
  3. package/dist/assertionParser.js +2 -3
  4. package/dist/assertionParser.js.map +1 -1
  5. package/dist/assertionValidator.d.ts +1 -0
  6. package/dist/assertionValidator.d.ts.map +1 -1
  7. package/dist/assertionValidator.js +7 -57
  8. package/dist/assertionValidator.js.map +1 -1
  9. package/dist/banner.d.ts +7 -0
  10. package/dist/banner.d.ts.map +1 -0
  11. package/dist/banner.js +60 -0
  12. package/dist/banner.js.map +1 -0
  13. package/dist/cli.js +76 -9
  14. package/dist/cli.js.map +1 -1
  15. package/dist/commands/http-test.d.ts +2 -1
  16. package/dist/commands/http-test.d.ts.map +1 -1
  17. package/dist/commands/http-test.js +307 -178
  18. package/dist/commands/http-test.js.map +1 -1
  19. package/dist/commands/skill-add.d.ts.map +1 -1
  20. package/dist/commands/skill-add.js +14 -23
  21. package/dist/commands/skill-add.js.map +1 -1
  22. package/dist/commands/skill-install.d.ts +25 -0
  23. package/dist/commands/skill-install.d.ts.map +1 -0
  24. package/dist/commands/skill-install.js +116 -0
  25. package/dist/commands/skill-install.js.map +1 -0
  26. package/dist/projectEnv.d.ts +19 -0
  27. package/dist/projectEnv.d.ts.map +1 -0
  28. package/dist/projectEnv.js +80 -0
  29. package/dist/projectEnv.js.map +1 -0
  30. package/dist/responseChain.d.ts +25 -0
  31. package/dist/responseChain.d.ts.map +1 -0
  32. package/dist/responseChain.js +86 -0
  33. package/dist/responseChain.js.map +1 -0
  34. package/dist/responseChainParser.d.ts +22 -0
  35. package/dist/responseChainParser.d.ts.map +1 -0
  36. package/dist/responseChainParser.js +94 -0
  37. package/dist/responseChainParser.js.map +1 -0
  38. package/dist/responseExpression.d.ts +15 -0
  39. package/dist/responseExpression.d.ts.map +1 -0
  40. package/dist/responseExpression.js +59 -0
  41. package/dist/responseExpression.js.map +1 -0
  42. package/dist/skillsPaths.d.ts +22 -0
  43. package/dist/skillsPaths.d.ts.map +1 -0
  44. package/dist/skillsPaths.js +78 -0
  45. package/dist/skillsPaths.js.map +1 -0
  46. package/llms.txt +68 -104
  47. package/package.json +3 -1
  48. package/resources/skills/cursor-toys-http/SKILL.md +208 -0
package/README.md CHANGED
@@ -4,10 +4,10 @@ Command-line utilities for CursorToys: HTTP testing, skill management, automatio
4
4
 
5
5
  ## Features
6
6
 
7
- - 🧪 **HTTP Testing**: Run `.req` / `.request` files as automated tests
8
- - 🎯 **Skill Management**: Create and manage AI agent skills
9
- - 🤖 **LLM Instructions**: Built-in usage guide for LLMs
10
- - 🔧 **Productivity Tools**: Utilities for development workflow
7
+ - **HTTP Testing**: Run `.req` / `.request` files as automated tests
8
+ - **Skill Management**: Create and manage AI agent skills
9
+ - **LLM Instructions**: Built-in usage guide for LLMs
10
+ - **Productivity Tools**: Utilities for development workflow
11
11
 
12
12
  ## Requirements
13
13
 
@@ -25,7 +25,7 @@ npm install -g cursortoys-cli
25
25
  ### Use with npx (no installation)
26
26
 
27
27
  ```bash
28
- npx cursortoys-cli http test
28
+ npx cursortoys http test
29
29
  ```
30
30
 
31
31
  ### Local Development
@@ -41,9 +41,7 @@ npm link
41
41
 
42
42
  ### HTTP Testing
43
43
 
44
- Run HTTP request files (`.req` / `.request`) from the project's `http` folder as automated tests. Uses the same format and behavior as the CursorToys VS Code extension (REST Client format, `# @var`, `# @env`, `{{VAR}}`, `.env` files), without depending on VS Code.
45
-
46
- ### HTTP Testing
44
+ Run HTTP request files (`.req` / `.request`) from the project's `http` folder as automated tests. Uses the same format and behavior as the CursorToys VS Code extension (REST Client format, `# @var`, `# @env`, `{{VAR}}`, project-root `.env` files).
47
45
 
48
46
  #### Run all HTTP tests
49
47
 
@@ -53,13 +51,15 @@ From the project root (where `.cursor/http/` or your configured base folder live
53
51
  cursortoys http test
54
52
  ```
55
53
 
56
- Discovers all `.req` and `.request` files under the `http` folder (excluding the environments subfolder), runs the first request in each file (before the first `###`), and reports pass/fail. A request is considered **passed** if the response status code is 2xx.
54
+ Discovers all `.req` and `.request` files under the `http` folder (recursively), runs every request block in each file, and reports pass/fail. A request **passes** when status is 2xx, or when all `@assert` blocks pass (assertions override status).
57
55
 
58
- #### Run a single file
56
+ #### Run a single file or folder
59
57
 
60
58
  ```bash
61
59
  cursortoys http test --file path/to/file.req
62
60
  cursortoys http test -f .cursor/http/api.req
61
+ cursortoys http test -f .cursor/http/auth
62
+ cursortoys http test --folder auth
63
63
  ```
64
64
 
65
65
  #### HTTP Test Options
@@ -68,28 +68,36 @@ cursortoys http test -f .cursor/http/api.req
68
68
  |-------|-------------|
69
69
  | `-p, --project <dir>` | Project directory (default: current working directory) |
70
70
  | `--base-folder <name>` | Base folder name (default: `cursor`; or set `CURSORTOYS_BASE_FOLDER`) |
71
- | `--environments-folder <name>` | Environments subfolder under `http` (default: `.environments`; or `CURSORTOYS_ENVIRONMENTS_FOLDER`) |
72
- | `-e, --env <name>` | Environment to use; overrides `# @env` in the file (default when not set: `dev`) |
71
+ | `-e, --env <name>` | Environment to use; overrides `# @env` in the file (default: `dev`) |
73
72
  | `-t, --timeout <seconds>` | Request timeout in seconds (default: `10`) |
74
- | `-f, --file <path>` | Run a single `.req` or `.request` file |
75
- | `-V, --verbose` | Show request and response for each test (method, URL, headers, body, status, response body) |
76
- | `--var <key=value>` | Override a variable (e.g. `BASE_URL=https://api.example.com`); can be repeated |
73
+ | `-f, --file <path>` | Run a single file or all request files in a directory |
74
+ | `--folder <path>` | Run all request files under a subfolder of the http directory |
75
+ | `-V, --verbose` | Show request and response for each test |
76
+ | `--var <key=value>` | Override a variable; can be repeated |
77
77
 
78
- #### HTTP Paths (no VS Code)
78
+ #### Paths (no VS Code)
79
79
 
80
- - **Workspace**: `process.cwd()` or `--project <dir>`.
81
- - **Base folder**: `CURSORTOYS_BASE_FOLDER` or `--base-folder` (default: `cursor`).
82
- - **HTTP folder**: `{workspace}/.{baseFolder}/http/` (e.g. `.cursor/http/`).
83
- - **Environments**: `{workspace}/.{baseFolder}/http/{environmentsFolder}/` (e.g. `.cursor/http/.environments/`), with files like `.env.dev`, `.env`, etc.
80
+ - **Workspace**: `process.cwd()` or `--project <dir>`
81
+ - **Base folder**: `CURSORTOYS_BASE_FOLDER` or `--base-folder` (default: `cursor`)
82
+ - **HTTP folder**: `{workspace}/.{baseFolder}/http/` (e.g. `.cursor/http/`)
83
+ - **Environments**: project root `.env`, `.env.dev`, `.env.staging`, etc. (not inside `http/`)
84
84
 
85
85
  #### HTTP Request File Format
86
86
 
87
87
  Same as in the CursorToys extension:
88
88
 
89
- - **REST Client**: `METHOD URL` then optional headers and body; multiple requests separated by `###` (only the first is run in this first version).
90
- - **Variables**: `# @var VAR_NAME=value` (or `VAR_NAME value`); `# @env name` to select environment.
91
- - **Substitution**: `{{VAR_NAME}}` in URL, headers, and body; resolved first from file `# @var`, then from `.env.{name}` (or `.env`) in the environments folder.
92
- - **Delay**: `# @delay(milliseconds)` to add a delay before executing the request block. Useful for rate limiting or waiting for async operations.
89
+ - **REST Client**: `METHOD URL` then optional headers and body; multiple requests separated by `###` or `##` sections
90
+ - **Variables**: `# @var VAR_NAME=value`; `# @env name` to select environment (`default` uses `.env`)
91
+ - **Substitution**: `{{VAR_NAME}}` resolved from `# @var`, then from `.env.{name}` at project root
92
+ - **Delay**: `# @delay(milliseconds)` before executing a block
93
+ - **Assertions**: block comments with `@assert(...)` — when present, all must pass
94
+ - **Chained response** (`@SETTER` / `@GETTER`): capture a value from one response and use it in the next block (or file in the same run)
95
+
96
+ Reserved hook files (directory-level setup/teardown):
97
+
98
+ - `__before__.req` / `__before__.request`: runs **before** other request files in that directory
99
+ - `__after__.req` / `__after__.request`: runs **after** other request files in that directory
100
+ - Hook files are **not** treated as normal tests (they don't get discovered twice).
93
101
 
94
102
  Example:
95
103
 
@@ -97,149 +105,134 @@ Example:
97
105
  # @env dev
98
106
  # @var BASE_URL=https://api.example.com
99
107
 
100
- ### Get health
108
+ ## Get health
101
109
  GET {{BASE_URL}}/health
102
110
  Accept: application/json
103
111
 
104
112
  ###
105
113
 
106
- ### Create user (with 1 second delay)
114
+ ## Create user
107
115
  # @delay(1000)
108
116
  POST {{BASE_URL}}/users
109
117
  Content-Type: application/json
110
118
 
111
- {
112
- "name": "John Doe",
113
- "email": "john@example.com"
114
- }
119
+ {"name": "John Doe"}
120
+ ```
121
+
122
+ **Chained response example** (profile → repos using `avatar_url`):
123
+
124
+ ```http
125
+ # @var GITHUB_API=https://api.github.com
126
+ # @var GITHUB_USER=octocat
127
+
128
+ ## Public user profile
129
+ GET {{GITHUB_API}}/users/{{GITHUB_USER}}
130
+ Accept: application/vnd.github+json
131
+
132
+ /*
133
+ * @assert("Avatar URL is set", "res.body.avatar_url", "contains", "avatars")
134
+ * @SETTER("VALUE", "res.body.avatar_url")
135
+ */
136
+
137
+ ###
138
+
139
+ ## Public user repositories
140
+ # @getter VALUE
141
+ GET {{GITHUB_API}}/users/{{GITHUB_USER}}/repos?per_page=5&ref={{VALUE}}
142
+ Accept: application/vnd.github+json
143
+
144
+ /*
145
+ * @getter("VALUE")
146
+ * @assert("repos ok", "res.status", "equals", 200)
147
+ */
115
148
  ```
116
149
 
117
- #### HTTP Verbose Mode and Overrides
150
+ - `@SETTER("KEY", "res.body.field")` after the block's request, stores the value in `KEY` (same map as `# @var`)
151
+ - `# @getter KEY` or `/* @getter("KEY") */` — fails early if `KEY` is not defined
152
+ - Use `{{KEY}}` in URL, headers, body, or assertion expected values
153
+ - Variables persist across blocks in the file and across files in the same `http test` run
118
154
 
119
- - **Verbose** (`-V` / `--verbose`): prints for each test the request (method, URL, headers, body) and the response (status, body), so you can inspect what was sent and received.
120
- - **Environment** (`-e` / `--env`): chooses which environment to use (e.g. `.env.qa`). If you pass `-e qa`, the file’s `# @env` (if any) is ignored and `qa` is used.
121
- - **Variable overrides** (`--var KEY=value`): overrides variables for the run. You can pass multiple: `--var BASE_URL=https://api.example.com --var API_KEY=secret`. These override both `# @var` in the file and values from `.env.*`.
155
+ Project root `.env.dev`:
156
+
157
+ ```env
158
+ BASE_URL=https://api.dev.example.com
159
+ API_KEY=dev-key
160
+ ```
161
+
162
+ #### Verbose Mode and Overrides
163
+
164
+ - **Verbose** (`-V`): prints request (method, URL, headers, body) and response
165
+ - **Environment** (`-e`): uses `.env.{name}` at project root; `# @env default` maps to `.env`
166
+ - **Variable overrides** (`--var KEY=value`): override file and env values for the run
122
167
 
123
168
  Examples:
124
169
 
125
170
  ```bash
126
171
  cursortoys http test -V
127
- cursortoys http test -e qa --var BASE_URL=https://staging.example.com
172
+ cursortoys http test -e staging --var BASE_URL=https://staging.example.com
128
173
  cursortoys http test -f .cursor/http/api.req --verbose --var API_KEY=xxx
174
+ cursortoys http test --folder integrations
129
175
  ```
130
176
 
131
177
  ### Skill Management
132
178
 
133
179
  Create and manage AI agent skills for Cursor AI.
134
180
 
135
- #### Create a new skill
136
-
137
181
  ```bash
138
182
  cursortoys skill add my-skill
139
- ```
140
-
141
- #### Create with description
142
-
143
- ```bash
144
183
  cursortoys skill add http-testing -d "Skill for testing HTTP APIs"
145
- ```
146
-
147
- #### Create project-specific skill
148
-
149
- ```bash
150
184
  cursortoys skill add api-docs -t project -p /path/to/project
151
185
  ```
152
186
 
153
- #### Skill Options
154
-
155
187
  | Option | Description |
156
188
  |-------|-------------|
157
189
  | `-d, --description <text>` | Skill description |
158
- | `-t, --target <type>` | Target directory (`personal` or `project`, default: `personal`) |
190
+ | `-t, --target <type>` | `personal` or `project` (default: `personal`) |
159
191
  | `-p, --project <dir>` | Project directory (required if target is `project`) |
160
- | `--base-folder <name>` | Base folder name (default: `cursor`, or `CURSORTOYS_BASE_FOLDER`) |
192
+ | `--base-folder <name>` | Base folder name (default: `cursor`) |
161
193
 
162
- #### Skill Paths
194
+ **Install bundled HTTP skill** (same as CursorToys extension — hooks, `@SETTER`/`@GETTER`, CLI docs):
163
195
 
164
- - **Personal skills**: `~/.cursor/skills/{skill-name}/SKILL.md`
165
- - **Project skills**: `{project}/.cursor/skills/{skill-name}/SKILL.md`
166
-
167
- The command creates a `SKILL.md` file with a template that you can customize.
196
+ ```bash
197
+ cursortoys skill install # default: http
198
+ cursortoys skill install http -t project -p .
199
+ cursortoys skill install http --force # reinstall
200
+ cursortoys skill list
201
+ ```
168
202
 
169
203
  ### LLM Instructions
170
204
 
171
- Display instructions for LLMs on how to use the CLI:
172
-
173
205
  ```bash
174
206
  cursortoys --llm
175
207
  ```
176
208
 
177
- This shows comprehensive documentation about all commands, options, and usage patterns, formatted for LLMs to understand and use the CLI effectively.
178
-
179
- ## HTTP Test Output (Jest/Vitest style)
180
-
181
- The CLI uses a visual style similar to Jest/Vitest: checkmarks for pass, crosses for fail, and a short summary with duration.
182
-
183
- **Example when all tests pass:**
209
+ ## HTTP Test Output
184
210
 
185
211
  ```
186
212
  ✓ .cursor/http/health.req 200 OK
187
- ✓ .cursor/http/users.req 201 Created
213
+ ✓ .cursor/http/users.req (2/3) 201 Created
188
214
 
189
215
  Tests: 2 passed, 2 total
190
216
  Time: 1.23s
191
217
  ```
192
218
 
193
- **Example when some tests fail:**
194
-
195
- ```
196
- ✓ .cursor/http/health.req 200 OK
197
- ✗ .cursor/http/users.req 404 Not Found
198
- Failed to parse HTTP request (check METHOD URL and format)
199
-
200
- Tests: 1 passed, 1 failed, 2 total
201
- Time: 2.45s
202
- ```
203
-
204
- **Example when using `-f` and the file is not found:**
205
-
206
- ```
207
- FAIL No file found at: /path/to/missing.req
208
-
209
- Tests: 0 total
210
- Time: 0.01s
211
- ```
212
-
213
- **Example with `--verbose` (request and response shown):**
214
-
215
- ```
216
- ✓ .cursor/http/health.req 200 OK
217
- Request: GET https://api.example.com/health
218
- Response: 200 OK
219
- Body: {"status":"ok"}
220
-
221
- Tests: 1 passed, 1 total
222
- Time: 0.45s
223
- ```
224
-
225
219
  Exit code is `0` if all tests passed, `1` if any failed or no files were run.
226
220
 
227
221
  ## Environment Variables
228
222
 
229
- - `CURSORTOYS_BASE_FOLDER`: Default base folder (default: `cursor`)
230
- - `CURSORTOYS_ENVIRONMENTS_FOLDER`: Environments subfolder (default: `.environments`)
223
+ | Variable | Description |
224
+ |----------|-------------|
225
+ | `CURSORTOYS_BASE_FOLDER` | Default base folder (default: `cursor`) |
226
+ | `CURSORTOYS_DEFAULT_ENV` | Default environment when not set in file (default: `dev`) |
231
227
 
232
228
  ## Integration with CursorToys Extension
233
229
 
234
- The CLI uses the same format and conventions as the CursorToys VS Code extension:
230
+ The CLI matches the CursorToys VS Code extension:
231
+
235
232
  - Same `.req` / `.request` file format
236
- - Same environment variable resolution
233
+ - Project-root `.env*` files (not under `http/`)
237
234
  - Same base folder configuration
238
- - Skills are compatible with Cursor AI Agent Skills
239
-
240
- ## Contributing
241
-
242
- Contributions are welcome! Please feel free to submit a Pull Request.
235
+ - Compatible with Cursor AI Agent Skills
243
236
 
244
237
  ## License
245
238
 
@@ -1 +1 @@
1
- {"version":3,"file":"assertionParser.d.ts","sourceRoot":"","sources":["../src/assertionParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAiB9D;AAuMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgC/F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI7D"}
1
+ {"version":3,"file":"assertionParser.d.ts","sourceRoot":"","sources":["../src/assertionParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAC;AAGhE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAiB9D;AAuMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgC/F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractAssertions = extractAssertions;
4
4
  exports.validateAssertionSyntax = validateAssertionSyntax;
5
5
  exports.removeAssertionBlocks = removeAssertionBlocks;
6
+ const responseChainParser_1 = require("./responseChainParser");
6
7
  /**
7
8
  * Extracts assertions from HTTP request file content.
8
9
  * Looks for comment blocks containing @assert() annotations.
@@ -227,8 +228,6 @@ function validateAssertionSyntax(content) {
227
228
  * @returns Content with assertion blocks removed
228
229
  */
229
230
  function removeAssertionBlocks(content) {
230
- // Remove all /* ... */ blocks that contain @assert
231
- const blockRegex = /\/\*[\s\S]*?@assert[\s\S]*?\*\//g;
232
- return content.replace(blockRegex, '').trim();
231
+ return (0, responseChainParser_1.removeAnnotationBlocks)(content);
233
232
  }
234
233
  //# sourceMappingURL=assertionParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assertionParser.js","sourceRoot":"","sources":["../src/assertionParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assertionParser.js","sourceRoot":"","sources":["../src/assertionParser.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Assertion, AssertionResult } from './assertionTypes';
2
2
  import { HttpRequestResult } from './httpRunner';
3
+ export { buildResponseData, resolveExpression } from './responseExpression';
3
4
  /**
4
5
  * Validates assertions against HTTP response
5
6
  * @param assertions Array of assertions to validate
@@ -1 +1 @@
1
- {"version":3,"file":"assertionValidator.d.ts","sourceRoot":"","sources":["../src/assertionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAgB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,eAAe,EAAE,CAwBnB;AAmOD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAgCzE"}
1
+ {"version":3,"file":"assertionValidator.d.ts","sourceRoot":"","sources":["../src/assertionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,eAAe,EAAE,CAmBnB;AA6KD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAgCzE"}
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveExpression = exports.buildResponseData = void 0;
3
4
  exports.validateAssertions = validateAssertions;
4
5
  exports.formatAssertionResults = formatAssertionResults;
6
+ const responseExpression_1 = require("./responseExpression");
7
+ var responseExpression_2 = require("./responseExpression");
8
+ Object.defineProperty(exports, "buildResponseData", { enumerable: true, get: function () { return responseExpression_2.buildResponseData; } });
9
+ Object.defineProperty(exports, "resolveExpression", { enumerable: true, get: function () { return responseExpression_2.resolveExpression; } });
5
10
  /**
6
11
  * Validates assertions against HTTP response
7
12
  * @param assertions Array of assertions to validate
@@ -10,12 +15,7 @@ exports.formatAssertionResults = formatAssertionResults;
10
15
  */
11
16
  function validateAssertions(assertions, response, headers) {
12
17
  const results = [];
13
- // Build response data structure
14
- const responseData = {
15
- status: response.statusCode,
16
- headers: headers || {},
17
- body: parseResponseBody(response.body),
18
- };
18
+ const responseData = (0, responseExpression_1.buildResponseData)(response, headers);
19
19
  for (const assertion of assertions) {
20
20
  try {
21
21
  const result = evaluateAssertion(assertion, responseData);
@@ -31,22 +31,6 @@ function validateAssertions(assertions, response, headers) {
31
31
  }
32
32
  return results;
33
33
  }
34
- /**
35
- * Parses response body to JSON if possible, otherwise returns raw string
36
- * @param body Response body string
37
- * @returns Parsed JSON object or raw string
38
- */
39
- function parseResponseBody(body) {
40
- if (!body || body.trim() === '') {
41
- return null;
42
- }
43
- try {
44
- return JSON.parse(body);
45
- }
46
- catch {
47
- return body;
48
- }
49
- }
50
34
  /**
51
35
  * Evaluates a single assertion
52
36
  * @param assertion The assertion to evaluate
@@ -55,7 +39,7 @@ function parseResponseBody(body) {
55
39
  */
56
40
  function evaluateAssertion(assertion, responseData) {
57
41
  // Resolve the expression to get actual value
58
- const actualValue = resolveExpression(assertion.expression, responseData);
42
+ const actualValue = (0, responseExpression_1.resolveExpression)(assertion.expression, responseData);
59
43
  // Evaluate based on operator
60
44
  const passed = evaluateOperator(assertion.operator, actualValue, assertion.expected);
61
45
  return {
@@ -64,40 +48,6 @@ function evaluateAssertion(assertion, responseData) {
64
48
  actualValue,
65
49
  };
66
50
  }
67
- /**
68
- * Resolves an expression like "res.status" or "res.body.userId" to its actual value
69
- * @param expression Expression to resolve
70
- * @param responseData Response data
71
- * @returns Resolved value
72
- */
73
- function resolveExpression(expression, responseData) {
74
- // Split expression by dots, but handle bracket notation too
75
- // e.g., "res.body.users[0].name" -> ["res", "body", "users[0]", "name"]
76
- const parts = expression.split('.');
77
- let current = { res: responseData };
78
- for (const part of parts) {
79
- if (current === null || current === undefined) {
80
- return undefined;
81
- }
82
- // Handle array indexing: "users[0]" -> access users then [0]
83
- const arrayMatch = part.match(/^([^\[]+)\[(\d+)\]$/);
84
- if (arrayMatch) {
85
- const propName = arrayMatch[1];
86
- const index = parseInt(arrayMatch[2], 10);
87
- current = current[propName];
88
- if (Array.isArray(current)) {
89
- current = current[index];
90
- }
91
- else {
92
- return undefined;
93
- }
94
- }
95
- else {
96
- current = current[part];
97
- }
98
- }
99
- return current;
100
- }
101
51
  /**
102
52
  * Evaluates operator against actual and expected values
103
53
  * @param operator Assertion operator
@@ -1 +1 @@
1
- {"version":3,"file":"assertionValidator.js","sourceRoot":"","sources":["../src/assertionValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assertionValidator.js","sourceRoot":"","sources":["../src/assertionValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type BannerOptions = {
2
+ version: string;
3
+ useColor: boolean;
4
+ };
5
+ export declare function renderBanner(opts: BannerOptions): string;
6
+ export declare function shouldUseColor(streamIsTty: boolean): boolean;
7
+ //# sourceMappingURL=banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AA2CF,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CASxD;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAI5D"}
package/dist/banner.js ADDED
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderBanner = renderBanner;
7
+ exports.shouldUseColor = shouldUseColor;
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ function colorize(useColor) {
10
+ if (!useColor) {
11
+ return {
12
+ t: (s) => s,
13
+ o: (s) => s,
14
+ y: (s) => s,
15
+ s: (s) => s,
16
+ title: (s) => s,
17
+ dim: (s) => s,
18
+ };
19
+ }
20
+ // Paleta “cubo mágico” (aproximação): vermelho, verde, amarelo, azul.
21
+ return {
22
+ t: (s) => chalk_1.default.redBright(s),
23
+ o: (s) => chalk_1.default.greenBright(s),
24
+ y: (s) => chalk_1.default.yellowBright(s),
25
+ s: (s) => chalk_1.default.blueBright(s),
26
+ title: (s) => chalk_1.default.whiteBright.bold(s),
27
+ dim: (s) => chalk_1.default.gray(s),
28
+ };
29
+ }
30
+ function renderToysAscii(useColor) {
31
+ const c = colorize(useColor);
32
+ const T = (s) => c.t(s);
33
+ const O = (s) => c.o(s);
34
+ const Y = (s) => c.y(s);
35
+ const S = (s) => c.s(s);
36
+ // Mantém o mesmo “desenho” por linha, para ficar alinhado.
37
+ return [
38
+ `${T('TTTT')} ${O('OOO')} ${Y('Y Y')} ${S('SSS')}`,
39
+ `${T(' T ')} ${O('O O')} ${Y(' Y Y ')} ${S('S ')}`,
40
+ `${T(' T ')} ${O('O O')} ${Y(' Y ')} ${S('SSS')}`,
41
+ `${T(' T ')} ${O('O O')} ${Y(' Y ')} ${S(' S')}`,
42
+ `${T(' T ')} ${O('OOO')} ${Y(' Y ')} ${S('SSS')}`,
43
+ ];
44
+ }
45
+ function renderBanner(opts) {
46
+ const c = colorize(opts.useColor);
47
+ const lines = [];
48
+ lines.push(c.title('CursorToys'));
49
+ lines.push(...renderToysAscii(opts.useColor));
50
+ lines.push(c.dim(`v${opts.version}`));
51
+ return lines.join('\n');
52
+ }
53
+ function shouldUseColor(streamIsTty) {
54
+ if (!streamIsTty)
55
+ return false;
56
+ if (process.env.NO_COLOR)
57
+ return false;
58
+ return Boolean(chalk_1.default.supportsColor);
59
+ }
60
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"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"}