@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,63 @@
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 { AnyTextDecoder } from './any-text-decoder.js';
15
+ import { BinaryDecoder } from './binary-decoder.js';
16
+ import { CBORDecoder } from './cbor-decoder.js';
17
+ import { JSONDecoder } from './json-decoder.js';
18
+ import { MediaType } from '../media-type.js';
19
+ export class MediaTypeDecoders {
20
+ decoders;
21
+ static Builder = class Builder {
22
+ decoders = new Map();
23
+ add(mediaType, decoder) {
24
+ this.decoders.set(mediaType, decoder);
25
+ return this;
26
+ }
27
+ addDefaults() {
28
+ return this.add(MediaType.OctetStream, BinaryDecoder.default)
29
+ .add(MediaType.JSON, JSONDecoder.default)
30
+ .add(MediaType.CBOR, CBORDecoder.default)
31
+ .add(MediaType.EventStream, BinaryDecoder.default)
32
+ .add(MediaType.AnyText, AnyTextDecoder.default)
33
+ .add(MediaType.X509CACert, BinaryDecoder.default)
34
+ .add(MediaType.X509UserCert, BinaryDecoder.default);
35
+ }
36
+ build() {
37
+ return new MediaTypeDecoders(this.decoders);
38
+ }
39
+ };
40
+ static DEFAULT = new MediaTypeDecoders.Builder()
41
+ .addDefaults()
42
+ .build();
43
+ constructor(decoders) {
44
+ this.decoders = decoders;
45
+ }
46
+ supports(mediaType) {
47
+ for (const key of this.decoders.keys()) {
48
+ if (key.compatible(mediaType)) {
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ find(mediaType) {
55
+ for (const [type, decoder] of this.decoders.entries()) {
56
+ if (type.compatible(mediaType)) {
57
+ return decoder;
58
+ }
59
+ }
60
+ throw new Error(`Unsupported media type - ${mediaType}`);
61
+ }
62
+ }
63
+ //# sourceMappingURL=media-type-decoders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-type-decoders.js","sourceRoot":"","sources":["../../src/media-type-codecs/media-type-decoders.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,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAe7C,MAAM,OAAO,iBAAiB;IAiCC;IAhC7B,MAAM,CAAU,OAAO,GAAwC,MAAM,OAAO;QAG1E,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;QAElD,GAAG,CACD,SAAoB,EACpB,OAAyB;YAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;iBAC1D,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;iBACjD,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;iBAC9C,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;iBAChD,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QAED,KAAK;YACH,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,CAAU,OAAO,GAAsB,IAAI,iBAAiB,CAAC,OAAO,EAAE;SACzE,WAAW,EAAE;SACb,KAAK,EAAE,CAAC;IAEX,YAA6B,QAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;IAAG,CAAC;IAE3E,QAAQ,CAAC,SAAoB;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAoB;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC"}
@@ -1,12 +1,12 @@
1
- import { AnyType } from '../any-type';
1
+ import { SchemaLike } from '../schema-runtime.js';
2
2
  export interface MediaTypeEncoder {
3
- encode<T = unknown>(value: T, type: AnyType | undefined): BodyInit;
3
+ encode<T>(value: T, type?: SchemaLike<T>): BodyInit;
4
4
  }
5
5
  export interface URLQueryParamsEncoder extends MediaTypeEncoder {
6
6
  encodeQueryString(value: Record<string, unknown>): string;
7
7
  }
8
8
  export declare function isURLQueryParamsEncoder(encoder: MediaTypeEncoder | URLQueryParamsEncoder | undefined): encoder is URLQueryParamsEncoder;
9
9
  export interface StructuredMediaTypeEncoder extends MediaTypeEncoder {
10
- encodeObject<T = unknown>(value: T, type?: AnyType, includeNulls?: boolean): Record<string, unknown>;
10
+ encodeObject<T>(value: T, type?: SchemaLike<T>): Record<string, unknown>;
11
11
  }
12
12
  export declare function isStructuredMediaTypeEncoder(encoder: MediaTypeEncoder | StructuredMediaTypeEncoder | undefined): encoder is StructuredMediaTypeEncoder;
@@ -12,13 +12,11 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  export function isURLQueryParamsEncoder(encoder) {
15
- var _a;
16
15
  const rec = encoder;
17
- return (_a = !!rec.encodeQueryString) !== null && _a !== void 0 ? _a : false;
16
+ return typeof rec.encodeQueryString === 'function';
18
17
  }
19
18
  export function isStructuredMediaTypeEncoder(encoder) {
20
- var _a;
21
19
  const rec = encoder;
22
- return (_a = !!rec.encodeObject) !== null && _a !== void 0 ? _a : false;
20
+ return typeof rec.encodeObject === 'function';
23
21
  }
24
22
  //# sourceMappingURL=media-type-encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-type-encoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/media-type-encoder.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;AAYjC,MAAM,UAAU,uBAAuB,CACrC,OAA6D;IAE7D,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,CAAC;AACrD,CAAC;AASD,MAAM,UAAU,4BAA4B,CAC1C,OAAkE;IAElE,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC;AAChD,CAAC"}
@@ -1,17 +1,15 @@
1
- import { MediaType } from '../media-type';
2
- import { MediaTypeEncoder } from './media-type-encoder';
1
+ import { MediaType } from '../media-type.js';
2
+ import { MediaTypeEncoder } from './media-type-encoder.js';
3
3
  export interface MediaTypeEncodersBuilder {
4
4
  addDefaults(): MediaTypeEncodersBuilder;
5
5
  add(mediaType: MediaType, encoder: MediaTypeEncoder): MediaTypeEncodersBuilder;
6
6
  build(): MediaTypeEncoders;
7
7
  }
8
- export interface MediaTypeEncodersBuilderConstructor {
9
- new (): MediaTypeEncodersBuilder;
10
- }
8
+ export type MediaTypeEncodersBuilderConstructor = new () => MediaTypeEncodersBuilder;
11
9
  export declare class MediaTypeEncoders {
12
- private encoders;
13
- static Builder: MediaTypeEncodersBuilderConstructor;
14
- static DEFAULT: MediaTypeEncoders;
10
+ private readonly encoders;
11
+ static readonly Builder: MediaTypeEncodersBuilderConstructor;
12
+ static readonly DEFAULT: MediaTypeEncoders;
15
13
  constructor(encoders: Map<MediaType, MediaTypeEncoder>);
16
14
  supports(mediaType: MediaType): boolean;
17
15
  find(mediaType: MediaType): MediaTypeEncoder;
@@ -0,0 +1,65 @@
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 { MediaType } from '../media-type.js';
15
+ import { AnyTextEncoder } from './any-text-encoder.js';
16
+ import { BinaryEncoder } from './binary-encoder.js';
17
+ import { CBOREncoder } from './cbor-encoder.js';
18
+ import { JSONEncoder } from './json-encoder.js';
19
+ import { WWWFormUrlEncoder } from './www-form-url-encoder.js';
20
+ export class MediaTypeEncoders {
21
+ encoders;
22
+ static Builder = class Builder {
23
+ encoders = new Map();
24
+ add(mediaType, encoder) {
25
+ this.encoders.set(mediaType, encoder);
26
+ return this;
27
+ }
28
+ addDefaults() {
29
+ return this.add(MediaType.OctetStream, BinaryEncoder.default)
30
+ .add(MediaType.WWWFormUrlEncoded, WWWFormUrlEncoder.default)
31
+ .add(MediaType.JSON, JSONEncoder.default)
32
+ .add(MediaType.JSONStructured, JSONEncoder.default)
33
+ .add(MediaType.CBOR, CBOREncoder.default)
34
+ .add(MediaType.AnyText, AnyTextEncoder.default)
35
+ .add(MediaType.X509CACert, BinaryEncoder.default)
36
+ .add(MediaType.X509UserCert, BinaryEncoder.default);
37
+ }
38
+ build() {
39
+ return new MediaTypeEncoders(this.encoders);
40
+ }
41
+ };
42
+ static DEFAULT = new MediaTypeEncoders.Builder()
43
+ .addDefaults()
44
+ .build();
45
+ constructor(encoders) {
46
+ this.encoders = encoders;
47
+ }
48
+ supports(mediaType) {
49
+ for (const key of this.encoders.keys()) {
50
+ if (key.compatible(mediaType)) {
51
+ return true;
52
+ }
53
+ }
54
+ return false;
55
+ }
56
+ find(mediaType) {
57
+ for (const [type, encoder] of this.encoders.entries()) {
58
+ if (type.compatible(mediaType)) {
59
+ return encoder;
60
+ }
61
+ }
62
+ throw new Error(`Unsupported media type - ${mediaType}`);
63
+ }
64
+ }
65
+ //# sourceMappingURL=media-type-encoders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-type-encoders.js","sourceRoot":"","sources":["../../src/media-type-codecs/media-type-encoders.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,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAc9D,MAAM,OAAO,iBAAiB;IAkCC;IAjC7B,MAAM,CAAU,OAAO,GAAwC,MAAM,OAAO;QAG1E,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;QAElD,GAAG,CACD,SAAoB,EACpB,OAAyB;YAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;iBAC1D,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC;iBAC3D,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC;iBAClD,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;iBAC9C,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;iBAChD,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QAED,KAAK;YACH,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,CAAU,OAAO,GAAsB,IAAI,iBAAiB,CAAC,OAAO,EAAE;SACzE,WAAW,EAAE;SACb,KAAK,EAAE,CAAC;IAEX,YAA6B,QAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;IAAG,CAAC;IAE3E,QAAQ,CAAC,SAAoB;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAoB;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { SchemaLike, SchemaRuntime } from '../schema-runtime.js';
2
+ import { URLQueryParamsEncoder } from './media-type-encoder.js';
3
+ export declare class WWWFormUrlEncoder implements URLQueryParamsEncoder {
4
+ private readonly arrayEncoding;
5
+ private readonly boolEncoding;
6
+ private readonly dateEncoding;
7
+ private readonly encoder;
8
+ static get default(): WWWFormUrlEncoder;
9
+ runtime: SchemaRuntime;
10
+ constructor(arrayEncoding: WWWFormUrlEncoder.ArrayEncoding, boolEncoding: WWWFormUrlEncoder.BoolEncoding, dateEncoding: WWWFormUrlEncoder.DateEncoding, encoder?: TextEncoder);
11
+ encode<T = unknown>(value: T, type?: SchemaLike<T>): BodyInit;
12
+ encodeQueryString(parameters: Record<string, unknown>): string;
13
+ encodeQueryComponent(key: string, value: unknown): string[];
14
+ private encodeMapQueryComponent;
15
+ private encodeIterableQueryComponent;
16
+ }
17
+ export declare namespace WWWFormUrlEncoder {
18
+ enum ArrayEncoding {
19
+ UNBRACKETED = 0,
20
+ BRACKETED = 1
21
+ }
22
+ enum BoolEncoding {
23
+ LITERAL = 0,
24
+ NUMERIC = 1
25
+ }
26
+ enum DateEncoding {
27
+ DECIMAL_SECONDS_SINCE_EPOCH = 0,
28
+ MILLISECONDS_SINCE_EPOCH = 1,
29
+ ISO8601 = 2
30
+ }
31
+ }
@@ -0,0 +1,281 @@
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 { DateTimeFormatter, Duration, Instant, LocalDate, LocalDateTime, LocalTime, OffsetDateTime, OffsetTime, Period, Temporal, TemporalAmount, ZoneId, ZoneOffset, ZonedDateTime, } from '@js-joda/core';
15
+ import { z } from 'zod';
16
+ import { ArrayBufferEncoding, createSchemaRuntime, NumericDateDecoding, } from '../schema-runtime.js';
17
+ import { appendNumericTimeFields, secondsToNumber } from '../util/numbers.js';
18
+ const FORM_OBJECT_SCHEMA = z.record(z.string(), z.unknown());
19
+ export class WWWFormUrlEncoder {
20
+ arrayEncoding;
21
+ boolEncoding;
22
+ dateEncoding;
23
+ encoder;
24
+ static get default() {
25
+ return new WWWFormUrlEncoder(WWWFormUrlEncoder.ArrayEncoding.UNBRACKETED, WWWFormUrlEncoder.BoolEncoding.LITERAL, WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH);
26
+ }
27
+ runtime;
28
+ constructor(arrayEncoding, boolEncoding, dateEncoding, encoder = new TextEncoder()) {
29
+ this.arrayEncoding = arrayEncoding;
30
+ this.boolEncoding = boolEncoding;
31
+ this.dateEncoding = dateEncoding;
32
+ this.encoder = encoder;
33
+ this.runtime = createSchemaRuntime({
34
+ format: 'json',
35
+ dateEncoding: this.dateEncoding,
36
+ numericDateDecoding: NumericDateDecoding.DECIMAL_SECONDS_SINCE_EPOCH,
37
+ arrayBufferEncoding: ArrayBufferEncoding.BASE64,
38
+ });
39
+ }
40
+ encode(value, type) {
41
+ const parameters = type
42
+ ? this.runtime.resolveSchema(type).encode(value)
43
+ : value;
44
+ return this.encoder.encode(this.encodeQueryString(FORM_OBJECT_SCHEMA.parse(parameters)));
45
+ }
46
+ encodeQueryString(parameters) {
47
+ const components = [];
48
+ for (const [key, value] of Object.entries(parameters).sort(compareEntryKeys)) {
49
+ components.push(...this.encodeQueryComponent(key, value));
50
+ }
51
+ return components.join('&');
52
+ }
53
+ encodeQueryComponent(key, value) {
54
+ const components = [];
55
+ if (value === undefined) {
56
+ return components;
57
+ }
58
+ if (value == null) {
59
+ //
60
+ components.push(encodeURIComponent(key));
61
+ }
62
+ else if (Array.isArray(value) || value instanceof Set) {
63
+ //
64
+ components.push(...this.encodeIterableQueryComponent(key, value));
65
+ }
66
+ else if (value instanceof Map) {
67
+ //
68
+ components.push(...this.encodeMapQueryComponent(key, value));
69
+ }
70
+ else if (value instanceof Date) {
71
+ //
72
+ components.push(encodeURIComponent(key) +
73
+ '=' +
74
+ encodeURIComponent(encodeInstant(Instant.ofEpochMilli(value.getTime()), this.dateEncoding)));
75
+ }
76
+ else if (value instanceof Temporal) {
77
+ //
78
+ components.push(encodeURIComponent(key) + '=' +
79
+ encodeURIComponent(encodeTemporal(value, this.dateEncoding)));
80
+ }
81
+ else if (value instanceof TemporalAmount) {
82
+ components.push(encodeURIComponent(key) + '=' +
83
+ encodeURIComponent(encodeTemporalAmount(value, this.dateEncoding)));
84
+ }
85
+ else if (typeof value === 'boolean') {
86
+ //
87
+ components.push(encodeURIComponent(key) +
88
+ '=' +
89
+ encodeURIComponent(encodeBool(value, this.boolEncoding)));
90
+ }
91
+ else if (value instanceof URL) {
92
+ //
93
+ components.push(encodeURIComponent(key) + '=' + encodeURIComponent(value.toString()));
94
+ }
95
+ else if (value instanceof ZoneId || value instanceof ZoneOffset) {
96
+ //
97
+ components.push(encodeURIComponent(key) + '=' + encodeURIComponent(value.toString()));
98
+ }
99
+ else if (value instanceof ArrayBuffer) {
100
+ //
101
+ throw new TypeError('Encoding ArrayBuffer to form data is not supported');
102
+ }
103
+ else if (typeof value === 'object') {
104
+ //
105
+ for (const [nestedKey, nestedValue] of Object.entries(value).sort(compareEntryKeys)) {
106
+ components.push(...this.encodeQueryComponent(`${key}[${nestedKey}]`, nestedValue));
107
+ }
108
+ }
109
+ else if (isStringInterpolable(value)) {
110
+ //
111
+ components.push(encodeURIComponent(key) + '=' + encodeURIComponent(`${value}`));
112
+ }
113
+ else {
114
+ throw new TypeError(`Unsupported value type: ${typeof value}`);
115
+ }
116
+ return components;
117
+ }
118
+ encodeMapQueryComponent(key, value) {
119
+ const components = [];
120
+ const entries = Array.from(value.entries()).sort(compareEntryKeys);
121
+ for (const [nestedKey, nestedValue] of entries) {
122
+ components.push(...this.encodeQueryComponent(`${key}[${nestedKey}]`, nestedValue));
123
+ }
124
+ return components;
125
+ }
126
+ encodeIterableQueryComponent(key, value) {
127
+ const components = [];
128
+ for (const item of value) {
129
+ components.push(...this.encodeQueryComponent(encodeArrayKey(key, this.arrayEncoding), item));
130
+ }
131
+ return components;
132
+ }
133
+ }
134
+ function encodeInstant(instant, dateEncoding) {
135
+ switch (dateEncoding) {
136
+ case WWWFormUrlEncoder.DateEncoding.ISO8601:
137
+ return DateTimeFormatter.ISO_INSTANT.format(instant);
138
+ case WWWFormUrlEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
139
+ return `${instant.toEpochMilli()}`;
140
+ case WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
141
+ return `${secondsToNumber(instant.epochSecond(), instant.nano())}`;
142
+ }
143
+ }
144
+ function encodeLocalDateTime(temporal, dateEncoding) {
145
+ if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
146
+ return temporal.toString();
147
+ }
148
+ return JSON.stringify(appendNumericTimeFields([
149
+ temporal.year(),
150
+ temporal.monthValue(),
151
+ temporal.dayOfMonth(),
152
+ temporal.hour(),
153
+ temporal.minute(),
154
+ ], temporal.second(), numericFraction(temporal.nano(), dateEncoding)));
155
+ }
156
+ function encodeOffsetTime(temporal, dateEncoding) {
157
+ if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
158
+ return temporal.toString();
159
+ }
160
+ return JSON.stringify([
161
+ ...appendNumericTimeFields([temporal.hour(), temporal.minute()], temporal.second(), numericFraction(temporal.nano(), dateEncoding)),
162
+ temporal.offset().toString(),
163
+ ]);
164
+ }
165
+ function encodeLocalTime(temporal, dateEncoding) {
166
+ if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
167
+ return temporal.toString();
168
+ }
169
+ return JSON.stringify(appendNumericTimeFields([temporal.hour(), temporal.minute()], temporal.second(), numericFraction(temporal.nano(), dateEncoding)));
170
+ }
171
+ function encodeLocalDate(temporal, dateEncoding) {
172
+ if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
173
+ return temporal.toString();
174
+ }
175
+ return JSON.stringify([
176
+ temporal.year(),
177
+ temporal.monthValue(),
178
+ temporal.dayOfMonth(),
179
+ ]);
180
+ }
181
+ function encodeTemporal(temporal, dateEncoding) {
182
+ if (temporal instanceof Instant) {
183
+ return encodeInstant(temporal, dateEncoding);
184
+ }
185
+ else if (temporal instanceof ZonedDateTime) {
186
+ return encodeInstant(temporal.toInstant(), dateEncoding);
187
+ }
188
+ else if (temporal instanceof OffsetDateTime) {
189
+ return encodeInstant(temporal.toInstant(), dateEncoding);
190
+ }
191
+ else if (temporal instanceof LocalDateTime) {
192
+ return encodeLocalDateTime(temporal, dateEncoding);
193
+ }
194
+ else if (temporal instanceof OffsetTime) {
195
+ return encodeOffsetTime(temporal, dateEncoding);
196
+ }
197
+ else if (temporal instanceof LocalTime) {
198
+ return encodeLocalTime(temporal, dateEncoding);
199
+ }
200
+ else if (temporal instanceof LocalDate) {
201
+ return encodeLocalDate(temporal, dateEncoding);
202
+ }
203
+ else {
204
+ throw new TypeError(`Unsupported Temporal type: ${temporal.constructor.name}`);
205
+ }
206
+ }
207
+ function encodeDuration(duration, dateEncoding) {
208
+ switch (dateEncoding) {
209
+ case WWWFormUrlEncoder.DateEncoding.ISO8601:
210
+ return duration.toString();
211
+ case WWWFormUrlEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
212
+ return `${duration.toMillis()}`;
213
+ case WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
214
+ return `${secondsToNumber(duration.seconds(), duration.nano())}`;
215
+ }
216
+ }
217
+ function encodePeriod(period) {
218
+ return period.toString();
219
+ }
220
+ function encodeTemporalAmount(temporalAmount, dateEncoding) {
221
+ if (temporalAmount instanceof Duration) {
222
+ return encodeDuration(temporalAmount, dateEncoding);
223
+ }
224
+ else if (temporalAmount instanceof Period) {
225
+ return encodePeriod(temporalAmount);
226
+ }
227
+ else {
228
+ throw new TypeError(`Unsupported TemporalAmount type: ${temporalAmount.constructor.name}`);
229
+ }
230
+ }
231
+ function numericFraction(nanos, dateEncoding) {
232
+ switch (dateEncoding) {
233
+ case WWWFormUrlEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
234
+ return Math.trunc(nanos / 1_000_000);
235
+ case WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
236
+ case WWWFormUrlEncoder.DateEncoding.ISO8601:
237
+ return nanos;
238
+ }
239
+ }
240
+ function encodeBool(value, boolEncoding) {
241
+ switch (boolEncoding) {
242
+ case WWWFormUrlEncoder.BoolEncoding.LITERAL:
243
+ return value ? 'true' : 'false';
244
+ case WWWFormUrlEncoder.BoolEncoding.NUMERIC:
245
+ return value ? '1' : '0';
246
+ }
247
+ }
248
+ function encodeArrayKey(key, arrayEncoding) {
249
+ switch (arrayEncoding) {
250
+ case WWWFormUrlEncoder.ArrayEncoding.UNBRACKETED:
251
+ return key;
252
+ case WWWFormUrlEncoder.ArrayEncoding.BRACKETED:
253
+ return `${key}[]`;
254
+ }
255
+ }
256
+ (function (WWWFormUrlEncoder) {
257
+ let ArrayEncoding;
258
+ (function (ArrayEncoding) {
259
+ ArrayEncoding[ArrayEncoding["UNBRACKETED"] = 0] = "UNBRACKETED";
260
+ ArrayEncoding[ArrayEncoding["BRACKETED"] = 1] = "BRACKETED";
261
+ })(ArrayEncoding = WWWFormUrlEncoder.ArrayEncoding || (WWWFormUrlEncoder.ArrayEncoding = {}));
262
+ let BoolEncoding;
263
+ (function (BoolEncoding) {
264
+ BoolEncoding[BoolEncoding["LITERAL"] = 0] = "LITERAL";
265
+ BoolEncoding[BoolEncoding["NUMERIC"] = 1] = "NUMERIC";
266
+ })(BoolEncoding = WWWFormUrlEncoder.BoolEncoding || (WWWFormUrlEncoder.BoolEncoding = {}));
267
+ let DateEncoding;
268
+ (function (DateEncoding) {
269
+ DateEncoding[DateEncoding["DECIMAL_SECONDS_SINCE_EPOCH"] = 0] = "DECIMAL_SECONDS_SINCE_EPOCH";
270
+ DateEncoding[DateEncoding["MILLISECONDS_SINCE_EPOCH"] = 1] = "MILLISECONDS_SINCE_EPOCH";
271
+ DateEncoding[DateEncoding["ISO8601"] = 2] = "ISO8601";
272
+ })(DateEncoding = WWWFormUrlEncoder.DateEncoding || (WWWFormUrlEncoder.DateEncoding = {}));
273
+ })(WWWFormUrlEncoder || (WWWFormUrlEncoder = {}));
274
+ function isStringInterpolable(value) {
275
+ const type = typeof value;
276
+ return type === 'string' || type === 'number' || type === 'bigint' || type === 'boolean';
277
+ }
278
+ function compareEntryKeys(e1, e2) {
279
+ return e1[0].localeCompare(e2[0], 'und');
280
+ }
281
+ //# sourceMappingURL=www-form-url-encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"www-form-url-encoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/www-form-url-encoder.ts"],"names":[],"mappings":"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"}
@@ -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,