@goast/core 0.4.0-beta4 → 0.4.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.
Files changed (887) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +4 -0
  3. package/esm/_dnt.shims.d.ts +1 -1
  4. package/esm/_dnt.test_polyfills.d.ts +29 -0
  5. package/esm/_dnt.test_polyfills.d.ts.map +1 -0
  6. package/esm/_dnt.test_polyfills.js +31 -0
  7. package/esm/_dnt.test_shims.d.ts +14 -0
  8. package/esm/_dnt.test_shims.d.ts.map +1 -0
  9. package/esm/_dnt.test_shims.js +69 -0
  10. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts +26 -0
  11. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts.map +1 -0
  12. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.js +30 -0
  13. package/esm/deps/jsr.io/@std/assert/1.0.11/false.d.ts +18 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.11/false.d.ts.map +1 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.11/false.js +22 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts +23 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts.map +1 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.js +53 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.11/match.d.ts +18 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.11/match.d.ts.map +1 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.11/match.js +26 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts +20 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts.map +1 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.js +29 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts +18 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts.map +1 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.js +26 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts +23 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts.map +1 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.js +32 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts +24 -0
  32. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts.map +1 -0
  33. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.js +57 -0
  34. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts +20 -0
  35. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts.map +1 -0
  36. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_equals.js +29 -0
  37. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts +14 -0
  38. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts.map +1 -0
  39. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.js +43 -0
  40. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts +17 -0
  41. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts.map +1 -0
  42. package/esm/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.js +26 -0
  43. package/esm/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts +4 -0
  44. package/esm/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts.map +1 -0
  45. package/esm/deps/jsr.io/@std/expect/1.0.12/_assertions.js +13 -0
  46. package/esm/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts +46 -0
  47. package/esm/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts.map +1 -0
  48. package/esm/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.js +161 -0
  49. package/esm/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts +6 -0
  50. package/esm/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts.map +1 -0
  51. package/esm/deps/jsr.io/@std/expect/1.0.12/_build_message.js +29 -0
  52. package/esm/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts +4 -0
  53. package/esm/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts.map +1 -0
  54. package/esm/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.js +11 -0
  55. package/esm/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts +9 -0
  56. package/esm/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts.map +1 -0
  57. package/esm/deps/jsr.io/@std/expect/1.0.12/_equal.js +191 -0
  58. package/esm/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts +4 -0
  59. package/esm/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts.map +1 -0
  60. package/esm/deps/jsr.io/@std/expect/1.0.12/_extend.js +11 -0
  61. package/esm/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts +3 -0
  62. package/esm/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts.map +1 -0
  63. package/esm/deps/jsr.io/@std/expect/1.0.12/_inspect_args.js +12 -0
  64. package/esm/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts +34 -0
  65. package/esm/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts.map +1 -0
  66. package/esm/deps/jsr.io/@std/expect/1.0.12/_matchers.js +714 -0
  67. package/esm/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts +11 -0
  68. package/esm/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts.map +1 -0
  69. package/esm/deps/jsr.io/@std/expect/1.0.12/_mock_util.js +10 -0
  70. package/esm/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts +4 -0
  71. package/esm/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts.map +1 -0
  72. package/esm/deps/jsr.io/@std/expect/1.0.12/_serializer.js +10 -0
  73. package/esm/deps/jsr.io/@std/expect/1.0.12/_types.d.ts +843 -0
  74. package/esm/deps/jsr.io/@std/expect/1.0.12/_types.d.ts.map +1 -0
  75. package/esm/deps/jsr.io/@std/expect/1.0.12/_types.js +3 -0
  76. package/esm/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts +9 -0
  77. package/esm/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts.map +1 -0
  78. package/esm/deps/jsr.io/@std/expect/1.0.12/_utils.js +218 -0
  79. package/esm/deps/jsr.io/@std/expect/1.0.12/expect.d.ts +60 -0
  80. package/esm/deps/jsr.io/@std/expect/1.0.12/expect.d.ts.map +1 -0
  81. package/esm/deps/jsr.io/@std/expect/1.0.12/expect.js +523 -0
  82. package/esm/deps/jsr.io/@std/expect/1.0.12/fn.d.ts +29 -0
  83. package/esm/deps/jsr.io/@std/expect/1.0.12/fn.d.ts.map +1 -0
  84. package/esm/deps/jsr.io/@std/expect/1.0.12/fn.js +85 -0
  85. package/esm/deps/jsr.io/@std/expect/1.0.12/mod.d.ts +86 -0
  86. package/esm/deps/jsr.io/@std/expect/1.0.12/mod.d.ts.map +1 -0
  87. package/esm/deps/jsr.io/@std/expect/1.0.12/mod.js +88 -0
  88. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +160 -0
  89. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +1 -0
  90. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +199 -0
  91. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +82 -0
  92. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  93. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js +111 -0
  94. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +140 -0
  95. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  96. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js +277 -0
  97. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +99 -0
  98. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  99. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js +180 -0
  100. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts +2 -0
  101. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  102. package/esm/deps/jsr.io/@std/internal/1.0.5/format.js +37 -0
  103. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +159 -0
  104. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  105. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js +207 -0
  106. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts +16 -0
  107. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  108. package/esm/deps/jsr.io/@std/internal/1.0.5/types.js +2 -0
  109. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts +79 -0
  110. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts.map +1 -0
  111. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.js +380 -0
  112. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts +738 -0
  113. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts.map +1 -0
  114. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.js +654 -0
  115. package/esm/mod.d.ts +30 -0
  116. package/esm/mod.d.ts.map +1 -0
  117. package/esm/mod.js +29 -0
  118. package/esm/src/ast/node.d.ts +17 -0
  119. package/esm/src/ast/node.d.ts.map +1 -0
  120. package/esm/src/codegen/config.d.ts +16 -0
  121. package/esm/src/codegen/config.d.ts.map +1 -0
  122. package/esm/src/codegen/endpoints-generator.d.ts +18 -0
  123. package/esm/src/codegen/endpoints-generator.d.ts.map +1 -0
  124. package/esm/src/codegen/generator.d.ts +39 -0
  125. package/esm/src/codegen/generator.d.ts.map +1 -0
  126. package/esm/src/codegen/generator.js +117 -0
  127. package/esm/src/codegen/internal-utils.d.ts.map +1 -0
  128. package/esm/src/codegen/internal-utils.js +6 -0
  129. package/esm/src/codegen/schemas-generator.d.ts +19 -0
  130. package/esm/src/codegen/schemas-generator.d.ts.map +1 -0
  131. package/esm/src/codegen/schemas-generator.js +45 -0
  132. package/esm/src/codegen/services-generator.d.ts +18 -0
  133. package/esm/src/codegen/services-generator.d.ts.map +1 -0
  134. package/esm/src/codegen/types.d.ts +19 -0
  135. package/esm/src/codegen/types.d.ts.map +1 -0
  136. package/esm/src/collect/collector.d.ts +5 -0
  137. package/esm/src/collect/collector.d.ts.map +1 -0
  138. package/esm/src/collect/helpers.d.ts +5 -0
  139. package/esm/src/collect/helpers.d.ts.map +1 -0
  140. package/esm/src/collect/helpers.test.d.ts +2 -0
  141. package/esm/src/collect/helpers.test.d.ts.map +1 -0
  142. package/esm/src/collect/helpers.test.js +77 -0
  143. package/esm/src/collect/types.d.ts +14 -0
  144. package/esm/src/collect/types.d.ts.map +1 -0
  145. package/esm/src/internal-utils.d.ts.map +1 -0
  146. package/esm/src/parse/deref-proxy.d.ts.map +1 -0
  147. package/esm/src/parse/deref-proxy.js +62 -0
  148. package/esm/src/parse/openapi-types.d.ts.map +1 -0
  149. package/esm/src/parse/parser.d.ts +19 -0
  150. package/esm/src/parse/parser.d.ts.map +1 -0
  151. package/esm/src/parse/parser.js +195 -0
  152. package/esm/src/parse/types.d.ts.map +1 -0
  153. package/esm/src/transform/api-types.d.ts +196 -0
  154. package/esm/src/transform/api-types.d.ts.map +1 -0
  155. package/esm/src/transform/helpers.d.ts +52 -0
  156. package/esm/src/transform/helpers.d.ts.map +1 -0
  157. package/esm/src/transform/helpers.js +160 -0
  158. package/esm/src/transform/helpers.test.d.ts +2 -0
  159. package/esm/src/transform/helpers.test.d.ts.map +1 -0
  160. package/esm/src/transform/helpers.test.js +265 -0
  161. package/esm/src/transform/transform-document.d.ts +5 -0
  162. package/esm/src/transform/transform-document.d.ts.map +1 -0
  163. package/esm/src/transform/transform-endpoint.d.ts +5 -0
  164. package/esm/src/transform/transform-endpoint.d.ts.map +1 -0
  165. package/esm/src/transform/transform-endpoint.js +269 -0
  166. package/esm/src/transform/transform-schema.d.ts +6 -0
  167. package/esm/src/transform/transform-schema.d.ts.map +1 -0
  168. package/esm/src/transform/transform-schema.js +182 -0
  169. package/esm/src/transform/transformer.d.ts +5 -0
  170. package/esm/src/transform/transformer.d.ts.map +1 -0
  171. package/esm/src/transform/types.d.ts.map +1 -0
  172. package/esm/src/utils/action-provider.d.ts.map +1 -0
  173. package/esm/src/utils/action-provider.js +29 -0
  174. package/esm/src/utils/action-provider.test.d.ts +2 -0
  175. package/esm/src/utils/action-provider.test.d.ts.map +1 -0
  176. package/esm/src/utils/action-provider.test.js +28 -0
  177. package/esm/src/utils/array.utils.d.ts.map +1 -0
  178. package/esm/src/utils/asset-manager.d.ts +9 -0
  179. package/esm/src/utils/asset-manager.d.ts.map +1 -0
  180. package/esm/src/utils/asset-manager.js +50 -0
  181. package/esm/src/utils/class.utils.d.ts.map +1 -0
  182. package/esm/src/utils/class.utils.js +28 -0
  183. package/esm/src/utils/common.utils.d.ts.map +1 -0
  184. package/esm/src/utils/common.utils.test.d.ts +2 -0
  185. package/esm/src/utils/common.utils.test.d.ts.map +1 -0
  186. package/esm/src/utils/common.utils.test.js +18 -0
  187. package/esm/src/utils/condition.d.ts.map +1 -0
  188. package/esm/src/utils/condition.test.d.ts +2 -0
  189. package/esm/src/utils/condition.test.d.ts.map +1 -0
  190. package/esm/src/utils/condition.test.js +31 -0
  191. package/esm/src/utils/endpoint.utils.d.ts +3 -0
  192. package/esm/src/utils/endpoint.utils.d.ts.map +1 -0
  193. package/esm/src/utils/endpoint.utils.test.d.ts +2 -0
  194. package/esm/src/utils/endpoint.utils.test.d.ts.map +1 -0
  195. package/esm/src/utils/endpoint.utils.test.js +31 -0
  196. package/esm/src/utils/error.utils.d.ts.map +1 -0
  197. package/esm/src/utils/factory.d.ts +21 -0
  198. package/esm/src/utils/factory.d.ts.map +1 -0
  199. package/esm/src/utils/factory.test.d.ts +2 -0
  200. package/esm/src/utils/factory.test.d.ts.map +1 -0
  201. package/esm/src/utils/factory.test.js +34 -0
  202. package/esm/src/utils/file-system.utils.d.ts.map +1 -0
  203. package/esm/src/utils/generator.utils.d.ts.map +1 -0
  204. package/esm/src/utils/generator.utils.test.d.ts +2 -0
  205. package/esm/src/utils/generator.utils.test.d.ts.map +1 -0
  206. package/esm/src/utils/generator.utils.test.js +13 -0
  207. package/esm/src/utils/object.utils.d.ts.map +1 -0
  208. package/esm/src/utils/object.utils.js +36 -0
  209. package/esm/src/utils/object.utils.test.d.ts +2 -0
  210. package/esm/src/utils/object.utils.test.d.ts.map +1 -0
  211. package/esm/src/utils/object.utils.test.js +29 -0
  212. package/esm/src/utils/schema.utils.d.ts +11 -0
  213. package/esm/src/utils/schema.utils.d.ts.map +1 -0
  214. package/esm/src/utils/schema.utils.test.d.ts +2 -0
  215. package/esm/src/utils/schema.utils.test.d.ts.map +1 -0
  216. package/esm/src/utils/schema.utils.test.js +70 -0
  217. package/esm/src/utils/source-builder.d.ts +234 -0
  218. package/esm/src/utils/source-builder.d.ts.map +1 -0
  219. package/esm/src/utils/source-builder.js +447 -0
  220. package/esm/src/utils/source-builder.test.d.ts +2 -0
  221. package/esm/src/utils/source-builder.test.d.ts.map +1 -0
  222. package/esm/src/utils/source-builder.test.js +505 -0
  223. package/esm/src/utils/string-builder/options.d.ts.map +1 -0
  224. package/esm/src/utils/string-builder/string-builder.d.ts +73 -0
  225. package/esm/src/utils/string-builder/string-builder.d.ts.map +1 -0
  226. package/esm/src/utils/string-builder/string-builder.js +149 -0
  227. package/esm/src/utils/string-builder/string-builder.test.d.ts +2 -0
  228. package/esm/src/utils/string-builder/string-builder.test.d.ts.map +1 -0
  229. package/esm/src/utils/string-builder/string-builder.test.js +163 -0
  230. package/esm/src/utils/string-builder/utils.d.ts.map +1 -0
  231. package/esm/src/utils/string.utils.d.ts.map +1 -0
  232. package/esm/src/utils/string.utils.test.d.ts +2 -0
  233. package/esm/src/utils/string.utils.test.d.ts.map +1 -0
  234. package/esm/src/utils/string.utils.test.js +528 -0
  235. package/esm/src/utils/string.utils.types.d.ts.map +1 -0
  236. package/esm/src/utils/type.utils.d.ts.map +1 -0
  237. package/esm/tests/openapi.test.d.ts +2 -0
  238. package/esm/tests/openapi.test.d.ts.map +1 -0
  239. package/esm/tests/openapi.test.js +33 -0
  240. package/esm/tests/schema-factory.d.ts +42 -0
  241. package/esm/tests/schema-factory.d.ts.map +1 -0
  242. package/esm/tests/schema-factory.js +138 -0
  243. package/package.json +6 -6
  244. package/script/_dnt.shims.d.ts +1 -1
  245. package/script/_dnt.test_polyfills.d.ts +29 -0
  246. package/script/_dnt.test_polyfills.d.ts.map +1 -0
  247. package/script/_dnt.test_polyfills.js +32 -0
  248. package/script/_dnt.test_shims.d.ts +14 -0
  249. package/script/_dnt.test_shims.d.ts.map +1 -0
  250. package/script/_dnt.test_shims.js +79 -0
  251. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts +26 -0
  252. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts.map +1 -0
  253. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.js +34 -0
  254. package/script/deps/jsr.io/@std/assert/1.0.11/false.d.ts +18 -0
  255. package/script/deps/jsr.io/@std/assert/1.0.11/false.d.ts.map +1 -0
  256. package/script/deps/jsr.io/@std/assert/1.0.11/false.js +25 -0
  257. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts +23 -0
  258. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts.map +1 -0
  259. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.js +56 -0
  260. package/script/deps/jsr.io/@std/assert/1.0.11/match.d.ts +18 -0
  261. package/script/deps/jsr.io/@std/assert/1.0.11/match.d.ts.map +1 -0
  262. package/script/deps/jsr.io/@std/assert/1.0.11/match.js +29 -0
  263. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts +20 -0
  264. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts.map +1 -0
  265. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.js +32 -0
  266. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts +18 -0
  267. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts.map +1 -0
  268. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.js +29 -0
  269. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts +23 -0
  270. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts.map +1 -0
  271. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.js +35 -0
  272. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts +24 -0
  273. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts.map +1 -0
  274. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.js +60 -0
  275. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts +20 -0
  276. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_equals.d.ts.map +1 -0
  277. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_equals.js +32 -0
  278. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts +14 -0
  279. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.d.ts.map +1 -0
  280. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.js +46 -0
  281. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts +17 -0
  282. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.d.ts.map +1 -0
  283. package/script/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.js +29 -0
  284. package/script/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts +4 -0
  285. package/script/deps/jsr.io/@std/expect/1.0.12/_assertions.d.ts.map +1 -0
  286. package/script/deps/jsr.io/@std/expect/1.0.12/_assertions.js +18 -0
  287. package/script/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts +46 -0
  288. package/script/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.d.ts.map +1 -0
  289. package/script/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.js +183 -0
  290. package/script/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts +6 -0
  291. package/script/deps/jsr.io/@std/expect/1.0.12/_build_message.d.ts.map +1 -0
  292. package/script/deps/jsr.io/@std/expect/1.0.12/_build_message.js +33 -0
  293. package/script/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts +4 -0
  294. package/script/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.d.ts.map +1 -0
  295. package/script/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.js +15 -0
  296. package/script/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts +9 -0
  297. package/script/deps/jsr.io/@std/expect/1.0.12/_equal.d.ts.map +1 -0
  298. package/script/deps/jsr.io/@std/expect/1.0.12/_equal.js +194 -0
  299. package/script/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts +4 -0
  300. package/script/deps/jsr.io/@std/expect/1.0.12/_extend.d.ts.map +1 -0
  301. package/script/deps/jsr.io/@std/expect/1.0.12/_extend.js +15 -0
  302. package/script/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts +3 -0
  303. package/script/deps/jsr.io/@std/expect/1.0.12/_inspect_args.d.ts.map +1 -0
  304. package/script/deps/jsr.io/@std/expect/1.0.12/_inspect_args.js +17 -0
  305. package/script/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts +34 -0
  306. package/script/deps/jsr.io/@std/expect/1.0.12/_matchers.d.ts.map +1 -0
  307. package/script/deps/jsr.io/@std/expect/1.0.12/_matchers.js +748 -0
  308. package/script/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts +11 -0
  309. package/script/deps/jsr.io/@std/expect/1.0.12/_mock_util.d.ts.map +1 -0
  310. package/script/deps/jsr.io/@std/expect/1.0.12/_mock_util.js +14 -0
  311. package/script/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts +4 -0
  312. package/script/deps/jsr.io/@std/expect/1.0.12/_serializer.d.ts.map +1 -0
  313. package/script/deps/jsr.io/@std/expect/1.0.12/_serializer.js +14 -0
  314. package/script/deps/jsr.io/@std/expect/1.0.12/_types.d.ts +843 -0
  315. package/script/deps/jsr.io/@std/expect/1.0.12/_types.d.ts.map +1 -0
  316. package/script/deps/jsr.io/@std/expect/1.0.12/_types.js +4 -0
  317. package/script/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts +9 -0
  318. package/script/deps/jsr.io/@std/expect/1.0.12/_utils.d.ts.map +1 -0
  319. package/script/deps/jsr.io/@std/expect/1.0.12/_utils.js +226 -0
  320. package/script/deps/jsr.io/@std/expect/1.0.12/expect.d.ts +60 -0
  321. package/script/deps/jsr.io/@std/expect/1.0.12/expect.d.ts.map +1 -0
  322. package/script/deps/jsr.io/@std/expect/1.0.12/expect.js +527 -0
  323. package/script/deps/jsr.io/@std/expect/1.0.12/fn.d.ts +29 -0
  324. package/script/deps/jsr.io/@std/expect/1.0.12/fn.d.ts.map +1 -0
  325. package/script/deps/jsr.io/@std/expect/1.0.12/fn.js +88 -0
  326. package/script/deps/jsr.io/@std/expect/1.0.12/mod.d.ts +86 -0
  327. package/script/deps/jsr.io/@std/expect/1.0.12/mod.d.ts.map +1 -0
  328. package/script/deps/jsr.io/@std/expect/1.0.12/mod.js +91 -0
  329. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +160 -0
  330. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +1 -0
  331. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +204 -0
  332. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +82 -0
  333. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  334. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.js +116 -0
  335. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +140 -0
  336. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  337. package/script/deps/jsr.io/@std/internal/1.0.5/diff.js +284 -0
  338. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +99 -0
  339. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  340. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.js +186 -0
  341. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts +2 -0
  342. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  343. package/script/deps/jsr.io/@std/internal/1.0.5/format.js +41 -0
  344. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +159 -0
  345. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  346. package/script/deps/jsr.io/@std/internal/1.0.5/styles.js +220 -0
  347. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts +16 -0
  348. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  349. package/script/deps/jsr.io/@std/internal/1.0.5/types.js +3 -0
  350. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts +79 -0
  351. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts.map +1 -0
  352. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.js +385 -0
  353. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts +738 -0
  354. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts.map +1 -0
  355. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.js +665 -0
  356. package/script/mod.d.ts +30 -0
  357. package/script/mod.d.ts.map +1 -0
  358. package/script/mod.js +34 -0
  359. package/script/src/ast/node.d.ts +17 -0
  360. package/script/src/ast/node.d.ts.map +1 -0
  361. package/script/src/codegen/config.d.ts +16 -0
  362. package/script/src/codegen/config.d.ts.map +1 -0
  363. package/script/src/codegen/endpoints-generator.d.ts +18 -0
  364. package/script/src/codegen/endpoints-generator.d.ts.map +1 -0
  365. package/script/src/codegen/generator.d.ts +39 -0
  366. package/script/src/codegen/generator.d.ts.map +1 -0
  367. package/script/src/codegen/generator.js +123 -0
  368. package/script/src/codegen/internal-utils.d.ts.map +1 -0
  369. package/script/src/codegen/internal-utils.js +9 -0
  370. package/script/src/codegen/schemas-generator.d.ts +19 -0
  371. package/script/src/codegen/schemas-generator.d.ts.map +1 -0
  372. package/script/src/codegen/schemas-generator.js +49 -0
  373. package/script/src/codegen/services-generator.d.ts +18 -0
  374. package/script/src/codegen/services-generator.d.ts.map +1 -0
  375. package/script/src/codegen/types.d.ts +19 -0
  376. package/script/src/codegen/types.d.ts.map +1 -0
  377. package/script/src/collect/collector.d.ts +5 -0
  378. package/script/src/collect/collector.d.ts.map +1 -0
  379. package/script/src/collect/helpers.d.ts +5 -0
  380. package/script/src/collect/helpers.d.ts.map +1 -0
  381. package/script/src/collect/helpers.test.d.ts +2 -0
  382. package/script/src/collect/helpers.test.d.ts.map +1 -0
  383. package/script/src/collect/helpers.test.js +79 -0
  384. package/script/src/collect/types.d.ts +14 -0
  385. package/script/src/collect/types.d.ts.map +1 -0
  386. package/script/src/internal-utils.d.ts.map +1 -0
  387. package/script/src/parse/deref-proxy.d.ts.map +1 -0
  388. package/script/src/parse/deref-proxy.js +65 -0
  389. package/script/src/parse/openapi-types.d.ts.map +1 -0
  390. package/script/src/parse/parser.d.ts +19 -0
  391. package/script/src/parse/parser.d.ts.map +1 -0
  392. package/script/src/parse/parser.js +200 -0
  393. package/script/src/parse/types.d.ts.map +1 -0
  394. package/script/src/transform/api-types.d.ts +196 -0
  395. package/script/src/transform/api-types.d.ts.map +1 -0
  396. package/script/src/transform/helpers.d.ts +52 -0
  397. package/script/src/transform/helpers.d.ts.map +1 -0
  398. package/script/src/transform/helpers.js +173 -0
  399. package/script/src/transform/helpers.test.d.ts +2 -0
  400. package/script/src/transform/helpers.test.d.ts.map +1 -0
  401. package/script/src/transform/helpers.test.js +267 -0
  402. package/script/src/transform/transform-document.d.ts +5 -0
  403. package/script/src/transform/transform-document.d.ts.map +1 -0
  404. package/script/src/transform/transform-endpoint.d.ts +5 -0
  405. package/script/src/transform/transform-endpoint.d.ts.map +1 -0
  406. package/script/src/transform/transform-endpoint.js +272 -0
  407. package/script/src/transform/transform-schema.d.ts +6 -0
  408. package/script/src/transform/transform-schema.d.ts.map +1 -0
  409. package/script/src/transform/transform-schema.js +185 -0
  410. package/script/src/transform/transformer.d.ts +5 -0
  411. package/script/src/transform/transformer.d.ts.map +1 -0
  412. package/script/src/transform/types.d.ts.map +1 -0
  413. package/script/src/utils/action-provider.d.ts.map +1 -0
  414. package/script/src/utils/action-provider.js +33 -0
  415. package/script/src/utils/action-provider.test.d.ts +2 -0
  416. package/script/src/utils/action-provider.test.d.ts.map +1 -0
  417. package/script/src/utils/action-provider.test.js +30 -0
  418. package/script/src/utils/array.utils.d.ts.map +1 -0
  419. package/script/src/utils/asset-manager.d.ts +9 -0
  420. package/script/src/utils/asset-manager.d.ts.map +1 -0
  421. package/script/src/utils/asset-manager.js +55 -0
  422. package/script/src/utils/class.utils.d.ts.map +1 -0
  423. package/script/src/utils/class.utils.js +33 -0
  424. package/script/src/utils/common.utils.d.ts.map +1 -0
  425. package/script/src/utils/common.utils.test.d.ts +2 -0
  426. package/script/src/utils/common.utils.test.d.ts.map +1 -0
  427. package/script/src/utils/common.utils.test.js +20 -0
  428. package/script/src/utils/condition.d.ts.map +1 -0
  429. package/script/src/utils/condition.test.d.ts +2 -0
  430. package/script/src/utils/condition.test.d.ts.map +1 -0
  431. package/script/src/utils/condition.test.js +33 -0
  432. package/script/src/utils/endpoint.utils.d.ts +3 -0
  433. package/script/src/utils/endpoint.utils.d.ts.map +1 -0
  434. package/script/src/utils/endpoint.utils.test.d.ts +2 -0
  435. package/script/src/utils/endpoint.utils.test.d.ts.map +1 -0
  436. package/script/src/utils/endpoint.utils.test.js +33 -0
  437. package/script/src/utils/error.utils.d.ts.map +1 -0
  438. package/script/src/utils/factory.d.ts +21 -0
  439. package/script/src/utils/factory.d.ts.map +1 -0
  440. package/script/src/utils/factory.test.d.ts +2 -0
  441. package/script/src/utils/factory.test.d.ts.map +1 -0
  442. package/script/src/utils/factory.test.js +36 -0
  443. package/script/src/utils/file-system.utils.d.ts.map +1 -0
  444. package/script/src/utils/generator.utils.d.ts.map +1 -0
  445. package/script/src/utils/generator.utils.test.d.ts +2 -0
  446. package/script/src/utils/generator.utils.test.d.ts.map +1 -0
  447. package/script/src/utils/generator.utils.test.js +15 -0
  448. package/script/src/utils/object.utils.d.ts.map +1 -0
  449. package/script/src/utils/object.utils.js +40 -0
  450. package/script/src/utils/object.utils.test.d.ts +2 -0
  451. package/script/src/utils/object.utils.test.d.ts.map +1 -0
  452. package/script/src/utils/object.utils.test.js +31 -0
  453. package/script/src/utils/schema.utils.d.ts +11 -0
  454. package/script/src/utils/schema.utils.d.ts.map +1 -0
  455. package/script/src/utils/schema.utils.test.d.ts +2 -0
  456. package/script/src/utils/schema.utils.test.d.ts.map +1 -0
  457. package/script/src/utils/schema.utils.test.js +72 -0
  458. package/script/src/utils/source-builder.d.ts +234 -0
  459. package/script/src/utils/source-builder.d.ts.map +1 -0
  460. package/script/src/utils/source-builder.js +451 -0
  461. package/script/src/utils/source-builder.test.d.ts +2 -0
  462. package/script/src/utils/source-builder.test.d.ts.map +1 -0
  463. package/script/src/utils/source-builder.test.js +507 -0
  464. package/script/src/utils/string-builder/options.d.ts.map +1 -0
  465. package/script/src/utils/string-builder/string-builder.d.ts +73 -0
  466. package/script/src/utils/string-builder/string-builder.d.ts.map +1 -0
  467. package/script/src/utils/string-builder/string-builder.js +153 -0
  468. package/script/src/utils/string-builder/string-builder.test.d.ts +2 -0
  469. package/script/src/utils/string-builder/string-builder.test.d.ts.map +1 -0
  470. package/script/src/utils/string-builder/string-builder.test.js +165 -0
  471. package/script/src/utils/string-builder/utils.d.ts.map +1 -0
  472. package/script/src/utils/string.utils.d.ts.map +1 -0
  473. package/script/src/utils/string.utils.test.d.ts +2 -0
  474. package/script/src/utils/string.utils.test.d.ts.map +1 -0
  475. package/script/src/utils/string.utils.test.js +530 -0
  476. package/script/src/utils/string.utils.types.d.ts.map +1 -0
  477. package/script/src/utils/type.utils.d.ts.map +1 -0
  478. package/script/tests/openapi.test.d.ts +2 -0
  479. package/script/tests/openapi.test.d.ts.map +1 -0
  480. package/script/tests/openapi.test.js +35 -0
  481. package/script/tests/schema-factory.d.ts +42 -0
  482. package/script/tests/schema-factory.d.ts.map +1 -0
  483. package/script/tests/schema-factory.js +162 -0
  484. package/src/_dnt.shims.ts +69 -0
  485. package/src/_dnt.test_polyfills.ts +70 -0
  486. package/src/_dnt.test_shims.ts +72 -0
  487. package/src/deps/jsr.io/@std/assert/1.0.11/assertion_error.ts +31 -0
  488. package/src/deps/jsr.io/@std/assert/1.0.11/false.ts +26 -0
  489. package/src/deps/jsr.io/@std/assert/1.0.11/instance_of.ts +64 -0
  490. package/src/deps/jsr.io/@std/assert/1.0.11/match.ts +30 -0
  491. package/src/deps/jsr.io/@std/assert/1.0.11/not_instance_of.ts +33 -0
  492. package/src/deps/jsr.io/@std/assert/1.0.11/not_match.ts +30 -0
  493. package/src/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.ts +42 -0
  494. package/src/deps/jsr.io/@std/assert/1.0.11/strict_equals.ts +67 -0
  495. package/src/deps/jsr.io/@std/expect/1.0.12/_assert_equals.ts +38 -0
  496. package/src/deps/jsr.io/@std/expect/1.0.12/_assert_is_error.ts +54 -0
  497. package/src/deps/jsr.io/@std/expect/1.0.12/_assert_not_equals.ts +35 -0
  498. package/src/deps/jsr.io/@std/expect/1.0.12/_assertions.ts +18 -0
  499. package/src/deps/jsr.io/@std/expect/1.0.12/_asymmetric_matchers.ts +198 -0
  500. package/src/deps/jsr.io/@std/expect/1.0.12/_build_message.ts +51 -0
  501. package/src/deps/jsr.io/@std/expect/1.0.12/_custom_equality_tester.ts +19 -0
  502. package/src/deps/jsr.io/@std/expect/1.0.12/_equal.ts +230 -0
  503. package/src/deps/jsr.io/@std/expect/1.0.12/_extend.ts +16 -0
  504. package/src/deps/jsr.io/@std/expect/1.0.12/_inspect_args.ts +15 -0
  505. package/src/deps/jsr.io/@std/expect/1.0.12/_matchers.ts +1028 -0
  506. package/src/deps/jsr.io/@std/expect/1.0.12/_mock_util.ts +22 -0
  507. package/src/deps/jsr.io/@std/expect/1.0.12/_serializer.ts +15 -0
  508. package/src/deps/jsr.io/@std/expect/1.0.12/_types.ts +923 -0
  509. package/src/deps/jsr.io/@std/expect/1.0.12/_utils.ts +283 -0
  510. package/src/deps/jsr.io/@std/expect/1.0.12/expect.ts +620 -0
  511. package/src/deps/jsr.io/@std/expect/1.0.12/fn.ts +91 -0
  512. package/src/deps/jsr.io/@std/expect/1.0.12/mod.ts +89 -0
  513. package/src/deps/jsr.io/@std/internal/1.0.5/assertion_state.ts +214 -0
  514. package/src/deps/jsr.io/@std/internal/1.0.5/build_message.ts +134 -0
  515. package/src/deps/jsr.io/@std/internal/1.0.5/diff.ts +317 -0
  516. package/src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts +204 -0
  517. package/src/deps/jsr.io/@std/internal/1.0.5/format.ts +39 -0
  518. package/src/deps/jsr.io/@std/internal/1.0.5/styles.ts +233 -0
  519. package/src/deps/jsr.io/@std/internal/1.0.5/types.ts +18 -0
  520. package/src/deps/jsr.io/@std/testing/1.0.9/_test_suite.ts +448 -0
  521. package/src/deps/jsr.io/@std/testing/1.0.9/bdd.ts +1288 -0
  522. package/src/mod.ts +33 -0
  523. package/src/src/ast/node.ts +46 -0
  524. package/src/src/codegen/config.ts +28 -0
  525. package/src/src/codegen/endpoints-generator.ts +72 -0
  526. package/src/src/codegen/generator.ts +181 -0
  527. package/src/src/codegen/internal-utils.ts +6 -0
  528. package/src/src/codegen/schemas-generator.ts +87 -0
  529. package/src/src/codegen/services-generator.ts +77 -0
  530. package/src/src/codegen/types.ts +37 -0
  531. package/src/src/collect/collector.ts +142 -0
  532. package/src/src/collect/helpers.test.ts +91 -0
  533. package/src/src/collect/helpers.ts +36 -0
  534. package/src/src/collect/types.ts +21 -0
  535. package/src/src/internal-utils.ts +5 -0
  536. package/src/src/parse/deref-proxy.ts +64 -0
  537. package/src/src/parse/openapi-types.ts +949 -0
  538. package/src/src/parse/parser.ts +220 -0
  539. package/src/src/parse/types.ts +27 -0
  540. package/src/src/transform/api-types.ts +243 -0
  541. package/src/src/transform/helpers.test.ts +316 -0
  542. package/src/src/transform/helpers.ts +211 -0
  543. package/src/src/transform/transform-document.ts +35 -0
  544. package/src/src/transform/transform-endpoint.ts +331 -0
  545. package/src/src/transform/transform-schema.ts +217 -0
  546. package/src/src/transform/transformer.ts +52 -0
  547. package/src/src/transform/types.ts +52 -0
  548. package/src/src/utils/action-provider.test.ts +32 -0
  549. package/src/src/utils/action-provider.ts +58 -0
  550. package/src/src/utils/array.utils.ts +7 -0
  551. package/src/src/utils/asset-manager.ts +51 -0
  552. package/src/src/utils/class.utils.ts +40 -0
  553. package/src/src/utils/common.utils.test.ts +22 -0
  554. package/src/src/utils/common.utils.ts +86 -0
  555. package/src/src/utils/condition.test.ts +36 -0
  556. package/src/src/utils/condition.ts +7 -0
  557. package/src/src/utils/endpoint.utils.test.ts +36 -0
  558. package/src/src/utils/endpoint.utils.ts +10 -0
  559. package/src/src/utils/error.utils.ts +3 -0
  560. package/src/src/utils/factory.test.ts +31 -0
  561. package/src/src/utils/factory.ts +42 -0
  562. package/src/src/utils/file-system.utils.ts +48 -0
  563. package/src/src/utils/generator.utils.test.ts +16 -0
  564. package/src/src/utils/generator.utils.ts +6 -0
  565. package/src/src/utils/object.utils.test.ts +33 -0
  566. package/src/src/utils/object.utils.ts +32 -0
  567. package/src/src/utils/schema.utils.test.ts +88 -0
  568. package/src/src/utils/schema.utils.ts +142 -0
  569. package/src/src/utils/source-builder.test.ts +657 -0
  570. package/src/src/utils/source-builder.ts +589 -0
  571. package/src/src/utils/string-builder/options.ts +19 -0
  572. package/src/src/utils/string-builder/string-builder.test.ts +188 -0
  573. package/src/src/utils/string-builder/string-builder.ts +165 -0
  574. package/src/src/utils/string-builder/utils.ts +69 -0
  575. package/src/src/utils/string.utils.test.ts +691 -0
  576. package/src/src/utils/string.utils.ts +369 -0
  577. package/src/src/utils/string.utils.types.ts +179 -0
  578. package/src/src/utils/type.utils.ts +93 -0
  579. package/src/tests/openapi.test.ts +50 -0
  580. package/src/tests/schema-factory.ts +185 -0
  581. package/test_runner.js +221 -0
  582. package/esm/index.d.ts +0 -6
  583. package/esm/index.d.ts.map +0 -1
  584. package/esm/index.js +0 -5
  585. package/esm/lib/ast/index.d.ts +0 -2
  586. package/esm/lib/ast/index.d.ts.map +0 -1
  587. package/esm/lib/ast/index.js +0 -1
  588. package/esm/lib/ast/node.d.ts +0 -15
  589. package/esm/lib/ast/node.d.ts.map +0 -1
  590. package/esm/lib/codegen/config.d.ts +0 -16
  591. package/esm/lib/codegen/config.d.ts.map +0 -1
  592. package/esm/lib/codegen/endpoints-generator.d.ts +0 -18
  593. package/esm/lib/codegen/endpoints-generator.d.ts.map +0 -1
  594. package/esm/lib/codegen/generator.d.ts +0 -39
  595. package/esm/lib/codegen/generator.d.ts.map +0 -1
  596. package/esm/lib/codegen/generator.js +0 -115
  597. package/esm/lib/codegen/index.d.ts +0 -7
  598. package/esm/lib/codegen/index.d.ts.map +0 -1
  599. package/esm/lib/codegen/index.js +0 -6
  600. package/esm/lib/codegen/internal-utils.d.ts.map +0 -1
  601. package/esm/lib/codegen/internal-utils.js +0 -5
  602. package/esm/lib/codegen/schemas-generator.d.ts +0 -19
  603. package/esm/lib/codegen/schemas-generator.d.ts.map +0 -1
  604. package/esm/lib/codegen/schemas-generator.js +0 -45
  605. package/esm/lib/codegen/services-generator.d.ts +0 -18
  606. package/esm/lib/codegen/services-generator.d.ts.map +0 -1
  607. package/esm/lib/codegen/types.d.ts +0 -19
  608. package/esm/lib/codegen/types.d.ts.map +0 -1
  609. package/esm/lib/collect/collector.d.ts +0 -4
  610. package/esm/lib/collect/collector.d.ts.map +0 -1
  611. package/esm/lib/collect/helpers.d.ts +0 -5
  612. package/esm/lib/collect/helpers.d.ts.map +0 -1
  613. package/esm/lib/collect/index.d.ts +0 -4
  614. package/esm/lib/collect/index.d.ts.map +0 -1
  615. package/esm/lib/collect/index.js +0 -3
  616. package/esm/lib/collect/types.d.ts +0 -13
  617. package/esm/lib/collect/types.d.ts.map +0 -1
  618. package/esm/lib/internal-utils.d.ts.map +0 -1
  619. package/esm/lib/parse/deref-proxy.d.ts.map +0 -1
  620. package/esm/lib/parse/deref-proxy.js +0 -62
  621. package/esm/lib/parse/index.d.ts +0 -4
  622. package/esm/lib/parse/index.d.ts.map +0 -1
  623. package/esm/lib/parse/index.js +0 -3
  624. package/esm/lib/parse/openapi-types.d.ts.map +0 -1
  625. package/esm/lib/parse/parser.d.ts +0 -19
  626. package/esm/lib/parse/parser.d.ts.map +0 -1
  627. package/esm/lib/parse/parser.js +0 -190
  628. package/esm/lib/parse/types.d.ts.map +0 -1
  629. package/esm/lib/transform/api-types.d.ts +0 -195
  630. package/esm/lib/transform/api-types.d.ts.map +0 -1
  631. package/esm/lib/transform/helpers.d.ts +0 -51
  632. package/esm/lib/transform/helpers.d.ts.map +0 -1
  633. package/esm/lib/transform/helpers.js +0 -158
  634. package/esm/lib/transform/index.d.ts +0 -3
  635. package/esm/lib/transform/index.d.ts.map +0 -1
  636. package/esm/lib/transform/index.js +0 -2
  637. package/esm/lib/transform/transform-document.d.ts +0 -4
  638. package/esm/lib/transform/transform-document.d.ts.map +0 -1
  639. package/esm/lib/transform/transform-endpoint.d.ts +0 -5
  640. package/esm/lib/transform/transform-endpoint.d.ts.map +0 -1
  641. package/esm/lib/transform/transform-endpoint.js +0 -275
  642. package/esm/lib/transform/transform-schema.d.ts +0 -5
  643. package/esm/lib/transform/transform-schema.d.ts.map +0 -1
  644. package/esm/lib/transform/transform-schema.js +0 -182
  645. package/esm/lib/transform/transformer.d.ts +0 -5
  646. package/esm/lib/transform/transformer.d.ts.map +0 -1
  647. package/esm/lib/transform/types.d.ts.map +0 -1
  648. package/esm/lib/utils/action-provider.d.ts.map +0 -1
  649. package/esm/lib/utils/action-provider.js +0 -35
  650. package/esm/lib/utils/array.utils.d.ts.map +0 -1
  651. package/esm/lib/utils/asset-manager.d.ts +0 -8
  652. package/esm/lib/utils/asset-manager.d.ts.map +0 -1
  653. package/esm/lib/utils/asset-manager.js +0 -49
  654. package/esm/lib/utils/class.utils.d.ts.map +0 -1
  655. package/esm/lib/utils/class.utils.js +0 -27
  656. package/esm/lib/utils/common.utils.d.ts.map +0 -1
  657. package/esm/lib/utils/condition.d.ts.map +0 -1
  658. package/esm/lib/utils/endpoint.utils.d.ts +0 -3
  659. package/esm/lib/utils/endpoint.utils.d.ts.map +0 -1
  660. package/esm/lib/utils/error.utils.d.ts.map +0 -1
  661. package/esm/lib/utils/factory.d.ts +0 -21
  662. package/esm/lib/utils/factory.d.ts.map +0 -1
  663. package/esm/lib/utils/file-system.utils.d.ts.map +0 -1
  664. package/esm/lib/utils/generator.utils.d.ts.map +0 -1
  665. package/esm/lib/utils/index.d.ts +0 -16
  666. package/esm/lib/utils/index.d.ts.map +0 -1
  667. package/esm/lib/utils/index.js +0 -15
  668. package/esm/lib/utils/object.utils.d.ts.map +0 -1
  669. package/esm/lib/utils/object.utils.js +0 -35
  670. package/esm/lib/utils/schema.utils.d.ts +0 -11
  671. package/esm/lib/utils/schema.utils.d.ts.map +0 -1
  672. package/esm/lib/utils/source-builder.d.ts +0 -233
  673. package/esm/lib/utils/source-builder.d.ts.map +0 -1
  674. package/esm/lib/utils/source-builder.js +0 -446
  675. package/esm/lib/utils/string-builder/index.d.ts +0 -4
  676. package/esm/lib/utils/string-builder/index.d.ts.map +0 -1
  677. package/esm/lib/utils/string-builder/index.js +0 -3
  678. package/esm/lib/utils/string-builder/options.d.ts.map +0 -1
  679. package/esm/lib/utils/string-builder/string-builder.d.ts +0 -73
  680. package/esm/lib/utils/string-builder/string-builder.d.ts.map +0 -1
  681. package/esm/lib/utils/string-builder/string-builder.js +0 -149
  682. package/esm/lib/utils/string-builder/utils.d.ts.map +0 -1
  683. package/esm/lib/utils/string.utils.d.ts.map +0 -1
  684. package/esm/lib/utils/string.utils.types.d.ts.map +0 -1
  685. package/esm/lib/utils/type.utils.d.ts.map +0 -1
  686. package/script/index.d.ts +0 -6
  687. package/script/index.d.ts.map +0 -1
  688. package/script/index.js +0 -8
  689. package/script/lib/ast/index.d.ts +0 -2
  690. package/script/lib/ast/index.d.ts.map +0 -1
  691. package/script/lib/ast/index.js +0 -4
  692. package/script/lib/ast/node.d.ts +0 -15
  693. package/script/lib/ast/node.d.ts.map +0 -1
  694. package/script/lib/codegen/config.d.ts +0 -16
  695. package/script/lib/codegen/config.d.ts.map +0 -1
  696. package/script/lib/codegen/endpoints-generator.d.ts +0 -18
  697. package/script/lib/codegen/endpoints-generator.d.ts.map +0 -1
  698. package/script/lib/codegen/generator.d.ts +0 -39
  699. package/script/lib/codegen/generator.d.ts.map +0 -1
  700. package/script/lib/codegen/generator.js +0 -121
  701. package/script/lib/codegen/index.d.ts +0 -7
  702. package/script/lib/codegen/index.d.ts.map +0 -1
  703. package/script/lib/codegen/index.js +0 -9
  704. package/script/lib/codegen/internal-utils.d.ts.map +0 -1
  705. package/script/lib/codegen/internal-utils.js +0 -8
  706. package/script/lib/codegen/schemas-generator.d.ts +0 -19
  707. package/script/lib/codegen/schemas-generator.d.ts.map +0 -1
  708. package/script/lib/codegen/schemas-generator.js +0 -49
  709. package/script/lib/codegen/services-generator.d.ts +0 -18
  710. package/script/lib/codegen/services-generator.d.ts.map +0 -1
  711. package/script/lib/codegen/types.d.ts +0 -19
  712. package/script/lib/codegen/types.d.ts.map +0 -1
  713. package/script/lib/collect/collector.d.ts +0 -4
  714. package/script/lib/collect/collector.d.ts.map +0 -1
  715. package/script/lib/collect/helpers.d.ts +0 -5
  716. package/script/lib/collect/helpers.d.ts.map +0 -1
  717. package/script/lib/collect/index.d.ts +0 -4
  718. package/script/lib/collect/index.d.ts.map +0 -1
  719. package/script/lib/collect/index.js +0 -6
  720. package/script/lib/collect/types.d.ts +0 -13
  721. package/script/lib/collect/types.d.ts.map +0 -1
  722. package/script/lib/internal-utils.d.ts.map +0 -1
  723. package/script/lib/parse/deref-proxy.d.ts.map +0 -1
  724. package/script/lib/parse/deref-proxy.js +0 -65
  725. package/script/lib/parse/index.d.ts +0 -4
  726. package/script/lib/parse/index.d.ts.map +0 -1
  727. package/script/lib/parse/index.js +0 -6
  728. package/script/lib/parse/openapi-types.d.ts.map +0 -1
  729. package/script/lib/parse/parser.d.ts +0 -19
  730. package/script/lib/parse/parser.d.ts.map +0 -1
  731. package/script/lib/parse/parser.js +0 -195
  732. package/script/lib/parse/types.d.ts.map +0 -1
  733. package/script/lib/transform/api-types.d.ts +0 -195
  734. package/script/lib/transform/api-types.d.ts.map +0 -1
  735. package/script/lib/transform/helpers.d.ts +0 -51
  736. package/script/lib/transform/helpers.d.ts.map +0 -1
  737. package/script/lib/transform/helpers.js +0 -171
  738. package/script/lib/transform/index.d.ts +0 -3
  739. package/script/lib/transform/index.d.ts.map +0 -1
  740. package/script/lib/transform/index.js +0 -5
  741. package/script/lib/transform/transform-document.d.ts +0 -4
  742. package/script/lib/transform/transform-document.d.ts.map +0 -1
  743. package/script/lib/transform/transform-endpoint.d.ts +0 -5
  744. package/script/lib/transform/transform-endpoint.d.ts.map +0 -1
  745. package/script/lib/transform/transform-endpoint.js +0 -278
  746. package/script/lib/transform/transform-schema.d.ts +0 -5
  747. package/script/lib/transform/transform-schema.d.ts.map +0 -1
  748. package/script/lib/transform/transform-schema.js +0 -185
  749. package/script/lib/transform/transformer.d.ts +0 -5
  750. package/script/lib/transform/transformer.d.ts.map +0 -1
  751. package/script/lib/transform/types.d.ts.map +0 -1
  752. package/script/lib/utils/action-provider.d.ts.map +0 -1
  753. package/script/lib/utils/action-provider.js +0 -39
  754. package/script/lib/utils/array.utils.d.ts.map +0 -1
  755. package/script/lib/utils/asset-manager.d.ts +0 -8
  756. package/script/lib/utils/asset-manager.d.ts.map +0 -1
  757. package/script/lib/utils/asset-manager.js +0 -54
  758. package/script/lib/utils/class.utils.d.ts.map +0 -1
  759. package/script/lib/utils/class.utils.js +0 -32
  760. package/script/lib/utils/common.utils.d.ts.map +0 -1
  761. package/script/lib/utils/condition.d.ts.map +0 -1
  762. package/script/lib/utils/endpoint.utils.d.ts +0 -3
  763. package/script/lib/utils/endpoint.utils.d.ts.map +0 -1
  764. package/script/lib/utils/error.utils.d.ts.map +0 -1
  765. package/script/lib/utils/factory.d.ts +0 -21
  766. package/script/lib/utils/factory.d.ts.map +0 -1
  767. package/script/lib/utils/file-system.utils.d.ts.map +0 -1
  768. package/script/lib/utils/generator.utils.d.ts.map +0 -1
  769. package/script/lib/utils/index.d.ts +0 -16
  770. package/script/lib/utils/index.d.ts.map +0 -1
  771. package/script/lib/utils/index.js +0 -18
  772. package/script/lib/utils/object.utils.d.ts.map +0 -1
  773. package/script/lib/utils/object.utils.js +0 -39
  774. package/script/lib/utils/schema.utils.d.ts +0 -11
  775. package/script/lib/utils/schema.utils.d.ts.map +0 -1
  776. package/script/lib/utils/source-builder.d.ts +0 -233
  777. package/script/lib/utils/source-builder.d.ts.map +0 -1
  778. package/script/lib/utils/source-builder.js +0 -450
  779. package/script/lib/utils/string-builder/index.d.ts +0 -4
  780. package/script/lib/utils/string-builder/index.d.ts.map +0 -1
  781. package/script/lib/utils/string-builder/index.js +0 -8
  782. package/script/lib/utils/string-builder/options.d.ts.map +0 -1
  783. package/script/lib/utils/string-builder/string-builder.d.ts +0 -73
  784. package/script/lib/utils/string-builder/string-builder.d.ts.map +0 -1
  785. package/script/lib/utils/string-builder/string-builder.js +0 -153
  786. package/script/lib/utils/string-builder/utils.d.ts.map +0 -1
  787. package/script/lib/utils/string.utils.d.ts.map +0 -1
  788. package/script/lib/utils/string.utils.types.d.ts.map +0 -1
  789. package/script/lib/utils/type.utils.d.ts.map +0 -1
  790. /package/esm/{lib → src}/ast/node.js +0 -0
  791. /package/esm/{lib → src}/codegen/config.js +0 -0
  792. /package/esm/{lib → src}/codegen/endpoints-generator.js +0 -0
  793. /package/esm/{lib → src}/codegen/internal-utils.d.ts +0 -0
  794. /package/esm/{lib → src}/codegen/services-generator.js +0 -0
  795. /package/esm/{lib → src}/codegen/types.js +0 -0
  796. /package/esm/{lib → src}/collect/collector.js +0 -0
  797. /package/esm/{lib → src}/collect/helpers.js +0 -0
  798. /package/esm/{lib → src}/collect/types.js +0 -0
  799. /package/esm/{lib → src}/internal-utils.d.ts +0 -0
  800. /package/esm/{lib → src}/internal-utils.js +0 -0
  801. /package/esm/{lib → src}/parse/deref-proxy.d.ts +0 -0
  802. /package/esm/{lib → src}/parse/openapi-types.d.ts +0 -0
  803. /package/esm/{lib → src}/parse/openapi-types.js +0 -0
  804. /package/esm/{lib → src}/parse/types.d.ts +0 -0
  805. /package/esm/{lib → src}/parse/types.js +0 -0
  806. /package/esm/{lib → src}/transform/api-types.js +0 -0
  807. /package/esm/{lib → src}/transform/transform-document.js +0 -0
  808. /package/esm/{lib → src}/transform/transformer.js +0 -0
  809. /package/esm/{lib → src}/transform/types.d.ts +0 -0
  810. /package/esm/{lib → src}/transform/types.js +0 -0
  811. /package/esm/{lib → src}/utils/action-provider.d.ts +0 -0
  812. /package/esm/{lib → src}/utils/array.utils.d.ts +0 -0
  813. /package/esm/{lib → src}/utils/array.utils.js +0 -0
  814. /package/esm/{lib → src}/utils/class.utils.d.ts +0 -0
  815. /package/esm/{lib → src}/utils/common.utils.d.ts +0 -0
  816. /package/esm/{lib → src}/utils/common.utils.js +0 -0
  817. /package/esm/{lib → src}/utils/condition.d.ts +0 -0
  818. /package/esm/{lib → src}/utils/condition.js +0 -0
  819. /package/esm/{lib → src}/utils/endpoint.utils.js +0 -0
  820. /package/esm/{lib → src}/utils/error.utils.d.ts +0 -0
  821. /package/esm/{lib → src}/utils/error.utils.js +0 -0
  822. /package/esm/{lib → src}/utils/factory.js +0 -0
  823. /package/esm/{lib → src}/utils/file-system.utils.d.ts +0 -0
  824. /package/esm/{lib → src}/utils/file-system.utils.js +0 -0
  825. /package/esm/{lib → src}/utils/generator.utils.d.ts +0 -0
  826. /package/esm/{lib → src}/utils/generator.utils.js +0 -0
  827. /package/esm/{lib → src}/utils/object.utils.d.ts +0 -0
  828. /package/esm/{lib → src}/utils/schema.utils.js +0 -0
  829. /package/esm/{lib → src}/utils/string-builder/options.d.ts +0 -0
  830. /package/esm/{lib → src}/utils/string-builder/options.js +0 -0
  831. /package/esm/{lib → src}/utils/string-builder/utils.d.ts +0 -0
  832. /package/esm/{lib → src}/utils/string-builder/utils.js +0 -0
  833. /package/esm/{lib → src}/utils/string.utils.d.ts +0 -0
  834. /package/esm/{lib → src}/utils/string.utils.js +0 -0
  835. /package/esm/{lib → src}/utils/string.utils.types.d.ts +0 -0
  836. /package/esm/{lib → src}/utils/string.utils.types.js +0 -0
  837. /package/esm/{lib → src}/utils/type.utils.d.ts +0 -0
  838. /package/esm/{lib → src}/utils/type.utils.js +0 -0
  839. /package/script/{lib → src}/ast/node.js +0 -0
  840. /package/script/{lib → src}/codegen/config.js +0 -0
  841. /package/script/{lib → src}/codegen/endpoints-generator.js +0 -0
  842. /package/script/{lib → src}/codegen/internal-utils.d.ts +0 -0
  843. /package/script/{lib → src}/codegen/services-generator.js +0 -0
  844. /package/script/{lib → src}/codegen/types.js +0 -0
  845. /package/script/{lib → src}/collect/collector.js +0 -0
  846. /package/script/{lib → src}/collect/helpers.js +0 -0
  847. /package/script/{lib → src}/collect/types.js +0 -0
  848. /package/script/{lib → src}/internal-utils.d.ts +0 -0
  849. /package/script/{lib → src}/internal-utils.js +0 -0
  850. /package/script/{lib → src}/parse/deref-proxy.d.ts +0 -0
  851. /package/script/{lib → src}/parse/openapi-types.d.ts +0 -0
  852. /package/script/{lib → src}/parse/openapi-types.js +0 -0
  853. /package/script/{lib → src}/parse/types.d.ts +0 -0
  854. /package/script/{lib → src}/parse/types.js +0 -0
  855. /package/script/{lib → src}/transform/api-types.js +0 -0
  856. /package/script/{lib → src}/transform/transform-document.js +0 -0
  857. /package/script/{lib → src}/transform/transformer.js +0 -0
  858. /package/script/{lib → src}/transform/types.d.ts +0 -0
  859. /package/script/{lib → src}/transform/types.js +0 -0
  860. /package/script/{lib → src}/utils/action-provider.d.ts +0 -0
  861. /package/script/{lib → src}/utils/array.utils.d.ts +0 -0
  862. /package/script/{lib → src}/utils/array.utils.js +0 -0
  863. /package/script/{lib → src}/utils/class.utils.d.ts +0 -0
  864. /package/script/{lib → src}/utils/common.utils.d.ts +0 -0
  865. /package/script/{lib → src}/utils/common.utils.js +0 -0
  866. /package/script/{lib → src}/utils/condition.d.ts +0 -0
  867. /package/script/{lib → src}/utils/condition.js +0 -0
  868. /package/script/{lib → src}/utils/endpoint.utils.js +0 -0
  869. /package/script/{lib → src}/utils/error.utils.d.ts +0 -0
  870. /package/script/{lib → src}/utils/error.utils.js +0 -0
  871. /package/script/{lib → src}/utils/factory.js +0 -0
  872. /package/script/{lib → src}/utils/file-system.utils.d.ts +0 -0
  873. /package/script/{lib → src}/utils/file-system.utils.js +0 -0
  874. /package/script/{lib → src}/utils/generator.utils.d.ts +0 -0
  875. /package/script/{lib → src}/utils/generator.utils.js +0 -0
  876. /package/script/{lib → src}/utils/object.utils.d.ts +0 -0
  877. /package/script/{lib → src}/utils/schema.utils.js +0 -0
  878. /package/script/{lib → src}/utils/string-builder/options.d.ts +0 -0
  879. /package/script/{lib → src}/utils/string-builder/options.js +0 -0
  880. /package/script/{lib → src}/utils/string-builder/utils.d.ts +0 -0
  881. /package/script/{lib → src}/utils/string-builder/utils.js +0 -0
  882. /package/script/{lib → src}/utils/string.utils.d.ts +0 -0
  883. /package/script/{lib → src}/utils/string.utils.js +0 -0
  884. /package/script/{lib → src}/utils/string.utils.types.d.ts +0 -0
  885. /package/script/{lib → src}/utils/string.utils.types.js +0 -0
  886. /package/script/{lib → src}/utils/type.utils.d.ts +0 -0
  887. /package/script/{lib → src}/utils/type.utils.js +0 -0
