vellum-ai 0.0.45 → 0.1.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 (349) hide show
  1. package/Client.d.ts +23 -26
  2. package/Client.js +288 -242
  3. package/api/resources/deployments/client/Client.d.ts +8 -4
  4. package/api/resources/deployments/client/Client.js +52 -34
  5. package/api/resources/documentIndexes/client/Client.d.ts +9 -5
  6. package/api/resources/documentIndexes/client/Client.js +97 -69
  7. package/api/resources/documents/client/Client.d.ts +14 -10
  8. package/api/resources/documents/client/Client.js +222 -176
  9. package/api/resources/modelVersions/client/Client.d.ts +9 -5
  10. package/api/resources/modelVersions/client/Client.js +96 -68
  11. package/api/resources/registeredPrompts/client/Client.d.ts +11 -7
  12. package/api/resources/registeredPrompts/client/Client.js +72 -53
  13. package/api/resources/sandboxes/client/Client.d.ts +9 -5
  14. package/api/resources/sandboxes/client/Client.js +92 -65
  15. package/api/resources/testSuites/client/Client.d.ts +9 -5
  16. package/api/resources/testSuites/client/Client.js +90 -63
  17. package/core/fetcher/Fetcher.d.ts +5 -3
  18. package/core/fetcher/Fetcher.js +104 -62
  19. package/core/fetcher/Supplier.js +11 -2
  20. package/core/fetcher/index.d.ts +3 -2
  21. package/core/form-data-utils/getFormDataContentLength.d.ts +1 -1
  22. package/core/form-data-utils/getFormDataContentLength.js +20 -9
  23. package/core/index.d.ts +1 -2
  24. package/core/index.js +4 -5
  25. package/core/schemas/Schema.d.ts +19 -0
  26. package/core/schemas/Schema.js +1 -0
  27. package/core/schemas/builders/date/date.js +22 -14
  28. package/core/schemas/builders/enum/enum.js +17 -7
  29. package/core/schemas/builders/lazy/index.d.ts +2 -1
  30. package/core/schemas/builders/lazy/lazy.js +21 -13
  31. package/core/schemas/builders/lazy/lazyObject.js +11 -11
  32. package/core/schemas/builders/list/list.js +53 -38
  33. package/core/schemas/builders/literals/booleanLiteral.d.ts +2 -0
  34. package/core/schemas/builders/literals/booleanLiteral.js +29 -0
  35. package/core/schemas/builders/literals/index.d.ts +1 -0
  36. package/core/schemas/builders/literals/index.js +3 -1
  37. package/core/schemas/builders/literals/stringLiteral.js +4 -3
  38. package/core/schemas/builders/object/index.d.ts +5 -2
  39. package/core/schemas/builders/object/index.js +3 -1
  40. package/core/schemas/builders/object/object.js +150 -129
  41. package/core/schemas/builders/object/objectWithoutOptionalProperties.d.ts +6 -0
  42. package/core/schemas/builders/object/objectWithoutOptionalProperties.js +8 -0
  43. package/core/schemas/builders/object-like/getObjectLikeUtils.js +19 -18
  44. package/core/schemas/builders/object-like/index.d.ts +1 -1
  45. package/core/schemas/builders/primitives/boolean.js +4 -3
  46. package/core/schemas/builders/primitives/number.js +4 -3
  47. package/core/schemas/builders/primitives/string.js +4 -3
  48. package/core/schemas/builders/record/index.d.ts +1 -1
  49. package/core/schemas/builders/record/record.js +82 -67
  50. package/core/schemas/builders/schema-utils/JsonError.js +0 -1
  51. package/core/schemas/builders/schema-utils/ParseError.js +0 -1
  52. package/core/schemas/builders/schema-utils/getSchemaUtils.js +23 -20
  53. package/core/schemas/builders/schema-utils/index.d.ts +2 -1
  54. package/core/schemas/builders/set/set.js +21 -12
  55. package/core/schemas/builders/undiscriminated-union/index.d.ts +1 -1
  56. package/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.js +38 -24
  57. package/core/schemas/builders/union/index.d.ts +3 -2
  58. package/core/schemas/builders/union/union.js +95 -74
  59. package/core/schemas/index.d.ts +1 -1
  60. package/core/schemas/utils/createIdentitySchemaCreator.js +2 -4
  61. package/core/schemas/utils/getErrorMessageForIncorrectType.d.ts +1 -0
  62. package/core/schemas/utils/getErrorMessageForIncorrectType.js +24 -0
  63. package/core/schemas/utils/isPlainObject.d.ts +0 -1
  64. package/core/schemas/utils/isPlainObject.js +1 -2
  65. package/core/schemas/utils/maybeSkipValidation.d.ts +2 -0
  66. package/core/schemas/utils/maybeSkipValidation.js +37 -0
  67. package/core/streaming-fetcher/Stream.d.ts +14 -0
  68. package/core/streaming-fetcher/Stream.js +75 -0
  69. package/core/streaming-fetcher/StreamingFetcher.d.ts +10 -8
  70. package/core/streaming-fetcher/StreamingFetcher.js +38 -44
  71. package/core/streaming-fetcher/getHeader.d.ts +2 -0
  72. package/core/streaming-fetcher/getHeader.js +12 -0
  73. package/core/streaming-fetcher/index.d.ts +4 -1
  74. package/core/streaming-fetcher/index.js +5 -1
  75. package/dist/Client.d.ts +23 -26
  76. package/dist/Client.js +288 -242
  77. package/dist/api/resources/deployments/client/Client.d.ts +8 -4
  78. package/dist/api/resources/deployments/client/Client.js +52 -34
  79. package/dist/api/resources/documentIndexes/client/Client.d.ts +9 -5
  80. package/dist/api/resources/documentIndexes/client/Client.js +97 -69
  81. package/dist/api/resources/documents/client/Client.d.ts +14 -10
  82. package/dist/api/resources/documents/client/Client.js +222 -176
  83. package/dist/api/resources/modelVersions/client/Client.d.ts +9 -5
  84. package/dist/api/resources/modelVersions/client/Client.js +96 -68
  85. package/dist/api/resources/registeredPrompts/client/Client.d.ts +11 -7
  86. package/dist/api/resources/registeredPrompts/client/Client.js +72 -53
  87. package/dist/api/resources/sandboxes/client/Client.d.ts +9 -5
  88. package/dist/api/resources/sandboxes/client/Client.js +92 -65
  89. package/dist/api/resources/testSuites/client/Client.d.ts +9 -5
  90. package/dist/api/resources/testSuites/client/Client.js +90 -63
  91. package/dist/core/fetcher/Fetcher.d.ts +5 -3
  92. package/dist/core/fetcher/Fetcher.js +104 -62
  93. package/dist/core/fetcher/Supplier.js +11 -2
  94. package/dist/core/fetcher/index.d.ts +3 -2
  95. package/dist/core/form-data-utils/getFormDataContentLength.d.ts +1 -1
  96. package/dist/core/form-data-utils/getFormDataContentLength.js +20 -9
  97. package/dist/core/index.d.ts +1 -2
  98. package/dist/core/index.js +4 -5
  99. package/dist/core/schemas/Schema.d.ts +19 -0
  100. package/dist/core/schemas/Schema.js +1 -0
  101. package/dist/core/schemas/builders/date/date.js +22 -14
  102. package/dist/core/schemas/builders/enum/enum.js +17 -7
  103. package/dist/core/schemas/builders/lazy/index.d.ts +2 -1
  104. package/dist/core/schemas/builders/lazy/lazy.js +21 -13
  105. package/dist/core/schemas/builders/lazy/lazyObject.js +11 -11
  106. package/dist/core/schemas/builders/list/list.js +53 -38
  107. package/dist/core/schemas/builders/literals/booleanLiteral.d.ts +2 -0
  108. package/dist/core/schemas/builders/literals/booleanLiteral.js +29 -0
  109. package/dist/core/schemas/builders/literals/index.d.ts +1 -0
  110. package/dist/core/schemas/builders/literals/index.js +3 -1
  111. package/dist/core/schemas/builders/literals/stringLiteral.js +4 -3
  112. package/dist/core/schemas/builders/object/index.d.ts +5 -2
  113. package/dist/core/schemas/builders/object/index.js +3 -1
  114. package/dist/core/schemas/builders/object/object.js +150 -129
  115. package/dist/core/schemas/builders/object/objectWithoutOptionalProperties.d.ts +6 -0
  116. package/dist/core/schemas/builders/object/objectWithoutOptionalProperties.js +8 -0
  117. package/dist/core/schemas/builders/object-like/getObjectLikeUtils.js +19 -18
  118. package/dist/core/schemas/builders/object-like/index.d.ts +1 -1
  119. package/dist/core/schemas/builders/primitives/boolean.js +4 -3
  120. package/dist/core/schemas/builders/primitives/number.js +4 -3
  121. package/dist/core/schemas/builders/primitives/string.js +4 -3
  122. package/dist/core/schemas/builders/record/index.d.ts +1 -1
  123. package/dist/core/schemas/builders/record/record.js +82 -67
  124. package/dist/core/schemas/builders/schema-utils/JsonError.js +0 -1
  125. package/dist/core/schemas/builders/schema-utils/ParseError.js +0 -1
  126. package/dist/core/schemas/builders/schema-utils/getSchemaUtils.js +23 -20
  127. package/dist/core/schemas/builders/schema-utils/index.d.ts +2 -1
  128. package/dist/core/schemas/builders/set/set.js +21 -12
  129. package/dist/core/schemas/builders/undiscriminated-union/index.d.ts +1 -1
  130. package/dist/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.js +38 -24
  131. package/dist/core/schemas/builders/union/index.d.ts +3 -2
  132. package/dist/core/schemas/builders/union/union.js +95 -74
  133. package/dist/core/schemas/index.d.ts +1 -1
  134. package/dist/core/schemas/utils/createIdentitySchemaCreator.js +2 -4
  135. package/dist/core/schemas/utils/getErrorMessageForIncorrectType.d.ts +1 -0
  136. package/dist/core/schemas/utils/getErrorMessageForIncorrectType.js +24 -0
  137. package/dist/core/schemas/utils/isPlainObject.d.ts +0 -1
  138. package/dist/core/schemas/utils/isPlainObject.js +1 -2
  139. package/dist/core/schemas/utils/maybeSkipValidation.d.ts +2 -0
  140. package/dist/core/schemas/utils/maybeSkipValidation.js +37 -0
  141. package/dist/core/streaming-fetcher/Stream.d.ts +14 -0
  142. package/dist/core/streaming-fetcher/Stream.js +75 -0
  143. package/dist/core/streaming-fetcher/StreamingFetcher.d.ts +10 -8
  144. package/dist/core/streaming-fetcher/StreamingFetcher.js +38 -44
  145. package/dist/core/streaming-fetcher/getHeader.d.ts +2 -0
  146. package/dist/core/streaming-fetcher/getHeader.js +12 -0
  147. package/dist/core/streaming-fetcher/index.d.ts +4 -1
  148. package/dist/core/streaming-fetcher/index.js +5 -1
  149. package/dist/errors/VellumError.js +14 -3
  150. package/dist/serialization/client/requests/ExecuteWorkflowStreamRequest.js +11 -2
  151. package/dist/serialization/client/requests/GenerateBodyRequest.js +11 -2
  152. package/dist/serialization/client/requests/GenerateStreamBodyRequest.js +11 -2
  153. package/dist/serialization/client/requests/SearchRequestBodyRequest.js +10 -1
  154. package/dist/serialization/client/requests/SubmitCompletionActualsRequest.js +10 -1
  155. package/dist/serialization/client/requests/SubmitWorkflowExecutionActualsRequest.js +10 -1
  156. package/dist/serialization/resources/documentIndexes/client/requests/DocumentIndexCreateRequest.js +11 -2
  157. package/dist/serialization/resources/documents/client/requests/PatchedDocumentUpdateRequest.js +10 -1
  158. package/dist/serialization/resources/registeredPrompts/client/requests/RegisterPromptRequestRequest.js +12 -3
  159. package/dist/serialization/resources/sandboxes/client/requests/UpsertSandboxScenarioRequestRequest.js +11 -2
  160. package/dist/serialization/resources/testSuites/client/requests/TestSuiteTestCaseRequest.js +10 -1
  161. package/dist/serialization/types/ApiNodeResult.js +10 -1
  162. package/dist/serialization/types/ChatMessage.js +10 -1
  163. package/dist/serialization/types/ChatMessageRequest.js +10 -1
  164. package/dist/serialization/types/ConditionalNodeResult.js +10 -1
  165. package/dist/serialization/types/DeploymentRead.js +12 -3
  166. package/dist/serialization/types/DocumentDocumentToDocumentIndex.js +10 -1
  167. package/dist/serialization/types/DocumentIndexRead.js +11 -2
  168. package/dist/serialization/types/DocumentRead.js +12 -3
  169. package/dist/serialization/types/EnrichedNormalizedCompletion.js +12 -3
  170. package/dist/serialization/types/GenerateOptionsRequest.js +10 -1
  171. package/dist/serialization/types/GenerateRequest.js +10 -1
  172. package/dist/serialization/types/GenerateResponse.js +10 -1
  173. package/dist/serialization/types/GenerateResult.js +11 -2
  174. package/dist/serialization/types/GenerateResultData.js +10 -1
  175. package/dist/serialization/types/GenerateStreamResponse.js +10 -1
  176. package/dist/serialization/types/GenerateStreamResult.js +11 -2
  177. package/dist/serialization/types/GenerateStreamResultData.js +10 -1
  178. package/dist/serialization/types/MetadataFilterConfigRequest.js +12 -3
  179. package/dist/serialization/types/MetadataFilterRuleRequest.js +12 -3
  180. package/dist/serialization/types/ModelVersionBuildConfig.js +10 -1
  181. package/dist/serialization/types/ModelVersionCompilePromptResponse.js +10 -1
  182. package/dist/serialization/types/ModelVersionExecConfig.js +12 -3
  183. package/dist/serialization/types/ModelVersionRead.js +13 -4
  184. package/dist/serialization/types/NodeInputCompiledChatHistoryValue.js +10 -1
  185. package/dist/serialization/types/NodeInputCompiledErrorValue.js +10 -1
  186. package/dist/serialization/types/NodeInputCompiledSearchResultsValue.js +10 -1
  187. package/dist/serialization/types/NodeInputVariableCompiledValue.js +15 -6
  188. package/dist/serialization/types/NormalizedLogProbs.js +10 -1
  189. package/dist/serialization/types/PaginatedSlimDocumentList.js +10 -1
  190. package/dist/serialization/types/PromptNodeResult.js +10 -1
  191. package/dist/serialization/types/PromptTemplateBlock.js +11 -2
  192. package/dist/serialization/types/PromptTemplateBlockData.js +10 -1
  193. package/dist/serialization/types/PromptTemplateBlockDataRequest.js +10 -1
  194. package/dist/serialization/types/PromptTemplateBlockProperties.js +12 -3
  195. package/dist/serialization/types/PromptTemplateBlockPropertiesRequest.js +12 -3
  196. package/dist/serialization/types/PromptTemplateBlockRequest.js +11 -2
  197. package/dist/serialization/types/RegisterPromptPromptInfoRequest.js +11 -2
  198. package/dist/serialization/types/RegisterPromptResponse.js +14 -5
  199. package/dist/serialization/types/RegisteredPromptInputVariableRequest.js +10 -1
  200. package/dist/serialization/types/SandboxMetricInputParams.js +10 -1
  201. package/dist/serialization/types/SandboxMetricInputParamsRequest.js +10 -1
  202. package/dist/serialization/types/SandboxScenario.js +11 -2
  203. package/dist/serialization/types/ScenarioInput.js +11 -2
  204. package/dist/serialization/types/ScenarioInputRequest.js +11 -2
  205. package/dist/serialization/types/SearchFiltersRequest.js +10 -1
  206. package/dist/serialization/types/SearchNodeResult.js +10 -1
  207. package/dist/serialization/types/SearchNodeResultData.js +10 -1
  208. package/dist/serialization/types/SearchRequestOptionsRequest.js +12 -3
  209. package/dist/serialization/types/SearchResponse.js +10 -1
  210. package/dist/serialization/types/SearchResult.js +10 -1
  211. package/dist/serialization/types/SlimDocument.js +13 -4
  212. package/dist/serialization/types/SubmitWorkflowExecutionActualRequest.js +12 -3
  213. package/dist/serialization/types/TemplatingNodeChatHistoryResult.js +10 -1
  214. package/dist/serialization/types/TemplatingNodeErrorResult.js +10 -1
  215. package/dist/serialization/types/TemplatingNodeResult.js +10 -1
  216. package/dist/serialization/types/TemplatingNodeResultData.js +10 -1
  217. package/dist/serialization/types/TemplatingNodeResultOutput.js +15 -6
  218. package/dist/serialization/types/TemplatingNodeSearchResultsResult.js +10 -1
  219. package/dist/serialization/types/TerminalNodeChatHistoryResult.js +10 -1
  220. package/dist/serialization/types/TerminalNodeErrorResult.js +10 -1
  221. package/dist/serialization/types/TerminalNodeResult.js +10 -1
  222. package/dist/serialization/types/TerminalNodeResultData.js +10 -1
  223. package/dist/serialization/types/TerminalNodeResultOutput.js +15 -6
  224. package/dist/serialization/types/TerminalNodeSearchResultsResult.js +10 -1
  225. package/dist/serialization/types/TestSuiteTestCase.js +10 -1
  226. package/dist/serialization/types/VellumError.js +10 -1
  227. package/dist/serialization/types/VellumVariable.js +10 -1
  228. package/dist/serialization/types/WorkflowEventError.js +10 -1
  229. package/dist/serialization/types/WorkflowExecutionActualChatHistoryRequest.js +10 -1
  230. package/dist/serialization/types/WorkflowExecutionNodeResultEvent.js +10 -1
  231. package/dist/serialization/types/WorkflowExecutionWorkflowResultEvent.js +10 -1
  232. package/dist/serialization/types/WorkflowNodeResultData.js +15 -6
  233. package/dist/serialization/types/WorkflowNodeResultEvent.js +13 -4
  234. package/dist/serialization/types/WorkflowRequestChatHistoryInputRequest.js +10 -1
  235. package/dist/serialization/types/WorkflowRequestInputRequest.js +12 -3
  236. package/dist/serialization/types/WorkflowResultEvent.js +12 -3
  237. package/dist/serialization/types/WorkflowResultEventOutputData.js +15 -6
  238. package/dist/serialization/types/WorkflowResultEventOutputDataChatHistory.js +11 -2
  239. package/dist/serialization/types/WorkflowResultEventOutputDataError.js +11 -2
  240. package/dist/serialization/types/WorkflowResultEventOutputDataJson.js +10 -1
  241. package/dist/serialization/types/WorkflowResultEventOutputDataNumber.js +10 -1
  242. package/dist/serialization/types/WorkflowResultEventOutputDataSearchResults.js +11 -2
  243. package/dist/serialization/types/WorkflowResultEventOutputDataString.js +10 -1
  244. package/dist/serialization/types/WorkflowStreamEvent.js +11 -2
  245. package/errors/VellumError.js +14 -3
  246. package/package.json +4 -3
  247. package/serialization/client/requests/ExecuteWorkflowStreamRequest.js +11 -2
  248. package/serialization/client/requests/GenerateBodyRequest.js +11 -2
  249. package/serialization/client/requests/GenerateStreamBodyRequest.js +11 -2
  250. package/serialization/client/requests/SearchRequestBodyRequest.js +10 -1
  251. package/serialization/client/requests/SubmitCompletionActualsRequest.js +10 -1
  252. package/serialization/client/requests/SubmitWorkflowExecutionActualsRequest.js +10 -1
  253. package/serialization/resources/documentIndexes/client/requests/DocumentIndexCreateRequest.js +11 -2
  254. package/serialization/resources/documents/client/requests/PatchedDocumentUpdateRequest.js +10 -1
  255. package/serialization/resources/registeredPrompts/client/requests/RegisterPromptRequestRequest.js +12 -3
  256. package/serialization/resources/sandboxes/client/requests/UpsertSandboxScenarioRequestRequest.js +11 -2
  257. package/serialization/resources/testSuites/client/requests/TestSuiteTestCaseRequest.js +10 -1
  258. package/serialization/types/ApiNodeResult.js +10 -1
  259. package/serialization/types/ChatMessage.js +10 -1
  260. package/serialization/types/ChatMessageRequest.js +10 -1
  261. package/serialization/types/ConditionalNodeResult.js +10 -1
  262. package/serialization/types/DeploymentRead.js +12 -3
  263. package/serialization/types/DocumentDocumentToDocumentIndex.js +10 -1
  264. package/serialization/types/DocumentIndexRead.js +11 -2
  265. package/serialization/types/DocumentRead.js +12 -3
  266. package/serialization/types/EnrichedNormalizedCompletion.js +12 -3
  267. package/serialization/types/GenerateOptionsRequest.js +10 -1
  268. package/serialization/types/GenerateRequest.js +10 -1
  269. package/serialization/types/GenerateResponse.js +10 -1
  270. package/serialization/types/GenerateResult.js +11 -2
  271. package/serialization/types/GenerateResultData.js +10 -1
  272. package/serialization/types/GenerateStreamResponse.js +10 -1
  273. package/serialization/types/GenerateStreamResult.js +11 -2
  274. package/serialization/types/GenerateStreamResultData.js +10 -1
  275. package/serialization/types/MetadataFilterConfigRequest.js +12 -3
  276. package/serialization/types/MetadataFilterRuleRequest.js +12 -3
  277. package/serialization/types/ModelVersionBuildConfig.js +10 -1
  278. package/serialization/types/ModelVersionCompilePromptResponse.js +10 -1
  279. package/serialization/types/ModelVersionExecConfig.js +12 -3
  280. package/serialization/types/ModelVersionRead.js +13 -4
  281. package/serialization/types/NodeInputCompiledChatHistoryValue.js +10 -1
  282. package/serialization/types/NodeInputCompiledErrorValue.js +10 -1
  283. package/serialization/types/NodeInputCompiledSearchResultsValue.js +10 -1
  284. package/serialization/types/NodeInputVariableCompiledValue.js +15 -6
  285. package/serialization/types/NormalizedLogProbs.js +10 -1
  286. package/serialization/types/PaginatedSlimDocumentList.js +10 -1
  287. package/serialization/types/PromptNodeResult.js +10 -1
  288. package/serialization/types/PromptTemplateBlock.js +11 -2
  289. package/serialization/types/PromptTemplateBlockData.js +10 -1
  290. package/serialization/types/PromptTemplateBlockDataRequest.js +10 -1
  291. package/serialization/types/PromptTemplateBlockProperties.js +12 -3
  292. package/serialization/types/PromptTemplateBlockPropertiesRequest.js +12 -3
  293. package/serialization/types/PromptTemplateBlockRequest.js +11 -2
  294. package/serialization/types/RegisterPromptPromptInfoRequest.js +11 -2
  295. package/serialization/types/RegisterPromptResponse.js +14 -5
  296. package/serialization/types/RegisteredPromptInputVariableRequest.js +10 -1
  297. package/serialization/types/SandboxMetricInputParams.js +10 -1
  298. package/serialization/types/SandboxMetricInputParamsRequest.js +10 -1
  299. package/serialization/types/SandboxScenario.js +11 -2
  300. package/serialization/types/ScenarioInput.js +11 -2
  301. package/serialization/types/ScenarioInputRequest.js +11 -2
  302. package/serialization/types/SearchFiltersRequest.js +10 -1
  303. package/serialization/types/SearchNodeResult.js +10 -1
  304. package/serialization/types/SearchNodeResultData.js +10 -1
  305. package/serialization/types/SearchRequestOptionsRequest.js +12 -3
  306. package/serialization/types/SearchResponse.js +10 -1
  307. package/serialization/types/SearchResult.js +10 -1
  308. package/serialization/types/SlimDocument.js +13 -4
  309. package/serialization/types/SubmitWorkflowExecutionActualRequest.js +12 -3
  310. package/serialization/types/TemplatingNodeChatHistoryResult.js +10 -1
  311. package/serialization/types/TemplatingNodeErrorResult.js +10 -1
  312. package/serialization/types/TemplatingNodeResult.js +10 -1
  313. package/serialization/types/TemplatingNodeResultData.js +10 -1
  314. package/serialization/types/TemplatingNodeResultOutput.js +15 -6
  315. package/serialization/types/TemplatingNodeSearchResultsResult.js +10 -1
  316. package/serialization/types/TerminalNodeChatHistoryResult.js +10 -1
  317. package/serialization/types/TerminalNodeErrorResult.js +10 -1
  318. package/serialization/types/TerminalNodeResult.js +10 -1
  319. package/serialization/types/TerminalNodeResultData.js +10 -1
  320. package/serialization/types/TerminalNodeResultOutput.js +15 -6
  321. package/serialization/types/TerminalNodeSearchResultsResult.js +10 -1
  322. package/serialization/types/TestSuiteTestCase.js +10 -1
  323. package/serialization/types/VellumError.js +10 -1
  324. package/serialization/types/VellumVariable.js +10 -1
  325. package/serialization/types/WorkflowEventError.js +10 -1
  326. package/serialization/types/WorkflowExecutionActualChatHistoryRequest.js +10 -1
  327. package/serialization/types/WorkflowExecutionNodeResultEvent.js +10 -1
  328. package/serialization/types/WorkflowExecutionWorkflowResultEvent.js +10 -1
  329. package/serialization/types/WorkflowNodeResultData.js +15 -6
  330. package/serialization/types/WorkflowNodeResultEvent.js +13 -4
  331. package/serialization/types/WorkflowRequestChatHistoryInputRequest.js +10 -1
  332. package/serialization/types/WorkflowRequestInputRequest.js +12 -3
  333. package/serialization/types/WorkflowResultEvent.js +12 -3
  334. package/serialization/types/WorkflowResultEventOutputData.js +15 -6
  335. package/serialization/types/WorkflowResultEventOutputDataChatHistory.js +11 -2
  336. package/serialization/types/WorkflowResultEventOutputDataError.js +11 -2
  337. package/serialization/types/WorkflowResultEventOutputDataJson.js +10 -1
  338. package/serialization/types/WorkflowResultEventOutputDataNumber.js +10 -1
  339. package/serialization/types/WorkflowResultEventOutputDataSearchResults.js +11 -2
  340. package/serialization/types/WorkflowResultEventOutputDataString.js +10 -1
  341. package/serialization/types/WorkflowStreamEvent.js +11 -2
  342. package/core/callback-queue/CallbackQueue.d.ts +0 -6
  343. package/core/callback-queue/CallbackQueue.js +0 -20
  344. package/core/callback-queue/index.d.ts +0 -1
  345. package/core/callback-queue/index.js +0 -5
  346. package/dist/core/callback-queue/CallbackQueue.d.ts +0 -6
  347. package/dist/core/callback-queue/CallbackQueue.js +0 -20
  348. package/dist/core/callback-queue/index.d.ts +0 -1
  349. package/dist/core/callback-queue/index.js +0 -5
