@goast/typescript 0.4.1-beta1 → 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 (611) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +52 -52
  3. package/assets/client/angular/angular-service.utils.ts +82 -82
  4. package/assets/client/angular/request-builder.ts +377 -377
  5. package/assets/client/fetch/fetch-client.utils.ts +52 -52
  6. package/assets/client/k6/request-builder.js +418 -418
  7. package/assets/stubs/easy-network-stub/easy-network-stub.utils.ts +259 -259
  8. package/esm/_dnt.test_polyfills.d.ts +29 -0
  9. package/esm/_dnt.test_polyfills.d.ts.map +1 -0
  10. package/esm/_dnt.test_polyfills.js +31 -0
  11. package/esm/_dnt.test_shims.d.ts +6 -0
  12. package/esm/_dnt.test_shims.d.ts.map +1 -0
  13. package/esm/_dnt.test_shims.js +61 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.6/assertion_error.d.ts +26 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.6/assertion_error.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.6/assertion_error.js +30 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.6/equal.d.ts +17 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.6/equal.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.6/equal.js +136 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.6/equals.d.ts +22 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.6/equals.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.6/equals.js +45 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.6/false.d.ts +18 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.6/false.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.6/false.js +22 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.6/instance_of.d.ts +23 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.6/instance_of.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.6/instance_of.js +53 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.6/is_error.d.ts +25 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.6/is_error.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.6/is_error.js +54 -0
  32. package/esm/deps/jsr.io/@std/assert/1.0.6/match.d.ts +18 -0
  33. package/esm/deps/jsr.io/@std/assert/1.0.6/match.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/assert/1.0.6/match.js +26 -0
  35. package/esm/deps/jsr.io/@std/assert/1.0.6/not_instance_of.d.ts +20 -0
  36. package/esm/deps/jsr.io/@std/assert/1.0.6/not_instance_of.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/assert/1.0.6/not_instance_of.js +29 -0
  38. package/esm/deps/jsr.io/@std/assert/1.0.6/not_match.d.ts +18 -0
  39. package/esm/deps/jsr.io/@std/assert/1.0.6/not_match.d.ts.map +1 -0
  40. package/esm/deps/jsr.io/@std/assert/1.0.6/not_match.js +26 -0
  41. package/esm/deps/jsr.io/@std/assert/1.0.6/not_strict_equals.d.ts +23 -0
  42. package/esm/deps/jsr.io/@std/assert/1.0.6/not_strict_equals.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@std/assert/1.0.6/not_strict_equals.js +32 -0
  44. package/esm/deps/jsr.io/@std/assert/1.0.6/object_match.d.ts +28 -0
  45. package/esm/deps/jsr.io/@std/assert/1.0.6/object_match.d.ts.map +1 -0
  46. package/esm/deps/jsr.io/@std/assert/1.0.6/object_match.js +159 -0
  47. package/esm/deps/jsr.io/@std/assert/1.0.6/rejects.d.ts +42 -0
  48. package/esm/deps/jsr.io/@std/assert/1.0.6/rejects.d.ts.map +1 -0
  49. package/esm/deps/jsr.io/@std/assert/1.0.6/rejects.js +53 -0
  50. package/esm/deps/jsr.io/@std/assert/1.0.6/strict_equals.d.ts +24 -0
  51. package/esm/deps/jsr.io/@std/assert/1.0.6/strict_equals.d.ts.map +1 -0
  52. package/esm/deps/jsr.io/@std/assert/1.0.6/strict_equals.js +57 -0
  53. package/esm/deps/jsr.io/@std/expect/1.0.6/_assert_equals.d.ts +20 -0
  54. package/esm/deps/jsr.io/@std/expect/1.0.6/_assert_equals.d.ts.map +1 -0
  55. package/esm/deps/jsr.io/@std/expect/1.0.6/_assert_equals.js +29 -0
  56. package/esm/deps/jsr.io/@std/expect/1.0.6/_assert_not_equals.d.ts +17 -0
  57. package/esm/deps/jsr.io/@std/expect/1.0.6/_assert_not_equals.d.ts.map +1 -0
  58. package/esm/deps/jsr.io/@std/expect/1.0.6/_assert_not_equals.js +26 -0
  59. package/esm/deps/jsr.io/@std/expect/1.0.6/_assertion.d.ts +3 -0
  60. package/esm/deps/jsr.io/@std/expect/1.0.6/_assertion.d.ts.map +1 -0
  61. package/esm/deps/jsr.io/@std/expect/1.0.6/_assertion.js +9 -0
  62. package/esm/deps/jsr.io/@std/expect/1.0.6/_asymmetric_matchers.d.ts +41 -0
  63. package/esm/deps/jsr.io/@std/expect/1.0.6/_asymmetric_matchers.d.ts.map +1 -0
  64. package/esm/deps/jsr.io/@std/expect/1.0.6/_asymmetric_matchers.js +143 -0
  65. package/esm/deps/jsr.io/@std/expect/1.0.6/_build_message.d.ts +6 -0
  66. package/esm/deps/jsr.io/@std/expect/1.0.6/_build_message.d.ts.map +1 -0
  67. package/esm/deps/jsr.io/@std/expect/1.0.6/_build_message.js +29 -0
  68. package/esm/deps/jsr.io/@std/expect/1.0.6/_custom_equality_tester.d.ts +4 -0
  69. package/esm/deps/jsr.io/@std/expect/1.0.6/_custom_equality_tester.d.ts.map +1 -0
  70. package/esm/deps/jsr.io/@std/expect/1.0.6/_custom_equality_tester.js +11 -0
  71. package/esm/deps/jsr.io/@std/expect/1.0.6/_equal.d.ts +9 -0
  72. package/esm/deps/jsr.io/@std/expect/1.0.6/_equal.d.ts.map +1 -0
  73. package/esm/deps/jsr.io/@std/expect/1.0.6/_equal.js +191 -0
  74. package/esm/deps/jsr.io/@std/expect/1.0.6/_extend.d.ts +4 -0
  75. package/esm/deps/jsr.io/@std/expect/1.0.6/_extend.d.ts.map +1 -0
  76. package/esm/deps/jsr.io/@std/expect/1.0.6/_extend.js +11 -0
  77. package/esm/deps/jsr.io/@std/expect/1.0.6/_inspect_args.d.ts +3 -0
  78. package/esm/deps/jsr.io/@std/expect/1.0.6/_inspect_args.d.ts.map +1 -0
  79. package/esm/deps/jsr.io/@std/expect/1.0.6/_inspect_args.js +12 -0
  80. package/esm/deps/jsr.io/@std/expect/1.0.6/_matchers.d.ts +34 -0
  81. package/esm/deps/jsr.io/@std/expect/1.0.6/_matchers.d.ts.map +1 -0
  82. package/esm/deps/jsr.io/@std/expect/1.0.6/_matchers.js +564 -0
  83. package/esm/deps/jsr.io/@std/expect/1.0.6/_mock_util.d.ts +11 -0
  84. package/esm/deps/jsr.io/@std/expect/1.0.6/_mock_util.d.ts.map +1 -0
  85. package/esm/deps/jsr.io/@std/expect/1.0.6/_mock_util.js +10 -0
  86. package/esm/deps/jsr.io/@std/expect/1.0.6/_types.d.ts +838 -0
  87. package/esm/deps/jsr.io/@std/expect/1.0.6/_types.d.ts.map +1 -0
  88. package/esm/deps/jsr.io/@std/expect/1.0.6/_types.js +3 -0
  89. package/esm/deps/jsr.io/@std/expect/1.0.6/_utils.d.ts +8 -0
  90. package/esm/deps/jsr.io/@std/expect/1.0.6/_utils.d.ts.map +1 -0
  91. package/esm/deps/jsr.io/@std/expect/1.0.6/_utils.js +159 -0
  92. package/esm/deps/jsr.io/@std/expect/1.0.6/expect.d.ts +52 -0
  93. package/esm/deps/jsr.io/@std/expect/1.0.6/expect.d.ts.map +1 -0
  94. package/esm/deps/jsr.io/@std/expect/1.0.6/expect.js +441 -0
  95. package/esm/deps/jsr.io/@std/expect/1.0.6/fn.d.ts +29 -0
  96. package/esm/deps/jsr.io/@std/expect/1.0.6/fn.d.ts.map +1 -0
  97. package/esm/deps/jsr.io/@std/expect/1.0.6/fn.js +85 -0
  98. package/esm/deps/jsr.io/@std/expect/1.0.6/mod.d.ts +85 -0
  99. package/esm/deps/jsr.io/@std/expect/1.0.6/mod.d.ts.map +1 -0
  100. package/esm/deps/jsr.io/@std/expect/1.0.6/mod.js +87 -0
  101. package/esm/deps/jsr.io/@std/internal/1.0.4/assertion_state.d.ts +75 -0
  102. package/esm/deps/jsr.io/@std/internal/1.0.4/assertion_state.d.ts.map +1 -0
  103. package/esm/deps/jsr.io/@std/internal/1.0.4/assertion_state.js +101 -0
  104. package/esm/deps/jsr.io/@std/internal/1.0.4/build_message.d.ts +82 -0
  105. package/esm/deps/jsr.io/@std/internal/1.0.4/build_message.d.ts.map +1 -0
  106. package/esm/deps/jsr.io/@std/internal/1.0.4/build_message.js +111 -0
  107. package/esm/deps/jsr.io/@std/internal/1.0.4/diff.d.ts +140 -0
  108. package/esm/deps/jsr.io/@std/internal/1.0.4/diff.d.ts.map +1 -0
  109. package/esm/deps/jsr.io/@std/internal/1.0.4/diff.js +277 -0
  110. package/esm/deps/jsr.io/@std/internal/1.0.4/diff_str.d.ts +99 -0
  111. package/esm/deps/jsr.io/@std/internal/1.0.4/diff_str.d.ts.map +1 -0
  112. package/esm/deps/jsr.io/@std/internal/1.0.4/diff_str.js +180 -0
  113. package/esm/deps/jsr.io/@std/internal/1.0.4/format.d.ts +2 -0
  114. package/esm/deps/jsr.io/@std/internal/1.0.4/format.d.ts.map +1 -0
  115. package/esm/deps/jsr.io/@std/internal/1.0.4/format.js +37 -0
  116. package/esm/deps/jsr.io/@std/internal/1.0.4/styles.d.ts +159 -0
  117. package/esm/deps/jsr.io/@std/internal/1.0.4/styles.d.ts.map +1 -0
  118. package/esm/deps/jsr.io/@std/internal/1.0.4/styles.js +207 -0
  119. package/esm/deps/jsr.io/@std/internal/1.0.4/types.d.ts +16 -0
  120. package/esm/deps/jsr.io/@std/internal/1.0.4/types.d.ts.map +1 -0
  121. package/esm/deps/jsr.io/@std/internal/1.0.4/types.js +2 -0
  122. package/esm/deps/jsr.io/@std/testing/1.0.3/_test_suite.d.ts +74 -0
  123. package/esm/deps/jsr.io/@std/testing/1.0.3/_test_suite.d.ts.map +1 -0
  124. package/esm/deps/jsr.io/@std/testing/1.0.3/_test_suite.js +340 -0
  125. package/esm/deps/jsr.io/@std/testing/1.0.3/bdd.d.ts +731 -0
  126. package/esm/deps/jsr.io/@std/testing/1.0.3/bdd.d.ts.map +1 -0
  127. package/esm/deps/jsr.io/@std/testing/1.0.3/bdd.js +576 -0
  128. package/esm/deps/jsr.io/@std/testing/1.0.3/mock.d.ts +674 -0
  129. package/esm/deps/jsr.io/@std/testing/1.0.3/mock.d.ts.map +1 -0
  130. package/esm/deps/jsr.io/@std/testing/1.0.3/mock.js +1117 -0
  131. package/esm/src/ast/nodes/argument.test.d.ts +2 -0
  132. package/esm/src/ast/nodes/argument.test.d.ts.map +1 -0
  133. package/esm/src/ast/nodes/argument.test.js +34 -0
  134. package/esm/src/ast/nodes/array-type.test.d.ts +2 -0
  135. package/esm/src/ast/nodes/array-type.test.d.ts.map +1 -0
  136. package/esm/src/ast/nodes/array-type.test.js +26 -0
  137. package/esm/src/ast/nodes/arrow-function.test.d.ts +2 -0
  138. package/esm/src/ast/nodes/arrow-function.test.d.ts.map +1 -0
  139. package/esm/src/ast/nodes/arrow-function.test.js +62 -0
  140. package/esm/src/ast/nodes/class.test.d.ts +2 -0
  141. package/esm/src/ast/nodes/class.test.d.ts.map +1 -0
  142. package/esm/src/ast/nodes/class.test.js +150 -0
  143. package/esm/src/ast/nodes/constructor-parameter.test.d.ts +2 -0
  144. package/esm/src/ast/nodes/constructor-parameter.test.d.ts.map +1 -0
  145. package/esm/src/ast/nodes/constructor-parameter.test.js +99 -0
  146. package/esm/src/ast/nodes/constructor.test.d.ts +2 -0
  147. package/esm/src/ast/nodes/constructor.test.d.ts.map +1 -0
  148. package/esm/src/ast/nodes/constructor.test.js +102 -0
  149. package/esm/src/ast/nodes/decorator.test.d.ts +2 -0
  150. package/esm/src/ast/nodes/decorator.test.d.ts.map +1 -0
  151. package/esm/src/ast/nodes/decorator.test.js +47 -0
  152. package/esm/src/ast/nodes/doc-tag.test.d.ts +2 -0
  153. package/esm/src/ast/nodes/doc-tag.test.d.ts.map +1 -0
  154. package/esm/src/ast/nodes/doc-tag.test.js +30 -0
  155. package/esm/src/ast/nodes/doc.test.d.ts +2 -0
  156. package/esm/src/ast/nodes/doc.test.d.ts.map +1 -0
  157. package/esm/src/ast/nodes/doc.test.js +31 -0
  158. package/esm/src/ast/nodes/enum-value.test.d.ts +2 -0
  159. package/esm/src/ast/nodes/enum-value.test.d.ts.map +1 -0
  160. package/esm/src/ast/nodes/enum-value.test.js +52 -0
  161. package/esm/src/ast/nodes/enum.test.d.ts +2 -0
  162. package/esm/src/ast/nodes/enum.test.d.ts.map +1 -0
  163. package/esm/src/ast/nodes/enum.test.js +66 -0
  164. package/esm/src/ast/nodes/export.test.d.ts +2 -0
  165. package/esm/src/ast/nodes/export.test.d.ts.map +1 -0
  166. package/esm/src/ast/nodes/export.test.js +22 -0
  167. package/esm/src/ast/nodes/function-type.test.d.ts +2 -0
  168. package/esm/src/ast/nodes/function-type.test.d.ts.map +1 -0
  169. package/esm/src/ast/nodes/function-type.test.js +48 -0
  170. package/esm/src/ast/nodes/function.test.d.ts +2 -0
  171. package/esm/src/ast/nodes/function.test.d.ts.map +1 -0
  172. package/esm/src/ast/nodes/function.test.js +108 -0
  173. package/esm/src/ast/nodes/generic-parameter.test.d.ts +2 -0
  174. package/esm/src/ast/nodes/generic-parameter.test.d.ts.map +1 -0
  175. package/esm/src/ast/nodes/generic-parameter.test.js +70 -0
  176. package/esm/src/ast/nodes/indexer.test.d.ts +2 -0
  177. package/esm/src/ast/nodes/indexer.test.d.ts.map +1 -0
  178. package/esm/src/ast/nodes/indexer.test.js +32 -0
  179. package/esm/src/ast/nodes/interface.test.d.ts +2 -0
  180. package/esm/src/ast/nodes/interface.test.d.ts.map +1 -0
  181. package/esm/src/ast/nodes/interface.test.js +115 -0
  182. package/esm/src/ast/nodes/intersection-type.test.d.ts +2 -0
  183. package/esm/src/ast/nodes/intersection-type.test.d.ts.map +1 -0
  184. package/esm/src/ast/nodes/intersection-type.test.js +38 -0
  185. package/esm/src/ast/nodes/method.test.d.ts +2 -0
  186. package/esm/src/ast/nodes/method.test.d.ts.map +1 -0
  187. package/esm/src/ast/nodes/method.test.js +148 -0
  188. package/esm/src/ast/nodes/object-type.test.d.ts +2 -0
  189. package/esm/src/ast/nodes/object-type.test.d.ts.map +1 -0
  190. package/esm/src/ast/nodes/object-type.test.js +30 -0
  191. package/esm/src/ast/nodes/object.test.d.ts +2 -0
  192. package/esm/src/ast/nodes/object.test.d.ts.map +1 -0
  193. package/esm/src/ast/nodes/object.test.js +30 -0
  194. package/esm/src/ast/nodes/parameter.test.d.ts +2 -0
  195. package/esm/src/ast/nodes/parameter.test.d.ts.map +1 -0
  196. package/esm/src/ast/nodes/parameter.test.js +71 -0
  197. package/esm/src/ast/nodes/property-accessor.test.d.ts +2 -0
  198. package/esm/src/ast/nodes/property-accessor.test.d.ts.map +1 -0
  199. package/esm/src/ast/nodes/property-accessor.test.js +102 -0
  200. package/esm/src/ast/nodes/property.test.d.ts +2 -0
  201. package/esm/src/ast/nodes/property.test.d.ts.map +1 -0
  202. package/esm/src/ast/nodes/property.test.js +89 -0
  203. package/esm/src/ast/nodes/reference.test.d.ts +2 -0
  204. package/esm/src/ast/nodes/reference.test.d.ts.map +1 -0
  205. package/esm/src/ast/nodes/reference.test.js +31 -0
  206. package/esm/src/ast/nodes/string.test.d.ts +2 -0
  207. package/esm/src/ast/nodes/string.test.d.ts.map +1 -0
  208. package/esm/src/ast/nodes/string.test.js +28 -0
  209. package/esm/src/ast/nodes/tuple.test.d.ts +2 -0
  210. package/esm/src/ast/nodes/tuple.test.d.ts.map +1 -0
  211. package/esm/src/ast/nodes/tuple.test.js +33 -0
  212. package/esm/src/ast/nodes/type-alias.test.d.ts +2 -0
  213. package/esm/src/ast/nodes/type-alias.test.d.ts.map +1 -0
  214. package/esm/src/ast/nodes/type-alias.test.js +27 -0
  215. package/esm/src/ast/nodes/union-type.test.d.ts +2 -0
  216. package/esm/src/ast/nodes/union-type.test.d.ts.map +1 -0
  217. package/esm/src/ast/nodes/union-type.test.js +38 -0
  218. package/esm/src/ast/nodes/variable.test.d.ts +2 -0
  219. package/esm/src/ast/nodes/variable.test.d.ts.map +1 -0
  220. package/esm/src/ast/nodes/variable.test.js +38 -0
  221. package/esm/src/generators/services/angular-services/angular-service-generator.js +9 -9
  222. package/esm/src/generators/services/easy-network-stub/easy-network-stub-generator.js +9 -9
  223. package/esm/src/generators/services/fetch-clients/fetch-client-generator.js +2 -2
  224. package/esm/src/generators/services/k6-clients/k6-client-generator.js +6 -6
  225. package/esm/src/import-collection.test.d.ts +2 -0
  226. package/esm/src/import-collection.test.d.ts.map +1 -0
  227. package/esm/src/import-collection.test.js +64 -0
  228. package/esm/tests/openapi-models.test.d.ts +2 -0
  229. package/esm/tests/openapi-models.test.d.ts.map +1 -0
  230. package/esm/tests/openapi-models.test.js +45 -0
  231. package/package.json +2 -2
  232. package/script/_dnt.test_polyfills.d.ts +29 -0
  233. package/script/_dnt.test_polyfills.d.ts.map +1 -0
  234. package/script/_dnt.test_polyfills.js +32 -0
  235. package/script/_dnt.test_shims.d.ts +6 -0
  236. package/script/_dnt.test_shims.d.ts.map +1 -0
  237. package/script/_dnt.test_shims.js +65 -0
  238. package/script/deps/jsr.io/@std/assert/1.0.6/assertion_error.d.ts +26 -0
  239. package/script/deps/jsr.io/@std/assert/1.0.6/assertion_error.d.ts.map +1 -0
  240. package/script/deps/jsr.io/@std/assert/1.0.6/assertion_error.js +34 -0
  241. package/script/deps/jsr.io/@std/assert/1.0.6/equal.d.ts +17 -0
  242. package/script/deps/jsr.io/@std/assert/1.0.6/equal.d.ts.map +1 -0
  243. package/script/deps/jsr.io/@std/assert/1.0.6/equal.js +139 -0
  244. package/script/deps/jsr.io/@std/assert/1.0.6/equals.d.ts +22 -0
  245. package/script/deps/jsr.io/@std/assert/1.0.6/equals.d.ts.map +1 -0
  246. package/script/deps/jsr.io/@std/assert/1.0.6/equals.js +48 -0
  247. package/script/deps/jsr.io/@std/assert/1.0.6/false.d.ts +18 -0
  248. package/script/deps/jsr.io/@std/assert/1.0.6/false.d.ts.map +1 -0
  249. package/script/deps/jsr.io/@std/assert/1.0.6/false.js +25 -0
  250. package/script/deps/jsr.io/@std/assert/1.0.6/instance_of.d.ts +23 -0
  251. package/script/deps/jsr.io/@std/assert/1.0.6/instance_of.d.ts.map +1 -0
  252. package/script/deps/jsr.io/@std/assert/1.0.6/instance_of.js +56 -0
  253. package/script/deps/jsr.io/@std/assert/1.0.6/is_error.d.ts +25 -0
  254. package/script/deps/jsr.io/@std/assert/1.0.6/is_error.d.ts.map +1 -0
  255. package/script/deps/jsr.io/@std/assert/1.0.6/is_error.js +57 -0
  256. package/script/deps/jsr.io/@std/assert/1.0.6/match.d.ts +18 -0
  257. package/script/deps/jsr.io/@std/assert/1.0.6/match.d.ts.map +1 -0
  258. package/script/deps/jsr.io/@std/assert/1.0.6/match.js +29 -0
  259. package/script/deps/jsr.io/@std/assert/1.0.6/not_instance_of.d.ts +20 -0
  260. package/script/deps/jsr.io/@std/assert/1.0.6/not_instance_of.d.ts.map +1 -0
  261. package/script/deps/jsr.io/@std/assert/1.0.6/not_instance_of.js +32 -0
  262. package/script/deps/jsr.io/@std/assert/1.0.6/not_match.d.ts +18 -0
  263. package/script/deps/jsr.io/@std/assert/1.0.6/not_match.d.ts.map +1 -0
  264. package/script/deps/jsr.io/@std/assert/1.0.6/not_match.js +29 -0
  265. package/script/deps/jsr.io/@std/assert/1.0.6/not_strict_equals.d.ts +23 -0
  266. package/script/deps/jsr.io/@std/assert/1.0.6/not_strict_equals.d.ts.map +1 -0
  267. package/script/deps/jsr.io/@std/assert/1.0.6/not_strict_equals.js +35 -0
  268. package/script/deps/jsr.io/@std/assert/1.0.6/object_match.d.ts +28 -0
  269. package/script/deps/jsr.io/@std/assert/1.0.6/object_match.d.ts.map +1 -0
  270. package/script/deps/jsr.io/@std/assert/1.0.6/object_match.js +162 -0
  271. package/script/deps/jsr.io/@std/assert/1.0.6/rejects.d.ts +42 -0
  272. package/script/deps/jsr.io/@std/assert/1.0.6/rejects.d.ts.map +1 -0
  273. package/script/deps/jsr.io/@std/assert/1.0.6/rejects.js +56 -0
  274. package/script/deps/jsr.io/@std/assert/1.0.6/strict_equals.d.ts +24 -0
  275. package/script/deps/jsr.io/@std/assert/1.0.6/strict_equals.d.ts.map +1 -0
  276. package/script/deps/jsr.io/@std/assert/1.0.6/strict_equals.js +60 -0
  277. package/script/deps/jsr.io/@std/expect/1.0.6/_assert_equals.d.ts +20 -0
  278. package/script/deps/jsr.io/@std/expect/1.0.6/_assert_equals.d.ts.map +1 -0
  279. package/script/deps/jsr.io/@std/expect/1.0.6/_assert_equals.js +32 -0
  280. package/script/deps/jsr.io/@std/expect/1.0.6/_assert_not_equals.d.ts +17 -0
  281. package/script/deps/jsr.io/@std/expect/1.0.6/_assert_not_equals.d.ts.map +1 -0
  282. package/script/deps/jsr.io/@std/expect/1.0.6/_assert_not_equals.js +29 -0
  283. package/script/deps/jsr.io/@std/expect/1.0.6/_assertion.d.ts +3 -0
  284. package/script/deps/jsr.io/@std/expect/1.0.6/_assertion.d.ts.map +1 -0
  285. package/script/deps/jsr.io/@std/expect/1.0.6/_assertion.js +13 -0
  286. package/script/deps/jsr.io/@std/expect/1.0.6/_asymmetric_matchers.d.ts +41 -0
  287. package/script/deps/jsr.io/@std/expect/1.0.6/_asymmetric_matchers.d.ts.map +1 -0
  288. package/script/deps/jsr.io/@std/expect/1.0.6/_asymmetric_matchers.js +161 -0
  289. package/script/deps/jsr.io/@std/expect/1.0.6/_build_message.d.ts +6 -0
  290. package/script/deps/jsr.io/@std/expect/1.0.6/_build_message.d.ts.map +1 -0
  291. package/script/deps/jsr.io/@std/expect/1.0.6/_build_message.js +33 -0
  292. package/script/deps/jsr.io/@std/expect/1.0.6/_custom_equality_tester.d.ts +4 -0
  293. package/script/deps/jsr.io/@std/expect/1.0.6/_custom_equality_tester.d.ts.map +1 -0
  294. package/script/deps/jsr.io/@std/expect/1.0.6/_custom_equality_tester.js +15 -0
  295. package/script/deps/jsr.io/@std/expect/1.0.6/_equal.d.ts +9 -0
  296. package/script/deps/jsr.io/@std/expect/1.0.6/_equal.d.ts.map +1 -0
  297. package/script/deps/jsr.io/@std/expect/1.0.6/_equal.js +194 -0
  298. package/script/deps/jsr.io/@std/expect/1.0.6/_extend.d.ts +4 -0
  299. package/script/deps/jsr.io/@std/expect/1.0.6/_extend.d.ts.map +1 -0
  300. package/script/deps/jsr.io/@std/expect/1.0.6/_extend.js +15 -0
  301. package/script/deps/jsr.io/@std/expect/1.0.6/_inspect_args.d.ts +3 -0
  302. package/script/deps/jsr.io/@std/expect/1.0.6/_inspect_args.d.ts.map +1 -0
  303. package/script/deps/jsr.io/@std/expect/1.0.6/_inspect_args.js +17 -0
  304. package/script/deps/jsr.io/@std/expect/1.0.6/_matchers.d.ts +34 -0
  305. package/script/deps/jsr.io/@std/expect/1.0.6/_matchers.d.ts.map +1 -0
  306. package/script/deps/jsr.io/@std/expect/1.0.6/_matchers.js +598 -0
  307. package/script/deps/jsr.io/@std/expect/1.0.6/_mock_util.d.ts +11 -0
  308. package/script/deps/jsr.io/@std/expect/1.0.6/_mock_util.d.ts.map +1 -0
  309. package/script/deps/jsr.io/@std/expect/1.0.6/_mock_util.js +14 -0
  310. package/script/deps/jsr.io/@std/expect/1.0.6/_types.d.ts +838 -0
  311. package/script/deps/jsr.io/@std/expect/1.0.6/_types.d.ts.map +1 -0
  312. package/script/deps/jsr.io/@std/expect/1.0.6/_types.js +4 -0
  313. package/script/deps/jsr.io/@std/expect/1.0.6/_utils.d.ts +8 -0
  314. package/script/deps/jsr.io/@std/expect/1.0.6/_utils.d.ts.map +1 -0
  315. package/script/deps/jsr.io/@std/expect/1.0.6/_utils.js +166 -0
  316. package/script/deps/jsr.io/@std/expect/1.0.6/expect.d.ts +52 -0
  317. package/script/deps/jsr.io/@std/expect/1.0.6/expect.d.ts.map +1 -0
  318. package/script/deps/jsr.io/@std/expect/1.0.6/expect.js +445 -0
  319. package/script/deps/jsr.io/@std/expect/1.0.6/fn.d.ts +29 -0
  320. package/script/deps/jsr.io/@std/expect/1.0.6/fn.d.ts.map +1 -0
  321. package/script/deps/jsr.io/@std/expect/1.0.6/fn.js +88 -0
  322. package/script/deps/jsr.io/@std/expect/1.0.6/mod.d.ts +85 -0
  323. package/script/deps/jsr.io/@std/expect/1.0.6/mod.d.ts.map +1 -0
  324. package/script/deps/jsr.io/@std/expect/1.0.6/mod.js +90 -0
  325. package/script/deps/jsr.io/@std/internal/1.0.4/assertion_state.d.ts +75 -0
  326. package/script/deps/jsr.io/@std/internal/1.0.4/assertion_state.d.ts.map +1 -0
  327. package/script/deps/jsr.io/@std/internal/1.0.4/assertion_state.js +106 -0
  328. package/script/deps/jsr.io/@std/internal/1.0.4/build_message.d.ts +82 -0
  329. package/script/deps/jsr.io/@std/internal/1.0.4/build_message.d.ts.map +1 -0
  330. package/script/deps/jsr.io/@std/internal/1.0.4/build_message.js +116 -0
  331. package/script/deps/jsr.io/@std/internal/1.0.4/diff.d.ts +140 -0
  332. package/script/deps/jsr.io/@std/internal/1.0.4/diff.d.ts.map +1 -0
  333. package/script/deps/jsr.io/@std/internal/1.0.4/diff.js +284 -0
  334. package/script/deps/jsr.io/@std/internal/1.0.4/diff_str.d.ts +99 -0
  335. package/script/deps/jsr.io/@std/internal/1.0.4/diff_str.d.ts.map +1 -0
  336. package/script/deps/jsr.io/@std/internal/1.0.4/diff_str.js +186 -0
  337. package/script/deps/jsr.io/@std/internal/1.0.4/format.d.ts +2 -0
  338. package/script/deps/jsr.io/@std/internal/1.0.4/format.d.ts.map +1 -0
  339. package/script/deps/jsr.io/@std/internal/1.0.4/format.js +41 -0
  340. package/script/deps/jsr.io/@std/internal/1.0.4/styles.d.ts +159 -0
  341. package/script/deps/jsr.io/@std/internal/1.0.4/styles.d.ts.map +1 -0
  342. package/script/deps/jsr.io/@std/internal/1.0.4/styles.js +220 -0
  343. package/script/deps/jsr.io/@std/internal/1.0.4/types.d.ts +16 -0
  344. package/script/deps/jsr.io/@std/internal/1.0.4/types.d.ts.map +1 -0
  345. package/script/deps/jsr.io/@std/internal/1.0.4/types.js +3 -0
  346. package/script/deps/jsr.io/@std/testing/1.0.3/_test_suite.d.ts +74 -0
  347. package/script/deps/jsr.io/@std/testing/1.0.3/_test_suite.d.ts.map +1 -0
  348. package/script/deps/jsr.io/@std/testing/1.0.3/_test_suite.js +345 -0
  349. package/script/deps/jsr.io/@std/testing/1.0.3/bdd.d.ts +731 -0
  350. package/script/deps/jsr.io/@std/testing/1.0.3/bdd.d.ts.map +1 -0
  351. package/script/deps/jsr.io/@std/testing/1.0.3/bdd.js +587 -0
  352. package/script/deps/jsr.io/@std/testing/1.0.3/mock.d.ts +674 -0
  353. package/script/deps/jsr.io/@std/testing/1.0.3/mock.d.ts.map +1 -0
  354. package/script/deps/jsr.io/@std/testing/1.0.3/mock.js +1136 -0
  355. package/script/src/ast/nodes/argument.test.d.ts +2 -0
  356. package/script/src/ast/nodes/argument.test.d.ts.map +1 -0
  357. package/script/src/ast/nodes/argument.test.js +36 -0
  358. package/script/src/ast/nodes/array-type.test.d.ts +2 -0
  359. package/script/src/ast/nodes/array-type.test.d.ts.map +1 -0
  360. package/script/src/ast/nodes/array-type.test.js +28 -0
  361. package/script/src/ast/nodes/arrow-function.test.d.ts +2 -0
  362. package/script/src/ast/nodes/arrow-function.test.d.ts.map +1 -0
  363. package/script/src/ast/nodes/arrow-function.test.js +64 -0
  364. package/script/src/ast/nodes/class.test.d.ts +2 -0
  365. package/script/src/ast/nodes/class.test.d.ts.map +1 -0
  366. package/script/src/ast/nodes/class.test.js +152 -0
  367. package/script/src/ast/nodes/constructor-parameter.test.d.ts +2 -0
  368. package/script/src/ast/nodes/constructor-parameter.test.d.ts.map +1 -0
  369. package/script/src/ast/nodes/constructor-parameter.test.js +101 -0
  370. package/script/src/ast/nodes/constructor.test.d.ts +2 -0
  371. package/script/src/ast/nodes/constructor.test.d.ts.map +1 -0
  372. package/script/src/ast/nodes/constructor.test.js +104 -0
  373. package/script/src/ast/nodes/decorator.test.d.ts +2 -0
  374. package/script/src/ast/nodes/decorator.test.d.ts.map +1 -0
  375. package/script/src/ast/nodes/decorator.test.js +49 -0
  376. package/script/src/ast/nodes/doc-tag.test.d.ts +2 -0
  377. package/script/src/ast/nodes/doc-tag.test.d.ts.map +1 -0
  378. package/script/src/ast/nodes/doc-tag.test.js +32 -0
  379. package/script/src/ast/nodes/doc.test.d.ts +2 -0
  380. package/script/src/ast/nodes/doc.test.d.ts.map +1 -0
  381. package/script/src/ast/nodes/doc.test.js +33 -0
  382. package/script/src/ast/nodes/enum-value.test.d.ts +2 -0
  383. package/script/src/ast/nodes/enum-value.test.d.ts.map +1 -0
  384. package/script/src/ast/nodes/enum-value.test.js +54 -0
  385. package/script/src/ast/nodes/enum.test.d.ts +2 -0
  386. package/script/src/ast/nodes/enum.test.d.ts.map +1 -0
  387. package/script/src/ast/nodes/enum.test.js +68 -0
  388. package/script/src/ast/nodes/export.test.d.ts +2 -0
  389. package/script/src/ast/nodes/export.test.d.ts.map +1 -0
  390. package/script/src/ast/nodes/export.test.js +24 -0
  391. package/script/src/ast/nodes/function-type.test.d.ts +2 -0
  392. package/script/src/ast/nodes/function-type.test.d.ts.map +1 -0
  393. package/script/src/ast/nodes/function-type.test.js +50 -0
  394. package/script/src/ast/nodes/function.test.d.ts +2 -0
  395. package/script/src/ast/nodes/function.test.d.ts.map +1 -0
  396. package/script/src/ast/nodes/function.test.js +110 -0
  397. package/script/src/ast/nodes/generic-parameter.test.d.ts +2 -0
  398. package/script/src/ast/nodes/generic-parameter.test.d.ts.map +1 -0
  399. package/script/src/ast/nodes/generic-parameter.test.js +72 -0
  400. package/script/src/ast/nodes/indexer.test.d.ts +2 -0
  401. package/script/src/ast/nodes/indexer.test.d.ts.map +1 -0
  402. package/script/src/ast/nodes/indexer.test.js +34 -0
  403. package/script/src/ast/nodes/interface.test.d.ts +2 -0
  404. package/script/src/ast/nodes/interface.test.d.ts.map +1 -0
  405. package/script/src/ast/nodes/interface.test.js +117 -0
  406. package/script/src/ast/nodes/intersection-type.test.d.ts +2 -0
  407. package/script/src/ast/nodes/intersection-type.test.d.ts.map +1 -0
  408. package/script/src/ast/nodes/intersection-type.test.js +40 -0
  409. package/script/src/ast/nodes/method.test.d.ts +2 -0
  410. package/script/src/ast/nodes/method.test.d.ts.map +1 -0
  411. package/script/src/ast/nodes/method.test.js +150 -0
  412. package/script/src/ast/nodes/object-type.test.d.ts +2 -0
  413. package/script/src/ast/nodes/object-type.test.d.ts.map +1 -0
  414. package/script/src/ast/nodes/object-type.test.js +32 -0
  415. package/script/src/ast/nodes/object.test.d.ts +2 -0
  416. package/script/src/ast/nodes/object.test.d.ts.map +1 -0
  417. package/script/src/ast/nodes/object.test.js +32 -0
  418. package/script/src/ast/nodes/parameter.test.d.ts +2 -0
  419. package/script/src/ast/nodes/parameter.test.d.ts.map +1 -0
  420. package/script/src/ast/nodes/parameter.test.js +73 -0
  421. package/script/src/ast/nodes/property-accessor.test.d.ts +2 -0
  422. package/script/src/ast/nodes/property-accessor.test.d.ts.map +1 -0
  423. package/script/src/ast/nodes/property-accessor.test.js +104 -0
  424. package/script/src/ast/nodes/property.test.d.ts +2 -0
  425. package/script/src/ast/nodes/property.test.d.ts.map +1 -0
  426. package/script/src/ast/nodes/property.test.js +91 -0
  427. package/script/src/ast/nodes/reference.test.d.ts +2 -0
  428. package/script/src/ast/nodes/reference.test.d.ts.map +1 -0
  429. package/script/src/ast/nodes/reference.test.js +33 -0
  430. package/script/src/ast/nodes/string.test.d.ts +2 -0
  431. package/script/src/ast/nodes/string.test.d.ts.map +1 -0
  432. package/script/src/ast/nodes/string.test.js +30 -0
  433. package/script/src/ast/nodes/tuple.test.d.ts +2 -0
  434. package/script/src/ast/nodes/tuple.test.d.ts.map +1 -0
  435. package/script/src/ast/nodes/tuple.test.js +35 -0
  436. package/script/src/ast/nodes/type-alias.test.d.ts +2 -0
  437. package/script/src/ast/nodes/type-alias.test.d.ts.map +1 -0
  438. package/script/src/ast/nodes/type-alias.test.js +29 -0
  439. package/script/src/ast/nodes/union-type.test.d.ts +2 -0
  440. package/script/src/ast/nodes/union-type.test.d.ts.map +1 -0
  441. package/script/src/ast/nodes/union-type.test.js +40 -0
  442. package/script/src/ast/nodes/variable.test.d.ts +2 -0
  443. package/script/src/ast/nodes/variable.test.d.ts.map +1 -0
  444. package/script/src/ast/nodes/variable.test.js +40 -0
  445. package/script/src/generators/services/angular-services/angular-service-generator.js +9 -9
  446. package/script/src/generators/services/easy-network-stub/easy-network-stub-generator.js +9 -9
  447. package/script/src/generators/services/fetch-clients/fetch-client-generator.js +2 -2
  448. package/script/src/generators/services/k6-clients/k6-client-generator.js +6 -6
  449. package/script/src/import-collection.test.d.ts +2 -0
  450. package/script/src/import-collection.test.d.ts.map +1 -0
  451. package/script/src/import-collection.test.js +66 -0
  452. package/script/tests/openapi-models.test.d.ts +2 -0
  453. package/script/tests/openapi-models.test.d.ts.map +1 -0
  454. package/script/tests/openapi-models.test.js +48 -0
  455. package/src/_dnt.test_polyfills.ts +70 -0
  456. package/src/_dnt.test_shims.ts +64 -0
  457. package/src/deps/jsr.io/@std/assert/1.0.6/assertion_error.ts +31 -0
  458. package/src/deps/jsr.io/@std/assert/1.0.6/equal.ts +152 -0
  459. package/src/deps/jsr.io/@std/assert/1.0.6/equals.ts +52 -0
  460. package/src/deps/jsr.io/@std/assert/1.0.6/false.ts +26 -0
  461. package/src/deps/jsr.io/@std/assert/1.0.6/instance_of.ts +64 -0
  462. package/src/deps/jsr.io/@std/assert/1.0.6/is_error.ts +65 -0
  463. package/src/deps/jsr.io/@std/assert/1.0.6/match.ts +30 -0
  464. package/src/deps/jsr.io/@std/assert/1.0.6/not_instance_of.ts +33 -0
  465. package/src/deps/jsr.io/@std/assert/1.0.6/not_match.ts +30 -0
  466. package/src/deps/jsr.io/@std/assert/1.0.6/not_strict_equals.ts +42 -0
  467. package/src/deps/jsr.io/@std/assert/1.0.6/object_match.ts +202 -0
  468. package/src/deps/jsr.io/@std/assert/1.0.6/rejects.ts +123 -0
  469. package/src/deps/jsr.io/@std/assert/1.0.6/strict_equals.ts +67 -0
  470. package/src/deps/jsr.io/@std/expect/1.0.6/_assert_equals.ts +38 -0
  471. package/src/deps/jsr.io/@std/expect/1.0.6/_assert_not_equals.ts +35 -0
  472. package/src/deps/jsr.io/@std/expect/1.0.6/_assertion.ts +13 -0
  473. package/src/deps/jsr.io/@std/expect/1.0.6/_asymmetric_matchers.ts +177 -0
  474. package/src/deps/jsr.io/@std/expect/1.0.6/_build_message.ts +51 -0
  475. package/src/deps/jsr.io/@std/expect/1.0.6/_custom_equality_tester.ts +19 -0
  476. package/src/deps/jsr.io/@std/expect/1.0.6/_equal.ts +229 -0
  477. package/src/deps/jsr.io/@std/expect/1.0.6/_extend.ts +16 -0
  478. package/src/deps/jsr.io/@std/expect/1.0.6/_inspect_args.ts +15 -0
  479. package/src/deps/jsr.io/@std/expect/1.0.6/_matchers.ts +828 -0
  480. package/src/deps/jsr.io/@std/expect/1.0.6/_mock_util.ts +22 -0
  481. package/src/deps/jsr.io/@std/expect/1.0.6/_types.ts +917 -0
  482. package/src/deps/jsr.io/@std/expect/1.0.6/_utils.ts +201 -0
  483. package/src/deps/jsr.io/@std/expect/1.0.6/expect.ts +529 -0
  484. package/src/deps/jsr.io/@std/expect/1.0.6/fn.ts +91 -0
  485. package/src/deps/jsr.io/@std/expect/1.0.6/mod.ts +88 -0
  486. package/src/deps/jsr.io/@std/internal/1.0.4/assertion_state.ts +111 -0
  487. package/src/deps/jsr.io/@std/internal/1.0.4/build_message.ts +134 -0
  488. package/src/deps/jsr.io/@std/internal/1.0.4/diff.ts +317 -0
  489. package/src/deps/jsr.io/@std/internal/1.0.4/diff_str.ts +204 -0
  490. package/src/deps/jsr.io/@std/internal/1.0.4/format.ts +39 -0
  491. package/src/deps/jsr.io/@std/internal/1.0.4/styles.ts +233 -0
  492. package/src/deps/jsr.io/@std/internal/1.0.4/types.ts +18 -0
  493. package/src/deps/jsr.io/@std/testing/1.0.3/_test_suite.ts +389 -0
  494. package/src/deps/jsr.io/@std/testing/1.0.3/bdd.ts +1202 -0
  495. package/src/deps/jsr.io/@std/testing/1.0.3/mock.ts +1839 -0
  496. package/src/mod.ts +7 -0
  497. package/src/src/assets.ts +9 -0
  498. package/src/src/ast/_index.ts +54 -0
  499. package/src/src/ast/common.ts +1 -0
  500. package/src/src/ast/index.ts +1 -0
  501. package/src/src/ast/node.ts +10 -0
  502. package/src/src/ast/nodes/argument.test.ts +43 -0
  503. package/src/src/ast/nodes/argument.ts +40 -0
  504. package/src/src/ast/nodes/array-type.test.ts +34 -0
  505. package/src/src/ast/nodes/array-type.ts +49 -0
  506. package/src/src/ast/nodes/arrow-function.test.ts +79 -0
  507. package/src/src/ast/nodes/arrow-function.ts +91 -0
  508. package/src/src/ast/nodes/call.ts +55 -0
  509. package/src/src/ast/nodes/class.test.ts +185 -0
  510. package/src/src/ast/nodes/class.ts +133 -0
  511. package/src/src/ast/nodes/constructor-parameter.test.ts +122 -0
  512. package/src/src/ast/nodes/constructor-parameter.ts +70 -0
  513. package/src/src/ast/nodes/constructor.test.ts +131 -0
  514. package/src/src/ast/nodes/constructor.ts +77 -0
  515. package/src/src/ast/nodes/decorator.test.ts +59 -0
  516. package/src/src/ast/nodes/decorator.ts +76 -0
  517. package/src/src/ast/nodes/doc-tag.test.ts +40 -0
  518. package/src/src/ast/nodes/doc-tag.ts +291 -0
  519. package/src/src/ast/nodes/doc.test.ts +40 -0
  520. package/src/src/ast/nodes/doc.ts +102 -0
  521. package/src/src/ast/nodes/enum-value.test.ts +66 -0
  522. package/src/src/ast/nodes/enum-value.ts +72 -0
  523. package/src/src/ast/nodes/enum.test.ts +85 -0
  524. package/src/src/ast/nodes/enum.ts +77 -0
  525. package/src/src/ast/nodes/export.test.ts +29 -0
  526. package/src/src/ast/nodes/export.ts +54 -0
  527. package/src/src/ast/nodes/function-type.test.ts +61 -0
  528. package/src/src/ast/nodes/function-type.ts +60 -0
  529. package/src/src/ast/nodes/function.test.ts +135 -0
  530. package/src/src/ast/nodes/function.ts +107 -0
  531. package/src/src/ast/nodes/generic-parameter.test.ts +86 -0
  532. package/src/src/ast/nodes/generic-parameter.ts +71 -0
  533. package/src/src/ast/nodes/indexer.test.ts +42 -0
  534. package/src/src/ast/nodes/indexer.ts +60 -0
  535. package/src/src/ast/nodes/interface.test.ts +142 -0
  536. package/src/src/ast/nodes/interface.ts +117 -0
  537. package/src/src/ast/nodes/intersection-type.test.ts +52 -0
  538. package/src/src/ast/nodes/intersection-type.ts +67 -0
  539. package/src/src/ast/nodes/lookup-type.ts +53 -0
  540. package/src/src/ast/nodes/method.test.ts +185 -0
  541. package/src/src/ast/nodes/method.ts +138 -0
  542. package/src/src/ast/nodes/object-type.test.ts +40 -0
  543. package/src/src/ast/nodes/object-type.ts +52 -0
  544. package/src/src/ast/nodes/object.test.ts +40 -0
  545. package/src/src/ast/nodes/object.ts +48 -0
  546. package/src/src/ast/nodes/parameter.test.ts +88 -0
  547. package/src/src/ast/nodes/parameter.ts +85 -0
  548. package/src/src/ast/nodes/property-accessor.test.ts +132 -0
  549. package/src/src/ast/nodes/property-accessor.ts +173 -0
  550. package/src/src/ast/nodes/property.test.ts +113 -0
  551. package/src/src/ast/nodes/property.ts +192 -0
  552. package/src/src/ast/nodes/reference.test.ts +42 -0
  553. package/src/src/ast/nodes/reference.ts +194 -0
  554. package/src/src/ast/nodes/string.test.ts +35 -0
  555. package/src/src/ast/nodes/string.ts +49 -0
  556. package/src/src/ast/nodes/tuple.test.ts +45 -0
  557. package/src/src/ast/nodes/tuple.ts +53 -0
  558. package/src/src/ast/nodes/type-alias.test.ts +35 -0
  559. package/src/src/ast/nodes/type-alias.ts +75 -0
  560. package/src/src/ast/nodes/typeof.ts +42 -0
  561. package/src/src/ast/nodes/types.ts +40 -0
  562. package/src/src/ast/nodes/union-type.test.ts +50 -0
  563. package/src/src/ast/nodes/union-type.ts +62 -0
  564. package/src/src/ast/nodes/variable.test.ts +49 -0
  565. package/src/src/ast/nodes/variable.ts +73 -0
  566. package/src/src/ast/references/angular.ts +24 -0
  567. package/src/src/ast/references/easy-network-stub.ts +21 -0
  568. package/src/src/ast/references/index.ts +5 -0
  569. package/src/src/ast/references/k6.ts +8 -0
  570. package/src/src/ast/references/rxjs.ts +7 -0
  571. package/src/src/ast/references/typescript.ts +35 -0
  572. package/src/src/ast/utils/get-type-script-builder-options.ts +19 -0
  573. package/src/src/ast/utils/to-ts-node.ts +27 -0
  574. package/src/src/ast/utils/write-ts-generic-parameters.ts +25 -0
  575. package/src/src/ast/utils/write-ts-members.ts +28 -0
  576. package/src/src/ast/utils/write-ts-nodes.ts +35 -0
  577. package/src/src/ast/utils/write-ts-parameters.ts +25 -0
  578. package/src/src/common-results.ts +26 -0
  579. package/src/src/config.ts +89 -0
  580. package/src/src/file-builder.ts +136 -0
  581. package/src/src/generators/file-generator.ts +15 -0
  582. package/src/src/generators/index.ts +6 -0
  583. package/src/src/generators/models/index.ts +3 -0
  584. package/src/src/generators/models/model-generator.ts +469 -0
  585. package/src/src/generators/models/models-generator.ts +108 -0
  586. package/src/src/generators/models/models.ts +105 -0
  587. package/src/src/generators/services/angular-services/angular-service-generator.ts +402 -0
  588. package/src/src/generators/services/angular-services/angular-services-generator.ts +295 -0
  589. package/src/src/generators/services/angular-services/index.ts +3 -0
  590. package/src/src/generators/services/angular-services/models.ts +270 -0
  591. package/src/src/generators/services/angular-services/refs.ts +54 -0
  592. package/src/src/generators/services/easy-network-stub/easy-network-stub-generator.ts +242 -0
  593. package/src/src/generators/services/easy-network-stub/easy-network-stubs-generator.ts +211 -0
  594. package/src/src/generators/services/easy-network-stub/index.ts +3 -0
  595. package/src/src/generators/services/easy-network-stub/models.ts +124 -0
  596. package/src/src/generators/services/easy-network-stub/refs.ts +45 -0
  597. package/src/src/generators/services/fetch-clients/fetch-client-generator.ts +267 -0
  598. package/src/src/generators/services/fetch-clients/fetch-clients-generator.ts +163 -0
  599. package/src/src/generators/services/fetch-clients/index.ts +3 -0
  600. package/src/src/generators/services/fetch-clients/models.ts +130 -0
  601. package/src/src/generators/services/fetch-clients/refs.ts +21 -0
  602. package/src/src/generators/services/k6-clients/index.ts +3 -0
  603. package/src/src/generators/services/k6-clients/k6-client-generator.ts +409 -0
  604. package/src/src/generators/services/k6-clients/k6-clients-generator.ts +165 -0
  605. package/src/src/generators/services/k6-clients/models.ts +241 -0
  606. package/src/src/generators/services/k6-clients/refs.ts +15 -0
  607. package/src/src/import-collection.test.ts +78 -0
  608. package/src/src/import-collection.ts +236 -0
  609. package/src/src/utils.ts +72 -0
  610. package/src/tests/openapi-models.test.ts +64 -0
  611. package/test_runner.js +239 -0
