@outfoxx/sunday 1.1.0-beta.9 → 2.0.0-beta.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 (427) hide show
  1. package/README.md +2 -0
  2. package/build/date-time-types.d.ts +35 -0
  3. package/build/date-time-types.js +699 -0
  4. package/build/date-time-types.js.map +1 -0
  5. package/build/{esm/event-parser.d.ts → event-parser.d.ts} +1 -1
  6. package/build/{esm/event-parser.js → event-parser.js} +10 -12
  7. package/build/event-parser.js.map +1 -0
  8. package/build/{esm/fetch-event-source.d.ts → fetch-event-source.d.ts} +26 -18
  9. package/build/fetch-event-source.js +365 -0
  10. package/build/fetch-event-source.js.map +1 -0
  11. package/build/fetch-transport.d.ts +32 -0
  12. package/build/fetch-transport.js +311 -0
  13. package/build/fetch-transport.js.map +1 -0
  14. package/build/fetch.d.ts +9 -0
  15. package/build/fetch.js +140 -0
  16. package/build/fetch.js.map +1 -0
  17. package/build/{esnext/header-parameters.js → header-parameters.js} +31 -2
  18. package/build/header-parameters.js.map +1 -0
  19. package/build/index.d.ts +27 -0
  20. package/build/index.js +42 -0
  21. package/build/index.js.map +1 -0
  22. package/build/{main/logger.d.ts → logger.d.ts} +9 -0
  23. package/build/logger.js +36 -0
  24. package/build/logger.js.map +1 -0
  25. package/build/media-type-codecs/any-text-decoder.d.ts +7 -0
  26. package/build/{esm/media-type-codecs → media-type-codecs}/any-text-decoder.js +9 -9
  27. package/build/media-type-codecs/any-text-decoder.js.map +1 -0
  28. package/build/media-type-codecs/any-text-encoder.d.ts +6 -0
  29. package/build/{esm/media-type-codecs → media-type-codecs}/any-text-encoder.js +9 -5
  30. package/build/media-type-codecs/any-text-encoder.js.map +1 -0
  31. package/build/media-type-codecs/binary-decoder.d.ts +7 -0
  32. package/build/{esnext/media-type-codecs → media-type-codecs}/binary-decoder.js +13 -9
  33. package/build/media-type-codecs/binary-decoder.js.map +1 -0
  34. package/build/media-type-codecs/binary-encoder.d.ts +6 -0
  35. package/build/{esnext/media-type-codecs → media-type-codecs}/binary-encoder.js +12 -8
  36. package/build/media-type-codecs/binary-encoder.js.map +1 -0
  37. package/build/media-type-codecs/cbor-decoder.d.ts +13 -0
  38. package/build/media-type-codecs/cbor-decoder.js +38 -0
  39. package/build/media-type-codecs/cbor-decoder.js.map +1 -0
  40. package/build/media-type-codecs/cbor-encoder.d.ts +12 -0
  41. package/build/media-type-codecs/cbor-encoder.js +36 -0
  42. package/build/media-type-codecs/cbor-encoder.js.map +1 -0
  43. package/build/{esm/media-type-codecs → media-type-codecs}/cbor-tags.d.ts +2 -0
  44. package/build/{esnext/media-type-codecs → media-type-codecs}/cbor-tags.js +2 -0
  45. package/build/media-type-codecs/cbor-tags.js.map +1 -0
  46. package/build/media-type-codecs/default-policies.d.ts +3 -0
  47. package/build/media-type-codecs/default-policies.js +33 -0
  48. package/build/media-type-codecs/default-policies.js.map +1 -0
  49. package/build/media-type-codecs/json-decoder.d.ts +14 -0
  50. package/build/media-type-codecs/json-decoder.js +40 -0
  51. package/build/media-type-codecs/json-decoder.js.map +1 -0
  52. package/build/media-type-codecs/json-encoder.d.ts +13 -0
  53. package/build/media-type-codecs/json-encoder.js +43 -0
  54. package/build/media-type-codecs/json-encoder.js.map +1 -0
  55. package/build/media-type-codecs/media-type-decoder.d.ts +14 -0
  56. package/build/{esm/media-type-codecs → media-type-codecs}/media-type-decoder.js +1 -2
  57. package/build/media-type-codecs/media-type-decoder.js.map +1 -0
  58. package/build/{main/media-type-codecs → media-type-codecs}/media-type-decoders.d.ts +6 -8
  59. package/build/media-type-codecs/media-type-decoders.js +63 -0
  60. package/build/media-type-codecs/media-type-decoders.js.map +1 -0
  61. package/build/{main/media-type-codecs → media-type-codecs}/media-type-encoder.d.ts +3 -3
  62. package/build/{esnext/media-type-codecs → media-type-codecs}/media-type-encoder.js +2 -4
  63. package/build/media-type-codecs/media-type-encoder.js.map +1 -0
  64. package/build/{esnext/media-type-codecs → media-type-codecs}/media-type-encoders.d.ts +6 -8
  65. package/build/media-type-codecs/media-type-encoders.js +65 -0
  66. package/build/media-type-codecs/media-type-encoders.js.map +1 -0
  67. package/build/media-type-codecs/www-form-url-encoder.d.ts +31 -0
  68. package/build/media-type-codecs/www-form-url-encoder.js +281 -0
  69. package/build/media-type-codecs/www-form-url-encoder.js.map +1 -0
  70. package/build/{esm/media-type.js → media-type.js} +23 -23
  71. package/build/media-type.js.map +1 -0
  72. package/build/operation-response.d.ts +33 -0
  73. package/build/operation-response.js +140 -0
  74. package/build/operation-response.js.map +1 -0
  75. package/build/operation.d.ts +54 -0
  76. package/build/operation.js +87 -0
  77. package/build/operation.js.map +1 -0
  78. package/build/problem.d.ts +35 -0
  79. package/build/problem.js +122 -0
  80. package/build/problem.js.map +1 -0
  81. package/build/request-adapters.d.ts +23 -0
  82. package/build/request-adapters.js +53 -0
  83. package/build/request-adapters.js.map +1 -0
  84. package/build/schema-builtins.d.ts +21 -0
  85. package/build/schema-builtins.js +201 -0
  86. package/build/schema-builtins.js.map +1 -0
  87. package/build/schema-policy.d.ts +31 -0
  88. package/build/schema-policy.js +41 -0
  89. package/build/schema-policy.js.map +1 -0
  90. package/build/schema-runtime.d.ts +36 -0
  91. package/build/schema-runtime.js +77 -0
  92. package/build/schema-runtime.js.map +1 -0
  93. package/build/{esnext/sunday-error.d.ts → sunday-error.d.ts} +2 -3
  94. package/build/{esm/sunday-error.js → sunday-error.js} +9 -4
  95. package/build/sunday-error.js.map +1 -0
  96. package/build/transport.d.ts +39 -0
  97. package/build/{esnext/logger.js → transport.js} +1 -1
  98. package/build/transport.js.map +1 -0
  99. package/build/{esm/url-template.js → url-template.js} +5 -3
  100. package/build/url-template.js.map +1 -0
  101. package/build/util/async-iterables.d.ts +15 -0
  102. package/build/util/async-iterables.js +179 -0
  103. package/build/util/async-iterables.js.map +1 -0
  104. package/build/util/errors.js +65 -0
  105. package/build/util/errors.js.map +1 -0
  106. package/build/util/nullify.d.ts +5 -0
  107. package/build/util/nullify.js +37 -0
  108. package/build/util/nullify.js.map +1 -0
  109. package/build/util/numbers.d.ts +11 -0
  110. package/build/{esnext/util/temporal.js → util/numbers.js} +14 -4
  111. package/build/util/numbers.js.map +1 -0
  112. package/build/util/subscriptions.d.ts +16 -0
  113. package/build/util/subscriptions.js +78 -0
  114. package/build/util/subscriptions.js.map +1 -0
  115. package/build/{esm/util/any.js → util/unknowns.js} +2 -3
  116. package/build/util/unknowns.js.map +1 -0
  117. package/package.json +58 -58
  118. package/build/esm/any-type.d.ts +0 -4
  119. package/build/esm/any-type.js +0 -15
  120. package/build/esm/any-type.js.map +0 -1
  121. package/build/esm/class-type.d.ts +0 -2
  122. package/build/esm/class-type.js +0 -15
  123. package/build/esm/class-type.js.map +0 -1
  124. package/build/esm/date-time-types.d.ts +0 -2
  125. package/build/esm/date-time-types.js +0 -16
  126. package/build/esm/date-time-types.js.map +0 -1
  127. package/build/esm/event-parser.js.map +0 -1
  128. package/build/esm/fetch-event-source.js +0 -290
  129. package/build/esm/fetch-event-source.js.map +0 -1
  130. package/build/esm/fetch-request-factory.d.ts +0 -34
  131. package/build/esm/fetch-request-factory.js +0 -181
  132. package/build/esm/fetch-request-factory.js.map +0 -1
  133. package/build/esm/fetch.d.ts +0 -7
  134. package/build/esm/fetch.js +0 -90
  135. package/build/esm/fetch.js.map +0 -1
  136. package/build/esm/header-parameters.js +0 -53
  137. package/build/esm/header-parameters.js.map +0 -1
  138. package/build/esm/index.d.ts +0 -26
  139. package/build/esm/index.js +0 -40
  140. package/build/esm/index.js.map +0 -1
  141. package/build/esm/logger.d.ts +0 -8
  142. package/build/esm/logger.js +0 -15
  143. package/build/esm/logger.js.map +0 -1
  144. package/build/esm/media-type-codecs/any-text-decoder.d.ts +0 -7
  145. package/build/esm/media-type-codecs/any-text-decoder.js.map +0 -1
  146. package/build/esm/media-type-codecs/any-text-encoder.d.ts +0 -5
  147. package/build/esm/media-type-codecs/any-text-encoder.js.map +0 -1
  148. package/build/esm/media-type-codecs/binary-decoder.d.ts +0 -6
  149. package/build/esm/media-type-codecs/binary-decoder.js +0 -29
  150. package/build/esm/media-type-codecs/binary-decoder.js.map +0 -1
  151. package/build/esm/media-type-codecs/binary-encoder.d.ts +0 -5
  152. package/build/esm/media-type-codecs/binary-encoder.js +0 -26
  153. package/build/esm/media-type-codecs/binary-encoder.js.map +0 -1
  154. package/build/esm/media-type-codecs/cbor-decoder.d.ts +0 -39
  155. package/build/esm/media-type-codecs/cbor-decoder.js +0 -426
  156. package/build/esm/media-type-codecs/cbor-decoder.js.map +0 -1
  157. package/build/esm/media-type-codecs/cbor-encoder.d.ts +0 -43
  158. package/build/esm/media-type-codecs/cbor-encoder.js +0 -236
  159. package/build/esm/media-type-codecs/cbor-encoder.js.map +0 -1
  160. package/build/esm/media-type-codecs/cbor-tags.js +0 -18
  161. package/build/esm/media-type-codecs/cbor-tags.js.map +0 -1
  162. package/build/esm/media-type-codecs/json-decoder.d.ts +0 -39
  163. package/build/esm/media-type-codecs/json-decoder.js +0 -380
  164. package/build/esm/media-type-codecs/json-decoder.js.map +0 -1
  165. package/build/esm/media-type-codecs/json-encoder.d.ts +0 -44
  166. package/build/esm/media-type-codecs/json-encoder.js +0 -273
  167. package/build/esm/media-type-codecs/json-encoder.js.map +0 -1
  168. package/build/esm/media-type-codecs/media-type-decoder.d.ts +0 -11
  169. package/build/esm/media-type-codecs/media-type-decoder.js.map +0 -1
  170. package/build/esm/media-type-codecs/media-type-decoders.d.ts +0 -18
  171. package/build/esm/media-type-codecs/media-type-decoders.js +0 -58
  172. package/build/esm/media-type-codecs/media-type-decoders.js.map +0 -1
  173. package/build/esm/media-type-codecs/media-type-encoder.d.ts +0 -12
  174. package/build/esm/media-type-codecs/media-type-encoder.js +0 -24
  175. package/build/esm/media-type-codecs/media-type-encoder.js.map +0 -1
  176. package/build/esm/media-type-codecs/media-type-encoders.d.ts +0 -18
  177. package/build/esm/media-type-codecs/media-type-encoders.js +0 -60
  178. package/build/esm/media-type-codecs/media-type-encoders.js.map +0 -1
  179. package/build/esm/media-type-codecs/www-form-url-encoder.d.ts +0 -59
  180. package/build/esm/media-type-codecs/www-form-url-encoder.js +0 -192
  181. package/build/esm/media-type-codecs/www-form-url-encoder.js.map +0 -1
  182. package/build/esm/media-type.js.map +0 -1
  183. package/build/esm/problem.d.ts +0 -31
  184. package/build/esm/problem.js +0 -158
  185. package/build/esm/problem.js.map +0 -1
  186. package/build/esm/request-factory.d.ts +0 -44
  187. package/build/esm/request-factory.js +0 -15
  188. package/build/esm/request-factory.js.map +0 -1
  189. package/build/esm/result-response.d.ts +0 -4
  190. package/build/esm/result-response.js +0 -15
  191. package/build/esm/result-response.js.map +0 -1
  192. package/build/esm/sunday-error.d.ts +0 -11
  193. package/build/esm/sunday-error.js.map +0 -1
  194. package/build/esm/url-template.js.map +0 -1
  195. package/build/esm/util/any.js.map +0 -1
  196. package/build/esm/util/base64.d.ts +0 -5
  197. package/build/esm/util/base64.js +0 -77
  198. package/build/esm/util/base64.js.map +0 -1
  199. package/build/esm/util/error.js +0 -26
  200. package/build/esm/util/error.js.map +0 -1
  201. package/build/esm/util/hex.d.ts +0 -4
  202. package/build/esm/util/hex.js +0 -32
  203. package/build/esm/util/hex.js.map +0 -1
  204. package/build/esm/util/rxjs.d.ts +0 -5
  205. package/build/esm/util/rxjs.js +0 -31
  206. package/build/esm/util/rxjs.js.map +0 -1
  207. package/build/esm/util/stream-rxjs.d.ts +0 -2
  208. package/build/esm/util/stream-rxjs.js +0 -39
  209. package/build/esm/util/stream-rxjs.js.map +0 -1
  210. package/build/esm/util/temporal.d.ts +0 -2
  211. package/build/esm/util/temporal.js +0 -31
  212. package/build/esm/util/temporal.js.map +0 -1
  213. package/build/esnext/any-type.d.ts +0 -4
  214. package/build/esnext/any-type.js +0 -15
  215. package/build/esnext/any-type.js.map +0 -1
  216. package/build/esnext/class-type.d.ts +0 -2
  217. package/build/esnext/class-type.js +0 -15
  218. package/build/esnext/class-type.js.map +0 -1
  219. package/build/esnext/date-time-types.d.ts +0 -2
  220. package/build/esnext/date-time-types.js +0 -16
  221. package/build/esnext/date-time-types.js.map +0 -1
  222. package/build/esnext/event-parser.d.ts +0 -17
  223. package/build/esnext/event-parser.js +0 -153
  224. package/build/esnext/event-parser.js.map +0 -1
  225. package/build/esnext/fetch-event-source.d.ts +0 -58
  226. package/build/esnext/fetch-event-source.js +0 -290
  227. package/build/esnext/fetch-event-source.js.map +0 -1
  228. package/build/esnext/fetch-request-factory.d.ts +0 -34
  229. package/build/esnext/fetch-request-factory.js +0 -181
  230. package/build/esnext/fetch-request-factory.js.map +0 -1
  231. package/build/esnext/fetch.d.ts +0 -7
  232. package/build/esnext/fetch.js +0 -90
  233. package/build/esnext/fetch.js.map +0 -1
  234. package/build/esnext/header-parameters.d.ts +0 -3
  235. package/build/esnext/header-parameters.js.map +0 -1
  236. package/build/esnext/index.d.ts +0 -26
  237. package/build/esnext/index.js +0 -40
  238. package/build/esnext/index.js.map +0 -1
  239. package/build/esnext/logger.d.ts +0 -8
  240. package/build/esnext/logger.js.map +0 -1
  241. package/build/esnext/media-type-codecs/any-text-decoder.d.ts +0 -7
  242. package/build/esnext/media-type-codecs/any-text-decoder.js +0 -29
  243. package/build/esnext/media-type-codecs/any-text-decoder.js.map +0 -1
  244. package/build/esnext/media-type-codecs/any-text-encoder.d.ts +0 -5
  245. package/build/esnext/media-type-codecs/any-text-encoder.js +0 -23
  246. package/build/esnext/media-type-codecs/any-text-encoder.js.map +0 -1
  247. package/build/esnext/media-type-codecs/binary-decoder.d.ts +0 -6
  248. package/build/esnext/media-type-codecs/binary-decoder.js.map +0 -1
  249. package/build/esnext/media-type-codecs/binary-encoder.d.ts +0 -5
  250. package/build/esnext/media-type-codecs/binary-encoder.js.map +0 -1
  251. package/build/esnext/media-type-codecs/cbor-decoder.d.ts +0 -39
  252. package/build/esnext/media-type-codecs/cbor-decoder.js +0 -426
  253. package/build/esnext/media-type-codecs/cbor-decoder.js.map +0 -1
  254. package/build/esnext/media-type-codecs/cbor-encoder.d.ts +0 -43
  255. package/build/esnext/media-type-codecs/cbor-encoder.js +0 -236
  256. package/build/esnext/media-type-codecs/cbor-encoder.js.map +0 -1
  257. package/build/esnext/media-type-codecs/cbor-tags.d.ts +0 -4
  258. package/build/esnext/media-type-codecs/cbor-tags.js.map +0 -1
  259. package/build/esnext/media-type-codecs/json-decoder.d.ts +0 -39
  260. package/build/esnext/media-type-codecs/json-decoder.js +0 -380
  261. package/build/esnext/media-type-codecs/json-decoder.js.map +0 -1
  262. package/build/esnext/media-type-codecs/json-encoder.d.ts +0 -44
  263. package/build/esnext/media-type-codecs/json-encoder.js +0 -273
  264. package/build/esnext/media-type-codecs/json-encoder.js.map +0 -1
  265. package/build/esnext/media-type-codecs/media-type-decoder.d.ts +0 -11
  266. package/build/esnext/media-type-codecs/media-type-decoder.js +0 -19
  267. package/build/esnext/media-type-codecs/media-type-decoder.js.map +0 -1
  268. package/build/esnext/media-type-codecs/media-type-decoders.d.ts +0 -18
  269. package/build/esnext/media-type-codecs/media-type-decoders.js +0 -58
  270. package/build/esnext/media-type-codecs/media-type-decoders.js.map +0 -1
  271. package/build/esnext/media-type-codecs/media-type-encoder.d.ts +0 -12
  272. package/build/esnext/media-type-codecs/media-type-encoder.js.map +0 -1
  273. package/build/esnext/media-type-codecs/media-type-encoders.js +0 -60
  274. package/build/esnext/media-type-codecs/media-type-encoders.js.map +0 -1
  275. package/build/esnext/media-type-codecs/www-form-url-encoder.d.ts +0 -59
  276. package/build/esnext/media-type-codecs/www-form-url-encoder.js +0 -192
  277. package/build/esnext/media-type-codecs/www-form-url-encoder.js.map +0 -1
  278. package/build/esnext/media-type.d.ts +0 -94
  279. package/build/esnext/media-type.js +0 -305
  280. package/build/esnext/media-type.js.map +0 -1
  281. package/build/esnext/problem.d.ts +0 -31
  282. package/build/esnext/problem.js +0 -158
  283. package/build/esnext/problem.js.map +0 -1
  284. package/build/esnext/request-factory.d.ts +0 -44
  285. package/build/esnext/request-factory.js +0 -15
  286. package/build/esnext/request-factory.js.map +0 -1
  287. package/build/esnext/result-response.d.ts +0 -4
  288. package/build/esnext/result-response.js +0 -15
  289. package/build/esnext/result-response.js.map +0 -1
  290. package/build/esnext/sunday-error.js +0 -31
  291. package/build/esnext/sunday-error.js.map +0 -1
  292. package/build/esnext/url-template.d.ts +0 -6
  293. package/build/esnext/url-template.js +0 -31
  294. package/build/esnext/url-template.js.map +0 -1
  295. package/build/esnext/util/any.d.ts +0 -2
  296. package/build/esnext/util/any.js +0 -24
  297. package/build/esnext/util/any.js.map +0 -1
  298. package/build/esnext/util/base64.d.ts +0 -5
  299. package/build/esnext/util/base64.js +0 -77
  300. package/build/esnext/util/base64.js.map +0 -1
  301. package/build/esnext/util/error.d.ts +0 -2
  302. package/build/esnext/util/error.js +0 -26
  303. package/build/esnext/util/error.js.map +0 -1
  304. package/build/esnext/util/hex.d.ts +0 -4
  305. package/build/esnext/util/hex.js +0 -32
  306. package/build/esnext/util/hex.js.map +0 -1
  307. package/build/esnext/util/rxjs.d.ts +0 -5
  308. package/build/esnext/util/rxjs.js +0 -31
  309. package/build/esnext/util/rxjs.js.map +0 -1
  310. package/build/esnext/util/stream-rxjs.d.ts +0 -2
  311. package/build/esnext/util/stream-rxjs.js +0 -39
  312. package/build/esnext/util/stream-rxjs.js.map +0 -1
  313. package/build/esnext/util/temporal.d.ts +0 -2
  314. package/build/esnext/util/temporal.js.map +0 -1
  315. package/build/main/any-type.d.ts +0 -4
  316. package/build/main/any-type.js +0 -16
  317. package/build/main/any-type.js.map +0 -1
  318. package/build/main/class-type.d.ts +0 -2
  319. package/build/main/class-type.js +0 -16
  320. package/build/main/class-type.js.map +0 -1
  321. package/build/main/date-time-types.d.ts +0 -2
  322. package/build/main/date-time-types.js +0 -27
  323. package/build/main/date-time-types.js.map +0 -1
  324. package/build/main/event-parser.d.ts +0 -17
  325. package/build/main/event-parser.js +0 -157
  326. package/build/main/event-parser.js.map +0 -1
  327. package/build/main/fetch-event-source.d.ts +0 -58
  328. package/build/main/fetch-event-source.js +0 -294
  329. package/build/main/fetch-event-source.js.map +0 -1
  330. package/build/main/fetch-request-factory.d.ts +0 -34
  331. package/build/main/fetch-request-factory.js +0 -185
  332. package/build/main/fetch-request-factory.js.map +0 -1
  333. package/build/main/fetch.d.ts +0 -7
  334. package/build/main/fetch.js +0 -94
  335. package/build/main/fetch.js.map +0 -1
  336. package/build/main/header-parameters.d.ts +0 -3
  337. package/build/main/header-parameters.js +0 -56
  338. package/build/main/header-parameters.js.map +0 -1
  339. package/build/main/index.d.ts +0 -26
  340. package/build/main/index.js +0 -52
  341. package/build/main/index.js.map +0 -1
  342. package/build/main/logger.js +0 -16
  343. package/build/main/logger.js.map +0 -1
  344. package/build/main/media-type-codecs/any-text-decoder.d.ts +0 -7
  345. package/build/main/media-type-codecs/any-text-decoder.js +0 -33
  346. package/build/main/media-type-codecs/any-text-decoder.js.map +0 -1
  347. package/build/main/media-type-codecs/any-text-encoder.d.ts +0 -5
  348. package/build/main/media-type-codecs/any-text-encoder.js +0 -27
  349. package/build/main/media-type-codecs/any-text-encoder.js.map +0 -1
  350. package/build/main/media-type-codecs/binary-decoder.d.ts +0 -6
  351. package/build/main/media-type-codecs/binary-decoder.js +0 -33
  352. package/build/main/media-type-codecs/binary-decoder.js.map +0 -1
  353. package/build/main/media-type-codecs/binary-encoder.d.ts +0 -5
  354. package/build/main/media-type-codecs/binary-encoder.js +0 -30
  355. package/build/main/media-type-codecs/binary-encoder.js.map +0 -1
  356. package/build/main/media-type-codecs/cbor-decoder.d.ts +0 -39
  357. package/build/main/media-type-codecs/cbor-decoder.js +0 -430
  358. package/build/main/media-type-codecs/cbor-decoder.js.map +0 -1
  359. package/build/main/media-type-codecs/cbor-encoder.d.ts +0 -43
  360. package/build/main/media-type-codecs/cbor-encoder.js +0 -240
  361. package/build/main/media-type-codecs/cbor-encoder.js.map +0 -1
  362. package/build/main/media-type-codecs/cbor-tags.d.ts +0 -4
  363. package/build/main/media-type-codecs/cbor-tags.js +0 -21
  364. package/build/main/media-type-codecs/cbor-tags.js.map +0 -1
  365. package/build/main/media-type-codecs/json-decoder.d.ts +0 -39
  366. package/build/main/media-type-codecs/json-decoder.js +0 -384
  367. package/build/main/media-type-codecs/json-decoder.js.map +0 -1
  368. package/build/main/media-type-codecs/json-encoder.d.ts +0 -44
  369. package/build/main/media-type-codecs/json-encoder.js +0 -277
  370. package/build/main/media-type-codecs/json-encoder.js.map +0 -1
  371. package/build/main/media-type-codecs/media-type-decoder.d.ts +0 -11
  372. package/build/main/media-type-codecs/media-type-decoder.js +0 -23
  373. package/build/main/media-type-codecs/media-type-decoder.js.map +0 -1
  374. package/build/main/media-type-codecs/media-type-decoders.js +0 -62
  375. package/build/main/media-type-codecs/media-type-decoders.js.map +0 -1
  376. package/build/main/media-type-codecs/media-type-encoder.js +0 -29
  377. package/build/main/media-type-codecs/media-type-encoder.js.map +0 -1
  378. package/build/main/media-type-codecs/media-type-encoders.d.ts +0 -18
  379. package/build/main/media-type-codecs/media-type-encoders.js +0 -64
  380. package/build/main/media-type-codecs/media-type-encoders.js.map +0 -1
  381. package/build/main/media-type-codecs/www-form-url-encoder.d.ts +0 -59
  382. package/build/main/media-type-codecs/www-form-url-encoder.js +0 -196
  383. package/build/main/media-type-codecs/www-form-url-encoder.js.map +0 -1
  384. package/build/main/media-type.d.ts +0 -94
  385. package/build/main/media-type.js +0 -309
  386. package/build/main/media-type.js.map +0 -1
  387. package/build/main/problem.d.ts +0 -31
  388. package/build/main/problem.js +0 -161
  389. package/build/main/problem.js.map +0 -1
  390. package/build/main/request-factory.d.ts +0 -44
  391. package/build/main/request-factory.js +0 -16
  392. package/build/main/request-factory.js.map +0 -1
  393. package/build/main/result-response.d.ts +0 -4
  394. package/build/main/result-response.js +0 -16
  395. package/build/main/result-response.js.map +0 -1
  396. package/build/main/sunday-error.d.ts +0 -11
  397. package/build/main/sunday-error.js +0 -35
  398. package/build/main/sunday-error.js.map +0 -1
  399. package/build/main/url-template.d.ts +0 -6
  400. package/build/main/url-template.js +0 -35
  401. package/build/main/url-template.js.map +0 -1
  402. package/build/main/util/any.d.ts +0 -2
  403. package/build/main/util/any.js +0 -29
  404. package/build/main/util/any.js.map +0 -1
  405. package/build/main/util/base64.d.ts +0 -5
  406. package/build/main/util/base64.js +0 -80
  407. package/build/main/util/base64.js.map +0 -1
  408. package/build/main/util/error.d.ts +0 -2
  409. package/build/main/util/error.js +0 -31
  410. package/build/main/util/error.js.map +0 -1
  411. package/build/main/util/hex.d.ts +0 -4
  412. package/build/main/util/hex.js +0 -35
  413. package/build/main/util/hex.js.map +0 -1
  414. package/build/main/util/rxjs.d.ts +0 -5
  415. package/build/main/util/rxjs.js +0 -36
  416. package/build/main/util/rxjs.js.map +0 -1
  417. package/build/main/util/stream-rxjs.d.ts +0 -2
  418. package/build/main/util/stream-rxjs.js +0 -43
  419. package/build/main/util/stream-rxjs.js.map +0 -1
  420. package/build/main/util/temporal.d.ts +0 -2
  421. package/build/main/util/temporal.js +0 -36
  422. package/build/main/util/temporal.js.map +0 -1
  423. /package/build/{esm/header-parameters.d.ts → header-parameters.d.ts} +0 -0
  424. /package/build/{esm/media-type.d.ts → media-type.d.ts} +0 -0
  425. /package/build/{esm/url-template.d.ts → url-template.d.ts} +0 -0
  426. /package/build/{esm/util/error.d.ts → util/errors.d.ts} +0 -0
  427. /package/build/{esm/util/any.d.ts → util/unknowns.d.ts} +0 -0
