@@ -175,69 +175,69 @@ function inputSpec(
175175 ] )
176176}
177177
178+ const zBaseInputSpecValue = z
179+ . object ( {
180+ default : z . any ( ) . optional ( ) ,
181+ forceInput : z . boolean ( ) . optional ( )
182+ } )
183+ . passthrough ( )
184+
178185const zIntInputSpec = inputSpec ( [
179186 z . literal ( 'INT' ) ,
180- z . object ( {
187+ zBaseInputSpecValue . extend ( {
181188 min : z . number ( ) . optional ( ) ,
182189 max : z . number ( ) . optional ( ) ,
183190 step : z . number ( ) . optional ( ) ,
184- default : z . number ( ) . optional ( ) ,
185- forceInput : z . boolean ( ) . optional ( )
191+ default : z . number ( ) . optional ( )
186192 } )
187193] )
188194
189195const zFloatInputSpec = inputSpec ( [
190196 z . literal ( 'FLOAT' ) ,
191- z . object ( {
197+ zBaseInputSpecValue . extend ( {
192198 min : z . number ( ) . optional ( ) ,
193199 max : z . number ( ) . optional ( ) ,
194200 step : z . number ( ) . optional ( ) ,
195- round : z . number ( ) . optional ( ) ,
196- default : z . number ( ) . optional ( ) ,
197- forceInput : z . boolean ( ) . optional ( )
201+ round : z . union ( [ z . number ( ) , z . literal ( false ) ] ) . optional ( ) ,
202+ default : z . number ( ) . optional ( )
198203 } )
199204] )
200205
201206const zBooleanInputSpec = inputSpec ( [
202207 z . literal ( 'BOOLEAN' ) ,
203- z . object ( {
208+ zBaseInputSpecValue . extend ( {
204209 label_on : z . string ( ) . optional ( ) ,
205210 label_off : z . string ( ) . optional ( ) ,
206- default : z . boolean ( ) . optional ( ) ,
207- forceInput : z . boolean ( ) . optional ( )
211+ default : z . boolean ( ) . optional ( )
208212 } )
209213] )
210214
211215const zStringInputSpec = inputSpec ( [
212216 z . literal ( 'STRING' ) ,
213- z . object ( {
217+ zBaseInputSpecValue . extend ( {
214218 default : z . string ( ) . optional ( ) ,
215219 multiline : z . boolean ( ) . optional ( ) ,
216- dynamicPrompts : z . boolean ( ) . optional ( ) ,
217- forceInput : z . boolean ( ) . optional ( )
220+ dynamicPrompts : z . boolean ( ) . optional ( )
218221 } )
219222] )
220223
221224// Dropdown Selection.
222225const zComboInputSpec = inputSpec (
223226 [
224227 z . array ( z . any ( ) ) ,
225- z . object ( {
226- default : z . any ( ) . optional ( ) ,
228+ zBaseInputSpecValue . extend ( {
227229 control_after_generate : z . boolean ( ) . optional ( ) ,
228- image_upload : z . boolean ( ) . optional ( ) ,
229- forceInput : z . boolean ( ) . optional ( )
230+ image_upload : z . boolean ( ) . optional ( )
230231 } )
231232 ] ,
232233 /* allowUpcast=*/ false
233234)
234235
236+ const excludedLiterals = new Set ( [ 'INT' , 'FLOAT' , 'BOOLEAN' , 'STRING' , 'COMBO' ] )
237+
235238const zCustomInputSpec = inputSpec ( [
236- z . string ( ) ,
237- z . object ( {
238- default : z . any ( ) . optional ( ) ,
239- forceInput : z . boolean ( ) . optional ( )
240- } )
239+ z . string ( ) . refine ( ( value ) => ! excludedLiterals . has ( value ) ) ,
240+ zBaseInputSpecValue
241241] )
242242
243243const zInputSpec = z . union ( [
0 commit comments