@@ -0,0 +1,202 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+ import { assertEquals } from "./equals.js";
4
+
5
+ /**
6
+ * Make an assertion that `expected` object is a subset of `actual` object,
7
+ * deeply. If not, then throw.
8
+ *
9
+ * @example Usage
10
+ * ```ts ignore
11
+ * import { assertObjectMatch } from "@std/assert";
12
+ *
13
+ * assertObjectMatch({ foo: "bar" }, { foo: "bar" }); // Doesn't throw
14
+ * assertObjectMatch({ foo: "bar" }, { foo: "baz" }); // Throws
15
+ * assertObjectMatch({ foo: 1, bar: 2 }, { foo: 1 }); // Doesn't throw
16
+ * assertObjectMatch({ foo: 1 }, { foo: 1, bar: 2 }); // Throws
17
+ * ```
18
+ *
19
+ * @example Usage with nested objects
20
+ * ```ts ignore
21
+ * import { assertObjectMatch } from "@std/assert";
22
+ *
23
+ * assertObjectMatch({ foo: { bar: 3, baz: 4 } }, { foo: { bar: 3 } }); // Doesn't throw
24
+ * assertObjectMatch({ foo: { bar: 3 } }, { foo: { bar: 3, baz: 4 } }); // Throws
25
+ * ```
26
+ *
27
+ * @param actual The actual value to be matched.
28
+ * @param expected The expected value to match.
29
+ * @param msg The optional message to display if the assertion fails.
30
+ */
31
+ export function assertObjectMatch(
32
+ // deno-lint-ignore no-explicit-any
33
+ actual: Record<PropertyKey, any>,
34
+ expected: Record<PropertyKey, unknown>,
35
+ msg?: string,
36
+ ): void {
37
+ return assertEquals(
38
+ // get the intersection of "actual" and "expected"
39
+ // side effect: all the instances' constructor field is "Object" now.
40
+ filter(actual, expected),
41
+ // set (nested) instances' constructor field to be "Object" without changing expected value.
42
+ // see https://github.com/denoland/deno_std/pull/1419
43
+ filter(expected, expected),
44
+ msg,
45
+ );
46
+ }
47
+
48
+ type loose = Record<PropertyKey, unknown>;
49
+
50
+ function isObject(val: unknown): boolean {
51
+ return typeof val === "object" && val !== null;
52
+ }
53
+
54
+ function filter(a: loose, b: loose): loose {
55
+ const seen = new WeakMap();
56
+ return filterObject(a, b);
57
+
58
+ function filterObject(a: loose, b: loose): loose {
59
+ // Prevent infinite loop with circular references with same filter
60
+ if ((seen.has(a)) && (seen.get(a) === b)) {
61
+ return a;
62
+ }
63
+
64
+ try {
65
+ seen.set(a, b);
66
+ } catch (err) {
67
+ if (err instanceof TypeError) {
68
+ throw new TypeError(
69
+ `Cannot assertObjectMatch ${a === null ? null : `type ${typeof a}`}`,
70
+ );
71
+ }
72
+ }
73
+
74
+ // Filter keys and symbols which are present in both actual and expected
75
+ const filtered = {} as loose;
76
+ const keysA = Reflect.ownKeys(a);
77
+ const keysB = Reflect.ownKeys(b);
78
+ const entries = keysA.filter((key) => keysB.includes(key))
79
+ .map((key) => [key, a[key as string]]) as Array<[string, unknown]>;
80
+
81
+ if (keysA.length && keysB.length && !entries.length) {
82
+ // If both objects are not empty but don't have the same keys or symbols,
83
+ // returns the entries in object a.
84
+ for (const key of keysA) {
85
+ filtered[key] = a[key];
86
+ }
87
+
88
+ return filtered;
89
+ }
90
+
91
+ for (const [key, value] of entries) {
92
+ // On regexp references, keep value as it to avoid loosing pattern and flags
93
+ if (value instanceof RegExp) {
94
+ filtered[key] = value;
95
+ continue;
96
+ }
97
+
98
+ const subset = (b as loose)[key];
99
+
100
+ // On array references, build a filtered array and filter nested objects inside
101
+ if (Array.isArray(value) && Array.isArray(subset)) {
102
+ filtered[key] = filterArray(value, subset);
103
+ continue;
104
+ }
105
+
106
+ // On nested objects references, build a filtered object recursively
107
+ if (isObject(value) && isObject(subset)) {
108
+ // When both operands are maps, build a filtered map with common keys and filter nested objects inside
109
+ if ((value instanceof Map) && (subset instanceof Map)) {
110
+ filtered[key] = new Map(
111
+ [...value].filter(([k]) => subset.has(k)).map(
112
+ ([k, v]) => {
113
+ const v2 = subset.get(k);
114
+ if (isObject(v) && isObject(v2)) {
115
+ return [k, filterObject(v as loose, v2 as loose)];
116
+ }
117
+
118
+ return [k, v];
119
+ },
120
+ ),
121
+ );
122
+ continue;
123
+ }
124
+
125
+ // When both operands are set, build a filtered set with common values
126
+ if ((value instanceof Set) && (subset instanceof Set)) {
127
+ filtered[key] = value.intersection(subset);
128
+ continue;
129
+ }
130
+
131
+ filtered[key] = filterObject(value as loose, subset as loose);
132
+ continue;
133
+ }
134
+
135
+ filtered[key] = value;
136
+ }
137
+
138
+ return filtered;
139
+ }
140
+
141
+ function filterArray(a: unknown[], b: unknown[]): unknown[] {
142
+ // Prevent infinite loop with circular references with same filter
143
+ if (seen.has(a) && (seen.get(a) === b)) {
144
+ return a;
145
+ }
146
+
147
+ seen.set(a, b);
148
+
149
+ const filtered: unknown[] = [];
150
+ const count = Math.min(a.length, b.length);
151
+
152
+ for (let i = 0; i < count; ++i) {
153
+ const value = a[i];
154
+ const subset = b[i];
155
+
156
+ // On regexp references, keep value as it to avoid loosing pattern and flags
157
+ if (value instanceof RegExp) {
158
+ filtered.push(value);
159
+ continue;
160
+ }
161
+
162
+ // On array references, build a filtered array and filter nested objects inside
163
+ if (Array.isArray(value) && Array.isArray(subset)) {
164
+ filtered.push(filterArray(value, subset));
165
+ continue;
166
+ }
167
+
168
+ // On nested objects references, build a filtered object recursively
169
+ if (isObject(value) && isObject(subset)) {
170
+ // When both operands are maps, build a filtered map with common keys and filter nested objects inside
171
+ if ((value instanceof Map) && (subset instanceof Map)) {
172
+ const map = new Map(
173
+ [...value].filter(([k]) => subset.has(k))
174
+ .map(([k, v]) => {
175
+ const v2 = subset.get(k);
176
+ if (isObject(v) && isObject(v2)) {
177
+ return [k, filterObject(v as loose, v2 as loose)];
178
+ }
179
+
180
+ return [k, v];
181
+ }),
182
+ );
183
+ filtered.push(map);
184
+ continue;
185
+ }
186
+
187
+ // When both operands are set, build a filtered set with common values
188
+ if ((value instanceof Set) && (subset instanceof Set)) {
189
+ filtered.push(value.intersection(subset));
190
+ continue;
191
+ }
192
+
193
+ filtered.push(filterObject(value as loose, subset as loose));
194
+ continue;
195
+ }
196
+
197
+ filtered.push(value);
198
+ }
199
+
200
+ return filtered;
201
+ }
202
+ }
@@ -0,0 +1,123 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+ import { AssertionError } from "./assertion_error.js";
4
+ import { assertIsError } from "./is_error.js";
5
+
6
+ /**
7
+ * Executes a function which returns a promise, expecting it to reject.
8
+ *
9
+ * To assert that a synchronous function throws, use {@linkcode assertThrows}.
10
+ *
11
+ * @example Usage
12
+ * ```ts ignore
13
+ * import { assertRejects } from "@std/assert";
14
+ *
15
+ * await assertRejects(async () => Promise.reject(new Error())); // Doesn't throw
16
+ * await assertRejects(async () => console.log("Hello world")); // Throws
17
+ * ```
18
+ *
19
+ * @param fn The function to execute.
20
+ * @param msg The optional message to display if the assertion fails.
21
+ * @returns The promise which resolves to the thrown error.
22
+ */
23
+ export function assertRejects(
24
+ fn: () => PromiseLike<unknown>,
25
+ msg?: string,
26
+ ): Promise<unknown>;
27
+ /**
28
+ * Executes a function which returns a promise, expecting it to reject.
29
+ * If it does not, then it throws. An error class and a string that should be
30
+ * included in the error message can also be asserted.
31
+ *
32
+ * To assert that a synchronous function throws, use {@linkcode assertThrows}.
33
+ *
34
+ * @example Usage
35
+ * ```ts ignore
36
+ * import { assertRejects } from "@std/assert";
37
+ *
38
+ * await assertRejects(async () => Promise.reject(new Error()), Error); // Doesn't throw
39
+ * await assertRejects(async () => Promise.reject(new Error()), SyntaxError); // Throws
40
+ * ```
41
+ *
42
+ * @typeParam E The error class to assert.
43
+ * @param fn The function to execute.
44
+ * @param ErrorClass The error class to assert.
45
+ * @param msgIncludes The string that should be included in the error message.
46
+ * @param msg The optional message to display if the assertion fails.
47
+ * @returns The promise which resolves to the thrown error.
48
+ */
49
+ export function assertRejects<E extends Error = Error>(
50
+ fn: () => PromiseLike<unknown>,
51
+ // deno-lint-ignore no-explicit-any
52
+ ErrorClass: abstract new (...args: any[]) => E,
53
+ msgIncludes?: string,
54
+ msg?: string,
55
+ ): Promise<E>;
56
+ export async function assertRejects<E extends Error = Error>(
57
+ fn: () => PromiseLike<unknown>,
58
+ errorClassOrMsg?:
59
+ // deno-lint-ignore no-explicit-any
60
+ | (abstract new (...args: any[]) => E)
61
+ | string,
62
+ msgIncludesOrMsg?: string,
63
+ msg?: string,
64
+ ): Promise<E | Error | unknown> {
65
+ // deno-lint-ignore no-explicit-any
66
+ let ErrorClass: (abstract new (...args: any[]) => E) | undefined;
67
+ let msgIncludes: string | undefined;
68
+ let err;
69
+
70
+ if (typeof errorClassOrMsg !== "string") {
71
+ if (
72
+ errorClassOrMsg === undefined ||
73
+ errorClassOrMsg.prototype instanceof Error ||
74
+ errorClassOrMsg.prototype === Error.prototype
75
+ ) {
76
+ ErrorClass = errorClassOrMsg;
77
+ msgIncludes = msgIncludesOrMsg;
78
+ }
79
+ } else {
80
+ msg = errorClassOrMsg;
81
+ }
82
+ let doesThrow = false;
83
+ let isPromiseReturned = false;
84
+ const msgSuffix = msg ? `: ${msg}` : ".";
85
+ try {
86
+ const possiblePromise = fn();
87
+ if (
88
+ possiblePromise &&
89
+ typeof possiblePromise === "object" &&
90
+ typeof possiblePromise.then === "function"
91
+ ) {
92
+ isPromiseReturned = true;
93
+ await possiblePromise;
94
+ } else {
95
+ throw new Error();
96
+ }
97
+ } catch (error) {
98
+ if (!isPromiseReturned) {
99
+ throw new AssertionError(
100
+ `Function throws when expected to reject${msgSuffix}`,
101
+ );
102
+ }
103
+ if (ErrorClass) {
104
+ if (!(error instanceof Error)) {
105
+ throw new AssertionError(`A non-Error object was rejected${msgSuffix}`);
106
+ }
107
+ assertIsError(
108
+ error,
109
+ ErrorClass,
110
+ msgIncludes,
111
+ msg,
112
+ );
113
+ }
114
+ err = error;
115
+ doesThrow = true;
116
+ }
117
+ if (!doesThrow) {
118
+ throw new AssertionError(
119
+ `Expected function to reject${msgSuffix}`,
120
+ );
121
+ }
122
+ return err;
123
+ }
@@ -0,0 +1,67 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+ import { buildMessage } from "../../internal/1.0.4/build_message.js";
4
+ import { diff } from "../../internal/1.0.4/diff.js";
5
+ import { diffStr } from "../../internal/1.0.4/diff_str.js";
6
+ import { format } from "../../internal/1.0.4/format.js";
7
+ import { red } from "../../internal/1.0.4/styles.js";
8
+ import { AssertionError } from "./assertion_error.js";
9
+
10
+ /**
11
+ * Make an assertion that `actual` and `expected` are strictly equal, using
12
+ * {@linkcode Object.is} for equality comparison. If not, then throw.
13
+ *
14
+ * @example Usage
15
+ * ```ts ignore
16
+ * import { assertStrictEquals } from "@std/assert";
17
+ *
18
+ * const a = {};
19
+ * const b = a;
20
+ * assertStrictEquals(a, b); // Doesn't throw
21
+ *
22
+ * const c = {};
23
+ * const d = {};
24
+ * assertStrictEquals(c, d); // Throws
25
+ * ```
26
+ *
27
+ * @typeParam T The type of the expected value.
28
+ * @param actual The actual value to compare.
29
+ * @param expected The expected value to compare.
30
+ * @param msg The optional message to display if the assertion fails.
31
+ */
32
+ export function assertStrictEquals<T>(
33
+ actual: unknown,
34
+ expected: T,
35
+ msg?: string,
36
+ ): asserts actual is T {
37
+ if (Object.is(actual, expected)) {
38
+ return;
39
+ }
40
+
41
+ const msgSuffix = msg ? `: ${msg}` : ".";
42
+ let message: string;
43
+
44
+ const actualString = format(actual);
45
+ const expectedString = format(expected);
46
+
47
+ if (actualString === expectedString) {
48
+ const withOffset = actualString
49
+ .split("\n")
50
+ .map((l) => ` ${l}`)
51
+ .join("\n");
52
+ message =
53
+ `Values have the same structure but are not reference-equal${msgSuffix}\n\n${
54
+ red(withOffset)
55
+ }\n`;
56
+ } else {
57
+ const stringDiff = (typeof actual === "string") &&
58
+ (typeof expected === "string");
59
+ const diffResult = stringDiff
60
+ ? diffStr(actual as string, expected as string)
61
+ : diff(actualString.split("\n"), expectedString.split("\n"));
62
+ const diffMsg = buildMessage(diffResult, { stringDiff }).join("\n");
63
+ message = `Values are not strictly equal${msgSuffix}\n${diffMsg}`;
64
+ }
65
+
66
+ throw new AssertionError(message);
67
+ }
@@ -0,0 +1,38 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+
3
+ // This file is copied from `std/assert`.
4
+
5
+ import { AssertionError } from "../../assert/1.0.6/assertion_error.js";
6
+ import { buildEqualErrorMessage } from "./_build_message.js";
7
+ import { equal } from "./_equal.js";
8
+ import type { EqualOptions } from "./_types.js";
9
+
10
+ /**
11
+ * Make an assertion that `actual` and `expected` are equal, deeply. If not
12
+ * deeply equal, then throw.
13
+ *
14
+ * Type parameter can be specified to ensure values under comparison have the
15
+ * same type.
16
+ *
17
+ * @example
18
+ * ```ts ignore
19
+ * import { assertEquals } from "@std/assert";
20
+ *
21
+ * assertEquals("world", "world"); // Doesn't throw
22
+ * assertEquals("hello", "world"); // Throws
23
+ * ```
24
+ *
25
+ * Note: formatter option is experimental and may be removed in the future.
26
+ */
27
+ export function assertEquals<T>(
28
+ actual: T,
29
+ expected: T,
30
+ options?: EqualOptions,
31
+ ) {
32
+ if (equal(actual, expected, options)) {
33
+ return;
34
+ }
35
+
36
+ const message = buildEqualErrorMessage(actual, expected, options ?? {});
37
+ throw new AssertionError(message);
38
+ }
@@ -0,0 +1,35 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+
3
+ // This file is copied from `std/assert`.
4
+
5
+ import { AssertionError } from "../../assert/1.0.6/assertion_error.js";
6
+ import { buildNotEqualErrorMessage } from "./_build_message.js";
7
+ import { equal } from "./_equal.js";
8
+ import type { EqualOptions } from "./_types.js";
9
+
10
+ /**
11
+ * Make an assertion that `actual` and `expected` are not equal, deeply.
12
+ * If not then throw.
13
+ *
14
+ * Type parameter can be specified to ensure values under comparison have the same type.
15
+ *
16
+ * @example
17
+ * ```ts ignore
18
+ * import { assertNotEquals } from "@std/assert";
19
+ *
20
+ * assertNotEquals(1, 2); // Doesn't throw
21
+ * assertNotEquals(1, 1); // Throws
22
+ * ```
23
+ */
24
+ export function assertNotEquals<T>(
25
+ actual: T,
26
+ expected: T,
27
+ options: EqualOptions = {},
28
+ ) {
29
+ if (!equal(actual, expected, options)) {
30
+ return;
31
+ }
32
+
33
+ const message = buildNotEqualErrorMessage(actual, expected, options);
34
+ throw new AssertionError(message);
35
+ }
@@ -0,0 +1,13 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+
3
+ import { getAssertionState } from "../../internal/1.0.4/assertion_state.js";
4
+
5
+ const assertionState = getAssertionState();
6
+
7
+ export function hasAssertions() {
8
+ assertionState.setAssertionCheck(true);
9
+ }
10
+
11
+ export function emitAssertionTrigger() {
12
+ assertionState.setAssertionTriggered(true);
13
+ }
@@ -0,0 +1,177 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // deno-lint-ignore-file no-explicit-any
3
+
4
+ import { equal } from "./_equal.js";
5
+
6
+ export abstract class AsymmetricMatcher<T> {
7
+ constructor(
8
+ protected value: T,
9
+ ) {}
10
+ abstract equals(other: unknown): boolean;
11
+ }
12
+
13
+ export class Anything extends AsymmetricMatcher<void> {
14
+ equals(other: unknown): boolean {
15
+ return other !== null && other !== undefined;
16
+ }
17
+ }
18
+
19
+ export function anything(): Anything {
20
+ return new Anything();
21
+ }
22
+
23
+ export class Any extends AsymmetricMatcher<any> {
24
+ constructor(value: unknown) {
25
+ if (value === undefined) {
26
+ throw new TypeError("Expected a constructor function");
27
+ }
28
+ super(value);
29
+ }
30
+
31
+ equals(other: unknown): boolean {
32
+ if (typeof other === "object") {
33
+ return other instanceof this.value;
34
+ } else {
35
+ if (this.value === Number) {
36
+ return typeof other === "number";
37
+ }
38
+
39
+ if (this.value === String) {
40
+ return typeof other === "string";
41
+ }
42
+
43
+ if (this.value === Number) {
44
+ return typeof other === "number";
45
+ }
46
+
47
+ if (this.value === Function) {
48
+ return typeof other === "function";
49
+ }
50
+
51
+ if (this.value === Boolean) {
52
+ return typeof other === "boolean";
53
+ }
54
+
55
+ if (this.value === BigInt) {
56
+ return typeof other === "bigint";
57
+ }
58
+
59
+ if (this.value === Symbol) {
60
+ return typeof other === "symbol";
61
+ }
62
+ }
63
+ return false;
64
+ }
65
+ }
66
+
67
+ export function any(c: unknown): Any {
68
+ return new Any(c);
69
+ }
70
+
71
+ export class ArrayContaining extends AsymmetricMatcher<any[]> {
72
+ constructor(arr: any[]) {
73
+ super(arr);
74
+ }
75
+
76
+ equals(other: any[]): boolean {
77
+ return Array.isArray(other) && this.value.every((e) => other.includes(e));
78
+ }
79
+ }
80
+
81
+ export function arrayContaining(c: any[]): ArrayContaining {
82
+ return new ArrayContaining(c);
83
+ }
84
+
85
+ export class CloseTo extends AsymmetricMatcher<number> {
86
+ readonly #precision: number;
87
+
88
+ constructor(num: number, precision: number = 2) {
89
+ super(num);
90
+ this.#precision = precision;
91
+ }
92
+
93
+ equals(other: number): boolean {
94
+ if (typeof other !== "number") {
95
+ return false;
96
+ }
97
+
98
+ if (
99
+ (this.value === Number.POSITIVE_INFINITY &&
100
+ other === Number.POSITIVE_INFINITY) ||
101
+ (this.value === Number.NEGATIVE_INFINITY &&
102
+ other === Number.NEGATIVE_INFINITY)
103
+ ) {
104
+ return true;
105
+ }
106
+
107
+ return Math.abs(this.value - other) < Math.pow(10, -this.#precision) / 2;
108
+ }
109
+ }
110
+
111
+ export function closeTo(num: number, numDigits?: number): CloseTo {
112
+ return new CloseTo(num, numDigits);
113
+ }
114
+
115
+ export class StringContaining extends AsymmetricMatcher<string> {
116
+ constructor(str: string) {
117
+ super(str);
118
+ }
119
+
120
+ equals(other: string): boolean {
121
+ if (typeof other !== "string") {
122
+ return false;
123
+ }
124
+
125
+ return other.includes(this.value);
126
+ }
127
+ }
128
+
129
+ export function stringContaining(str: string): StringContaining {
130
+ return new StringContaining(str);
131
+ }
132
+
133
+ export class StringMatching extends AsymmetricMatcher<RegExp> {
134
+ constructor(pattern: string | RegExp) {
135
+ super(new RegExp(pattern));
136
+ }
137
+
138
+ equals(other: string): boolean {
139
+ if (typeof other !== "string") {
140
+ return false;
141
+ }
142
+
143
+ return this.value.test(other);
144
+ }
145
+ }
146
+
147
+ export function stringMatching(pattern: string | RegExp): StringMatching {
148
+ return new StringMatching(pattern);
149
+ }
150
+
151
+ export class ObjectContaining
152
+ extends AsymmetricMatcher<Record<string, unknown>> {
153
+ constructor(obj: Record<string, unknown>) {
154
+ super(obj);
155
+ }
156
+
157
+ equals(other: Record<string, unknown>): boolean {
158
+ const keys = Object.keys(this.value);
159
+
160
+ for (const key of keys) {
161
+ if (
162
+ !Object.hasOwn(other, key) ||
163
+ !equal(this.value[key], other[key])
164
+ ) {
165
+ return false;
166
+ }
167
+ }
168
+
169
+ return true;
170
+ }
171
+ }
172
+
173
+ export function objectContaining(
174
+ obj: Record<string, unknown>,
175
+ ): ObjectContaining {
176
+ return new ObjectContaining(obj);
177
+ }