incur 0.1.17 → 0.2.1
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 +204 -9
- package/SKILL.md +173 -0
- package/dist/Cli.d.ts +39 -6
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +536 -43
- package/dist/Cli.js.map +1 -1
- package/dist/Errors.d.ts +4 -0
- package/dist/Errors.d.ts.map +1 -1
- package/dist/Errors.js +3 -0
- package/dist/Errors.js.map +1 -1
- package/dist/Fetch.d.ts +26 -0
- package/dist/Fetch.d.ts.map +1 -0
- package/dist/Fetch.js +150 -0
- package/dist/Fetch.js.map +1 -0
- package/dist/Filter.d.ts +14 -0
- package/dist/Filter.d.ts.map +1 -0
- package/dist/Filter.js +134 -0
- package/dist/Filter.js.map +1 -0
- package/dist/Help.js +2 -0
- package/dist/Help.js.map +1 -1
- package/dist/Mcp.d.ts +26 -0
- package/dist/Mcp.d.ts.map +1 -1
- package/dist/Mcp.js +2 -2
- package/dist/Mcp.js.map +1 -1
- package/dist/Openapi.d.ts +20 -0
- package/dist/Openapi.d.ts.map +1 -0
- package/dist/Openapi.js +136 -0
- package/dist/Openapi.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware.d.ts +8 -2
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js.map +1 -1
- package/package.json +4 -1
- package/src/Cli.test-d.ts +27 -2
- package/src/Cli.test.ts +1007 -0
- package/src/Cli.ts +676 -47
- package/src/Errors.ts +5 -0
- package/src/Fetch.test.ts +274 -0
- package/src/Fetch.ts +170 -0
- package/src/Filter.test.ts +237 -0
- package/src/Filter.ts +139 -0
- package/src/Help.test.ts +14 -0
- package/src/Help.ts +2 -0
- package/src/Mcp.ts +3 -3
- package/src/Openapi.test.ts +320 -0
- package/src/Openapi.ts +196 -0
- package/src/e2e.test.ts +778 -0
- package/src/index.ts +3 -0
- package/src/middleware.ts +9 -2
package/src/Cli.test-d.ts
CHANGED
|
@@ -47,9 +47,9 @@ test('output constrains run return type', () => {
|
|
|
47
47
|
},
|
|
48
48
|
})
|
|
49
49
|
|
|
50
|
+
// @ts-expect-error — return doesn't match output schema
|
|
50
51
|
cli.command('greet', {
|
|
51
52
|
output: z.object({ message: z.string() }),
|
|
52
|
-
// @ts-expect-error — return doesn't match output schema
|
|
53
53
|
run() {
|
|
54
54
|
return { wrong: 123 }
|
|
55
55
|
},
|
|
@@ -64,9 +64,9 @@ test('alias keys are constrained to option keys', () => {
|
|
|
64
64
|
run: () => ({}),
|
|
65
65
|
})
|
|
66
66
|
|
|
67
|
+
// @ts-expect-error — 'foo' is not an option key
|
|
67
68
|
cli.command('list', {
|
|
68
69
|
options: z.object({ state: z.string() }),
|
|
69
|
-
// @ts-expect-error — 'foo' is not an option key
|
|
70
70
|
alias: { foo: 'f' },
|
|
71
71
|
run: () => ({}),
|
|
72
72
|
})
|
|
@@ -187,6 +187,8 @@ test('middleware() without generic gives empty context', () => {
|
|
|
187
187
|
middleware((c, _next) => {
|
|
188
188
|
expectTypeOf(c.var).toEqualTypeOf<{}>()
|
|
189
189
|
expectTypeOf(c.env).toEqualTypeOf<{}>()
|
|
190
|
+
expectTypeOf(c.format).toEqualTypeOf<'toon' | 'json' | 'yaml' | 'md' | 'jsonl'>()
|
|
191
|
+
expectTypeOf(c.formatExplicit).toEqualTypeOf<boolean>()
|
|
190
192
|
})
|
|
191
193
|
})
|
|
192
194
|
|
|
@@ -251,6 +253,18 @@ test('middleware error() returns never', () => {
|
|
|
251
253
|
})
|
|
252
254
|
})
|
|
253
255
|
|
|
256
|
+
test('c.error() accepts optional exitCode', () => {
|
|
257
|
+
Cli.create('test').command('fail', {
|
|
258
|
+
run(c) {
|
|
259
|
+
// with exitCode
|
|
260
|
+
c.error({ code: 'ERR', message: 'fail', exitCode: 10 })
|
|
261
|
+
// without exitCode
|
|
262
|
+
c.error({ code: 'ERR', message: 'fail' })
|
|
263
|
+
return {}
|
|
264
|
+
},
|
|
265
|
+
})
|
|
266
|
+
})
|
|
267
|
+
|
|
254
268
|
test('env is typed in per-command middleware', () => {
|
|
255
269
|
Cli.create('test', {
|
|
256
270
|
env: z.object({ API_TOKEN: z.string() }),
|
|
@@ -264,3 +278,14 @@ test('env is typed in per-command middleware', () => {
|
|
|
264
278
|
run: () => ({}),
|
|
265
279
|
})
|
|
266
280
|
})
|
|
281
|
+
|
|
282
|
+
test('run() context exposes format metadata', () => {
|
|
283
|
+
const cli = Cli.create('test')
|
|
284
|
+
cli.command('ping', {
|
|
285
|
+
run(c) {
|
|
286
|
+
expectTypeOf(c.format).toEqualTypeOf<'toon' | 'json' | 'yaml' | 'md' | 'jsonl'>()
|
|
287
|
+
expectTypeOf(c.formatExplicit).toEqualTypeOf<boolean>()
|
|
288
|
+
return { pong: true }
|
|
289
|
+
},
|
|
290
|
+
})
|
|
291
|
+
})
|