@outfoxx/sunday 1.1.0-beta.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) 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/{esnext/fetch-request-factory.d.ts → fetch-request-factory.d.ts} +18 -20
  12. package/build/fetch-request-factory.js +316 -0
  13. package/build/fetch-request-factory.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 +26 -0
  20. package/build/index.js +41 -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/problem.d.ts +35 -0
  73. package/build/problem.js +122 -0
  74. package/build/problem.js.map +1 -0
  75. package/build/request-adapters.d.ts +23 -0
  76. package/build/request-adapters.js +53 -0
  77. package/build/request-adapters.js.map +1 -0
  78. package/build/request-factory.d.ts +39 -0
  79. package/build/request-factory.js.map +1 -0
  80. package/build/result-response.js.map +1 -0
  81. package/build/schema-builtins.d.ts +21 -0
  82. package/build/schema-builtins.js +201 -0
  83. package/build/schema-builtins.js.map +1 -0
  84. package/build/schema-policy.d.ts +31 -0
  85. package/build/schema-policy.js +41 -0
  86. package/build/schema-policy.js.map +1 -0
  87. package/build/schema-runtime.d.ts +25 -0
  88. package/build/schema-runtime.js +77 -0
  89. package/build/schema-runtime.js.map +1 -0
  90. package/build/{esnext/sunday-error.d.ts → sunday-error.d.ts} +2 -3
  91. package/build/{esm/sunday-error.js → sunday-error.js} +9 -4
  92. package/build/sunday-error.js.map +1 -0
  93. package/build/{esm/url-template.js → url-template.js} +5 -3
  94. package/build/url-template.js.map +1 -0
  95. package/build/util/async-iterables.d.ts +15 -0
  96. package/build/util/async-iterables.js +179 -0
  97. package/build/util/async-iterables.js.map +1 -0
  98. package/build/util/errors.js +65 -0
  99. package/build/util/errors.js.map +1 -0
  100. package/build/util/nullify.d.ts +5 -0
  101. package/build/util/nullify.js +37 -0
  102. package/build/util/nullify.js.map +1 -0
  103. package/build/util/numbers.d.ts +11 -0
  104. package/build/{esnext/util/temporal.js → util/numbers.js} +14 -4
  105. package/build/util/numbers.js.map +1 -0
  106. package/build/util/subscriptions.d.ts +16 -0
  107. package/build/util/subscriptions.js +78 -0
  108. package/build/util/subscriptions.js.map +1 -0
  109. package/build/{esm/util/any.js → util/unknowns.js} +2 -3
  110. package/build/util/unknowns.js.map +1 -0
  111. package/package.json +58 -58
  112. package/build/esm/any-type.d.ts +0 -4
  113. package/build/esm/any-type.js +0 -15
  114. package/build/esm/any-type.js.map +0 -1
  115. package/build/esm/class-type.d.ts +0 -2
  116. package/build/esm/class-type.js +0 -15
  117. package/build/esm/class-type.js.map +0 -1
  118. package/build/esm/date-time-types.d.ts +0 -2
  119. package/build/esm/date-time-types.js +0 -16
  120. package/build/esm/date-time-types.js.map +0 -1
  121. package/build/esm/event-parser.js.map +0 -1
  122. package/build/esm/fetch-event-source.js +0 -290
  123. package/build/esm/fetch-event-source.js.map +0 -1
  124. package/build/esm/fetch-request-factory.d.ts +0 -34
  125. package/build/esm/fetch-request-factory.js +0 -181
  126. package/build/esm/fetch-request-factory.js.map +0 -1
  127. package/build/esm/fetch.d.ts +0 -7
  128. package/build/esm/fetch.js +0 -90
  129. package/build/esm/fetch.js.map +0 -1
  130. package/build/esm/header-parameters.js +0 -53
  131. package/build/esm/header-parameters.js.map +0 -1
  132. package/build/esm/index.d.ts +0 -26
  133. package/build/esm/index.js +0 -40
  134. package/build/esm/index.js.map +0 -1
  135. package/build/esm/logger.d.ts +0 -8
  136. package/build/esm/logger.js +0 -15
  137. package/build/esm/logger.js.map +0 -1
  138. package/build/esm/media-type-codecs/any-text-decoder.d.ts +0 -7
  139. package/build/esm/media-type-codecs/any-text-decoder.js.map +0 -1
  140. package/build/esm/media-type-codecs/any-text-encoder.d.ts +0 -5
  141. package/build/esm/media-type-codecs/any-text-encoder.js.map +0 -1
  142. package/build/esm/media-type-codecs/binary-decoder.d.ts +0 -6
  143. package/build/esm/media-type-codecs/binary-decoder.js +0 -29
  144. package/build/esm/media-type-codecs/binary-decoder.js.map +0 -1
  145. package/build/esm/media-type-codecs/binary-encoder.d.ts +0 -5
  146. package/build/esm/media-type-codecs/binary-encoder.js +0 -26
  147. package/build/esm/media-type-codecs/binary-encoder.js.map +0 -1
  148. package/build/esm/media-type-codecs/cbor-decoder.d.ts +0 -39
  149. package/build/esm/media-type-codecs/cbor-decoder.js +0 -426
  150. package/build/esm/media-type-codecs/cbor-decoder.js.map +0 -1
  151. package/build/esm/media-type-codecs/cbor-encoder.d.ts +0 -43
  152. package/build/esm/media-type-codecs/cbor-encoder.js +0 -236
  153. package/build/esm/media-type-codecs/cbor-encoder.js.map +0 -1
  154. package/build/esm/media-type-codecs/cbor-tags.js +0 -18
  155. package/build/esm/media-type-codecs/cbor-tags.js.map +0 -1
  156. package/build/esm/media-type-codecs/json-decoder.d.ts +0 -39
  157. package/build/esm/media-type-codecs/json-decoder.js +0 -380
  158. package/build/esm/media-type-codecs/json-decoder.js.map +0 -1
  159. package/build/esm/media-type-codecs/json-encoder.d.ts +0 -44
  160. package/build/esm/media-type-codecs/json-encoder.js +0 -273
  161. package/build/esm/media-type-codecs/json-encoder.js.map +0 -1
  162. package/build/esm/media-type-codecs/media-type-decoder.d.ts +0 -11
  163. package/build/esm/media-type-codecs/media-type-decoder.js.map +0 -1
  164. package/build/esm/media-type-codecs/media-type-decoders.d.ts +0 -18
  165. package/build/esm/media-type-codecs/media-type-decoders.js +0 -58
  166. package/build/esm/media-type-codecs/media-type-decoders.js.map +0 -1
  167. package/build/esm/media-type-codecs/media-type-encoder.d.ts +0 -12
  168. package/build/esm/media-type-codecs/media-type-encoder.js +0 -24
  169. package/build/esm/media-type-codecs/media-type-encoder.js.map +0 -1
  170. package/build/esm/media-type-codecs/media-type-encoders.d.ts +0 -18
  171. package/build/esm/media-type-codecs/media-type-encoders.js +0 -60
  172. package/build/esm/media-type-codecs/media-type-encoders.js.map +0 -1
  173. package/build/esm/media-type-codecs/www-form-url-encoder.d.ts +0 -59
  174. package/build/esm/media-type-codecs/www-form-url-encoder.js +0 -192
  175. package/build/esm/media-type-codecs/www-form-url-encoder.js.map +0 -1
  176. package/build/esm/media-type.js.map +0 -1
  177. package/build/esm/problem.d.ts +0 -31
  178. package/build/esm/problem.js +0 -158
  179. package/build/esm/problem.js.map +0 -1
  180. package/build/esm/request-factory.d.ts +0 -44
  181. package/build/esm/request-factory.js.map +0 -1
  182. package/build/esm/result-response.js.map +0 -1
  183. package/build/esm/sunday-error.d.ts +0 -11
  184. package/build/esm/sunday-error.js.map +0 -1
  185. package/build/esm/url-template.js.map +0 -1
  186. package/build/esm/util/any.js.map +0 -1
  187. package/build/esm/util/base64.d.ts +0 -5
  188. package/build/esm/util/base64.js +0 -77
  189. package/build/esm/util/base64.js.map +0 -1
  190. package/build/esm/util/error.js +0 -26
  191. package/build/esm/util/error.js.map +0 -1
  192. package/build/esm/util/hex.d.ts +0 -4
  193. package/build/esm/util/hex.js +0 -32
  194. package/build/esm/util/hex.js.map +0 -1
  195. package/build/esm/util/rxjs.d.ts +0 -5
  196. package/build/esm/util/rxjs.js +0 -31
  197. package/build/esm/util/rxjs.js.map +0 -1
  198. package/build/esm/util/stream-rxjs.d.ts +0 -2
  199. package/build/esm/util/stream-rxjs.js +0 -39
  200. package/build/esm/util/stream-rxjs.js.map +0 -1
  201. package/build/esm/util/temporal.d.ts +0 -2
  202. package/build/esm/util/temporal.js +0 -31
  203. package/build/esm/util/temporal.js.map +0 -1
  204. package/build/esnext/any-type.d.ts +0 -4
  205. package/build/esnext/any-type.js +0 -15
  206. package/build/esnext/any-type.js.map +0 -1
  207. package/build/esnext/class-type.d.ts +0 -2
  208. package/build/esnext/class-type.js +0 -15
  209. package/build/esnext/class-type.js.map +0 -1
  210. package/build/esnext/date-time-types.d.ts +0 -2
  211. package/build/esnext/date-time-types.js +0 -16
  212. package/build/esnext/date-time-types.js.map +0 -1
  213. package/build/esnext/event-parser.d.ts +0 -17
  214. package/build/esnext/event-parser.js +0 -153
  215. package/build/esnext/event-parser.js.map +0 -1
  216. package/build/esnext/fetch-event-source.d.ts +0 -58
  217. package/build/esnext/fetch-event-source.js +0 -290
  218. package/build/esnext/fetch-event-source.js.map +0 -1
  219. package/build/esnext/fetch-request-factory.js +0 -181
  220. package/build/esnext/fetch-request-factory.js.map +0 -1
  221. package/build/esnext/fetch.d.ts +0 -7
  222. package/build/esnext/fetch.js +0 -90
  223. package/build/esnext/fetch.js.map +0 -1
  224. package/build/esnext/header-parameters.d.ts +0 -3
  225. package/build/esnext/header-parameters.js.map +0 -1
  226. package/build/esnext/index.d.ts +0 -26
  227. package/build/esnext/index.js +0 -40
  228. package/build/esnext/index.js.map +0 -1
  229. package/build/esnext/logger.d.ts +0 -8
  230. package/build/esnext/logger.js +0 -15
  231. package/build/esnext/logger.js.map +0 -1
  232. package/build/esnext/media-type-codecs/any-text-decoder.d.ts +0 -7
  233. package/build/esnext/media-type-codecs/any-text-decoder.js +0 -29
  234. package/build/esnext/media-type-codecs/any-text-decoder.js.map +0 -1
  235. package/build/esnext/media-type-codecs/any-text-encoder.d.ts +0 -5
  236. package/build/esnext/media-type-codecs/any-text-encoder.js +0 -23
  237. package/build/esnext/media-type-codecs/any-text-encoder.js.map +0 -1
  238. package/build/esnext/media-type-codecs/binary-decoder.d.ts +0 -6
  239. package/build/esnext/media-type-codecs/binary-decoder.js.map +0 -1
  240. package/build/esnext/media-type-codecs/binary-encoder.d.ts +0 -5
  241. package/build/esnext/media-type-codecs/binary-encoder.js.map +0 -1
  242. package/build/esnext/media-type-codecs/cbor-decoder.d.ts +0 -39
  243. package/build/esnext/media-type-codecs/cbor-decoder.js +0 -426
  244. package/build/esnext/media-type-codecs/cbor-decoder.js.map +0 -1
  245. package/build/esnext/media-type-codecs/cbor-encoder.d.ts +0 -43
  246. package/build/esnext/media-type-codecs/cbor-encoder.js +0 -236
  247. package/build/esnext/media-type-codecs/cbor-encoder.js.map +0 -1
  248. package/build/esnext/media-type-codecs/cbor-tags.d.ts +0 -4
  249. package/build/esnext/media-type-codecs/cbor-tags.js.map +0 -1
  250. package/build/esnext/media-type-codecs/json-decoder.d.ts +0 -39
  251. package/build/esnext/media-type-codecs/json-decoder.js +0 -380
  252. package/build/esnext/media-type-codecs/json-decoder.js.map +0 -1
  253. package/build/esnext/media-type-codecs/json-encoder.d.ts +0 -44
  254. package/build/esnext/media-type-codecs/json-encoder.js +0 -273
  255. package/build/esnext/media-type-codecs/json-encoder.js.map +0 -1
  256. package/build/esnext/media-type-codecs/media-type-decoder.d.ts +0 -11
  257. package/build/esnext/media-type-codecs/media-type-decoder.js +0 -19
  258. package/build/esnext/media-type-codecs/media-type-decoder.js.map +0 -1
  259. package/build/esnext/media-type-codecs/media-type-decoders.d.ts +0 -18
  260. package/build/esnext/media-type-codecs/media-type-decoders.js +0 -58
  261. package/build/esnext/media-type-codecs/media-type-decoders.js.map +0 -1
  262. package/build/esnext/media-type-codecs/media-type-encoder.d.ts +0 -12
  263. package/build/esnext/media-type-codecs/media-type-encoder.js.map +0 -1
  264. package/build/esnext/media-type-codecs/media-type-encoders.js +0 -60
  265. package/build/esnext/media-type-codecs/media-type-encoders.js.map +0 -1
  266. package/build/esnext/media-type-codecs/www-form-url-encoder.d.ts +0 -59
  267. package/build/esnext/media-type-codecs/www-form-url-encoder.js +0 -192
  268. package/build/esnext/media-type-codecs/www-form-url-encoder.js.map +0 -1
  269. package/build/esnext/media-type.d.ts +0 -94
  270. package/build/esnext/media-type.js +0 -305
  271. package/build/esnext/media-type.js.map +0 -1
  272. package/build/esnext/problem.d.ts +0 -31
  273. package/build/esnext/problem.js +0 -158
  274. package/build/esnext/problem.js.map +0 -1
  275. package/build/esnext/request-factory.d.ts +0 -44
  276. package/build/esnext/request-factory.js +0 -15
  277. package/build/esnext/request-factory.js.map +0 -1
  278. package/build/esnext/result-response.d.ts +0 -4
  279. package/build/esnext/result-response.js +0 -15
  280. package/build/esnext/result-response.js.map +0 -1
  281. package/build/esnext/sunday-error.js +0 -31
  282. package/build/esnext/sunday-error.js.map +0 -1
  283. package/build/esnext/url-template.d.ts +0 -6
  284. package/build/esnext/url-template.js +0 -31
  285. package/build/esnext/url-template.js.map +0 -1
  286. package/build/esnext/util/any.d.ts +0 -2
  287. package/build/esnext/util/any.js +0 -24
  288. package/build/esnext/util/any.js.map +0 -1
  289. package/build/esnext/util/base64.d.ts +0 -5
  290. package/build/esnext/util/base64.js +0 -77
  291. package/build/esnext/util/base64.js.map +0 -1
  292. package/build/esnext/util/error.d.ts +0 -2
  293. package/build/esnext/util/error.js +0 -26
  294. package/build/esnext/util/error.js.map +0 -1
  295. package/build/esnext/util/hex.d.ts +0 -4
  296. package/build/esnext/util/hex.js +0 -32
  297. package/build/esnext/util/hex.js.map +0 -1
  298. package/build/esnext/util/rxjs.d.ts +0 -5
  299. package/build/esnext/util/rxjs.js +0 -31
  300. package/build/esnext/util/rxjs.js.map +0 -1
  301. package/build/esnext/util/stream-rxjs.d.ts +0 -2
  302. package/build/esnext/util/stream-rxjs.js +0 -39
  303. package/build/esnext/util/stream-rxjs.js.map +0 -1
  304. package/build/esnext/util/temporal.d.ts +0 -2
  305. package/build/esnext/util/temporal.js.map +0 -1
  306. package/build/main/any-type.d.ts +0 -4
  307. package/build/main/any-type.js +0 -16
  308. package/build/main/any-type.js.map +0 -1
  309. package/build/main/class-type.d.ts +0 -2
  310. package/build/main/class-type.js +0 -16
  311. package/build/main/class-type.js.map +0 -1
  312. package/build/main/date-time-types.d.ts +0 -2
  313. package/build/main/date-time-types.js +0 -27
  314. package/build/main/date-time-types.js.map +0 -1
  315. package/build/main/event-parser.d.ts +0 -17
  316. package/build/main/event-parser.js +0 -157
  317. package/build/main/event-parser.js.map +0 -1
  318. package/build/main/fetch-event-source.d.ts +0 -58
  319. package/build/main/fetch-event-source.js +0 -294
  320. package/build/main/fetch-event-source.js.map +0 -1
  321. package/build/main/fetch-request-factory.d.ts +0 -34
  322. package/build/main/fetch-request-factory.js +0 -185
  323. package/build/main/fetch-request-factory.js.map +0 -1
  324. package/build/main/fetch.d.ts +0 -7
  325. package/build/main/fetch.js +0 -94
  326. package/build/main/fetch.js.map +0 -1
  327. package/build/main/header-parameters.d.ts +0 -3
  328. package/build/main/header-parameters.js +0 -56
  329. package/build/main/header-parameters.js.map +0 -1
  330. package/build/main/index.d.ts +0 -26
  331. package/build/main/index.js +0 -52
  332. package/build/main/index.js.map +0 -1
  333. package/build/main/logger.js +0 -16
  334. package/build/main/logger.js.map +0 -1
  335. package/build/main/media-type-codecs/any-text-decoder.d.ts +0 -7
  336. package/build/main/media-type-codecs/any-text-decoder.js +0 -33
  337. package/build/main/media-type-codecs/any-text-decoder.js.map +0 -1
  338. package/build/main/media-type-codecs/any-text-encoder.d.ts +0 -5
  339. package/build/main/media-type-codecs/any-text-encoder.js +0 -27
  340. package/build/main/media-type-codecs/any-text-encoder.js.map +0 -1
  341. package/build/main/media-type-codecs/binary-decoder.d.ts +0 -6
  342. package/build/main/media-type-codecs/binary-decoder.js +0 -33
  343. package/build/main/media-type-codecs/binary-decoder.js.map +0 -1
  344. package/build/main/media-type-codecs/binary-encoder.d.ts +0 -5
  345. package/build/main/media-type-codecs/binary-encoder.js +0 -30
  346. package/build/main/media-type-codecs/binary-encoder.js.map +0 -1
  347. package/build/main/media-type-codecs/cbor-decoder.d.ts +0 -39
  348. package/build/main/media-type-codecs/cbor-decoder.js +0 -430
  349. package/build/main/media-type-codecs/cbor-decoder.js.map +0 -1
  350. package/build/main/media-type-codecs/cbor-encoder.d.ts +0 -43
  351. package/build/main/media-type-codecs/cbor-encoder.js +0 -240
  352. package/build/main/media-type-codecs/cbor-encoder.js.map +0 -1
  353. package/build/main/media-type-codecs/cbor-tags.d.ts +0 -4
  354. package/build/main/media-type-codecs/cbor-tags.js +0 -21
  355. package/build/main/media-type-codecs/cbor-tags.js.map +0 -1
  356. package/build/main/media-type-codecs/json-decoder.d.ts +0 -39
  357. package/build/main/media-type-codecs/json-decoder.js +0 -384
  358. package/build/main/media-type-codecs/json-decoder.js.map +0 -1
  359. package/build/main/media-type-codecs/json-encoder.d.ts +0 -44
  360. package/build/main/media-type-codecs/json-encoder.js +0 -277
  361. package/build/main/media-type-codecs/json-encoder.js.map +0 -1
  362. package/build/main/media-type-codecs/media-type-decoder.d.ts +0 -11
  363. package/build/main/media-type-codecs/media-type-decoder.js +0 -23
  364. package/build/main/media-type-codecs/media-type-decoder.js.map +0 -1
  365. package/build/main/media-type-codecs/media-type-decoders.js +0 -62
  366. package/build/main/media-type-codecs/media-type-decoders.js.map +0 -1
  367. package/build/main/media-type-codecs/media-type-encoder.js +0 -29
  368. package/build/main/media-type-codecs/media-type-encoder.js.map +0 -1
  369. package/build/main/media-type-codecs/media-type-encoders.d.ts +0 -18
  370. package/build/main/media-type-codecs/media-type-encoders.js +0 -64
  371. package/build/main/media-type-codecs/media-type-encoders.js.map +0 -1
  372. package/build/main/media-type-codecs/www-form-url-encoder.d.ts +0 -59
  373. package/build/main/media-type-codecs/www-form-url-encoder.js +0 -196
  374. package/build/main/media-type-codecs/www-form-url-encoder.js.map +0 -1
  375. package/build/main/media-type.d.ts +0 -94
  376. package/build/main/media-type.js +0 -309
  377. package/build/main/media-type.js.map +0 -1
  378. package/build/main/problem.d.ts +0 -31
  379. package/build/main/problem.js +0 -161
  380. package/build/main/problem.js.map +0 -1
  381. package/build/main/request-factory.d.ts +0 -44
  382. package/build/main/request-factory.js +0 -16
  383. package/build/main/request-factory.js.map +0 -1
  384. package/build/main/result-response.d.ts +0 -4
  385. package/build/main/result-response.js +0 -16
  386. package/build/main/result-response.js.map +0 -1
  387. package/build/main/sunday-error.d.ts +0 -11
  388. package/build/main/sunday-error.js +0 -35
  389. package/build/main/sunday-error.js.map +0 -1
  390. package/build/main/url-template.d.ts +0 -6
  391. package/build/main/url-template.js +0 -35
  392. package/build/main/url-template.js.map +0 -1
  393. package/build/main/util/any.d.ts +0 -2
  394. package/build/main/util/any.js +0 -29
  395. package/build/main/util/any.js.map +0 -1
  396. package/build/main/util/base64.d.ts +0 -5
  397. package/build/main/util/base64.js +0 -80
  398. package/build/main/util/base64.js.map +0 -1
  399. package/build/main/util/error.d.ts +0 -2
  400. package/build/main/util/error.js +0 -31
  401. package/build/main/util/error.js.map +0 -1
  402. package/build/main/util/hex.d.ts +0 -4
  403. package/build/main/util/hex.js +0 -35
  404. package/build/main/util/hex.js.map +0 -1
  405. package/build/main/util/rxjs.d.ts +0 -5
  406. package/build/main/util/rxjs.js +0 -36
  407. package/build/main/util/rxjs.js.map +0 -1
  408. package/build/main/util/stream-rxjs.d.ts +0 -2
  409. package/build/main/util/stream-rxjs.js +0 -43
  410. package/build/main/util/stream-rxjs.js.map +0 -1
  411. package/build/main/util/temporal.d.ts +0 -2
  412. package/build/main/util/temporal.js +0 -36
  413. package/build/main/util/temporal.js.map +0 -1
  414. /package/build/{esm/header-parameters.d.ts → header-parameters.d.ts} +0 -0
  415. /package/build/{esm/media-type.d.ts → media-type.d.ts} +0 -0
  416. /package/build/{esm/request-factory.js → request-factory.js} +0 -0
  417. /package/build/{esm/result-response.d.ts → result-response.d.ts} +0 -0
  418. /package/build/{esm/result-response.js → result-response.js} +0 -0
  419. /package/build/{esm/url-template.d.ts → url-template.d.ts} +0 -0
  420. /package/build/{esm/util/error.d.ts → util/errors.d.ts} +0 -0
  421. /package/build/{esm/util/any.d.ts → util/unknowns.d.ts} +0 -0