@@ -0,0 +1,201 @@
1
+ // Copyright 2020 Outfox, Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ import { TaggedValue } from 'cbor-redux';
15
+ import { z } from 'zod';
16
+ import { base64Tag, base64UrlTag, uriTag } from './media-type-codecs/cbor-tags.js';
17
+ import { ArrayBufferEncoding, } from './schema-policy.js';
18
+ import { defineSchema } from './schema-runtime.js';
19
+ export const UNKNOWN_SCHEMA = z.unknown();
20
+ export const ANY_SCHEMA = UNKNOWN_SCHEMA;
21
+ export const NULL_SCHEMA = z.null();
22
+ export const STRING_SCHEMA = z.string();
23
+ export const NUMBER_SCHEMA = z.number();
24
+ export const BOOLEAN_SCHEMA = z.boolean();
25
+ export const UnknownSchema = UNKNOWN_SCHEMA;
26
+ export const AnySchema = ANY_SCHEMA;
27
+ export const NullSchema = NULL_SCHEMA;
28
+ export const StringSchema = STRING_SCHEMA;
29
+ export const NumberSchema = NUMBER_SCHEMA;
30
+ export const BooleanSchema = BOOLEAN_SCHEMA;
31
+ const URL_OUTPUT_SCHEMA = z.instanceof(URL);
32
+ const ARRAY_BUFFER_OUTPUT_SCHEMA = z.instanceof(ArrayBuffer);
33
+ const ARRAY_BUFFER_RAW_INPUT_SCHEMA = z.union([
34
+ ARRAY_BUFFER_OUTPUT_SCHEMA,
35
+ z.instanceof(Uint8Array),
36
+ ]);
37
+ const policySchemas = new Map();
38
+ function decodeURL(value, ctx) {
39
+ try {
40
+ return new URL(value);
41
+ }
42
+ catch {
43
+ ctx.issues.push({
44
+ code: 'invalid_format',
45
+ format: 'url',
46
+ input: value,
47
+ message: `Invalid URL value`,
48
+ });
49
+ return z.NEVER;
50
+ }
51
+ }
52
+ const URL_JSON_CODEC = z.codec(z.string(), URL_OUTPUT_SCHEMA, {
53
+ decode: decodeURL,
54
+ encode: (value) => value.toString(),
55
+ });
56
+ const URL_CBOR_CODEC = z.codec(z.union([z.string(), z.instanceof(TaggedValue)]), URL_OUTPUT_SCHEMA, {
57
+ decode: (value, ctx) => {
58
+ // Tagged URL input is accepted for compatibility and decoded before untagged string input.
59
+ if (value instanceof TaggedValue) {
60
+ if (value.tag == uriTag) {
61
+ const string = z.string().parse(value.value);
62
+ return decodeURL(string, ctx);
63
+ }
64
+ else {
65
+ ctx.issues.push({
66
+ code: 'invalid_value',
67
+ values: [uriTag],
68
+ input: value.tag,
69
+ message: `Invalid tag for URL`,
70
+ });
71
+ return z.NEVER;
72
+ }
73
+ }
74
+ else {
75
+ return decodeURL(value, ctx);
76
+ }
77
+ },
78
+ encode: (value) => {
79
+ // CBOR tag 32 carries the same URI string Jackson expects when tags are ignored.
80
+ return new TaggedValue(value.toString(), uriTag);
81
+ },
82
+ });
83
+ function base64Decoder(encoding) {
84
+ let options;
85
+ switch (encoding) {
86
+ case ArrayBufferEncoding.BASE64:
87
+ options = { alphabet: 'base64', lastChunkHandling: 'loose' };
88
+ break;
89
+ case ArrayBufferEncoding.BASE64URL:
90
+ options = { alphabet: 'base64url', lastChunkHandling: 'loose' };
91
+ break;
92
+ default:
93
+ throw new TypeError(`Invalid ArrayBufferEncoding: ${encoding}`);
94
+ }
95
+ return (value) => {
96
+ const array = Uint8Array.fromBase64(value, options);
97
+ return array
98
+ .buffer
99
+ .slice();
100
+ };
101
+ }
102
+ function base64Encoder(encoding) {
103
+ let options;
104
+ switch (encoding) {
105
+ case ArrayBufferEncoding.BASE64:
106
+ options = { alphabet: 'base64', omitPadding: true };
107
+ break;
108
+ case ArrayBufferEncoding.BASE64URL:
109
+ options = { alphabet: 'base64url', omitPadding: true };
110
+ break;
111
+ default:
112
+ throw new TypeError(`Invalid ArrayBufferEncoding: ${encoding}`);
113
+ }
114
+ return (value) => {
115
+ return new Uint8Array(value).toBase64(options);
116
+ };
117
+ }
118
+ function createArrayBufferSchema(policy) {
119
+ switch (policy.format) {
120
+ case 'json':
121
+ return z.codec(z.string(), ARRAY_BUFFER_OUTPUT_SCHEMA, {
122
+ decode: base64Decoder(policy.arrayBufferEncoding),
123
+ encode: base64Encoder(policy.arrayBufferEncoding),
124
+ });
125
+ case 'cbor':
126
+ if (policy.arrayBufferEncoding == ArrayBufferEncoding.RAW_BYTES) {
127
+ return z.codec(ARRAY_BUFFER_RAW_INPUT_SCHEMA, ARRAY_BUFFER_OUTPUT_SCHEMA, {
128
+ decode: (v) => (ArrayBuffer.isView(v)
129
+ ? v.buffer.slice(v.byteOffset, v.byteOffset + v.byteLength)
130
+ : v),
131
+ encode: (v) => v,
132
+ });
133
+ }
134
+ else {
135
+ const b64Decode = base64Decoder(policy.arrayBufferEncoding);
136
+ const b64Encode = base64Encoder(policy.arrayBufferEncoding);
137
+ const textTag = policy.arrayBufferEncoding === ArrayBufferEncoding.BASE64 ? base64Tag : base64UrlTag;
138
+ return z.codec(z.union([z.string(), z.instanceof(TaggedValue)]), ARRAY_BUFFER_OUTPUT_SCHEMA, {
139
+ decode: (value, ctx) => {
140
+ // Tagged textual binary values are accepted for compatibility and decoded before policy-based untagged text.
141
+ if (value instanceof TaggedValue) {
142
+ const string = z.string().decode(value.value);
143
+ switch (value.tag) {
144
+ case base64Tag:
145
+ return Uint8Array
146
+ .fromBase64(string, { alphabet: 'base64', lastChunkHandling: 'loose' })
147
+ .buffer;
148
+ case base64UrlTag:
149
+ return Uint8Array
150
+ .fromBase64(string, { alphabet: 'base64url', lastChunkHandling: 'loose' })
151
+ .buffer;
152
+ default:
153
+ ctx.issues.push({
154
+ code: 'invalid_value',
155
+ values: [base64UrlTag, base64Tag],
156
+ input: value.tag
157
+ });
158
+ return z.NEVER;
159
+ }
160
+ }
161
+ return b64Decode(value);
162
+ },
163
+ encode: (value) => {
164
+ // CBOR tags 33/34 preserve Jackson-compatible textual payloads for base64 modes.
165
+ return new TaggedValue(b64Encode(value), textTag);
166
+ },
167
+ });
168
+ }
169
+ }
170
+ }
171
+ function createPolicySchemas(policy) {
172
+ return {
173
+ urlSchema: policy.format === 'cbor' ? URL_CBOR_CODEC : URL_JSON_CODEC,
174
+ arrayBufferSchema: createArrayBufferSchema(policy),
175
+ };
176
+ }
177
+ function policyKey(policy) {
178
+ return [
179
+ policy.format,
180
+ policy.arrayBufferEncoding.toString(),
181
+ ].join(':');
182
+ }
183
+ export function builtinSchemasForPolicy(policy) {
184
+ const key = policyKey(policy);
185
+ const cached = policySchemas.get(key);
186
+ if (cached) {
187
+ return cached;
188
+ }
189
+ const schemas = createPolicySchemas(policy);
190
+ policySchemas.set(key, schemas);
191
+ return schemas;
192
+ }
193
+ export const URLSchema = defineSchema((runtime) => builtinSchemasForPolicy(runtime.policy).urlSchema, {
194
+ id: Symbol.for('@outfoxx/sunday/URLSchema'),
195
+ debugName: 'URLSchema',
196
+ });
197
+ export const ArrayBufferSchema = defineSchema((runtime) => builtinSchemasForPolicy(runtime.policy).arrayBufferSchema, {
198
+ id: Symbol.for('@outfoxx/sunday/ArrayBufferSchema'),
199
+ debugName: 'ArrayBufferSchema',
200
+ });
201
+ //# sourceMappingURL=schema-builtins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-builtins.js","sourceRoot":"","sources":["../src/schema-builtins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export type SchemaFormat = 'json' | 'cbor';
2
+ /**
3
+ * Write-side flag bundle that mirrors Jackson date/time serialization modes.
4
+ * - `ISO8601`: `WRITE_DATES_AS_TIMESTAMPS` disabled.
5
+ * - `DECIMAL_SECONDS_SINCE_EPOCH`: timestamps enabled with nanos precision.
6
+ * - `MILLISECONDS_SINCE_EPOCH`: timestamps enabled with millis precision.
7
+ */
8
+ export declare enum DateEncoding {
9
+ DECIMAL_SECONDS_SINCE_EPOCH = 0,
10
+ MILLISECONDS_SINCE_EPOCH = 1,
11
+ ISO8601 = 2
12
+ }
13
+ /**
14
+ * Read-side interpretation for untagged numeric date/time payloads.
15
+ * This mirrors Jackson numeric timestamp decoding expectations.
16
+ */
17
+ export declare enum NumericDateDecoding {
18
+ DECIMAL_SECONDS_SINCE_EPOCH = 0,
19
+ MILLISECONDS_SINCE_EPOCH = 1
20
+ }
21
+ export declare enum ArrayBufferEncoding {
22
+ BASE64 = 0,
23
+ BASE64URL = 1,
24
+ RAW_BYTES = 2
25
+ }
26
+ export interface SchemaPolicy {
27
+ format: SchemaFormat;
28
+ dateEncoding: DateEncoding;
29
+ numericDateDecoding: NumericDateDecoding;
30
+ arrayBufferEncoding: ArrayBufferEncoding;
31
+ }
@@ -0,0 +1,41 @@
1
+ // Copyright 2020 Outfox, Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ /**
15
+ * Write-side flag bundle that mirrors Jackson date/time serialization modes.
16
+ * - `ISO8601`: `WRITE_DATES_AS_TIMESTAMPS` disabled.
17
+ * - `DECIMAL_SECONDS_SINCE_EPOCH`: timestamps enabled with nanos precision.
18
+ * - `MILLISECONDS_SINCE_EPOCH`: timestamps enabled with millis precision.
19
+ */
20
+ export var DateEncoding;
21
+ (function (DateEncoding) {
22
+ DateEncoding[DateEncoding["DECIMAL_SECONDS_SINCE_EPOCH"] = 0] = "DECIMAL_SECONDS_SINCE_EPOCH";
23
+ DateEncoding[DateEncoding["MILLISECONDS_SINCE_EPOCH"] = 1] = "MILLISECONDS_SINCE_EPOCH";
24
+ DateEncoding[DateEncoding["ISO8601"] = 2] = "ISO8601";
25
+ })(DateEncoding || (DateEncoding = {}));
26
+ /**
27
+ * Read-side interpretation for untagged numeric date/time payloads.
28
+ * This mirrors Jackson numeric timestamp decoding expectations.
29
+ */
30
+ export var NumericDateDecoding;
31
+ (function (NumericDateDecoding) {
32
+ NumericDateDecoding[NumericDateDecoding["DECIMAL_SECONDS_SINCE_EPOCH"] = 0] = "DECIMAL_SECONDS_SINCE_EPOCH";
33
+ NumericDateDecoding[NumericDateDecoding["MILLISECONDS_SINCE_EPOCH"] = 1] = "MILLISECONDS_SINCE_EPOCH";
34
+ })(NumericDateDecoding || (NumericDateDecoding = {}));
35
+ export var ArrayBufferEncoding;
36
+ (function (ArrayBufferEncoding) {
37
+ ArrayBufferEncoding[ArrayBufferEncoding["BASE64"] = 0] = "BASE64";
38
+ ArrayBufferEncoding[ArrayBufferEncoding["BASE64URL"] = 1] = "BASE64URL";
39
+ ArrayBufferEncoding[ArrayBufferEncoding["RAW_BYTES"] = 2] = "RAW_BYTES";
40
+ })(ArrayBufferEncoding || (ArrayBufferEncoding = {}));
41
+ //# sourceMappingURL=schema-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-policy.js","sourceRoot":"","sources":["../src/schema-policy.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,6FAA2B,CAAA;IAC3B,uFAAwB,CAAA;IACxB,qDAAO,CAAA;AACT,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,2GAA2B,CAAA;IAC3B,qGAAwB,CAAA;AAC1B,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B;AAED,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,iEAAM,CAAA;IACN,uEAAS,CAAA;IACT,uEAAS,CAAA;AACX,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B"}
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ import { SchemaPolicy } from './schema-policy.js';
3
+ export { ArrayBufferEncoding, DateEncoding, NumericDateDecoding, } from './schema-policy.js';
4
+ export type { SchemaFormat, SchemaPolicy, } from './schema-policy.js';
5
+ export declare const SchemaDefType: unique symbol;
6
+ export type AnySchema = z.ZodType;
7
+ export type SchemaDef<S extends AnySchema = AnySchema> = {
8
+ readonly id: symbol;
9
+ readonly build: (runtime: SchemaRuntime) => S;
10
+ readonly debugName?: string;
11
+ readonly [SchemaDefType]: true;
12
+ };
13
+ /**
14
+ * A concrete Zod schema or deferred schema definition.
15
+ */
16
+ export type SchemaLike<Output = unknown, Input = unknown> = z.ZodType<Output, Input> | SchemaDef<z.ZodType<Output, Input>>;
17
+ export type ResolvedSchema<S> = S extends SchemaDef<infer TSchema> ? TSchema : S extends AnySchema ? S : never;
18
+ /**
19
+ * The wire/input type accepted by a schema during decoding.
20
+ */
21
+ export type SchemaInput<S extends SchemaLike> = z.input<ResolvedSchema<S>>;
22
+ /**
23
+ * The decoded/application type produced by a schema.
24
+ */
25
+ export type SchemaOutput<S extends SchemaLike> = z.output<ResolvedSchema<S>>;
26
+ export declare function isSchema(value: unknown): value is z.ZodType;
27
+ export declare function isSchemaDef(value: unknown): value is SchemaDef;
28
+ export declare function defineSchema<S extends AnySchema>(builder: (runtime: SchemaRuntime) => S, options?: {
29
+ id?: symbol;
30
+ debugName?: string;
31
+ }): SchemaDef<S>;
32
+ export interface SchemaRuntime {
33
+ readonly policy: SchemaPolicy;
34
+ resolveSchema<S extends SchemaLike>(ref: S): ResolvedSchema<S>;
35
+ }
36
+ export declare function createSchemaRuntime(policy: SchemaPolicy): SchemaRuntime;
@@ -0,0 +1,77 @@
1
+ // Copyright 2020 Outfox, Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ export { ArrayBufferEncoding, DateEncoding, NumericDateDecoding, } from './schema-policy.js';
15
+ export const SchemaDefType = Symbol('SchemaDefType');
16
+ export function isSchema(value) {
17
+ const rec = value;
18
+ return !!value
19
+ && typeof value === 'object'
20
+ && (typeof rec.safeParse === 'function' || typeof rec.safeDecode === 'function');
21
+ }
22
+ export function isSchemaDef(value) {
23
+ const rec = value;
24
+ return !!value
25
+ && typeof value === 'object'
26
+ && rec[SchemaDefType] === true
27
+ && typeof rec.id === 'symbol'
28
+ && typeof rec.build === 'function';
29
+ }
30
+ export function defineSchema(builder, options) {
31
+ return {
32
+ id: options?.id ?? Symbol(options?.debugName),
33
+ build: builder,
34
+ debugName: options?.debugName,
35
+ [SchemaDefType]: true,
36
+ };
37
+ }
38
+ class DefaultSchemaRuntime {
39
+ policy;
40
+ schemas = new Map();
41
+ resolving = new Set();
42
+ constructor(policy) {
43
+ this.policy = policy;
44
+ }
45
+ resolveSchema(ref) {
46
+ if (isSchema(ref)) {
47
+ return ref;
48
+ }
49
+ if (!isSchemaDef(ref)) {
50
+ throw new Error('Schema definition failed to resolve; expected a zod schema or SchemaDef');
51
+ }
52
+ const found = this.schemas.get(ref.id);
53
+ if (found) {
54
+ return found;
55
+ }
56
+ if (this.resolving.has(ref.id)) {
57
+ throw new Error('Recursive schema definition invocation detected; use z.lazy(...) for recursive models');
58
+ }
59
+ this.resolving.add(ref.id);
60
+ try {
61
+ const schema = ref.build(this);
62
+ if (!isSchema(schema)) {
63
+ const definition = ref.debugName ? ` '${ref.debugName}'` : '';
64
+ throw new Error(`Schema definition failed to resolve${definition}; builder must return a zod schema`);
65
+ }
66
+ this.schemas.set(ref.id, schema);
67
+ return schema;
68
+ }
69
+ finally {
70
+ this.resolving.delete(ref.id);
71
+ }
72
+ }
73
+ }
74
+ export function createSchemaRuntime(policy) {
75
+ return new DefaultSchemaRuntime(policy);
76
+ }
77
+ //# sourceMappingURL=schema-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-runtime.js","sourceRoot":"","sources":["../src/schema-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  export declare class SundayError extends Error {
2
2
  url: string;