@@ -0,0 +1,1028 @@
1
+ // Copyright 2018-2025 the Deno authors. MIT license.
2
+
3
+ import { assertNotStrictEquals } from "../../assert/1.0.11/not_strict_equals.js";
4
+ import { assertStrictEquals } from "../../assert/1.0.11/strict_equals.js";
5
+ import { assertInstanceOf } from "../../assert/1.0.11/instance_of.js";
6
+ import { assertIsError } from "./_assert_is_error.js";
7
+ import { assertNotInstanceOf } from "../../assert/1.0.11/not_instance_of.js";
8
+ import { assertMatch } from "../../assert/1.0.11/match.js";
9
+ import { assertNotMatch } from "../../assert/1.0.11/not_match.js";
10
+ import { AssertionError } from "../../assert/1.0.11/assertion_error.js";
11
+
12
+ import { assertEquals } from "./_assert_equals.js";
13
+ import { assertNotEquals } from "./_assert_not_equals.js";
14
+ import { equal } from "./_equal.js";
15
+ import { format } from "../../internal/1.0.5/format.js";
16
+ import type { AnyConstructor, MatcherContext, MatchResult } from "./_types.js";
17
+ import { getMockCalls } from "./_mock_util.js";
18
+ import { inspectArg, inspectArgs } from "./_inspect_args.js";
19
+ import {
20
+ buildEqualOptions,
21
+ iterableEquality,
22
+ subsetEquality,
23
+ } from "./_utils.js";
24
+
25
+ export function toBe(context: MatcherContext, expect: unknown): MatchResult {
26
+ if (context.isNot) {
27
+ assertNotStrictEquals(context.value, expect, context.customMessage);
28
+ } else {
29
+ assertStrictEquals(context.value, expect, context.customMessage);
30
+ }
31
+ }
32
+
33
+ export function toEqual(
34
+ context: MatcherContext,
35
+ expected: unknown,
36
+ ): MatchResult {
37
+ const v = context.value;
38
+ const e = expected;
39
+ const equalsOptions = buildEqualOptions({
40
+ ...context,
41
+ customTesters: [
42
+ ...context.customTesters,
43
+ iterableEquality,
44
+ ],
45
+ });
46
+
47
+ if (context.isNot) {
48
+ assertNotEquals(v, e, equalsOptions);
49
+ } else {
50
+ assertEquals(v, e, equalsOptions);
51
+ }
52
+ }
53
+
54
+ export function toStrictEqual(
55
+ context: MatcherContext,
56
+ expected: unknown,
57
+ ): MatchResult {
58
+ const equalsOptions = buildEqualOptions({
59
+ ...context,
60
+ strictCheck: true,
61
+ customTesters: [
62
+ ...context.customTesters,
63
+ iterableEquality,
64
+ ],
65
+ });
66
+
67
+ if (context.isNot) {
68
+ assertNotEquals(context.value, expected, equalsOptions);
69
+ } else {
70
+ assertEquals(context.value, expected, equalsOptions);
71
+ }
72
+ }
73
+
74
+ export function toBeCloseTo(
75
+ context: MatcherContext,
76
+ expected: number,
77
+ numDigits = 2,
78
+ ): MatchResult {
79
+ if (numDigits < 0) {
80
+ throw new Error(
81
+ "toBeCloseTo second argument must be a non-negative integer. Got " +
82
+ numDigits,
83
+ );
84
+ }
85
+ const tolerance = 0.5 * Math.pow(10, -numDigits);
86
+ const value = Number(context.value);
87
+ const pass = Math.abs(expected - value) < tolerance;
88
+
89
+ if (context.isNot) {
90
+ if (pass) {
91
+ const defaultMessage =
92
+ `Expected the value ${value} not to be close to ${expected} (using ${numDigits} digits), but it is`;
93
+ throw new AssertionError(
94
+ context.customMessage
95
+ ? `${context.customMessage}: ${defaultMessage}`
96
+ : defaultMessage,
97
+ );
98
+ }
99
+ } else {
100
+ if (!pass) {
101
+ const defaultMessage =
102
+ `Expected the value ${value} to be close to ${expected} (using ${numDigits} digits), but it is not`;
103
+ throw new AssertionError(
104
+ context.customMessage
105
+ ? `${context.customMessage}: ${defaultMessage}`
106
+ : defaultMessage,
107
+ );
108
+ }
109
+ }
110
+ }
111
+
112
+ export function toBeDefined(context: MatcherContext): MatchResult {
113
+ if (context.isNot) {
114
+ assertStrictEquals(context.value, undefined, context.customMessage);
115
+ } else {
116
+ assertNotStrictEquals(context.value, undefined, context.customMessage);
117
+ }
118
+ }
119
+
120
+ export function toBeUndefined(context: MatcherContext): MatchResult {
121
+ if (context.isNot) {
122
+ assertNotStrictEquals(
123
+ context.value,
124
+ undefined,
125
+ context.customMessage,
126
+ );
127
+ } else {
128
+ assertStrictEquals(context.value, undefined, context.customMessage);
129
+ }
130
+ }
131
+
132
+ export function toBeFalsy(
133
+ context: MatcherContext,
134
+ ): MatchResult {
135
+ const isFalsy = !(context.value);
136
+ if (context.isNot) {
137
+ if (isFalsy) {
138
+ const defaultMessage = `Expected ${context.value} to NOT be falsy`;
139
+ throw new AssertionError(
140
+ context.customMessage
141
+ ? `${context.customMessage}: ${defaultMessage}`
142
+ : defaultMessage,
143
+ );
144
+ }
145
+ } else {
146
+ if (!isFalsy) {
147
+ const defaultMessage = `Expected ${context.value} to be falsy`;
148
+ throw new AssertionError(
149
+ context.customMessage
150
+ ? `${context.customMessage}: ${defaultMessage}`
151
+ : defaultMessage,
152
+ );
153
+ }
154
+ }
155
+ }
156
+
157
+ export function toBeTruthy(
158
+ context: MatcherContext,
159
+ ): MatchResult {
160
+ const isTruthy = !!(context.value);
161
+ if (context.isNot) {
162
+ if (isTruthy) {
163
+ const defaultMessage = `Expected ${context.value} to NOT be truthy`;
164
+ throw new AssertionError(
165
+ context.customMessage
166
+ ? `${context.customMessage}: ${defaultMessage}`
167
+ : defaultMessage,
168
+ );
169
+ }
170
+ } else {
171
+ if (!isTruthy) {
172
+ const defaultMessage = `Expected ${context.value} to be truthy`;
173
+ throw new AssertionError(
174
+ context.customMessage
175
+ ? `${context.customMessage}: ${defaultMessage}`
176
+ : defaultMessage,
177
+ );
178
+ }
179
+ }
180
+ }
181
+
182
+ export function toBeGreaterThanOrEqual(
183
+ context: MatcherContext,
184
+ expected: number,
185
+ ): MatchResult {
186
+ const isGreaterOrEqual = Number(context.value) >= Number(expected);
187
+ if (context.isNot) {
188
+ if (isGreaterOrEqual) {
189
+ const defaultMessage =
190
+ `Expected ${context.value} to NOT be greater than or equal ${expected}`;
191
+ throw new AssertionError(
192
+ context.customMessage
193
+ ? `${context.customMessage}: ${defaultMessage}`
194
+ : defaultMessage,
195
+ );
196
+ }
197
+ } else {
198
+ if (!isGreaterOrEqual) {
199
+ const defaultMessage =
200
+ `Expected ${context.value} to be greater than or equal ${expected}`;
201
+ throw new AssertionError(
202
+ context.customMessage
203
+ ? `${context.customMessage}: ${defaultMessage}`
204
+ : defaultMessage,
205
+ );
206
+ }
207
+ }
208
+ }
209
+
210
+ export function toBeGreaterThan(
211
+ context: MatcherContext,
212
+ expected: number,
213
+ ): MatchResult {
214
+ const isGreater = Number(context.value) > Number(expected);
215
+ if (context.isNot) {
216
+ if (isGreater) {
217
+ const defaultMessage =
218
+ `Expected ${context.value} to NOT be greater than ${expected}`;
219
+ throw new AssertionError(
220
+ context.customMessage
221
+ ? `${context.customMessage}: ${defaultMessage}`
222
+ : defaultMessage,
223
+ );
224
+ }
225
+ } else {
226
+ if (!isGreater) {
227
+ const defaultMessage =
228
+ `Expected ${context.value} to be greater than ${expected}`;
229
+ throw new AssertionError(
230
+ context.customMessage
231
+ ? `${context.customMessage}: ${defaultMessage}`
232
+ : defaultMessage,
233
+ );
234
+ }
235
+ }
236
+ }
237
+
238
+ export function toBeInstanceOf<T extends AnyConstructor>(
239
+ context: MatcherContext,
240
+ expected: T,
241
+ ): MatchResult {
242
+ if (context.isNot) {
243
+ assertNotInstanceOf(context.value, expected);
244
+ } else {
245
+ assertInstanceOf(context.value, expected);
246
+ }
247
+ }
248
+ export function toBeLessThanOrEqual(
249
+ context: MatcherContext,
250
+ expected: number,
251
+ ): MatchResult {
252
+ const isLower = Number(context.value) <= Number(expected);
253
+ if (context.isNot) {
254
+ if (isLower) {
255
+ const defaultMessage =
256
+ `Expected ${context.value} to NOT be lower than or equal ${expected}`;
257
+ throw new AssertionError(
258
+ context.customMessage
259
+ ? `${context.customMessage}: ${defaultMessage}`
260
+ : defaultMessage,
261
+ );
262
+ }
263
+ } else {
264
+ if (!isLower) {
265
+ const defaultMessage =
266
+ `Expected ${context.value} to be lower than or equal ${expected}`;
267
+ throw new AssertionError(
268
+ context.customMessage
269
+ ? `${context.customMessage}: ${defaultMessage}`
270
+ : defaultMessage,
271
+ );
272
+ }
273
+ }
274
+ }
275
+ export function toBeLessThan(
276
+ context: MatcherContext,
277
+ expected: number,
278
+ ): MatchResult {
279
+ const isLower = Number(context.value) < Number(expected);
280
+ if (context.isNot) {
281
+ if (isLower) {
282
+ const defaultMessage =
283
+ `Expected ${context.value} to NOT be lower than ${expected}`;
284
+ throw new AssertionError(
285
+ context.customMessage
286
+ ? `${context.customMessage}: ${defaultMessage}`
287
+ : defaultMessage,
288
+ );
289
+ }
290
+ } else {
291
+ if (!isLower) {
292
+ const defaultMessage =
293
+ `Expected ${context.value} to be lower than ${expected}`;
294
+ throw new AssertionError(
295
+ context.customMessage
296
+ ? `${context.customMessage}: ${defaultMessage}`
297
+ : defaultMessage,
298
+ );
299
+ }
300
+ }
301
+ }
302
+ export function toBeNaN(context: MatcherContext): MatchResult {
303
+ const equalsOptions = buildEqualOptions(context);
304
+ if (context.isNot) {
305
+ assertNotEquals(
306
+ isNaN(Number(context.value)),
307
+ true,
308
+ {
309
+ ...equalsOptions,
310
+ msg: equalsOptions.msg || `Expected ${context.value} to not be NaN`,
311
+ },
312
+ );
313
+ } else {
314
+ assertEquals(
315
+ isNaN(Number(context.value)),
316
+ true,
317
+ {
318
+ ...equalsOptions,
319
+ msg: equalsOptions.msg || `Expected ${context.value} to be NaN`,
320
+ },
321
+ );
322
+ }
323
+ }
324
+
325
+ export function toBeNull(context: MatcherContext): MatchResult {
326
+ if (context.isNot) {
327
+ assertNotStrictEquals(
328
+ context.value as number,
329
+ null,
330
+ context.customMessage || `Expected ${context.value} to not be null`,
331
+ );
332
+ } else {
333
+ assertStrictEquals(
334
+ context.value as number,
335
+ null,
336
+ context.customMessage || `Expected ${context.value} to be null`,
337
+ );
338
+ }
339
+ }
340
+
341
+ export function toHaveLength(
342
+ context: MatcherContext,
343
+ expected: number,
344
+ ): MatchResult {
345
+ const { value } = context;
346
+ // deno-lint-ignore no-explicit-any
347
+ const maybeLength = (value as any)?.length;
348
+ const hasLength = maybeLength === expected;
349
+
350
+ if (context.isNot) {
351
+ if (hasLength) {
352
+ const defaultMessage =
353
+ `Expected value not to have length ${expected}, but it does`;
354
+ throw new AssertionError(
355
+ context.customMessage
356
+ ? `${context.customMessage}: ${defaultMessage}`
357
+ : defaultMessage,
358
+ );
359
+ }
360
+ } else {
361
+ if (!hasLength) {
362
+ const defaultMessage =
363
+ `Expected value to have length ${expected}, but it does not: the value has length ${maybeLength}`;
364
+ throw new AssertionError(
365
+ context.customMessage
366
+ ? `${context.customMessage}: ${defaultMessage}`
367
+ : defaultMessage,
368
+ );
369
+ }
370
+ }
371
+ }
372
+
373
+ export function toHaveProperty(
374
+ context: MatcherContext,
375
+ propName: string | string[],
376
+ v?: unknown,
377
+ ): MatchResult {
378
+ const { value } = context;
379
+
380
+ let propPath = [] as string[];
381
+ if (Array.isArray(propName)) {
382
+ propPath = propName;
383
+ } else {
384
+ propPath = propName.split(".");
385
+ }
386
+
387
+ // deno-lint-ignore no-explicit-any
388
+ let current = value as any;
389
+ while (true) {
390
+ if (current === undefined || current === null) {
391
+ break;
392
+ }
393
+ if (propPath.length === 0) {
394
+ break;
395
+ }
396
+ const prop = propPath.shift()!;
397
+ current = current[prop];
398
+ }
399
+
400
+ let hasProperty;
401
+ if (v) {
402
+ hasProperty = current !== undefined && propPath.length === 0 &&
403
+ equal(current, v, context);
404
+ } else {
405
+ hasProperty = current !== undefined && propPath.length === 0;
406
+ }
407
+
408
+ let ofValue = "";
409
+ if (v) {
410
+ ofValue = ` of the value ${inspectArg(v)}`;
411
+ }
412
+
413
+ if (context.isNot) {
414
+ if (hasProperty) {
415
+ const defaultMessage = `Expected the value not to have the property ${
416
+ propPath.join(".")
417
+ }${ofValue}, but it does`;
418
+ throw new AssertionError(
419
+ context.customMessage
420
+ ? `${context.customMessage}: ${defaultMessage}`
421
+ : defaultMessage,
422
+ );
423
+ }
424
+ } else {
425
+ if (!hasProperty) {
426
+ const defaultMessage = `Expected the value to have the property ${
427
+ propPath.join(".")
428
+ }${ofValue}, but it does not`;
429
+ throw new AssertionError(
430
+ context.customMessage
431
+ ? `${context.customMessage}: ${defaultMessage}`
432
+ : defaultMessage,
433
+ );
434
+ }
435
+ }
436
+ }
437
+
438
+ export function toContain(
439
+ context: MatcherContext,
440
+ expected: unknown,
441
+ ): MatchResult {
442
+ // deno-lint-ignore no-explicit-any
443
+ const doesContain = (context.value as any)?.includes?.(expected);
444
+
445
+ const fmtValue = format(context.value);
446
+ const fmtExpected = format(expected);
447
+
448
+ if (context.isNot) {
449
+ if (doesContain) {
450
+ const defaultMessage =
451
+ `The value ${fmtValue} contains the expected item ${fmtExpected}`;
452
+ throw new AssertionError(
453
+ context.customMessage
454
+ ? `${context.customMessage}: ${defaultMessage}`
455
+ : defaultMessage,
456
+ );
457
+ }
458
+ } else {
459
+ if (!doesContain) {
460
+ const defaultMessage =
461
+ `The value ${fmtValue} doesn't contain the expected item ${fmtExpected}`;
462
+ throw new AssertionError(
463
+ context.customMessage
464
+ ? `${context.customMessage}: ${defaultMessage}`
465
+ : defaultMessage,
466
+ );
467
+ }
468
+ }
469
+ }
470
+
471
+ export function toContainEqual(
472
+ context: MatcherContext,
473
+ expected: unknown,
474
+ ): MatchResult {
475
+ const { value } = context;
476
+ assertIsIterable(value);
477
+ let doesContain = false;
478
+
479
+ for (const item of value) {
480
+ if (equal(item, expected, context)) {
481
+ doesContain = true;
482
+ break;
483
+ }
484
+ }
485
+
486
+ const prettyStringify = (js: unknown) =>
487
+ JSON.stringify(js, null, "\t")
488
+ .replace(/\"|\n|\t/g, "")
489
+ .slice(0, 100);
490
+
491
+ const fmtValue = prettyStringify(context.value);
492
+ const fmtExpected = prettyStringify(expected);
493
+
494
+ if (context.isNot) {
495
+ if (doesContain) {
496
+ const defaultMessage = `The value contains the expected item:
497
+ Value: ${fmtValue}
498
+ Expected: ${fmtExpected}`;
499
+ throw new AssertionError(
500
+ context.customMessage
501
+ ? `${context.customMessage}: ${defaultMessage}`
502
+ : defaultMessage,
503
+ );
504
+ }
505
+ } else {
506
+ if (!doesContain) {
507
+ const defaultMessage = `The value doesn't contain the expected item:
508
+ Value: ${fmtValue}
509
+ Expected: ${fmtExpected}`;
510
+ throw new AssertionError(
511
+ context.customMessage
512
+ ? `${context.customMessage}: ${defaultMessage}`
513
+ : defaultMessage,
514
+ );
515
+ }
516
+ }
517
+ }
518
+
519
+ // deno-lint-ignore no-explicit-any
520
+ function assertIsIterable(value: any): asserts value is Iterable<unknown> {
521
+ if (value == null) {
522
+ throw new AssertionError("The value is null or undefined");
523
+ }
524
+ if (typeof value[Symbol.iterator] !== "function") {
525
+ throw new AssertionError("The value is not iterable");
526
+ }
527
+ }
528
+
529
+ export function toMatch(
530
+ context: MatcherContext,
531
+ expected: RegExp,
532
+ ): MatchResult {
533
+ if (context.isNot) {
534
+ assertNotMatch(
535
+ String(context.value),
536
+ expected,
537
+ context.customMessage,
538
+ );
539
+ } else {
540
+ assertMatch(String(context.value), expected, context.customMessage);
541
+ }
542
+ }
543
+
544
+ export function toMatchObject(
545
+ context: MatcherContext,
546
+ expected: Record<PropertyKey, unknown> | Record<PropertyKey, unknown>[],
547
+ ): MatchResult {
548
+ const received = context.value;
549
+
550
+ const defaultMsg = "Received value must be an object";
551
+
552
+ if (typeof received !== "object" || received === null) {
553
+ throw new AssertionError(
554
+ context.customMessage
555
+ ? `${context.customMessage}: ${defaultMsg}`
556
+ : defaultMsg,
557
+ );
558
+ }
559
+
560
+ if (typeof expected !== "object" || expected === null) {
561
+ throw new AssertionError(
562
+ context.customMessage
563
+ ? `${context.customMessage}: ${defaultMsg}`
564
+ : defaultMsg,
565
+ );
566
+ }
567
+
568
+ const pass = equal(context.value, expected, {
569
+ strictCheck: false,
570
+ customTesters: [
571
+ ...context.customTesters,
572
+ iterableEquality,
573
+ subsetEquality,
574
+ ],
575
+ });
576
+
577
+ const triggerError = () => {
578
+ const actualString = format(context.value);
579
+ const expectedString = format(expected);
580
+
581
+ if (context.isNot) {
582
+ const defaultMessage =
583
+ `Expected ${actualString} to NOT match ${expectedString}`;
584
+ throw new AssertionError(
585
+ context.customMessage
586
+ ? `${context.customMessage}: ${defaultMessage}`
587
+ : defaultMessage,
588
+ );
589
+ } else {
590
+ const defaultMessage =
591
+ `Expected ${actualString} to match ${expectedString}`;
592
+ throw new AssertionError(
593
+ context.customMessage
594
+ ? `${context.customMessage}: ${defaultMessage}`
595
+ : defaultMessage,
596
+ );
597
+ }
598
+ };
599
+
600
+ if (context.isNot && pass || !context.isNot && !pass) {
601
+ triggerError();
602
+ }
603
+ }
604
+
605
+ export function toHaveBeenCalled(context: MatcherContext): MatchResult {
606
+ const calls = getMockCalls(context.value);
607
+ const hasBeenCalled = calls.length > 0;
608
+
609
+ if (context.isNot) {
610
+ if (hasBeenCalled) {
611
+ const defaultMessage =
612
+ `Expected mock function not to be called, but it was called ${calls.length} time(s)`;
613
+ throw new AssertionError(
614
+ context.customMessage
615
+ ? `${context.customMessage}: ${defaultMessage}`
616
+ : defaultMessage,
617
+ );
618
+ }
619
+ } else {
620
+ if (!hasBeenCalled) {
621
+ const defaultMessage =
622
+ "Expected mock function to be called, but it was not called";
623
+ throw new AssertionError(
624
+ context.customMessage
625
+ ? `${context.customMessage}: ${defaultMessage}`
626
+ : defaultMessage,
627
+ );
628
+ }
629
+ }
630
+ }
631
+
632
+ export function toHaveBeenCalledTimes(
633
+ context: MatcherContext,
634
+ expected: number,
635
+ ): MatchResult {
636
+ const calls = getMockCalls(context.value);
637
+
638
+ if (context.isNot) {
639
+ if (calls.length === expected) {
640
+ const defaultMessage =
641
+ `Expected mock function not to be called ${expected} time(s), but it was`;
642
+ throw new AssertionError(
643
+ context.customMessage
644
+ ? `${context.customMessage}: ${defaultMessage}`
645
+ : defaultMessage,
646
+ );
647
+ }
648
+ } else {
649
+ if (calls.length !== expected) {
650
+ const defaultMessage =
651
+ `Expected mock function to be called ${expected} time(s), but it was called ${calls.length} time(s)`;
652
+ throw new AssertionError(
653
+ context.customMessage
654
+ ? `${context.customMessage}: ${defaultMessage}`
655
+ : defaultMessage,
656
+ );
657
+ }
658
+ }
659
+ }
660
+
661
+ export function toHaveBeenCalledWith(
662
+ context: MatcherContext,
663
+ ...expected: unknown[]
664
+ ): MatchResult {
665
+ const calls = getMockCalls(context.value);
666
+ const hasBeenCalled = calls.some((call) => equal(call.args, expected));
667
+
668
+ if (context.isNot) {
669
+ if (hasBeenCalled) {
670
+ const defaultMessage = `Expected mock function not to be called with ${
671
+ inspectArgs(expected)
672
+ }, but it was`;
673
+ throw new AssertionError(
674
+ context.customMessage
675
+ ? `${context.customMessage}: ${defaultMessage}`
676
+ : defaultMessage,
677
+ );
678
+ }
679
+ } else {
680
+ if (!hasBeenCalled) {
681
+ let otherCalls = "";
682
+ if (calls.length > 0) {
683
+ otherCalls = `\n Other calls:\n ${
684
+ calls.map((call) => inspectArgs(call.args)).join("\n ")
685
+ }`;
686
+ }
687
+
688
+ const defaultMessage = `Expected mock function to be called with ${
689
+ inspectArgs(expected)
690
+ }, but it was not.${otherCalls}`;
691
+ throw new AssertionError(
692
+ context.customMessage
693
+ ? `${context.customMessage}: ${defaultMessage}`
694
+ : defaultMessage,
695
+ );
696
+ }
697
+ }
698
+ }
699
+ export function toHaveBeenLastCalledWith(
700
+ context: MatcherContext,
701
+ ...expected: unknown[]
702
+ ): MatchResult {
703
+ const calls = getMockCalls(context.value);
704
+ const hasBeenCalled = calls.length > 0 &&
705
+ equal(calls.at(-1)?.args, expected);
706
+
707
+ if (context.isNot) {
708
+ if (hasBeenCalled) {
709
+ const defaultMessage =
710
+ `Expected mock function not to be last called with ${
711
+ inspectArgs(expected)
712
+ }, but it was`;
713
+ throw new AssertionError(
714
+ context.customMessage
715
+ ? `${context.customMessage}: ${defaultMessage}`
716
+ : defaultMessage,
717
+ );
718
+ }
719
+ } else {
720
+ if (!hasBeenCalled) {
721
+ const lastCall = calls.at(-1);
722
+ if (!lastCall) {
723
+ const defaultMessage = `Expected mock function to be last called with ${
724
+ inspectArgs(expected)
725
+ }, but it was not`;
726
+ throw new AssertionError(
727
+ context.customMessage
728
+ ? `${context.customMessage}: ${defaultMessage}`
729
+ : defaultMessage,
730
+ );
731
+ } else {
732
+ const defaultMessage = `Expected mock function to be last called with ${
733
+ inspectArgs(expected)
734
+ }, but it was last called with ${inspectArgs(lastCall.args)}`;
735
+ throw new AssertionError(
736
+ context.customMessage
737
+ ? `${context.customMessage}: ${defaultMessage}`
738
+ : defaultMessage,
739
+ );
740
+ }
741
+ }
742
+ }
743
+ }
744
+
745
+ export function toHaveBeenNthCalledWith(
746
+ context: MatcherContext,
747
+ nth: number,
748
+ ...expected: unknown[]
749
+ ): MatchResult {
750
+ if (nth < 1) {
751
+ throw new Error(`nth must be greater than 0: received ${nth}`);
752
+ }
753
+
754
+ const calls = getMockCalls(context.value);
755
+ const callIndex = nth - 1;
756
+ const hasBeenCalled = calls.length > callIndex &&
757
+ equal(calls[callIndex]?.args, expected);
758
+
759
+ if (context.isNot) {
760
+ if (hasBeenCalled) {
761
+ const defaultMessage =
762
+ `Expected the n-th call (n=${nth}) of mock function is not with ${
763
+ inspectArgs(expected)
764
+ }, but it was`;
765
+ throw new AssertionError(
766
+ context.customMessage
767
+ ? `${context.customMessage}: ${defaultMessage}`
768
+ : defaultMessage,
769
+ );
770
+ }
771
+ } else {
772
+ if (!hasBeenCalled) {
773
+ const nthCall = calls[callIndex];
774
+ if (!nthCall) {
775
+ const defaultMessage =
776
+ `Expected the n-th call (n=${nth}) of mock function is with ${
777
+ inspectArgs(expected)
778
+ }, but the n-th call does not exist`;
779
+ throw new AssertionError(
780
+ context.customMessage
781
+ ? `${context.customMessage}: ${defaultMessage}`
782
+ : defaultMessage,
783
+ );
784
+ } else {
785
+ const defaultMessage =
786
+ `Expected the n-th call (n=${nth}) of mock function is with ${
787
+ inspectArgs(expected)
788
+ }, but it was with ${inspectArgs(nthCall.args)}`;
789
+ throw new AssertionError(
790
+ context.customMessage
791
+ ? `${context.customMessage}: ${defaultMessage}`
792
+ : defaultMessage,
793
+ );
794
+ }
795
+ }
796
+ }
797
+ }
798
+
799
+ export function toHaveReturned(context: MatcherContext): MatchResult {
800
+ const calls = getMockCalls(context.value);
801
+ const returned = calls.filter((call) => call.returns);
802
+
803
+ if (context.isNot) {
804
+ if (returned.length > 0) {
805
+ const defaultMessage =
806
+ `Expected the mock function to not have returned, but it returned ${returned.length} times`;
807
+ throw new AssertionError(
808
+ context.customMessage
809
+ ? `${context.customMessage}: ${defaultMessage}`
810
+ : defaultMessage,
811
+ );
812
+ }
813
+ } else {
814
+ if (returned.length === 0) {
815
+ const defaultMessage =
816
+ `Expected the mock function to have returned, but it did not return`;
817
+ throw new AssertionError(
818
+ context.customMessage
819
+ ? `${context.customMessage}: ${defaultMessage}`
820
+ : defaultMessage,
821
+ );
822
+ }
823
+ }
824
+ }
825
+
826
+ export function toHaveReturnedTimes(
827
+ context: MatcherContext,
828
+ expected: number,
829
+ ): MatchResult {
830
+ const calls = getMockCalls(context.value);
831
+ const returned = calls.filter((call) => call.returns);
832
+
833
+ if (context.isNot) {
834
+ if (returned.length === expected) {
835
+ const defaultMessage =
836
+ `Expected the mock function to not have returned ${expected} times, but it returned ${returned.length} times`;
837
+ throw new AssertionError(
838
+ context.customMessage
839
+ ? `${context.customMessage}: ${defaultMessage}`
840
+ : defaultMessage,
841
+ );
842
+ }
843
+ } else {
844
+ if (returned.length !== expected) {
845
+ const defaultMessage =
846
+ `Expected the mock function to have returned ${expected} times, but it returned ${returned.length} times`;
847
+ throw new AssertionError(
848
+ context.customMessage
849
+ ? `${context.customMessage}: ${defaultMessage}`
850
+ : defaultMessage,
851
+ );
852
+ }
853
+ }
854
+ }
855
+ export function toHaveReturnedWith(
856
+ context: MatcherContext,
857
+ expected: unknown,
858
+ ): MatchResult {
859
+ const calls = getMockCalls(context.value);
860
+ const returned = calls.filter((call) => call.returns);
861
+ const returnedWithExpected = returned.some((call) =>
862
+ equal(call.returned, expected)
863
+ );
864
+
865
+ if (context.isNot) {
866
+ if (returnedWithExpected) {
867
+ const defaultMessage =
868
+ `Expected the mock function to not have returned with ${
869
+ inspectArg(expected)
870
+ }, but it did`;
871
+ throw new AssertionError(
872
+ context.customMessage
873
+ ? `${context.customMessage}: ${defaultMessage}`
874
+ : defaultMessage,
875
+ );
876
+ }
877
+ } else {
878
+ if (!returnedWithExpected) {
879
+ const defaultMessage =
880
+ `Expected the mock function to have returned with ${
881
+ inspectArg(expected)
882
+ }, but it did not`;
883
+ throw new AssertionError(
884
+ context.customMessage
885
+ ? `${context.customMessage}: ${defaultMessage}`
886
+ : defaultMessage,
887
+ );
888
+ }
889
+ }
890
+ }
891
+
892
+ export function toHaveLastReturnedWith(
893
+ context: MatcherContext,
894
+ expected: unknown,
895
+ ): MatchResult {
896
+ const calls = getMockCalls(context.value);
897
+ const returned = calls.filter((call) => call.returns);
898
+ const lastReturnedWithExpected = returned.length > 0 &&
899
+ equal(returned.at(-1)?.returned, expected);
900
+
901
+ if (context.isNot) {
902
+ if (lastReturnedWithExpected) {
903
+ const defaultMessage =
904
+ `Expected the mock function to not have last returned with ${
905
+ inspectArg(expected)
906
+ }, but it did`;
907
+ throw new AssertionError(
908
+ context.customMessage
909
+ ? `${context.customMessage}: ${defaultMessage}`
910
+ : defaultMessage,
911
+ );
912
+ }
913
+ } else {
914
+ if (!lastReturnedWithExpected) {
915
+ const defaultMessage =
916
+ `Expected the mock function to have last returned with ${
917
+ inspectArg(expected)
918
+ }, but it did not`;
919
+ throw new AssertionError(
920
+ context.customMessage
921
+ ? `${context.customMessage}: ${defaultMessage}`
922
+ : defaultMessage,
923
+ );
924
+ }
925
+ }
926
+ }
927
+
928
+ export function toHaveNthReturnedWith(
929
+ context: MatcherContext,
930
+ nth: number,
931
+ expected: unknown,
932
+ ): MatchResult {
933
+ if (nth < 1) {
934
+ throw new Error(`nth(${nth}) must be greater than 0`);
935
+ }
936
+
937
+ const calls = getMockCalls(context.value);
938
+ const returned = calls.filter((call) => call.returns);
939
+ const returnIndex = nth - 1;
940
+ const maybeNthReturned = returned[returnIndex];
941
+ const nthReturnedWithExpected = maybeNthReturned &&
942
+ equal(maybeNthReturned.returned, expected);
943
+
944
+ if (context.isNot) {
945
+ if (nthReturnedWithExpected) {
946
+ const defaultMessage =
947
+ `Expected the mock function to not have n-th (n=${nth}) returned with ${
948
+ inspectArg(expected)
949
+ }, but it did`;
950
+ throw new AssertionError(
951
+ context.customMessage
952
+ ? `${context.customMessage}: ${defaultMessage}`
953
+ : defaultMessage,
954
+ );
955
+ }
956
+ } else {
957
+ if (!nthReturnedWithExpected) {
958
+ const defaultMessage =
959
+ `Expected the mock function to have n-th (n=${nth}) returned with ${
960
+ inspectArg(expected)
961
+ }, but it did not`;
962
+ throw new AssertionError(
963
+ context.customMessage
964
+ ? `${context.customMessage}: ${defaultMessage}`
965
+ : defaultMessage,
966
+ );
967
+ }
968
+ }
969
+ }
970
+
971
+ export function toThrow<E extends Error = Error>(
972
+ context: MatcherContext,
973
+ // deno-lint-ignore no-explicit-any
974
+ expected?: string | RegExp | E | (new (...args: any[]) => E),
975
+ ): MatchResult {
976
+ if (typeof context.value === "function") {
977
+ try {
978
+ context.value = context.value();
979
+ } catch (err) {
980
+ context.value = err;
981
+ }
982
+ }
983
+
984
+ // deno-lint-ignore no-explicit-any
985
+ type ErrorClass = new (...args: any[]) => Error;
986
+ let expectClass: undefined | ErrorClass = undefined;
987
+ let expectMessage: undefined | string | RegExp = undefined;
988
+ if (expected instanceof Error) {
989
+ expectClass = expected.constructor as ErrorClass;
990
+ expectMessage = expected.message;
991
+ }
992
+ if (expected instanceof Function) {
993
+ expectClass = expected as ErrorClass;
994
+ }
995
+ if (typeof expected === "string" || expected instanceof RegExp) {
996
+ expectMessage = expected;
997
+ }
998
+
999
+ if (context.isNot) {
1000
+ let isError = false;
1001
+ try {
1002
+ assertIsError(
1003
+ context.value,
1004
+ expectClass,
1005
+ expectMessage,
1006
+ context.customMessage,
1007
+ );
1008
+ isError = true;
1009
+ const defaultMessage = `Expected to NOT throw ${expected}`;
1010
+ throw new AssertionError(
1011
+ context.customMessage
1012
+ ? `${context.customMessage}: ${defaultMessage}`
1013
+ : defaultMessage,
1014
+ );
1015
+ } catch (e) {
1016
+ if (isError) {
1017
+ throw e;
1018
+ }
1019
+ return;
1020
+ }
1021
+ }
1022
+ return assertIsError(
1023
+ context.value,
1024
+ expectClass,
1025
+ expectMessage,
1026
+ context.customMessage,
1027
+ );
1028
+ }