@@ -12,13 +12,17 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  export class MediaType {
15
+ type;
16
+ tree;
17
+ subtype;
18
+ suffix;
19
+ parameters;
15
20
  constructor(params) {
16
- var _a, _b;
17
21
  this.type = params.type;
18
- this.tree = (_a = params.tree) !== null && _a !== void 0 ? _a : MediaType.Tree.Standard;
22
+ this.tree = params.tree ?? MediaType.Tree.Standard;
19
23
  this.subtype = params.subtype.toLowerCase();
20
24
  this.suffix = params.suffix;
21
- this.parameters = Object.entries((_b = params.parameters) !== null && _b !== void 0 ? _b : {}).reduce((obj, [name, value]) => {
25
+ this.parameters = Object.entries(params.parameters ?? {}).reduce((obj, [name, value]) => {
22
26
  obj[name.toLowerCase()] = value.toLowerCase();
23
27
  return obj;
24
28
  }, {});
@@ -27,19 +31,16 @@ export class MediaType {
27
31
  return this.parameters[name];
28
32
  }
29
33
  with(params) {
30
- var _a, _b, _c, _d, _e;
31
34
  return new MediaType({
32
- type: (_a = params.type) !== null && _a !== void 0 ? _a : this.type,
33
- tree: (_b = params.tree) !== null && _b !== void 0 ? _b : this.tree,
34
- subtype: (_c = params.subtype) !== null && _c !== void 0 ? _c : this.subtype,
35
- suffix: (_d = params.suffix) !== null && _d !== void 0 ? _d : this.suffix,
36
- parameters: (_e = params.parameters) !== null && _e !== void 0 ? _e : this.parameters,
35
+ type: params.type ?? this.type,
36
+ tree: params.tree ?? this.tree,
37
+ subtype: params.subtype ?? this.subtype,
38
+ suffix: params.suffix ?? this.suffix,
39
+ parameters: params.parameters ?? this.parameters,
37
40
  });
38
41
  }
39
42
  withParameter(parameter, value) {
40
- const parameters = Object.assign({}, this.parameters, {
41
- [parameter]: value,
42
- });
43
+ const parameters = { ...this.parameters, [parameter]: value };
43
44
  return this.with({ parameters });
44
45
  }
45
46
  get value() {
@@ -47,7 +48,7 @@ export class MediaType {
47
48
  const tree = this.tree;
48
49
  const suffix = this.suffix ? `+${this.suffix.toLowerCase()}` : '';
49
50
  const parameters = Object.keys(this.parameters)
50
- .sort()
51
+ .sort((p1, p2) => p1.localeCompare(p2, 'und'))
51
52
  .map((key) => `;${key}=${this.parameters[key]}`)
52
53
  .join('');
53
54
  return `${type}/${tree}${this.subtype}${suffix}${parameters}`;
@@ -163,10 +164,9 @@ export class MediaType {
163
164
  ParameterName["CharSet"] = "charset";
164
165
  })(ParameterName = MediaType.ParameterName || (MediaType.ParameterName = {}));
165
166
  function from(value, def = undefined) {
166
- var _a, _b, _c, _d, _e, _f;
167
167
  const reqDef = () => {
168
168
  if (!def) {
169
- throw Error('Invalid media type');
169
+ throw new Error('Invalid media type');
170
170
  }
171
171
  return def;
172
172
  };
@@ -175,22 +175,22 @@ export class MediaType {
175
175
  }
176
176
  fullRegex.lastIndex = 0;
177
177
  const match = fullRegex.exec(value);
178
- if ((match === null || match === void 0 ? void 0 : match[0]) != value) {
178
+ if (match?.[0] != value) {
179
179
  return reqDef();
180
180
  }
181
- const type = MediaType.Type.from((_a = match[1]) === null || _a === void 0 ? void 0 : _a.toLowerCase());
181
+ const type = MediaType.Type.from(match[1]?.toLowerCase());
182
182
  if (!type) {
183
183
  return reqDef();
184
184
  }
185
- const tree = (_c = MediaType.Tree.from((_b = match[2]) === null || _b === void 0 ? void 0 : _b.toLowerCase())) !== null && _c !== void 0 ? _c : MediaType.Tree.Standard;
186
- const subtype = (_d = match[3]) === null || _d === void 0 ? void 0 : _d.toLowerCase();
185
+ const tree = MediaType.Tree.from(match[2]?.toLowerCase()) ?? MediaType.Tree.Standard;
186
+ const subtype = match[3]?.toLowerCase();
187
187
  if (!subtype) {
188
188
  return reqDef();
189
189
  }
190
- const suffix = MediaType.Suffix.from((_e = match[4]) === null || _e === void 0 ? void 0 : _e.toLowerCase());
190
+ const suffix = MediaType.Suffix.from(match[4]?.toLowerCase());
191
191
  const parameters = {};
192
- let parametersMatch = paramRegex.exec((_f = match[5]) !== null && _f !== void 0 ? _f : '');
193
- while (parametersMatch === null || parametersMatch === void 0 ? void 0 : parametersMatch[0]) {
192
+ let parametersMatch = paramRegex.exec(match[5] ?? '');
193
+ while (parametersMatch?.[0]) {
194
194
  const name = parametersMatch[1];
195
195
  if (!name)
196
196
  continue;
@@ -209,7 +209,7 @@ export class MediaType {
209
209
  });
210
210
  }
211
211
  MediaType.from = from;
212
- const fullRegex = /^((?:[a-z]+|\*))\/(x(?:-|\\.)|(?:(?:vnd|prs|x)\.)|\*)?([a-z0-9\-.]+|\*)(?:\+([a-z]+))?( *(?:; *(?:(?:[\w.-]+) *= *(?:[\w.-]+)) *)*)$/gi;
212
+ const fullRegex = /^([a-z]+|\*)\/(x(?:-|\\.)|(?:vnd|prs|x)\.|\*)?([a-z0-9\-.]+|\*)(?:\+([a-z]+))?( *(?:; *[\w.-]+ *= *[\w.-]+ *)*)$/gi;
213
213
  const paramRegex = / *; *([\w.-]+) *= *([\w.-]+)/gi;
214
214
  MediaType.Plain = new MediaType({
215
215
  type: MediaType.Type.Text,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-type.js","sourceRoot":"","sources":["../src/media-type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ import { SchemaLike } from './schema-runtime.js';
3
+ export interface Problem {
4
+ type: URL;
5
+ title: string;
6
+ status: number;
7
+ detail?: string;
8
+ instance?: URL;
9
+ [key: string]: unknown;
10
+ }
11
+ export declare const ProblemWireSchema: z.ZodObject<{
12
+ type: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<URL, URL>]>>;
13
+ title: z.ZodString;
14
+ status: z.ZodNumber;
15
+ detail: z.ZodOptional<z.ZodString>;
16
+ instance: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<URL, URL>]>>;
17
+ }, z.core.$loose>;
18
+ export type ProblemSpec = z.infer<typeof ProblemWireSchema>;
19
+ export declare class Problem extends Error implements Problem {
20
+ static readonly BLANK_URL: URL;
21
+ type: URL;
22
+ title: string;
23
+ status: number;
24
+ detail?: string;
25
+ instance?: URL;
26
+ private readonly _parameters?;
27
+ get parameters(): Record<string, unknown> | undefined;
28
+ constructor(spec: ProblemSpec);
29
+ toString(): string;
30
+ static fromStatus(status: number, title: string): Problem;
31
+ static fromResponse(response: Response): Promise<Problem>;
32
+ private static parseURL;
33
+ }
34
+ export declare function createProblemCodec<TProblem extends Problem, TWire extends z.infer<typeof ProblemWireSchema>>(problemType: new (spec: TWire) => TProblem, wireSchema: z.ZodType<TWire>): z.ZodType<TProblem>;
35
+ export declare const ProblemSchema: SchemaLike<Problem>;
@@ -0,0 +1,122 @@
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 { z } from 'zod';
15
+ import { ResponseExample } from './fetch.js';
16
+ import { defineSchema, } from './schema-runtime.js';
17
+ export const ProblemWireSchema = z.looseObject({
18
+ type: z.union([z.string(), z.instanceof(URL)]).optional(),
19
+ title: z.string(),
20
+ status: z.number(),
21
+ detail: z.string().optional(),
22
+ instance: z.union([z.string(), z.instanceof(URL)]).optional(),
23
+ });
24
+ export class Problem extends Error {
25
+ static BLANK_URL = new URL('about:blank');
26
+ type;
27
+ title;
28
+ status;
29
+ detail;
30
+ instance;
31
+ _parameters;
32
+ get parameters() {
33
+ return this._parameters;
34
+ }
35
+ constructor(spec) {
36
+ super(`${spec.status.toString()} ${spec.type} - ${spec.title}`);
37
+ const { type, title, status, detail, instance, ...parameters } = spec;
38
+ delete parameters.stack; // Fix for browsers that add stack to Error objects
39
+ this.type = Problem.parseURL(type) ?? Problem.BLANK_URL;
40
+ this.status = status;
41
+ this.title = title;
42
+ this.detail = detail;
43
+ this.instance = Problem.parseURL(instance);
44
+ this._parameters = Object.keys(parameters).length ? parameters : undefined;
45
+ }
46
+ toString() {
47
+ const self = this;
48
+ return JSON.stringify({
49
+ type: this.type,
50
+ status: this.status,
51
+ title: this.title,
52
+ detail: this.detail,
53
+ instance: this.instance,
54
+ url: self.request?.url,
55
+ response: self.response?.example,
56
+ });
57
+ }
58
+ static fromStatus(status, title) {
59
+ return new Problem({
60
+ type: Problem.BLANK_URL,
61
+ title,
62
+ status,
63
+ });
64
+ }
65
+ static async fromResponse(response) {
66
+ const [bodyExcerpt, body] = await ResponseExample.bodyExcerpt(response, 256);
67
+ return new Problem({
68
+ type: Problem.BLANK_URL,
69
+ title: response.statusText,
70
+ status: response.status,
71
+ request: {
72
+ url: response.url,
73
+ },
74
+ response: {
75
+ headers: response.headers,
76
+ ok: response.ok,
77
+ redirected: response.redirected,
78
+ status: response.status,
79
+ statusText: response.statusText,
80
+ type: response.type,
81
+ url: response.url,
82
+ body,
83
+ example: ResponseExample.build(response, bodyExcerpt),
84
+ },
85
+ });
86
+ }
87
+ static parseURL(value) {
88
+ if (value == null) {
89
+ return undefined;
90
+ }
91
+ if (value instanceof URL) {
92
+ return value;
93
+ }
94
+ if (typeof value === 'string') {
95
+ try {
96
+ return new URL(value);
97
+ }
98
+ catch {
99
+ return undefined;
100
+ }
101
+ }
102
+ return undefined;
103
+ }
104
+ }
105
+ export function createProblemCodec(problemType, wireSchema) {
106
+ return z.codec(wireSchema, z.instanceof(problemType), {
107
+ decode: (value) => new problemType(value),
108
+ encode: (value) => ({
109
+ type: value.type?.toString() ?? Problem.BLANK_URL.toString(),
110
+ title: value.title,
111
+ status: value.status,
112
+ detail: value.detail,
113
+ instance: value.instance?.toString(),
114
+ ...value.parameters,
115
+ }),
116
+ });
117
+ }
118
+ export const ProblemSchema = defineSchema(() => createProblemCodec(Problem, ProblemWireSchema), {
119
+ id: Symbol.for('@outfoxx/sunday/ProblemSchema'),
120
+ debugName: 'ProblemSchema',
121
+ });
122
+ //# sourceMappingURL=problem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"problem.js","sourceRoot":"","sources":["../src/problem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { RequestAdapter, RequestFactory } from './request-factory.js';
2
+ export declare abstract class HeaderTokenAuthorizingAdapter implements RequestAdapter {
3
+ header: string;
4
+ tokenHeaderType: string;
5
+ applyToken(request: Request, accessToken: string): Request;
6
+ abstract adapt(requestFactory: RequestFactory, request: Request): Promise<Request>;
7
+ }
8
+ export declare class StaticHeaderTokenAuthorizingAdapter extends HeaderTokenAuthorizingAdapter {
9
+ private readonly accessToken;
10
+ constructor(accessToken: string);
11
+ adapt(_requestFactory: RequestFactory, request: Request): Promise<Request>;
12
+ }
13
+ export interface TokenAuthorization {
14
+ token: string;
15
+ expires: Date;
16
+ }
17
+ export declare class RefreshingHeaderTokenAuthorizingAdapter extends HeaderTokenAuthorizingAdapter {
18
+ private readonly refresh;
19
+ private authorization?;
20
+ constructor(refresh: (requestFactory: RequestFactory) => Promise<TokenAuthorization>);
21
+ shouldRefresh(): boolean;
22
+ adapt(requestFactory: RequestFactory, request: Request): Promise<Request>;
23
+ }
@@ -0,0 +1,53 @@
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 class HeaderTokenAuthorizingAdapter {
15
+ header = 'Authorization';
16
+ tokenHeaderType = 'Bearer';
17
+ applyToken(request, accessToken) {
18
+ const requestClone = request.clone();
19
+ requestClone.headers.set(this.header, `${this.tokenHeaderType} ${accessToken}`);
20
+ return requestClone;
21
+ }
22
+ }
23
+ export class StaticHeaderTokenAuthorizingAdapter extends HeaderTokenAuthorizingAdapter {
24
+ accessToken;
25
+ constructor(accessToken) {
26
+ super();
27
+ this.accessToken = accessToken;
28
+ }
29
+ async adapt(_requestFactory, request) {
30
+ return this.applyToken(request, this.accessToken);
31
+ }
32
+ }
33
+ export class RefreshingHeaderTokenAuthorizingAdapter extends HeaderTokenAuthorizingAdapter {
34
+ refresh;
35
+ authorization;
36
+ constructor(refresh) {
37
+ super();
38
+ this.refresh = refresh;
39
+ }
40
+ shouldRefresh() {
41
+ if (!this.authorization) {
42
+ return true;
43
+ }
44
+ return this.authorization.expires.getTime() <= Date.now();
45
+ }
46
+ async adapt(requestFactory, request) {
47
+ if (!this.authorization || this.shouldRefresh()) {
48
+ this.authorization = await this.refresh(requestFactory);
49
+ }
50
+ return this.applyToken(request, this.authorization.token);
51
+ }
52
+ }
53
+ //# sourceMappingURL=request-adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-adapters.js","sourceRoot":"","sources":["../src/request-adapters.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,MAAM,OAAgB,6BAA6B;IACjD,MAAM,GAAG,eAAe,CAAC;IACzB,eAAe,GAAG,QAAQ,CAAC;IAE3B,UAAU,CAAC,OAAgB,EAAE,WAAmB;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,YAAY,CAAC,OAAO,CAAC,GAAG,CACtB,IAAI,CAAC,MAAM,EACX,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,EAAE,CACzC,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CAMF;AAED,MAAM,OAAO,mCAAoC,SAAQ,6BAA6B;IACvD;IAA7B,YAA6B,WAAmB;QAC9C,KAAK,EAAE,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAQ;IAEhD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,eAA+B,EAC/B,OAAgB;QAEhB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;CACF;AAOD,MAAM,OAAO,uCAAwC,SAAQ,6BAA6B;IAIrE;IAHX,aAAa,CAAsB;IAE3C,YACmB,OAEe;QAEhC,KAAK,EAAE,CAAC;QAJS,YAAO,GAAP,OAAO,CAEQ;IAGlC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CACT,cAA8B,EAC9B,OAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5D,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 { ResultResponse } from './result-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 RequestFactory {
9
+ readonly baseUrl: URLTemplate;
10
+ registerProblem(type: URL | string, problemType: SchemaLike<Problem>): void;
11
+ request(requestSpec: RequestSpec<unknown>): Promise<Request>;
12
+ response(request: Request, dataExpected?: boolean): Promise<Response>;
13
+ response<B>(requestSpec: RequestSpec<B>, dataExpected?: boolean): Promise<Response>;
14
+ resultResponse<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<ResultResponse<R>>;
15
+ resultResponse<B>(requestSpec: RequestSpec<B>): Promise<ResultResponse<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(requestFactory: RequestFactory, request: Request): Promise<Request>;
39
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-factory.js","sourceRoot":"","sources":["../src/request-factory.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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-response.js","sourceRoot":"","sources":["../src/result-response.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"}
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ import { SchemaPolicy } from './schema-policy.js';
3
+ export type BuiltinSchemaSet = {
4
+ readonly urlSchema: z.ZodType<URL>;
5
+ readonly arrayBufferSchema: z.ZodType<ArrayBuffer>;
6
+ };
7
+ export declare const UNKNOWN_SCHEMA: z.ZodUnknown;
8
+ export declare const ANY_SCHEMA: z.ZodUnknown;
9
+ export declare const NULL_SCHEMA: z.ZodNull;
10
+ export declare const STRING_SCHEMA: z.ZodString;
11
+ export declare const NUMBER_SCHEMA: z.ZodNumber;
12
+ export declare const BOOLEAN_SCHEMA: z.ZodBoolean;
13
+ export declare const UnknownSchema: z.ZodUnknown;
14
+ export declare const AnySchema: z.ZodUnknown;
15
+ export declare const NullSchema: z.ZodNull;
16
+ export declare const StringSchema: z.ZodString;
17
+ export declare const NumberSchema: z.ZodNumber;
18
+ export declare const BooleanSchema: z.ZodBoolean;
19
+ export declare function builtinSchemasForPolicy(policy: SchemaPolicy): BuiltinSchemaSet;
20
+ export declare const URLSchema: import("./schema-runtime.js").SchemaDef<z.ZodType<URL, unknown, z.core.$ZodTypeInternals<URL, unknown>>>;
21
+ export declare const ArrayBufferSchema: import("./schema-runtime.js").SchemaDef<z.ZodType<ArrayBuffer, unknown, z.core.$ZodTypeInternals<ArrayBuffer, unknown>>>;
@@ -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