@outfoxx/sunday 1.1.0-beta.2 → 1.1.0-beta.21

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 (389) hide show
  1. package/README.md +1 -1
  2. package/build/esm/any-type.js.map +1 -0
  3. package/build/esm/class-type.js.map +1 -0
  4. package/build/esm/date-time-types.js.map +1 -0
  5. package/{dist → build/esm}/event-parser.js +3 -4
  6. package/build/esm/event-parser.js.map +1 -0
  7. package/{dist → build/esm}/fetch-event-source.d.ts +0 -2
  8. package/{dist → build/esm}/fetch-event-source.js +59 -50
  9. package/build/esm/fetch-event-source.js.map +1 -0
  10. package/{dist → build/esm}/fetch-request-factory.js +11 -14
  11. package/build/esm/fetch-request-factory.js.map +1 -0
  12. package/{dist → build/esm}/fetch.js +5 -7
  13. package/build/esm/fetch.js.map +1 -0
  14. package/build/esm/header-parameters.js.map +1 -0
  15. package/{dist → build/esm}/index.d.ts +1 -0
  16. package/{dist → build/esm}/index.js +1 -0
  17. package/build/esm/index.js.map +1 -0
  18. package/build/esm/logger.js.map +1 -0
  19. package/build/esm/media-type-codecs/any-text-decoder.js.map +1 -0
  20. package/build/esm/media-type-codecs/any-text-encoder.js.map +1 -0
  21. package/build/esm/media-type-codecs/binary-decoder.js.map +1 -0
  22. package/build/esm/media-type-codecs/binary-encoder.js.map +1 -0
  23. package/{dist → build/esm}/media-type-codecs/cbor-decoder.js +11 -7
  24. package/build/esm/media-type-codecs/cbor-decoder.js.map +1 -0
  25. package/{dist → build/esm}/media-type-codecs/cbor-encoder.d.ts +2 -1
  26. package/{dist → build/esm}/media-type-codecs/cbor-encoder.js +53 -50
  27. package/build/esm/media-type-codecs/cbor-encoder.js.map +1 -0
  28. package/build/esm/media-type-codecs/cbor-tags.js.map +1 -0
  29. package/build/esm/media-type-codecs/json-decoder.js.map +1 -0
  30. package/{dist → build/esm}/media-type-codecs/json-encoder.js +46 -51
  31. package/build/esm/media-type-codecs/json-encoder.js.map +1 -0
  32. package/{dist → build/esm}/media-type-codecs/media-type-decoder.js +1 -2
  33. package/build/esm/media-type-codecs/media-type-decoder.js.map +1 -0
  34. package/build/esm/media-type-codecs/media-type-decoders.js.map +1 -0
  35. package/{dist → build/esm}/media-type-codecs/media-type-encoder.js +2 -4
  36. package/build/esm/media-type-codecs/media-type-encoder.js.map +1 -0
  37. package/build/esm/media-type-codecs/media-type-encoders.js.map +1 -0
  38. package/{dist → build/esm}/media-type-codecs/www-form-url-encoder.js +12 -6
  39. package/build/esm/media-type-codecs/www-form-url-encoder.js.map +1 -0
  40. package/{dist → build/esm}/media-type.js +14 -17
  41. package/build/esm/media-type.js.map +1 -0
  42. package/{dist → build/esm}/problem.js +5 -7
  43. package/build/esm/problem.js.map +1 -0
  44. package/build/esm/request-adapters.d.ts +23 -0
  45. package/build/esm/request-adapters.js +52 -0
  46. package/build/esm/request-adapters.js.map +1 -0
  47. package/{dist → build/esm}/request-factory.d.ts +3 -1
  48. package/build/esm/request-factory.js.map +1 -0
  49. package/build/esm/result-response.js.map +1 -0
  50. package/build/esm/sunday-error.js.map +1 -0
  51. package/{dist → build/esm}/url-template.js +2 -2
  52. package/build/esm/url-template.js.map +1 -0
  53. package/{dist → build/esm}/util/any.js +1 -2
  54. package/build/esm/util/any.js.map +1 -0
  55. package/build/esm/util/base64.js.map +1 -0
  56. package/{dist → build/esm}/util/error.js +1 -1
  57. package/build/esm/util/error.js.map +1 -0
  58. package/build/esm/util/hex.js.map +1 -0
  59. package/build/esm/util/rxjs.d.ts +27 -0
  60. package/build/esm/util/rxjs.js +79 -0
  61. package/build/esm/util/rxjs.js.map +1 -0
  62. package/build/esm/util/temporal.js.map +1 -0
  63. package/build/esnext/any-type.d.ts +4 -0
  64. package/build/esnext/any-type.js +15 -0
  65. package/build/esnext/any-type.js.map +1 -0
  66. package/build/esnext/class-type.d.ts +2 -0
  67. package/build/esnext/class-type.js +15 -0
  68. package/build/esnext/class-type.js.map +1 -0
  69. package/build/esnext/date-time-types.d.ts +2 -0
  70. package/build/esnext/date-time-types.js +16 -0
  71. package/build/esnext/date-time-types.js.map +1 -0
  72. package/build/esnext/event-parser.d.ts +17 -0
  73. package/build/esnext/event-parser.js +152 -0
  74. package/build/esnext/event-parser.js.map +1 -0
  75. package/build/esnext/fetch-event-source.d.ts +56 -0
  76. package/build/esnext/fetch-event-source.js +296 -0
  77. package/build/esnext/fetch-event-source.js.map +1 -0
  78. package/build/esnext/fetch-request-factory.d.ts +34 -0
  79. package/build/esnext/fetch-request-factory.js +178 -0
  80. package/build/esnext/fetch-request-factory.js.map +1 -0
  81. package/build/esnext/fetch.d.ts +7 -0
  82. package/build/esnext/fetch.js +88 -0
  83. package/build/esnext/fetch.js.map +1 -0
  84. package/build/esnext/header-parameters.d.ts +3 -0
  85. package/build/esnext/header-parameters.js +53 -0
  86. package/build/esnext/header-parameters.js.map +1 -0
  87. package/build/esnext/index.d.ts +27 -0
  88. package/build/esnext/index.js +41 -0
  89. package/build/esnext/index.js.map +1 -0
  90. package/build/esnext/logger.d.ts +8 -0
  91. package/build/esnext/logger.js +15 -0
  92. package/build/esnext/logger.js.map +1 -0
  93. package/build/esnext/media-type-codecs/any-text-decoder.d.ts +7 -0
  94. package/build/esnext/media-type-codecs/any-text-decoder.js +29 -0
  95. package/build/esnext/media-type-codecs/any-text-decoder.js.map +1 -0
  96. package/build/esnext/media-type-codecs/any-text-encoder.d.ts +5 -0
  97. package/build/esnext/media-type-codecs/any-text-encoder.js +23 -0
  98. package/build/esnext/media-type-codecs/any-text-encoder.js.map +1 -0
  99. package/build/esnext/media-type-codecs/binary-decoder.d.ts +6 -0
  100. package/build/esnext/media-type-codecs/binary-decoder.js +29 -0
  101. package/build/esnext/media-type-codecs/binary-decoder.js.map +1 -0
  102. package/build/esnext/media-type-codecs/binary-encoder.d.ts +5 -0
  103. package/build/esnext/media-type-codecs/binary-encoder.js +26 -0
  104. package/build/esnext/media-type-codecs/binary-encoder.js.map +1 -0
  105. package/build/esnext/media-type-codecs/cbor-decoder.d.ts +39 -0
  106. package/build/esnext/media-type-codecs/cbor-decoder.js +430 -0
  107. package/build/esnext/media-type-codecs/cbor-decoder.js.map +1 -0
  108. package/build/esnext/media-type-codecs/cbor-encoder.d.ts +44 -0
  109. package/build/esnext/media-type-codecs/cbor-encoder.js +242 -0
  110. package/build/esnext/media-type-codecs/cbor-encoder.js.map +1 -0
  111. package/build/esnext/media-type-codecs/cbor-tags.d.ts +4 -0
  112. package/build/esnext/media-type-codecs/cbor-tags.js +18 -0
  113. package/build/esnext/media-type-codecs/cbor-tags.js.map +1 -0
  114. package/build/esnext/media-type-codecs/json-decoder.d.ts +39 -0
  115. package/build/esnext/media-type-codecs/json-decoder.js +380 -0
  116. package/build/esnext/media-type-codecs/json-decoder.js.map +1 -0
  117. package/build/esnext/media-type-codecs/json-encoder.d.ts +44 -0
  118. package/build/esnext/media-type-codecs/json-encoder.js +271 -0
  119. package/build/esnext/media-type-codecs/json-encoder.js.map +1 -0
  120. package/build/esnext/media-type-codecs/media-type-decoder.d.ts +11 -0
  121. package/build/esnext/media-type-codecs/media-type-decoder.js +18 -0
  122. package/build/esnext/media-type-codecs/media-type-decoder.js.map +1 -0
  123. package/build/esnext/media-type-codecs/media-type-decoders.d.ts +18 -0
  124. package/build/esnext/media-type-codecs/media-type-decoders.js +58 -0
  125. package/build/esnext/media-type-codecs/media-type-decoders.js.map +1 -0
  126. package/build/esnext/media-type-codecs/media-type-encoder.d.ts +12 -0
  127. package/build/esnext/media-type-codecs/media-type-encoder.js +22 -0
  128. package/build/esnext/media-type-codecs/media-type-encoder.js.map +1 -0
  129. package/build/esnext/media-type-codecs/media-type-encoders.d.ts +18 -0
  130. package/build/esnext/media-type-codecs/media-type-encoders.js +60 -0
  131. package/build/esnext/media-type-codecs/media-type-encoders.js.map +1 -0
  132. package/build/esnext/media-type-codecs/www-form-url-encoder.d.ts +59 -0
  133. package/build/esnext/media-type-codecs/www-form-url-encoder.js +198 -0
  134. package/build/esnext/media-type-codecs/www-form-url-encoder.js.map +1 -0
  135. package/build/esnext/media-type.d.ts +94 -0
  136. package/build/esnext/media-type.js +302 -0
  137. package/build/esnext/media-type.js.map +1 -0
  138. package/build/esnext/problem.d.ts +31 -0
  139. package/build/esnext/problem.js +156 -0
  140. package/build/esnext/problem.js.map +1 -0
  141. package/build/esnext/request-adapters.d.ts +23 -0
  142. package/build/esnext/request-adapters.js +52 -0
  143. package/build/esnext/request-adapters.js.map +1 -0
  144. package/build/esnext/request-factory.d.ts +46 -0
  145. package/build/esnext/request-factory.js +15 -0
  146. package/build/esnext/request-factory.js.map +1 -0
  147. package/build/esnext/result-response.d.ts +4 -0
  148. package/build/esnext/result-response.js +15 -0
  149. package/build/esnext/result-response.js.map +1 -0
  150. package/build/esnext/sunday-error.d.ts +11 -0
  151. package/build/esnext/sunday-error.js +31 -0
  152. package/build/esnext/sunday-error.js.map +1 -0
  153. package/build/esnext/url-template.d.ts +6 -0
  154. package/build/esnext/url-template.js +31 -0
  155. package/build/esnext/url-template.js.map +1 -0
  156. package/build/esnext/util/any.d.ts +2 -0
  157. package/build/esnext/util/any.js +23 -0
  158. package/build/esnext/util/any.js.map +1 -0
  159. package/build/esnext/util/base64.d.ts +5 -0
  160. package/build/esnext/util/base64.js +77 -0
  161. package/build/esnext/util/base64.js.map +1 -0
  162. package/build/esnext/util/error.d.ts +2 -0
  163. package/build/esnext/util/error.js +26 -0
  164. package/build/esnext/util/error.js.map +1 -0
  165. package/build/esnext/util/hex.d.ts +4 -0
  166. package/build/esnext/util/hex.js +32 -0
  167. package/build/esnext/util/hex.js.map +1 -0
  168. package/build/esnext/util/rxjs.d.ts +27 -0
  169. package/build/esnext/util/rxjs.js +79 -0
  170. package/build/esnext/util/rxjs.js.map +1 -0
  171. package/build/esnext/util/temporal.d.ts +2 -0
  172. package/build/esnext/util/temporal.js +31 -0
  173. package/build/esnext/util/temporal.js.map +1 -0
  174. package/build/main/any-type.d.ts +4 -0
  175. package/build/main/any-type.js +16 -0
  176. package/build/main/any-type.js.map +1 -0
  177. package/build/main/class-type.d.ts +2 -0
  178. package/build/main/class-type.js +16 -0
  179. package/build/main/class-type.js.map +1 -0
  180. package/build/main/date-time-types.d.ts +2 -0
  181. package/build/main/date-time-types.js +27 -0
  182. package/build/main/date-time-types.js.map +1 -0
  183. package/build/main/event-parser.d.ts +17 -0
  184. package/build/main/event-parser.js +156 -0
  185. package/build/main/event-parser.js.map +1 -0
  186. package/build/main/fetch-event-source.d.ts +56 -0
  187. package/build/main/fetch-event-source.js +300 -0
  188. package/build/main/fetch-event-source.js.map +1 -0
  189. package/build/main/fetch-request-factory.d.ts +34 -0
  190. package/build/main/fetch-request-factory.js +182 -0
  191. package/build/main/fetch-request-factory.js.map +1 -0
  192. package/build/main/fetch.d.ts +7 -0
  193. package/build/main/fetch.js +92 -0
  194. package/build/main/fetch.js.map +1 -0
  195. package/build/main/header-parameters.d.ts +3 -0
  196. package/build/main/header-parameters.js +56 -0
  197. package/build/main/header-parameters.js.map +1 -0
  198. package/build/main/index.d.ts +27 -0
  199. package/build/main/index.js +53 -0
  200. package/build/main/index.js.map +1 -0
  201. package/build/main/logger.d.ts +8 -0
  202. package/build/main/logger.js +16 -0
  203. package/build/main/logger.js.map +1 -0
  204. package/build/main/media-type-codecs/any-text-decoder.d.ts +7 -0
  205. package/build/main/media-type-codecs/any-text-decoder.js +33 -0
  206. package/build/main/media-type-codecs/any-text-decoder.js.map +1 -0
  207. package/build/main/media-type-codecs/any-text-encoder.d.ts +5 -0
  208. package/build/main/media-type-codecs/any-text-encoder.js +27 -0
  209. package/build/main/media-type-codecs/any-text-encoder.js.map +1 -0
  210. package/build/main/media-type-codecs/binary-decoder.d.ts +6 -0
  211. package/build/main/media-type-codecs/binary-decoder.js +33 -0
  212. package/build/main/media-type-codecs/binary-decoder.js.map +1 -0
  213. package/build/main/media-type-codecs/binary-encoder.d.ts +5 -0
  214. package/build/main/media-type-codecs/binary-encoder.js +30 -0
  215. package/build/main/media-type-codecs/binary-encoder.js.map +1 -0
  216. package/build/main/media-type-codecs/cbor-decoder.d.ts +39 -0
  217. package/build/main/media-type-codecs/cbor-decoder.js +434 -0
  218. package/build/main/media-type-codecs/cbor-decoder.js.map +1 -0
  219. package/build/main/media-type-codecs/cbor-encoder.d.ts +44 -0
  220. package/build/main/media-type-codecs/cbor-encoder.js +246 -0
  221. package/build/main/media-type-codecs/cbor-encoder.js.map +1 -0
  222. package/build/main/media-type-codecs/cbor-tags.d.ts +4 -0
  223. package/build/main/media-type-codecs/cbor-tags.js +21 -0
  224. package/build/main/media-type-codecs/cbor-tags.js.map +1 -0
  225. package/build/main/media-type-codecs/json-decoder.d.ts +39 -0
  226. package/build/main/media-type-codecs/json-decoder.js +384 -0
  227. package/build/main/media-type-codecs/json-decoder.js.map +1 -0
  228. package/build/main/media-type-codecs/json-encoder.d.ts +44 -0
  229. package/build/main/media-type-codecs/json-encoder.js +275 -0
  230. package/build/main/media-type-codecs/json-encoder.js.map +1 -0
  231. package/build/main/media-type-codecs/media-type-decoder.d.ts +11 -0
  232. package/build/main/media-type-codecs/media-type-decoder.js +22 -0
  233. package/build/main/media-type-codecs/media-type-decoder.js.map +1 -0
  234. package/build/main/media-type-codecs/media-type-decoders.d.ts +18 -0
  235. package/build/main/media-type-codecs/media-type-decoders.js +62 -0
  236. package/build/main/media-type-codecs/media-type-decoders.js.map +1 -0
  237. package/build/main/media-type-codecs/media-type-encoder.d.ts +12 -0
  238. package/build/main/media-type-codecs/media-type-encoder.js +27 -0
  239. package/build/main/media-type-codecs/media-type-encoder.js.map +1 -0
  240. package/build/main/media-type-codecs/media-type-encoders.d.ts +18 -0
  241. package/build/main/media-type-codecs/media-type-encoders.js +64 -0
  242. package/build/main/media-type-codecs/media-type-encoders.js.map +1 -0
  243. package/build/main/media-type-codecs/www-form-url-encoder.d.ts +59 -0
  244. package/build/main/media-type-codecs/www-form-url-encoder.js +202 -0
  245. package/build/main/media-type-codecs/www-form-url-encoder.js.map +1 -0
  246. package/build/main/media-type.d.ts +94 -0
  247. package/build/main/media-type.js +306 -0
  248. package/build/main/media-type.js.map +1 -0
  249. package/build/main/problem.d.ts +31 -0
  250. package/build/main/problem.js +159 -0
  251. package/build/main/problem.js.map +1 -0
  252. package/build/main/request-adapters.d.ts +23 -0
  253. package/build/main/request-adapters.js +58 -0
  254. package/build/main/request-adapters.js.map +1 -0
  255. package/build/main/request-factory.d.ts +46 -0
  256. package/build/main/request-factory.js +16 -0
  257. package/build/main/request-factory.js.map +1 -0
  258. package/build/main/result-response.d.ts +4 -0
  259. package/build/main/result-response.js +16 -0
  260. package/build/main/result-response.js.map +1 -0
  261. package/build/main/sunday-error.d.ts +11 -0
  262. package/build/main/sunday-error.js +35 -0
  263. package/build/main/sunday-error.js.map +1 -0
  264. package/build/main/url-template.d.ts +6 -0
  265. package/build/main/url-template.js +35 -0
  266. package/build/main/url-template.js.map +1 -0
  267. package/build/main/util/any.d.ts +2 -0
  268. package/build/main/util/any.js +28 -0
  269. package/build/main/util/any.js.map +1 -0
  270. package/build/main/util/base64.d.ts +5 -0
  271. package/build/main/util/base64.js +80 -0
  272. package/build/main/util/base64.js.map +1 -0
  273. package/build/main/util/error.d.ts +2 -0
  274. package/build/main/util/error.js +31 -0
  275. package/build/main/util/error.js.map +1 -0
  276. package/build/main/util/hex.d.ts +4 -0
  277. package/build/main/util/hex.js +35 -0
  278. package/build/main/util/hex.js.map +1 -0
  279. package/build/main/util/rxjs.d.ts +27 -0
  280. package/build/main/util/rxjs.js +86 -0
  281. package/build/main/util/rxjs.js.map +1 -0
  282. package/build/main/util/temporal.d.ts +2 -0
  283. package/build/main/util/temporal.js +36 -0
  284. package/build/main/util/temporal.js.map +1 -0
  285. package/package.json +48 -34
  286. package/src/fetch-event-source.ts +68 -42
  287. package/src/fetch-request-factory.ts +8 -5
  288. package/src/index.ts +1 -0
  289. package/src/media-type-codecs/cbor-decoder.ts +19 -10
  290. package/src/media-type-codecs/cbor-encoder.ts +57 -56
  291. package/src/media-type-codecs/json-encoder.ts +47 -54
  292. package/src/media-type-codecs/www-form-url-encoder.ts +14 -5
  293. package/src/problem.ts +1 -0
  294. package/src/request-adapters.ts +81 -0
  295. package/src/request-factory.ts +3 -1
  296. package/src/url-template.ts +2 -3
  297. package/src/util/rxjs.ts +84 -2
  298. package/dist/any-type.js.map +0 -1
  299. package/dist/class-type.js.map +0 -1
  300. package/dist/date-time-types.js.map +0 -1
  301. package/dist/event-parser.js.map +0 -1
  302. package/dist/fetch-event-source.js.map +0 -1
  303. package/dist/fetch-request-factory.js.map +0 -1
  304. package/dist/fetch.js.map +0 -1
  305. package/dist/header-parameters.js.map +0 -1
  306. package/dist/index.js.map +0 -1
  307. package/dist/logger.js.map +0 -1
  308. package/dist/media-type-codecs/any-text-decoder.js.map +0 -1
  309. package/dist/media-type-codecs/any-text-encoder.js.map +0 -1
  310. package/dist/media-type-codecs/binary-decoder.js.map +0 -1
  311. package/dist/media-type-codecs/binary-encoder.js.map +0 -1
  312. package/dist/media-type-codecs/cbor-decoder.js.map +0 -1
  313. package/dist/media-type-codecs/cbor-encoder.js.map +0 -1
  314. package/dist/media-type-codecs/cbor-tags.js.map +0 -1
  315. package/dist/media-type-codecs/json-decoder.js.map +0 -1
  316. package/dist/media-type-codecs/json-encoder.js.map +0 -1
  317. package/dist/media-type-codecs/media-type-decoder.js.map +0 -1
  318. package/dist/media-type-codecs/media-type-decoders.js.map +0 -1
  319. package/dist/media-type-codecs/media-type-encoder.js.map +0 -1
  320. package/dist/media-type-codecs/media-type-encoders.js.map +0 -1
  321. package/dist/media-type-codecs/www-form-url-encoder.js.map +0 -1
  322. package/dist/media-type.js.map +0 -1
  323. package/dist/problem.js.map +0 -1
  324. package/dist/request-factory.js.map +0 -1
  325. package/dist/result-response.js.map +0 -1
  326. package/dist/sunday-error.js.map +0 -1
  327. package/dist/url-template.js.map +0 -1
  328. package/dist/util/any.js.map +0 -1
  329. package/dist/util/base64.js.map +0 -1
  330. package/dist/util/error.js.map +0 -1
  331. package/dist/util/hex.js.map +0 -1
  332. package/dist/util/rxjs.d.ts +0 -5
  333. package/dist/util/rxjs.js +0 -31
  334. package/dist/util/rxjs.js.map +0 -1
  335. package/dist/util/stream-rxjs.d.ts +0 -2
  336. package/dist/util/stream-rxjs.js +0 -39
  337. package/dist/util/stream-rxjs.js.map +0 -1
  338. package/dist/util/temporal.js.map +0 -1
  339. package/src/util/stream-rxjs.ts +0 -42
  340. /package/{dist → build/esm}/any-type.d.ts +0 -0
  341. /package/{dist → build/esm}/any-type.js +0 -0
  342. /package/{dist → build/esm}/class-type.d.ts +0 -0
  343. /package/{dist → build/esm}/class-type.js +0 -0
  344. /package/{dist → build/esm}/date-time-types.d.ts +0 -0
  345. /package/{dist → build/esm}/date-time-types.js +0 -0
  346. /package/{dist → build/esm}/event-parser.d.ts +0 -0
  347. /package/{dist → build/esm}/fetch-request-factory.d.ts +0 -0
  348. /package/{dist → build/esm}/fetch.d.ts +0 -0
  349. /package/{dist → build/esm}/header-parameters.d.ts +0 -0
  350. /package/{dist → build/esm}/header-parameters.js +0 -0
  351. /package/{dist → build/esm}/logger.d.ts +0 -0
  352. /package/{dist → build/esm}/logger.js +0 -0
  353. /package/{dist → build/esm}/media-type-codecs/any-text-decoder.d.ts +0 -0
  354. /package/{dist → build/esm}/media-type-codecs/any-text-decoder.js +0 -0
  355. /package/{dist → build/esm}/media-type-codecs/any-text-encoder.d.ts +0 -0
  356. /package/{dist → build/esm}/media-type-codecs/any-text-encoder.js +0 -0
  357. /package/{dist → build/esm}/media-type-codecs/binary-decoder.d.ts +0 -0
  358. /package/{dist → build/esm}/media-type-codecs/binary-decoder.js +0 -0
  359. /package/{dist → build/esm}/media-type-codecs/binary-encoder.d.ts +0 -0
  360. /package/{dist → build/esm}/media-type-codecs/binary-encoder.js +0 -0
  361. /package/{dist → build/esm}/media-type-codecs/cbor-decoder.d.ts +0 -0
  362. /package/{dist → build/esm}/media-type-codecs/cbor-tags.d.ts +0 -0
  363. /package/{dist → build/esm}/media-type-codecs/cbor-tags.js +0 -0
  364. /package/{dist → build/esm}/media-type-codecs/json-decoder.d.ts +0 -0
  365. /package/{dist → build/esm}/media-type-codecs/json-decoder.js +0 -0
  366. /package/{dist → build/esm}/media-type-codecs/json-encoder.d.ts +0 -0
  367. /package/{dist → build/esm}/media-type-codecs/media-type-decoder.d.ts +0 -0
  368. /package/{dist → build/esm}/media-type-codecs/media-type-decoders.d.ts +0 -0
  369. /package/{dist → build/esm}/media-type-codecs/media-type-decoders.js +0 -0
  370. /package/{dist → build/esm}/media-type-codecs/media-type-encoder.d.ts +0 -0
  371. /package/{dist → build/esm}/media-type-codecs/media-type-encoders.d.ts +0 -0
  372. /package/{dist → build/esm}/media-type-codecs/media-type-encoders.js +0 -0
  373. /package/{dist → build/esm}/media-type-codecs/www-form-url-encoder.d.ts +0 -0
  374. /package/{dist → build/esm}/media-type.d.ts +0 -0
  375. /package/{dist → build/esm}/problem.d.ts +0 -0
  376. /package/{dist → build/esm}/request-factory.js +0 -0
  377. /package/{dist → build/esm}/result-response.d.ts +0 -0
  378. /package/{dist → build/esm}/result-response.js +0 -0
  379. /package/{dist → build/esm}/sunday-error.d.ts +0 -0
  380. /package/{dist → build/esm}/sunday-error.js +0 -0
  381. /package/{dist → build/esm}/url-template.d.ts +0 -0
  382. /package/{dist → build/esm}/util/any.d.ts +0 -0
  383. /package/{dist → build/esm}/util/base64.d.ts +0 -0
  384. /package/{dist → build/esm}/util/base64.js +0 -0
  385. /package/{dist → build/esm}/util/error.d.ts +0 -0
  386. /package/{dist → build/esm}/util/hex.d.ts +0 -0
  387. /package/{dist → build/esm}/util/hex.js +0 -0
  388. /package/{dist → build/esm}/util/temporal.d.ts +0 -0
  389. /package/{dist → build/esm}/util/temporal.js +0 -0
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // Copyright 2020 Outfox, Inc.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.Hex = void 0;
17
+ var Hex;
18
+ (function (Hex) {
19
+ function decode(hex) {
20
+ hex = hex.replace(/^0x/, '').replace(/\s/g, '');
21
+ const values = hex.match(/[\da-f]{2}/gi);
22
+ if (!values || values.length != hex.length / 2) {
23
+ throw Error(`Invalid hex string`);
24
+ }
25
+ return new Uint8Array(values.map((b) => parseInt(b, 16))).buffer;
26
+ }
27
+ Hex.decode = decode;
28
+ function encode(buffer, separator = '') {
29
+ return Array.from(new Uint8Array(buffer))
30
+ .map((value) => value.toString(16).padStart(2, '0'))
31
+ .join(separator);
32
+ }
33
+ Hex.encode = encode;
34
+ })(Hex = exports.Hex || (exports.Hex = {}));
35
+ //# sourceMappingURL=hex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/util/hex.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,IAAiB,GAAG,CAenB;AAfD,WAAiB,GAAG;IAClB,SAAgB,MAAM,CAAC,GAAW;QAChC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9C,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACnC;QACD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,CAAC;IAPe,UAAM,SAOrB,CAAA;IAED,SAAgB,MAAM,CAAC,MAAmB,EAAE,SAAS,GAAG,EAAE;QACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACnD,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAJe,UAAM,SAIrB,CAAA;AACH,CAAC,EAfgB,GAAG,GAAH,WAAG,KAAH,WAAG,QAenB"}
@@ -0,0 +1,27 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ClassType } from '../class-type';
3
+ import { Problem } from '../problem';
4
+ export declare function nullifyNotFound<T>(): (source: Observable<T>) => Observable<T | null>;
5
+ export declare function nullifyResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (source: Observable<T>) => Observable<T | null>;
6
+ export declare function nullifyPromiseResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (error: unknown) => Promise<T | null>;
7
+ export interface AbortError extends Error {
8
+ }
9
+ export declare type AbortErrorCtor = new () => AbortError;
10
+ /**
11
+ * An error thrown when an Observable converted to a promise is aborted with
12
+ * via a provided `AbortSignal`.
13
+ *
14
+ * @see {@link promiseFrom}
15
+ *
16
+ * @class AbortError
17
+ */
18
+ export declare const AbortError: AbortErrorCtor;
19
+ /**
20
+ * Converts an Observable to a Promise, optionally aborting the Observable via
21
+ * a provided `AbortSignal`.
22
+ *
23
+ * @param obs Observable to convert to a Promise
24
+ * @param signal Optional AbortSignal to abort the Observable
25
+ * @returns Promise that resolves to the first value from the Observable
26
+ */
27
+ export declare function promiseFrom<T>(obs: Observable<T>, signal?: AbortSignal): Promise<T>;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ // Copyright 2020 Outfox, Inc.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.promiseFrom = exports.AbortError = exports.nullifyPromiseResponse = exports.nullifyResponse = exports.nullifyNotFound = void 0;
17
+ const rxjs_1 = require("rxjs");
18
+ const createErrorClass_1 = require("rxjs/internal/util/createErrorClass");
19
+ const problem_1 = require("../problem");
20
+ function nullifyNotFound() {
21
+ return nullifyResponse([404], []);
22
+ }
23
+ exports.nullifyNotFound = nullifyNotFound;
24
+ function nullifyResponse(statuses, problemTypes) {
25
+ return function (source) {
26
+ return source.pipe((0, rxjs_1.catchError)((error) => {
27
+ const errorType = error.constructor;
28
+ if (error instanceof problem_1.Problem &&
29
+ (statuses.includes(error.status) || problemTypes.includes(errorType))) {
30
+ return (0, rxjs_1.from)([null]);
31
+ }
32
+ return (0, rxjs_1.throwError)(() => error);
33
+ }));
34
+ };
35
+ }
36
+ exports.nullifyResponse = nullifyResponse;
37
+ function nullifyPromiseResponse(statuses, problemTypes) {
38
+ return function (error) {
39
+ const errorType = error
40
+ .constructor;
41
+ if (error instanceof problem_1.Problem &&
42
+ (statuses.includes(error.status) || problemTypes.includes(errorType))) {
43
+ return Promise.resolve(null);
44
+ }
45
+ return Promise.reject(error);
46
+ };
47
+ }
48
+ exports.nullifyPromiseResponse = nullifyPromiseResponse;
49
+ /**
50
+ * An error thrown when an Observable converted to a promise is aborted with
51
+ * via a provided `AbortSignal`.
52
+ *
53
+ * @see {@link promiseFrom}
54
+ *
55
+ * @class AbortError
56
+ */
57
+ exports.AbortError = (0, createErrorClass_1.createErrorClass)((_super) => function AbortErrorImpl() {
58
+ _super(this);
59
+ this.name = 'AbortError';
60
+ this.message = 'sequence was aborted';
61
+ });
62
+ /**
63
+ * Converts an Observable to a Promise, optionally aborting the Observable via
64
+ * a provided `AbortSignal`.
65
+ *
66
+ * @param obs Observable to convert to a Promise
67
+ * @param signal Optional AbortSignal to abort the Observable
68
+ * @returns Promise that resolves to the first value from the Observable
69
+ */
70
+ function promiseFrom(obs, signal) {
71
+ if (!signal) {
72
+ return (0, rxjs_1.firstValueFrom)(obs);
73
+ }
74
+ // Reject immediately if the signal has already fired. Use `AbortError`
75
+ // because that's what `first` will fail with per the note below
76
+ if (signal.aborted) {
77
+ return Promise.reject(new exports.AbortError());
78
+ }
79
+ const stop = (0, rxjs_1.fromEvent)(signal, 'abort').pipe((0, rxjs_1.take)(1), (0, rxjs_1.switchMap)(() => (0, rxjs_1.throwError)(() => new exports.AbortError())));
80
+ // Note that `takeUntil` will cause the observable to complete when the
81
+ // Signal fires, but `firstValueFrom` will fail with EmptyError if there
82
+ // wasn't a value, which will reject out of the returned Promise.
83
+ return (0, rxjs_1.firstValueFrom)(obs.pipe((0, rxjs_1.takeUntil)(stop)));
84
+ }
85
+ exports.promiseFrom = promiseFrom;
86
+ //# sourceMappingURL=rxjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../src/util/rxjs.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,+BAUc;AACd,0EAAuE;AAEvE,wCAAqC;AAErC,SAAgB,eAAe;IAG7B,OAAO,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAJD,0CAIC;AAED,SAAgB,eAAe,CAC7B,QAAkB,EAClB,YAAkC;IAElC,OAAO,UAAa,MAAqB;QACvC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,iBAAU,EAAC,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAiC,CAAC;YAC1D,IACE,KAAK,YAAY,iBAAO;gBACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACrE;gBACA,OAAO,IAAA,WAAI,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACrB;YACD,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAlBD,0CAkBC;AAED,SAAgB,sBAAsB,CACpC,QAAkB,EAClB,YAAkC;IAElC,OAAO,UAAa,KAAc;QAChC,MAAM,SAAS,GAAI,KAAiC;aACjD,WAAiC,CAAC;QACrC,IACE,KAAK,YAAY,iBAAO;YACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACrE;YACA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAfD,wDAeC;AAOD;;;;;;;GAOG;AACU,QAAA,UAAU,GAAmB,IAAA,mCAAgB,EACxD,CAAC,MAAiC,EAAE,EAAE,CACpC,SAAS,cAAc;IACrB,MAAM,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IACzB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;AACxC,CAAC,CACJ,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,GAAkB,EAClB,MAAoB;IAEpB,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAC;KAC5B;IACD,uEAAuE;IACvE,gEAAgE;IAChE,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAU,EAAE,CAAC,CAAC;KACzC;IAED,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1C,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,gBAAS,EAAC,GAAG,EAAE,CAAC,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,kBAAU,EAAE,CAAC,CAAC,CACpD,CAAC;IAEF,uEAAuE;IACvE,wEAAwE;IACxE,iEAAiE;IACjE,OAAO,IAAA,qBAAc,EAAC,GAAG,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAtBD,kCAsBC"}
@@ -0,0 +1,2 @@
1
+ export declare function secondsToNumber(seconds: number, nanos: number): number;
2
+ export declare function encodeSeconds(seconds: number, fraction: number): unknown[];
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ // Copyright 2020 Outfox, Inc.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.encodeSeconds = exports.secondsToNumber = void 0;
17
+ function secondsToNumber(seconds, nanos) {
18
+ if (nanos == 0) {
19
+ return seconds;
20
+ }
21
+ const nanoStr = nanos.toString();
22
+ return parseFloat(`${seconds}.${'0'.repeat(9 - nanoStr.length)}${nanos}`);
23
+ }
24
+ exports.secondsToNumber = secondsToNumber;
25
+ function encodeSeconds(seconds, fraction) {
26
+ const result = [];
27
+ if (seconds != 0 || fraction != 0) {
28
+ result.push(seconds);
29
+ if (fraction != 0) {
30
+ result.push(fraction);
31
+ }
32
+ }
33
+ return result;
34
+ }
35
+ exports.encodeSeconds = encodeSeconds;
36
+ //# sourceMappingURL=temporal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../../src/util/temporal.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,SAAgB,eAAe,CAAC,OAAe,EAAE,KAAa;IAC5D,IAAI,KAAK,IAAI,CAAC,EAAE;QACd,OAAO,OAAO,CAAC;KAChB;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjC,OAAO,UAAU,CAAC,GAAG,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;AAC5E,CAAC;AAND,0CAMC;AAED,SAAgB,aAAa,CAAC,OAAe,EAAE,QAAgB;IAC7D,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;QACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvB;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,sCASC"}
package/package.json CHANGED
@@ -1,19 +1,35 @@
1
1
  {
2
2
  "name": "@outfoxx/sunday",
3
- "version": "1.1.0-beta.2",
3
+ "version": "1.1.0-beta.21",
4
4
  "description": "Sunday 🙏 The framework of REST for TypeScript/JavaScript",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "type": "module",
5
+ "main": "build/main/index.js",
6
+ "module": "build/esm/index.js",
7
+ "esnext": "build/esnext/index.js",
8
+ "types": "build/main/index.d.ts",
9
+ "files": [
10
+ "src",
11
+ "build",
12
+ "LICENSE.txt",
13
+ "README.md"
14
+ ],
8
15
  "scripts": {
9
- "test": "karma start karma.conf.cjs --singleRun",
10
- "test:watch": "karma start karma.conf.cjs",
11
- "build": "tsc --build tsconfig.dist.json",
12
- "clean": "rimraf build dist",
13
- "prepublishOnly": "npm run clean && npm run lint && npm run build && npm run test",
14
- "lint": "eslint -f json -o reports/lint.json src test",
16
+ "test:main": "karma start karma-main.config.js --singleRun",
17
+ "test:esm": "karma start karma-esm.config.js --singleRun",
18
+ "test:esnext": "karma start karma-esnext.config.js --singleRun",
19
+ "test:main:watch": "karma start karma-main.config.js",
20
+ "test:esm:watch": "karma start karma-esm.config.js",
21
+ "test:esnext:watch": "karma start karma-esnext.config.js",
22
+ "test:main:allbrowsers": "karma start karma-main.config.js --singleRun --browsers ChromeHeadless,SafariNative,Firefox",
23
+ "test:esm:allbrowsers": "karma start karma-esm.config.js --singleRun --browsers ChromeHeadless,SafariNative,Firefox",
24
+ "test:esnext:allbrowsers": "karma start karma-esnext.config.js --singleRun --browsers ChromeHeadless,SafariNative,Firefox",
25
+ "build": "tsc --build tsconfig-main.json tsconfig-esm.json tsconfig-esnext.json",
26
+ "build:watch": "tsc --build tsconfig-main.json tsconfig-esm.json tsconfig-esnext.json --watch",
27
+ "clean": "rimraf build docs reports",
15
28
  "pretty": "prettier src test",
16
- "docs": "typedoc --excludeInternal --excludePrivate src/index.ts"
29
+ "lint": "eslint -f json -o reports/lint.json src test",
30
+ "lint:html": "eslint -f html -o reports/lint.html src test",
31
+ "docs": "typedoc --excludeInternal --excludePrivate src/index.ts",
32
+ "prepublishOnly": "npm run clean && npm run lint && npm run build"
17
33
  },
18
34
  "husky": {
19
35
  "hooks": {
@@ -25,56 +41,54 @@
25
41
  "eslint"
26
42
  ]
27
43
  },
28
- "keywords": [],
44
+ "keywords": [
45
+ "HTTP",
46
+ "REST",
47
+ "fetch"
48
+ ],
29
49
  "author": "kdubb",
30
50
  "license": "Apache-2.0",
31
51
  "dependencies": {
32
52
  "@js-joda/core": "5.2.x",
33
- "@outfoxx/cbor-redux": "0.3.x",
34
53
  "@outfoxx/jackson-js": "1.4.x",
35
- "common-tags": "1.8.x",
54
+ "cbor-redux": "1.0.x",
36
55
  "tslib": "2.4.x",
37
- "uri-template-lite": "^22.9.0"
56
+ "uri-template": "^2.0.0"
38
57
  },
39
58
  "peerDependencies": {
40
59
  "rxjs": "7.x"
41
60
  },
42
61
  "devDependencies": {
43
- "@types/common-tags": "1.8.x",
44
- "@types/jasmine": "4.0.x",
45
- "@types/uri-template-lite": "19.12.x",
62
+ "@types/jasmine": "^4.3.1",
46
63
  "@typescript-eslint/eslint-plugin": "^5.25.0",
47
64
  "@typescript-eslint/parser": "^5.25.0",
65
+ "coverage-istanbul-loader": "^3.0.5",
48
66
  "eslint": "^8.15.0",
49
67
  "eslint-config-prettier": "^8.5.0",
50
68
  "eslint-plugin-header": "^3.1.1",
51
69
  "eslint-plugin-prettier": "^4.0.0",
52
70
  "fetch-mock": "^9.11.0",
53
- "fsevents": "^2.1.3",
54
- "husky": "^4.3.0",
71
+ "husky": "^8.0.3",
55
72
  "install": "^0.13.0",
56
73
  "karma": "^6.3.20",
57
74
  "karma-chrome-launcher": "^3.1.1",
58
75
  "karma-cli": "^2.0.0",
59
- "karma-coverage": "^2.2.0",
60
- "karma-jasmine": "^5.0.1",
61
- "karma-junit-reporter": "^2.0.1",
76
+ "karma-coverage-istanbul-reporter": "^3.0.3",
77
+ "karma-firefox-launcher": "^2.1.2",
78
+ "karma-jasmine": "^5.1.0",
79
+ "karma-safarinative-launcher": "^1.1.0",
62
80
  "karma-sonarqube-unit-reporter": "^0.0.23",
63
- "karma-source-map-support": "^1.4.0",
64
81
  "karma-sourcemap-loader": "^0.3.8",
65
- "karma-typescript": "^5.5.3",
66
- "karma-typescript-es6-transform": "^5.5.3",
67
- "lint-staged": "^10.4.0",
82
+ "karma-spec-reporter": "^0.0.36",
83
+ "karma-webpack": "^5.0.0",
84
+ "lint-staged": "^13.2.1",
68
85
  "prettier": "^2.1.2",
69
86
  "pretty-quick": "^3.0.2",
70
87
  "rimraf": "^3.0.2",
88
+ "ts-loader": "^9.4.2",
71
89
  "typedoc": "^0.22.18",
72
90
  "typescript": "~4.4",
73
- "web-streams-polyfill": "^3.0.0"
74
- },
75
- "files": [
76
- "dist",
77
- "src",
78
- "package.json"
79
- ]
91
+ "webpack": "^5.75.0",
92
+ "webpack-cli": "^5.0.1"
93
+ }
80
94
  }