3
- httpVersion: string;
4
3
  status: number;
5
4
  statusText: string;
6
5
  headers: Headers;
7
- body: unknown | undefined;
6
+ body: unknown;
8
7
  responseExample: string;
9
- constructor(message: string, url: string, httpVersion: string, status: number, statusText: string, headers: Headers, body: unknown | undefined, responseExample: string);
8
+ constructor(message: string, url: string, status: number, statusText: string, headers: Headers, body: unknown, responseExample: string);
10
9
  static fromResponse(message: string, response: Response): Promise<SundayError>;
11
10
  }
@@ -11,12 +11,17 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { ResponseExample } from './fetch';
14
+ import { ResponseExample } from './fetch.js';
15
15
  export class SundayError extends Error {
16
- constructor(message, url, httpVersion, status, statusText, headers, body, responseExample) {
16
+ url;
17
+ status;
18
+ statusText;
19
+ headers;
20
+ body;
21
+ responseExample;
22
+ constructor(message, url, status, statusText, headers, body, responseExample) {
17
23
  super(message);
18
24
  this.url = url;
19
- this.httpVersion = httpVersion;
20
25
  this.status = status;
21
26
  this.statusText = statusText;
22
27
  this.headers = headers;
@@ -25,7 +30,7 @@ export class SundayError extends Error {
25
30
  }
26
31
  static async fromResponse(message, response) {
27
32
  const [bodyExcerpt, body] = await ResponseExample.bodyExcerpt(response, 256);
28
- return new SundayError(message, response.url, '?.?', response.status, response.statusText, response.headers, body, ResponseExample.build(response, bodyExcerpt));
33
+ return new SundayError(message, response.url, response.status, response.statusText, response.headers, body, ResponseExample.build(response, bodyExcerpt));
29
34
  }
30
35
  }
31
36
  //# sourceMappingURL=sunday-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sunday-error.js","sourceRoot":"","sources":["../src/sunday-error.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,OAAO,WAAY,SAAQ,KAAK;IAG3B;IACA;IACA;IACA;IACA;IACA;IAPT,YACE,OAAe,EACR,GAAW,EACX,MAAc,EACd,UAAkB,EAClB,OAAgB,EAChB,IAAa,EACb,eAAuB;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;QAChB,SAAI,GAAJ,IAAI,CAAS;QACb,oBAAe,GAAf,eAAe,CAAQ;IAGhC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,OAAe,EACf,QAAkB;QAElB,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,MAAM,eAAe,CAAC,WAAW,CAC3D,QAAQ,EACR,GAAG,CACJ,CAAC;QAEF,OAAO,IAAI,WAAW,CACpB,OAAO,EACP,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,OAAO,EAChB,IAAI,EACJ,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ import { MediaType } from './media-type.js';
2
+ import { TextMediaTypeDecoder } from './media-type-codecs/media-type-decoder.js';
3
+ import { Problem } from './problem.js';
4
+ import { OperationResponse } from './operation-response.js';
5
+ import { SchemaLike } from './schema-runtime.js';
6
+ import { URLTemplate } from './url-template.js';
7
+ import { Logger } from './logger.js';
8
+ export interface Transport<NativeRequest = Request> {
9
+ readonly baseUrl: URLTemplate;
10
+ registerProblem(type: URL | string, problemType: SchemaLike<Problem>): void;
11
+ transportRequest(requestSpec: RequestSpec<unknown>): Promise<NativeRequest>;
12
+ transportResponse(request: NativeRequest, dataExpected?: boolean): Promise<Response>;
13
+ transportResponse<B>(requestSpec: RequestSpec<B>, dataExpected?: boolean): Promise<Response>;
14
+ response<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<OperationResponse<R>>;
15
+ response<B>(requestSpec: RequestSpec<B>): Promise<OperationResponse<void>>;
16
+ result<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<R>;
17
+ result<B>(requestSpec: RequestSpec<B>): Promise<void>;
18
+ eventSource(requestSpec: RequestSpec<void>): ExtEventSource;
19
+ eventStream<E>(requestSpec: RequestSpec<void>, decoder: (decoder: TextMediaTypeDecoder, event: string | undefined, id: string | undefined, data: string, logger?: Logger) => E | undefined): AsyncIterable<E>;
20
+ }
21
+ export interface ExtEventSource extends EventSource {
22
+ connect(): void;
23
+ }
24
+ export type RequestMethod = 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
25
+ export interface RequestSpec<B> {
26
+ method: RequestMethod;
27
+ pathTemplate: string;
28
+ pathParameters?: Record<string, unknown>;
29
+ queryParameters?: Record<string, unknown>;
30
+ body?: B;
31
+ bodyType?: SchemaLike<B>;
32
+ contentTypes?: MediaType[];
33
+ acceptTypes?: MediaType[];
34
+ headers?: Record<string, unknown>;
35
+ signal?: AbortSignal;
36
+ }
37
+ export interface RequestAdapter {
38
+ adapt(transport: Transport, request: Request): Promise<Request>;
39
+ }
@@ -12,4 +12,4 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  export {};
15
- //# sourceMappingURL=logger.js.map
15
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC"}
@@ -11,21 +11,23 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { URI } from 'uri-template-lite';
14
+ import { parse } from 'uri-template';
15
15
  export class URLTemplate {
16
+ template;
17
+ parameters;
16
18
  constructor(template, parameters = {}) {
17
19
  this.template = template;
18
20
  this.parameters = parameters;
19
21
  }
20
22
  complete(relativeTemplate, parameters) {
21
- const allParameters = Object.assign({}, this.parameters, parameters);
23
+ const allParameters = { ...this.parameters, ...parameters };
22
24
  const baseTempl = this.template.endsWith('/')
23
25
  ? this.template.slice(0, -1)
24
26
  : this.template;
25
27
  const relTempl = relativeTemplate.startsWith('/') || !relativeTemplate.length
26
28
  ? relativeTemplate
27
29
  : `/${relativeTemplate}`;
28
- return new URL(URI.expand(baseTempl + relTempl, allParameters));
30
+ return new URL(parse(baseTempl + relTempl).expand(allParameters));
29
31
  }
30
32
  }
31
33
  //# sourceMappingURL=url-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-template.js","sourceRoot":"","sources":["../src/url-template.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,OAAO,WAAW;IAEb;IACA;IAFT,YACS,QAAgB,EAChB,aAAsC,EAAE;QADxC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAU,GAAV,UAAU,CAA8B;IAC9C,CAAC;IAEJ,QAAQ,CAAC,gBAAwB,EAAE,UAAmC;QACpE,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClB,MAAM,QAAQ,GACZ,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAC1D,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC7B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { SubscriptionLike } from './subscriptions.js';
2
+ export declare function firstValueFrom<T>(iterable: AsyncIterable<T>): Promise<T>;
3
+ export type EventTargetAsyncIterableOverflow = 'preserve' | 'drop' | 'error';
4
+ export interface EventTargetAsyncIterableOptions {
5
+ signal?: AbortSignal;
6
+ overflow?: EventTargetAsyncIterableOverflow;
7
+ highWaterMark?: number;
8
+ }
9
+ export declare function fromEvent<E extends Event = Event>(target: EventTarget, type: string, options?: EventTargetAsyncIterableOptions): AsyncIterable<E>;
10
+ export interface AsyncIterableObserver<E> {
11
+ next(value: E): void | Promise<void>;
12
+ error?(error: unknown): void | Promise<void>;
13
+ complete?(): void | Promise<void>;
14
+ }
15
+ export declare function subscribe<E>(stream: AsyncIterable<E>, observer: AsyncIterableObserver<E>): SubscriptionLike;