goke 6.6.0 → 6.6.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/dist/coerce.d.ts +25 -3
- package/dist/coerce.d.ts.map +1 -1
- package/dist/coerce.js +24 -2
- package/package.json +1 -1
- package/src/coerce.ts +27 -3
package/dist/coerce.d.ts
CHANGED
|
@@ -78,13 +78,35 @@ export declare namespace StandardJSONSchemaV1 {
|
|
|
78
78
|
/**
|
|
79
79
|
* Wraps a plain JSON Schema object into a StandardJSONSchemaV1-compatible object.
|
|
80
80
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
81
|
+
* Originally built for @goke/mcp to wrap MCP tool schemas, but also useful for
|
|
82
|
+
* any consumer that has a hand-written JSON Schema (e.g. an array of strings
|
|
83
|
+
* or a tagged union) and wants goke's `.action()` callback to infer the right
|
|
84
|
+
* option type without reaching for Zod. Pass an explicit `Output` type
|
|
85
|
+
* parameter to tell TypeScript what the coerced value will look like at
|
|
86
|
+
* runtime — goke does not validate the output shape, it just propagates it
|
|
87
|
+
* into the inferred options type for `.action()` callbacks.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* cli
|
|
92
|
+
* .command('diff', 'Show diff')
|
|
93
|
+
* .option(
|
|
94
|
+
* '--filter <glob>',
|
|
95
|
+
* wrapJsonSchema<string[]>({
|
|
96
|
+
* type: 'array',
|
|
97
|
+
* items: { type: 'string' },
|
|
98
|
+
* description: 'Glob pattern (repeatable)',
|
|
99
|
+
* }),
|
|
100
|
+
* )
|
|
101
|
+
* .action((options) => {
|
|
102
|
+
* // options.filter: string[] | undefined
|
|
103
|
+
* })
|
|
104
|
+
* ```
|
|
83
105
|
*
|
|
84
106
|
* @param jsonSchema - A plain JSON Schema object (e.g. `{ type: "number" }`)
|
|
85
107
|
* @returns A StandardJSONSchemaV1-compatible object that Goke can use for coercion
|
|
86
108
|
*/
|
|
87
|
-
export declare function wrapJsonSchema(jsonSchema: Record<string, unknown>): StandardJSONSchemaV1
|
|
109
|
+
export declare function wrapJsonSchema<Output = unknown>(jsonSchema: Record<string, unknown>): StandardJSONSchemaV1<unknown, Output>;
|
|
88
110
|
/** Minimal JSON Schema interface — only what we need for CLI coercion. */
|
|
89
111
|
export interface JsonSchema {
|
|
90
112
|
type?: string | string[];
|
package/dist/coerce.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce.d.ts","sourceRoot":"","sources":["../src/coerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAS5B;AASD,uEAAuE;AACvE,MAAM,WAAW,eAAe,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC9D,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC5D;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACnD;IAED,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,KAAY,UAAU,CAAC,MAAM,SAAS,eAAe,IAAI,WAAW,CAClE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,OAAO,CAAC,CAAC;IAEX,KAAY,WAAW,CAAC,MAAM,SAAS,eAAe,IAAI,WAAW,CACnE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,QAAQ,CAAC,CAAC;CACb;AAED,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IACnE,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CACjE;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK,CACpD,SAAQ,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;QAC5C,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC,SAAS,CAAC;KACrD;IAED,UAAiB,SAAS;QACxB,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,oBAAoB,CAAC,OAAO,KAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,QAAQ,CAAC,MAAM,EAAE,CACf,OAAO,EAAE,oBAAoB,CAAC,OAAO,KAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9B;IAED,KAAY,MAAM,GACd,eAAe,GACf,UAAU,GACV,aAAa,GACb,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IAElB,UAAiB,OAAO;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KAC/D;IAED,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK,CACpD,SAAQ,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;KAAG;IAEjD,KAAY,UAAU,CAAC,MAAM,SAAS,eAAe,IACnD,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAErC,KAAY,WAAW,CAAC,MAAM,SAAS,eAAe,IACpD,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC;AAID
|
|
1
|
+
{"version":3,"file":"coerce.d.ts","sourceRoot":"","sources":["../src/coerce.ts"],"names":[],"mappings":"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"}
|
package/dist/coerce.js
CHANGED
|
@@ -50,8 +50,30 @@ export class GokeError extends Error {
|
|
|
50
50
|
/**
|
|
51
51
|
* Wraps a plain JSON Schema object into a StandardJSONSchemaV1-compatible object.
|
|
52
52
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* Originally built for @goke/mcp to wrap MCP tool schemas, but also useful for
|
|
54
|
+
* any consumer that has a hand-written JSON Schema (e.g. an array of strings
|
|
55
|
+
* or a tagged union) and wants goke's `.action()` callback to infer the right
|
|
56
|
+
* option type without reaching for Zod. Pass an explicit `Output` type
|
|
57
|
+
* parameter to tell TypeScript what the coerced value will look like at
|
|
58
|
+
* runtime — goke does not validate the output shape, it just propagates it
|
|
59
|
+
* into the inferred options type for `.action()` callbacks.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* cli
|
|
64
|
+
* .command('diff', 'Show diff')
|
|
65
|
+
* .option(
|
|
66
|
+
* '--filter <glob>',
|
|
67
|
+
* wrapJsonSchema<string[]>({
|
|
68
|
+
* type: 'array',
|
|
69
|
+
* items: { type: 'string' },
|
|
70
|
+
* description: 'Glob pattern (repeatable)',
|
|
71
|
+
* }),
|
|
72
|
+
* )
|
|
73
|
+
* .action((options) => {
|
|
74
|
+
* // options.filter: string[] | undefined
|
|
75
|
+
* })
|
|
76
|
+
* ```
|
|
55
77
|
*
|
|
56
78
|
* @param jsonSchema - A plain JSON Schema object (e.g. `{ type: "number" }`)
|
|
57
79
|
* @returns A StandardJSONSchemaV1-compatible object that Goke can use for coercion
|
package/package.json
CHANGED
package/src/coerce.ts
CHANGED
|
@@ -127,13 +127,37 @@ export declare namespace StandardJSONSchemaV1 {
|
|
|
127
127
|
/**
|
|
128
128
|
* Wraps a plain JSON Schema object into a StandardJSONSchemaV1-compatible object.
|
|
129
129
|
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
130
|
+
* Originally built for @goke/mcp to wrap MCP tool schemas, but also useful for
|
|
131
|
+
* any consumer that has a hand-written JSON Schema (e.g. an array of strings
|
|
132
|
+
* or a tagged union) and wants goke's `.action()` callback to infer the right
|
|
133
|
+
* option type without reaching for Zod. Pass an explicit `Output` type
|
|
134
|
+
* parameter to tell TypeScript what the coerced value will look like at
|
|
135
|
+
* runtime — goke does not validate the output shape, it just propagates it
|
|
136
|
+
* into the inferred options type for `.action()` callbacks.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* cli
|
|
141
|
+
* .command('diff', 'Show diff')
|
|
142
|
+
* .option(
|
|
143
|
+
* '--filter <glob>',
|
|
144
|
+
* wrapJsonSchema<string[]>({
|
|
145
|
+
* type: 'array',
|
|
146
|
+
* items: { type: 'string' },
|
|
147
|
+
* description: 'Glob pattern (repeatable)',
|
|
148
|
+
* }),
|
|
149
|
+
* )
|
|
150
|
+
* .action((options) => {
|
|
151
|
+
* // options.filter: string[] | undefined
|
|
152
|
+
* })
|
|
153
|
+
* ```
|
|
132
154
|
*
|
|
133
155
|
* @param jsonSchema - A plain JSON Schema object (e.g. `{ type: "number" }`)
|
|
134
156
|
* @returns A StandardJSONSchemaV1-compatible object that Goke can use for coercion
|
|
135
157
|
*/
|
|
136
|
-
export function wrapJsonSchema
|
|
158
|
+
export function wrapJsonSchema<Output = unknown>(
|
|
159
|
+
jsonSchema: Record<string, unknown>,
|
|
160
|
+
): StandardJSONSchemaV1<unknown, Output> {
|
|
137
161
|
return {
|
|
138
162
|
"~standard": {
|
|
139
163
|
version: 1,
|