@@ -12,14 +12,14 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- import { EMPTY, map, Observable, of, Subscription, switchMap, tap } from 'rxjs';
15
+ import { EMPTY, map, Observable, of, Subscription, switchMap } from 'rxjs';
16
+ import { fromReadableStreamLike } from 'rxjs/internal/observable/innerFrom';
16
17
  import { EventInfo, EventParser } from './event-parser';
17
18
  import { validate } from './fetch';
18
19
  import { Logger } from './logger';
19
20
  import { MediaType } from './media-type';
20
21
  import { ExtEventSource } from './request-factory';
21
- import { unknownSet } from './util/any';
22
- import { fromStream } from './util/stream-rxjs';
22
+ import { unknownGet, unknownSet } from './util/any';
23
23
 
24
24
  export interface FetchEventSource {
25
25
  addEventListener<K extends keyof EventSourceEventMap>(
@@ -73,7 +73,6 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
73
73
  private eventTimeoutCheckHandle?: number;
74
74
  private lastEventReceivedTime = 0;
75
75
  private eventParser = new EventParser();
76
- private readonly externalAbortController?: AbortController;
77
76
 
78
77
  constructor(
79
78
  url: string,
@@ -81,7 +80,6 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
81
80
  adapter?: (url: string, requestInit: RequestInit) => Observable<Request>;
82
81
  eventTimeout?: number;
83
82
  logger?: Logger;
84
- abortController?: AbortController;
85
83
  },
86
84
  ) {
87
85
  super();
@@ -93,7 +91,6 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
93
91
  eventSourceInit?.eventTimeout ??
94
92
  FetchEventSource.EVENT_TIMEOUT_DEFAULT * 1000;
95
93
  this.logger = eventSourceInit?.logger;
96
- this.externalAbortController = eventSourceInit?.abortController;
97
94
  }
98
95
 
99
96
  //
@@ -102,7 +99,7 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
102
99
 
103
100
  connect(): void {
104
101
  if (this.readyState === this.CONNECTING || this.readyState === this.OPEN) {
105
- // this.logger?.debug?.('skipping connect', { state: this.readyState });
102
+ this.logger?.trace?.('skipping connect', { state: this.readyState });
106
103
  return;
107
104
  }
108
105
 
@@ -121,44 +118,68 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
121
118
  headers.append(FetchEventSource.LAST_EVENT_ID_HEADER, this.lastEventId);
122
119
  }
123
120
 
124
- const abortController =
125
- this.externalAbortController ?? new AbortController();
121
+ this.connectionSubscription?.unsubscribe();
122
+ this.connectionSubscription = new Subscription();
123
+
124
+ // Abort when connection is unsubscribed
125
+ const unsubscribeAbortController = new AbortController();
126
+ this.connectionSubscription.add(() => unsubscribeAbortController.abort());
127
+
128
+ // Purely for testing purposes, allow an external signal to abort the fetch
129
+ const externalSignal = unknownGet(this, 'signal');
130
+ if (externalSignal instanceof AbortSignal) {
131
+ const externalSignalLink = () => unsubscribeAbortController.abort();
132
+
133
+ externalSignal.addEventListener('abort', externalSignalLink);
134
+ this.connectionSubscription.add(() =>
135
+ externalSignal?.removeEventListener('abort', externalSignalLink),
136
+ );
137
+ }
126
138
 
127
139
  const requestInit: RequestInit = {
128
140
  headers,
129
141
  cache: 'no-store',
130
142
  redirect: 'follow',
131
- signal: abortController.signal,
132
143
  };
133
144
 
134
145
  this.connectionAttemptTime = Date.now();
135
146
 
136
- this.connectionSubscription = this.adapter(this.url, requestInit)
137
- .pipe(
138
- switchMap((request) => fetch(request)),
139
- switchMap((response) => validate(response, true)),
140
- tap((response) => this.receivedHeaders(response)),
141
- switchMap((response) => {
142
- const body = response.body;
143
- if (!body) {
144
- return EMPTY;
145
- }
146
-
147
- return fromStream(body);
147
+ this.connectionSubscription.add(
148
+ this.adapter(this.url, requestInit)
149
+ .pipe(
150
+ switchMap(async (request) => {
151
+ // Fetch explicitly using the unsubscribe
152
+ // abort controller signal
153
+ const response = await fetch(request, {
154
+ signal: unsubscribeAbortController.signal,
155
+ });
156
+
157
+ const validatedResponse = await validate(response, true);
158
+
159
+ this.receivedHeaders(validatedResponse);
160
+
161
+ return validatedResponse;
162
+ }),
163
+ switchMap((response) => {
164
+ // If response has no body, return empty to complete immediately
165
+ const body = response.body;
166
+ if (!body) {
167
+ return EMPTY;
168
+ }
169
+
170
+ return fromReadableStreamLike(body);
171
+ }),
172
+ map((value) => this.receivedData(value)),
173
+ )
174
+ .subscribe({
175
+ error: (error: unknown) => {
176
+ this.receivedError(error);
177
+ },
178
+ complete: () => {
179
+ this.receivedComplete();
180
+ },
148
181
  }),
149
- map((value) => this.receivedData(value)),
150
- )
151
- .subscribe({
152
- error: (error: unknown) => {
153
- this.receivedError(error);
154
- },
155
- complete: () => {
156
- this.receivedComplete();
157
- },
158
- });
159
- this.connectionSubscription.add(() => {
160
- abortController.abort();
161
- });
182
+ );
162
183
  }
163
184
 
164
185
  //
@@ -166,6 +187,10 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
166
187
  //
167
188
 
168
189
  close(): void {
190
+ if (this.readyState === this.CLOSED) {
191
+ return;
192
+ }
193
+
169
194
  this.logger?.debug?.('close requested');
170
195
 
171
196
  this.readyState = this.CLOSED;
@@ -195,7 +220,7 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
195
220
 
196
221
  this.lastEventReceivedTime = lastEventReceivedTime;
197
222
 
198
- // this.logger?.debug?.('starting event timeout checks');
223
+ this.logger?.trace?.('starting event timeout checks');
199
224
 
200
225
  this.eventTimeoutCheckHandle = window.setInterval(
201
226
  () => this.checkEventTimeout(),
@@ -204,11 +229,12 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
204
229
  }
205
230
 
206
231
  private stopEventTimeoutCheck() {
207
- // this.logger?.debug?.('stopping event timeout checks');
208
-
209
232
  if (this.eventTimeoutCheckHandle) {
233
+ this.logger?.trace?.('stopping event timeout checks');
234
+
210
235
  clearInterval(this.eventTimeoutCheckHandle);
211
236
  }
237
+
212
238
  this.eventTimeoutCheckHandle = undefined;
213
239
  }
214
240
 
@@ -218,7 +244,7 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
218
244
  return;
219
245
  }
220
246
 
221
- // this.logger?.debug?.('checking event timeout');
247
+ this.logger?.trace?.('checking event timeout');
222
248
 
223
249
  // Check elapsed time since last received event
224
250
  const elapsed = Date.now() - this.lastEventReceivedTime;
@@ -238,7 +264,7 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
238
264
 
239
265
  private receivedHeaders(response: Response) {
240
266
  if (this.readyState !== this.CONNECTING) {
241
- this.logger?.error?.('Invalid readyState for receiveHaders', {
267
+ this.logger?.error?.('invalid readyState for receivedHeaders', {
242
268
  readyState: this.readyState,
243
269
  });
244
270
 
@@ -265,7 +291,7 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
265
291
 
266
292
  private receivedData(buffer: ArrayBuffer) {
267
293
  if (this.readyState !== this.OPEN) {
268
- this.logger?.error?.('Invalid readyState for receiveData', {
294
+ this.logger?.error?.('invalid readyState for receiveData', {
269
295
  readyState: this.readyState,
270
296
  });
271
297
 
@@ -275,7 +301,7 @@ export class FetchEventSource extends EventTarget implements ExtEventSource {
275
301
  return;
276
302
  }
277
303
 
278
- this.logger?.debug?.('received data', { length: validate.length });
304
+ this.logger?.debug?.('received data', { length: buffer.byteLength });
279
305
 
280
306
  this.eventParser.process(buffer, this.dispatchParsedEvent);
281
307
  }
@@ -13,6 +13,7 @@
13
13
  // limitations under the License.
14
14
 
15
15
  import { defer, map, Observable, of, switchMap } from 'rxjs';
16
+ import { fromFetch } from 'rxjs/internal/observable/dom/fetch';
16
17
  import { AnyType } from './any-type';
17
18
  import { ConstructableClassType } from './class-type';
18
19
  import { validate } from './fetch';
@@ -145,10 +146,12 @@ export class FetchRequestFactory implements RequestFactory {
145
146
  method: requestSpec.method,
146
147
  });
147
148
 
148
- const request = new Request(url.toString(), init);
149
-
150
- return this.adapter?.(request) ?? of(request);
151
- });
149
+ return of(new Request(url.toString(), init));
150
+ }).pipe(
151
+ switchMap(
152
+ async (request) => this.adapter?.adapt(this, request) ?? request,
153
+ ),
154
+ );
152
155
  }
153
156
 
154
157
  response(
@@ -158,7 +161,7 @@ export class FetchRequestFactory implements RequestFactory {
158
161
  const request$ =
159
162
  request instanceof Request ? of(request) : this.request(request);
160
163
  return request$.pipe(
161
- switchMap((req) => fetch(req)),
164
+ switchMap((req) => fromFetch(req)),
162
165
  switchMap((response) =>
163
166
  validate(response, dataExpected ?? false, this.problemTypes),
164
167
  ),
package/src/index.ts CHANGED
@@ -35,6 +35,7 @@ export * from './sunday-error';
35
35
  export * from './problem';
36
36
  export * from './date-time-types';
37
37
  export * from './result-response';
38
+ export * from './request-adapters';
38
39
 
39
40
  export * from './util/base64';
40
41
  export * from './util/hex';
@@ -28,7 +28,7 @@ import {
28
28
  ZoneId,
29
29
  ZoneOffset,
30
30
  } from '@js-joda/core';
31
- import { CBOR } from '@outfoxx/cbor-redux';
31
+ import { CBOR, TaggedValue } from 'cbor-redux';
32
32
  import { JsonParser } from '@outfoxx/jackson-js';
33
33
  import { CustomMapper, Deserializer } from '@outfoxx/jackson-js/dist/@types';
34
34
  import { AnyType } from '../any-type';
@@ -96,14 +96,23 @@ export class CBORDecoder implements MediaTypeDecoder {
96
96
  }
97
97
 
98
98
  decodeData<T>(buffer: ArrayBuffer, type: AnyType): T {
99
- return this.parser.transform(CBOR.decode(buffer, this.untag), {
100
- deserializers: this.customDeserializers,
101
- mainCreator: () => type,
102
- });
99
+ return this.parser.transform(
100
+ CBOR.decode(buffer, this.untag, { mode: 'loose' }),
101
+ {
102
+ deserializers: this.customDeserializers,
103
+ mainCreator: () => type,
104
+ },
105
+ );
103
106
  }
104
107
 
105
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
- private untag = (value: any, tag: number) => {
108
+ private untag = (key: unknown, value: unknown) => {
109
+ if (!(value instanceof TaggedValue)) {
110
+ return value;
111
+ }
112
+
113
+ const tag = value.tag;
114
+ value = value.value;
115
+
107
116
  switch (tag) {
108
117
  case isoDateTimeTag:
109
118
  if (typeof value !== 'string') {
@@ -203,7 +212,7 @@ export class CBORDecoder implements MediaTypeDecoder {
203
212
  );
204
213
  return ZonedDateTime.ofInstant(instant, ZoneId.UTC);
205
214
  } else {
206
- console.error('Unsupported date decoding format');
215
+ throw Error('Unsupported date decoding format');
207
216
  }
208
217
  }
209
218
  if (typeof value === 'string') {
@@ -252,7 +261,7 @@ export class CBORDecoder implements MediaTypeDecoder {
252
261
  );
253
262
  return OffsetDateTime.ofInstant(instant, ZoneId.UTC);
254
263
  } else {
255
- console.error('Unsupported date decoding format');
264
+ throw new Error('Unsupported date decoding format');
256
265
  }
257
266
  }
258
267
  if (typeof value === 'string') {
@@ -465,7 +474,7 @@ export class CBORDecoder implements MediaTypeDecoder {
465
474
  ) {
466
475
  return new Date(value * 1000);
467
476
  } else {
468
- console.error('Unsupported date decoding format');
477
+ throw new Error('Unsupported date decoding format');
469
478
  }
470
479
  }
471
480
  if (typeof value === 'string') {