@@ -25,6 +25,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  __setModuleDefault(result, mod);
26
26
  return result;
27
27
  };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
28
37
  var __importDefault = (this && this.__importDefault) || function (mod) {
29
38
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
39
  };
@@ -32,13 +41,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
32
41
  exports.TestSuites = void 0;
33
42
  const environments = __importStar(require("../../../../environments"));
34
43
  const core = __importStar(require("../../../../core"));
35
- const url_join_1 = __importDefault(require("url-join"));
36
44
  const serializers = __importStar(require("../../../../serialization"));
45
+ const url_join_1 = __importDefault(require("url-join"));
37
46
  const errors = __importStar(require("../../../../errors"));
38
47
  class TestSuites {
39
- options;
40
- constructor(options) {
41
- this.options = options;
48
+ constructor(_options) {
49
+ this._options = _options;
42
50
  }
43
51
  /**
44
52
  * Upserts a new test case for a test suite, keying off of the optionally provided test case id.
@@ -49,78 +57,97 @@ class TestSuites {
49
57
  * Note that a full replacement of the test case is performed, so any fields not provided will be removed
50
58
  * or overwritten with default values.
51
59
  */
52
- async upsertTestSuiteTestCase(id, request) {
53
- const _response = await core.fetcher({
54
- url: (0, url_join_1.default)((this.options.environment ?? environments.VellumEnvironment.Production).default, `v1/test-suites/${id}/test-cases`),
55
- method: "POST",
56
- headers: {
57
- X_API_KEY: await core.Supplier.get(this.options.apiKey),
58
- },
59
- contentType: "application/json",
60
- body: await serializers.TestSuiteTestCaseRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }),
61
- });
62
- if (_response.ok) {
63
- return await serializers.TestSuiteTestCase.parseOrThrow(_response.body, {
64
- unrecognizedObjectKeys: "passthrough",
65
- allowUnrecognizedUnionMembers: true,
66
- allowUnrecognizedEnumValues: true,
60
+ upsertTestSuiteTestCase(id, request, requestOptions) {
61
+ var _a;
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const _response = yield core.fetcher({
64
+ url: (0, url_join_1.default)(((_a = (yield core.Supplier.get(this._options.environment))) !== null && _a !== void 0 ? _a : environments.VellumEnvironment.Production)
65
+ .default, `v1/test-suites/${id}/test-cases`),
66
+ method: "POST",
67
+ headers: {
68
+ X_API_KEY: yield core.Supplier.get(this._options.apiKey),
69
+ "X-Fern-Language": "JavaScript",
70
+ "X-Fern-SDK-Name": "vellum-ai",
71
+ "X-Fern-SDK-Version": "v0.1.0",
72
+ },
73
+ contentType: "application/json",
74
+ body: yield serializers.TestSuiteTestCaseRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }),
75
+ timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : undefined,
76
+ maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
67
77
  });
68
- }
69
- if (_response.error.reason === "status-code") {
70
- throw new errors.VellumError({
71
- statusCode: _response.error.statusCode,
72
- body: _response.error.body,
73
- });
74
- }
75
- switch (_response.error.reason) {
76
- case "non-json":
77
- throw new errors.VellumError({
78
- statusCode: _response.error.statusCode,
79
- body: _response.error.rawBody,
78
+ if (_response.ok) {
79
+ return yield serializers.TestSuiteTestCase.parseOrThrow(_response.body, {
80
+ unrecognizedObjectKeys: "passthrough",
81
+ allowUnrecognizedUnionMembers: true,
82
+ allowUnrecognizedEnumValues: true,
83
+ breadcrumbsPrefix: ["response"],
80
84
  });
81
- case "timeout":
82
- throw new errors.VellumTimeoutError();
83
- case "unknown":
85
+ }
86
+ if (_response.error.reason === "status-code") {
84
87
  throw new errors.VellumError({
85
- message: _response.error.errorMessage,
88
+ statusCode: _response.error.statusCode,
89
+ body: _response.error.body,
86
90
  });
87
- }
91
+ }
92
+ switch (_response.error.reason) {
93
+ case "non-json":
94
+ throw new errors.VellumError({
95
+ statusCode: _response.error.statusCode,
96
+ body: _response.error.rawBody,
97
+ });
98
+ case "timeout":
99
+ throw new errors.VellumTimeoutError();
100
+ case "unknown":
101
+ throw new errors.VellumError({
102
+ message: _response.error.errorMessage,
103
+ });
104
+ }
105
+ });
88
106
  }
89
107
  /**
90
108
  * Deletes an existing test case for a test suite, keying off of the test case id.
91
109
  *
92
110
  */
93
- async deleteTestSuiteTestCase(id, testCaseId) {
94
- const _response = await core.fetcher({
95
- url: (0, url_join_1.default)((this.options.environment ?? environments.VellumEnvironment.Production).default, `v1/test-suites/${id}/test-cases/${testCaseId}`),
96
- method: "DELETE",
97
- headers: {
98
- X_API_KEY: await core.Supplier.get(this.options.apiKey),
99
- },
100
- contentType: "application/json",
101
- });
102
- if (_response.ok) {
103
- return;
104
- }
105
- if (_response.error.reason === "status-code") {
106
- throw new errors.VellumError({
107
- statusCode: _response.error.statusCode,
108
- body: _response.error.body,
111
+ deleteTestSuiteTestCase(id, testCaseId, requestOptions) {
112
+ var _a;
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ const _response = yield core.fetcher({
115
+ url: (0, url_join_1.default)(((_a = (yield core.Supplier.get(this._options.environment))) !== null && _a !== void 0 ? _a : environments.VellumEnvironment.Production)
116
+ .default, `v1/test-suites/${id}/test-cases/${testCaseId}`),
117
+ method: "DELETE",
118
+ headers: {
119
+ X_API_KEY: yield core.Supplier.get(this._options.apiKey),
120
+ "X-Fern-Language": "JavaScript",
121
+ "X-Fern-SDK-Name": "vellum-ai",
122
+ "X-Fern-SDK-Version": "v0.1.0",
123
+ },
124
+ contentType: "application/json",
125
+ timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : undefined,
126
+ maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
109
127
  });
110
- }
111
- switch (_response.error.reason) {
112
- case "non-json":
128
+ if (_response.ok) {
129
+ return;
130
+ }
131
+ if (_response.error.reason === "status-code") {
113
132
  throw new errors.VellumError({
114
133
  statusCode: _response.error.statusCode,
115
- body: _response.error.rawBody,
134
+ body: _response.error.body,
116
135
  });
117
- case "timeout":
118
- throw new errors.VellumTimeoutError();
119
- case "unknown":
120
- throw new errors.VellumError({
121
- message: _response.error.errorMessage,
122
- });
123
- }
136
+ }
137
+ switch (_response.error.reason) {
138
+ case "non-json":
139
+ throw new errors.VellumError({
140
+ statusCode: _response.error.statusCode,
141
+ body: _response.error.rawBody,
142
+ });
143
+ case "timeout":
144
+ throw new errors.VellumTimeoutError();
145
+ case "unknown":
146
+ throw new errors.VellumError({
147
+ message: _response.error.errorMessage,
148
+ });
149
+ }
150
+ });
124
151
  }
125
152
  }
126
153
  exports.TestSuites = TestSuites;
@@ -1,18 +1,20 @@
1
- import URLSearchParams from "@ungap/url-search-params";
2
1
  import { AxiosAdapter } from "axios";
3
2
  import { APIResponse } from "./APIResponse";
4
- export declare type FetchFunction = (args: Fetcher.Args) => Promise<APIResponse<unknown, Fetcher.Error>>;
3
+ export declare type FetchFunction = <R = unknown>(args: Fetcher.Args) => Promise<APIResponse<R, Fetcher.Error>>;
5
4
  export declare namespace Fetcher {
6
5
  interface Args {
7
6
  url: string;
8
7
  method: string;
9
8
  contentType?: string;
10
9
  headers?: Record<string, string | undefined>;
11
- queryParameters?: URLSearchParams;
10
+ queryParameters?: Record<string, string | string[]>;
12
11
  body?: unknown;
13
12
  timeoutMs?: number;
13
+ maxRetries?: number;
14
14
  withCredentials?: boolean;
15
+ responseType?: "json" | "blob";
15
16
  adapter?: AxiosAdapter;
17
+ onUploadProgress?: (event: ProgressEvent) => void;
16
18
  }
17
19
  type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError;
18
20
  interface FailedStatusCodeError {
@@ -1,87 +1,129 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
6
15
  exports.fetcher = void 0;
7
16
  const axios_1 = __importDefault(require("axios"));
8
- const fetcher = async (args) => {
9
- const headers = {};
10
- if (args.body !== undefined && args.contentType != null) {
11
- headers["Content-Type"] = args.contentType;
12
- }
13
- if (args.headers != null) {
14
- for (const [key, value] of Object.entries(args.headers)) {
15
- if (value != null) {
16
- headers[key] = value;
17
+ const qs_1 = __importDefault(require("qs"));
18
+ const INITIAL_RETRY_DELAY = 1;
19
+ const MAX_RETRY_DELAY = 60;
20
+ const DEFAULT_MAX_RETRIES = 2;
21
+ function fetcherImpl(args) {
22
+ var _a, _b;
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const headers = {};
25
+ if (args.body !== undefined && args.contentType != null) {
26
+ headers["Content-Type"] = args.contentType;
27
+ }
28
+ if (args.headers != null) {
29
+ for (const [key, value] of Object.entries(args.headers)) {
30
+ if (value != null) {
31
+ headers[key] = value;
32
+ }
17
33
  }
18
34
  }
19
- }
20
- try {
21
- const response = await (0, axios_1.default)({
22
- url: args.url,
23
- params: args.queryParameters,
24
- method: args.method,
25
- headers,
26
- data: args.body,
27
- validateStatus: () => true,
28
- transformResponse: (response) => response,
29
- timeout: args.timeoutMs,
30
- transitional: {
31
- clarifyTimeoutError: true,
32
- },
33
- withCredentials: args.withCredentials,
34
- adapter: args.adapter,
35
+ const makeRequest = () => __awaiter(this, void 0, void 0, function* () {
36
+ var _d;
37
+ return yield (0, axios_1.default)({
38
+ url: args.url,
39
+ params: args.queryParameters,
40
+ paramsSerializer: (params) => {
41
+ return qs_1.default.stringify(params, { arrayFormat: "repeat" });
42
+ },
43
+ method: args.method,
44
+ headers,
45
+ data: args.body,
46
+ validateStatus: () => true,
47
+ transformResponse: (response) => response,
48
+ timeout: args.timeoutMs,
49
+ transitional: {
50
+ clarifyTimeoutError: true,
51
+ },
52
+ withCredentials: args.withCredentials,
53
+ adapter: args.adapter,
54
+ onUploadProgress: args.onUploadProgress,
55
+ maxBodyLength: Infinity,
56
+ maxContentLength: Infinity,
57
+ responseType: (_d = args.responseType) !== null && _d !== void 0 ? _d : "json",
58
+ });
35
59
  });
36
- let body;
37
- if (response.data != null && response.data.length > 0) {
38
- try {
39
- body = JSON.parse(response.data) ?? undefined;
60
+ try {
61
+ let response = yield makeRequest();
62
+ for (let i = 0; i < ((_a = args.maxRetries) !== null && _a !== void 0 ? _a : DEFAULT_MAX_RETRIES); ++i) {
63
+ if (response.status === 408 ||
64
+ response.status === 409 ||
65
+ response.status === 429 ||
66
+ response.status >= 500) {
67
+ const delay = Math.min(INITIAL_RETRY_DELAY * Math.pow(i, 2), MAX_RETRY_DELAY);
68
+ response = yield new Promise((resolve) => setTimeout(resolve, delay));
69
+ }
70
+ else {
71
+ break;
72
+ }
40
73
  }
41
- catch {
74
+ let body;
75
+ if (args.responseType === "blob") {
76
+ body = response.data;
77
+ }
78
+ else if (response.data != null && response.data.length > 0) {
79
+ try {
80
+ body = (_b = JSON.parse(response.data)) !== null && _b !== void 0 ? _b : undefined;
81
+ }
82
+ catch (_c) {
83
+ return {
84
+ ok: false,
85
+ error: {
86
+ reason: "non-json",
87
+ statusCode: response.status,
88
+ rawBody: response.data,
89
+ },
90
+ };
91
+ }
92
+ }
93
+ if (response.status >= 200 && response.status < 400) {
94
+ return {
95
+ ok: true,
96
+ body: body,
97
+ };
98
+ }
99
+ else {
42
100
  return {
43
101
  ok: false,
44
102
  error: {
45
- reason: "non-json",
103
+ reason: "status-code",
46
104
  statusCode: response.status,
47
- rawBody: response.data,
105
+ body,
48
106
  },
49
107
  };
50
108
  }
51
109
  }
52
- if (response.status >= 200 && response.status < 300) {
53
- return {
54
- ok: true,
55
- body,
56
- };
57
- }
58
- else {
59
- return {
60
- ok: false,
61
- error: {
62
- reason: "status-code",
63
- statusCode: response.status,
64
- body,
65
- },
66
- };
67
- }
68
- }
69
- catch (error) {
70
- if (error.code === "ETIMEDOUT") {
110
+ catch (error) {
111
+ if (error.code === "ETIMEDOUT") {
112
+ return {
113
+ ok: false,
114
+ error: {
115
+ reason: "timeout",
116
+ },
117
+ };
118
+ }
71
119
  return {
72
120
  ok: false,
73
121
  error: {
74
- reason: "timeout",
122
+ reason: "unknown",
123
+ errorMessage: error.message,
75
124
  },
76
125
  };
77
126
  }
78
- return {
79
- ok: false,
80
- error: {
81
- reason: "unknown",
82
- errorMessage: error.message,
83
- },
84
- };
85
- }
86
- };
87
- exports.fetcher = fetcher;
127
+ });
128
+ }
129
+ exports.fetcher = fetcherImpl;
@@ -1,13 +1,22 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.Supplier = void 0;
4
13
  exports.Supplier = {
5
- get: async (supplier) => {
14
+ get: (supplier) => __awaiter(void 0, void 0, void 0, function* () {
6
15
  if (typeof supplier === "function") {
7
16
  return supplier();
8
17
  }
9
18
  else {
10
19
  return supplier;
11
20
  }
12
- },
21
+ }),
13
22
  };
@@ -1,3 +1,4 @@
1
- export { type APIResponse } from "./APIResponse";
2
- export { fetcher, type Fetcher, type FetchFunction } from "./Fetcher";
1
+ export type { APIResponse } from "./APIResponse";
2
+ export { fetcher } from "./Fetcher";
3
+ export type { Fetcher, FetchFunction } from "./Fetcher";
3
4
  export { Supplier } from "./Supplier";
@@ -1,2 +1,2 @@
1
- import FormData from "form-data";
1
+ import { default as FormData } from "form-data";
2
2
  export declare function getFormDataContentLength(formData: FormData): Promise<number>;
@@ -1,15 +1,26 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.getFormDataContentLength = void 0;
4
- async function getFormDataContentLength(formData) {
5
- return new Promise((resolve, reject) => {
6
- formData.getLength((err, length) => {
7
- if (err != null) {
8
- reject(err);
9
- }
10
- else {
11
- resolve(length);
12
- }
13
+ function getFormDataContentLength(formData) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ return new Promise((resolve, reject) => {
16
+ formData.getLength((err, length) => {
17
+ if (err != null) {
18
+ reject(err);
19
+ }
20
+ else {
21
+ resolve(length);
22
+ }
23
+ });
13
24
  });
14
25
  });
15
26
  }
@@ -1,5 +1,4 @@
1
- export * as serialization from "./schemas";
2
1
  export * from "./fetcher";
3
2
  export * from "./streaming-fetcher";
4
- export * from "./callback-queue";
5
3
  export * from "./form-data-utils";
4
+ export * as serialization from "./schemas";
@@ -15,6 +15,9 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
18
21
  var __importStar = (this && this.__importStar) || function (mod) {
19
22
  if (mod && mod.__esModule) return mod;
20
23
  var result = {};
@@ -22,13 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
25
  __setModuleDefault(result, mod);
23
26
  return result;
24
27
  };
25
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
- };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.serialization = void 0;
30
- exports.serialization = __importStar(require("./schemas"));
31
30
  __exportStar(require("./fetcher"), exports);
32
31
  __exportStar(require("./streaming-fetcher"), exports);
33
- __exportStar(require("./callback-queue"), exports);
34
32
  __exportStar(require("./form-data-utils"), exports);
33
+ exports.serialization = __importStar(require("./schemas"));
@@ -13,6 +13,7 @@ export declare const SchemaType: {
13
13
  readonly ENUM: "enum";
14
14
  readonly LIST: "list";
15
15
  readonly STRING_LITERAL: "stringLiteral";
16
+ readonly BOOLEAN_LITERAL: "booleanLiteral";
16
17
  readonly OBJECT: "object";
17
18
  readonly ANY: "any";
18
19
  readonly BOOLEAN: "boolean";
@@ -59,4 +60,22 @@ export interface SchemaOptions {
59
60
  * @default false
60
61
  */
61
62
  allowUnrecognizedEnumValues?: boolean;
63
+ /**
64
+ * whether to allow data that doesn't conform to the schema.
65
+ * invalid data is passed through without transformation.
66
+ *
67
+ * when this is enabled, .parse() and .json() will always
68
+ * return `ok: true`. `.parseOrThrow()` and `.jsonOrThrow()`
69
+ * will never fail.
70
+ *
71
+ * @default false
72
+ */
73
+ skipValidation?: boolean;
74
+ /**
75
+ * each validation failure contains a "path" property, which is
76
+ * the breadcrumbs to the offending node in the JSON. you can supply
77
+ * a prefix that is prepended to all the errors' paths. this can be
78
+ * helpful for zurg's internal debug logging.
79
+ */
80
+ breadcrumbsPrefix?: string[];
62
81
  }
@@ -6,6 +6,7 @@ exports.SchemaType = {
6
6
  ENUM: "enum",
7
7
  LIST: "list",
8
8
  STRING_LITERAL: "stringLiteral",
9
+ BOOLEAN_LITERAL: "booleanLiteral",
9
10
  OBJECT: "object",
10
11
  ANY: "any",
11
12
  BOOLEAN: "boolean",
@@ -2,31 +2,42 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.date = void 0;
4
4
  const Schema_1 = require("../../Schema");
5
+ const getErrorMessageForIncorrectType_1 = require("../../utils/getErrorMessageForIncorrectType");
6
+ const maybeSkipValidation_1 = require("../../utils/maybeSkipValidation");
5
7
  const schema_utils_1 = require("../schema-utils");
6
8
  // https://stackoverflow.com/questions/12756159/regex-and-iso8601-formatted-datetime
7
9
  const ISO_8601_REGEX = /^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;
8
10
  function date() {
9
11
  const baseSchema = {
10
- parse: (raw) => {
11
- if (typeof raw === "string" && ISO_8601_REGEX.test(raw)) {
12
+ parse: (raw, { breadcrumbsPrefix = [] } = {}) => {
13
+ if (typeof raw !== "string") {
12
14
  return {
13
- ok: true,
14
- value: new Date(raw),
15
+ ok: false,
16
+ errors: [
17
+ {
18
+ path: breadcrumbsPrefix,
19
+ message: (0, getErrorMessageForIncorrectType_1.getErrorMessageForIncorrectType)(raw, "string"),
20
+ },
21
+ ],
15
22
  };
16
23
  }
17
- else {
24
+ if (!ISO_8601_REGEX.test(raw)) {
18
25
  return {
19
26
  ok: false,
20
27
  errors: [
21
28
  {
22
- path: [],
23
- message: "Not an ISO 8601 date string",
29
+ path: breadcrumbsPrefix,
30
+ message: (0, getErrorMessageForIncorrectType_1.getErrorMessageForIncorrectType)(raw, "ISO 8601 date string"),
24
31
  },
25
32
  ],
26
33
  };
27
34
  }
35
+ return {
36
+ ok: true,
37
+ value: new Date(raw),
38
+ };
28
39
  },
29
- json: (date) => {
40
+ json: (date, { breadcrumbsPrefix = [] } = {}) => {
30
41
  if (date instanceof Date) {
31
42
  return {
32
43
  ok: true,
@@ -38,8 +49,8 @@ function date() {
38
49
  ok: false,
39
50
  errors: [
40
51
  {
41
- path: [],
42
- message: "Not a Date object",
52
+ path: breadcrumbsPrefix,
53
+ message: (0, getErrorMessageForIncorrectType_1.getErrorMessageForIncorrectType)(date, "Date object"),
43
54
  },
44
55
  ],
45
56
  };
@@ -47,9 +58,6 @@ function date() {
47
58
  },
48
59
  getType: () => Schema_1.SchemaType.DATE,
49
60
  };
50
- return {
51
- ...baseSchema,
52
- ...(0, schema_utils_1.getSchemaUtils)(baseSchema),
53
- };
61
+ return Object.assign(Object.assign({}, (0, maybeSkipValidation_1.maybeSkipValidation)(baseSchema)), (0, schema_utils_1.getSchemaUtils)(baseSchema));
54
62
  }
55
63
  exports.date = date;