@blueprint-ts/core 4.1.0-beta.2 → 4.1.0-beta.3

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 (509) hide show
  1. package/dist/bulkRequests/BulkRequestEvent.enum.d.ts +4 -0
  2. package/dist/bulkRequests/BulkRequestEvent.enum.js +5 -0
  3. package/dist/bulkRequests/BulkRequestSender.d.ts +31 -0
  4. package/dist/bulkRequests/BulkRequestSender.js +161 -0
  5. package/dist/bulkRequests/BulkRequestWrapper.d.ts +15 -0
  6. package/dist/bulkRequests/BulkRequestWrapper.js +50 -0
  7. package/dist/bulkRequests/index.d.ts +5 -0
  8. package/dist/bulkRequests/index.js +5 -0
  9. package/{src/laravel/pagination/contracts/PaginationResponseBodyContract.ts → dist/laravel/pagination/contracts/PaginationResponseBodyContract.d.ts} +4 -4
  10. package/dist/laravel/pagination/contracts/PaginationResponseBodyContract.js +1 -0
  11. package/dist/laravel/pagination/dataDrivers/RequestDriver.d.ts +10 -0
  12. package/dist/laravel/pagination/dataDrivers/RequestDriver.js +18 -0
  13. package/dist/laravel/pagination/index.d.ts +4 -0
  14. package/dist/laravel/pagination/index.js +2 -0
  15. package/dist/laravel/requests/JsonBaseRequest.d.ts +14 -0
  16. package/dist/laravel/requests/JsonBaseRequest.js +15 -0
  17. package/dist/laravel/requests/PaginationJsonBaseRequest.d.ts +8 -0
  18. package/dist/laravel/requests/PaginationJsonBaseRequest.js +13 -0
  19. package/dist/laravel/requests/index.d.ts +7 -0
  20. package/dist/laravel/requests/index.js +5 -0
  21. package/dist/laravel/requests/responses/JsonResponse.d.ts +5 -0
  22. package/dist/laravel/requests/responses/JsonResponse.js +6 -0
  23. package/dist/laravel/requests/responses/PaginationResponse.d.ts +7 -0
  24. package/dist/laravel/requests/responses/PaginationResponse.js +9 -0
  25. package/dist/pagination/BasePaginator.d.ts +19 -0
  26. package/dist/pagination/BasePaginator.js +65 -0
  27. package/dist/pagination/InfiniteScroller.d.ts +6 -0
  28. package/dist/pagination/InfiniteScroller.js +17 -0
  29. package/dist/pagination/PageAwarePaginator.d.ts +32 -0
  30. package/dist/pagination/PageAwarePaginator.js +86 -0
  31. package/dist/pagination/StatePaginator.d.ts +25 -0
  32. package/dist/pagination/StatePaginator.js +55 -0
  33. package/dist/pagination/contracts/BaseViewDriverContract.d.ts +6 -0
  34. package/dist/pagination/contracts/BaseViewDriverContract.js +1 -0
  35. package/{src/pagination/contracts/BaseViewDriverFactoryContract.ts → dist/pagination/contracts/BaseViewDriverFactoryContract.d.ts} +2 -3
  36. package/dist/pagination/contracts/BaseViewDriverFactoryContract.js +1 -0
  37. package/dist/pagination/contracts/PaginateableRequestContract.d.ts +4 -0
  38. package/dist/pagination/contracts/PaginateableRequestContract.js +1 -0
  39. package/dist/pagination/contracts/PaginationDataDriverContract.d.ts +4 -0
  40. package/dist/pagination/contracts/PaginationDataDriverContract.js +1 -0
  41. package/{src/pagination/contracts/PaginationResponseContract.ts → dist/pagination/contracts/PaginationResponseContract.d.ts} +3 -5
  42. package/dist/pagination/contracts/PaginationResponseContract.js +1 -0
  43. package/{src/pagination/contracts/PaginatorLoadDataOptions.ts → dist/pagination/contracts/PaginatorLoadDataOptions.d.ts} +2 -2
  44. package/dist/pagination/contracts/PaginatorLoadDataOptions.js +1 -0
  45. package/{src/pagination/contracts/StatePaginationDataDriverContract.ts → dist/pagination/contracts/StatePaginationDataDriverContract.d.ts} +2 -3
  46. package/dist/pagination/contracts/StatePaginationDataDriverContract.js +1 -0
  47. package/dist/pagination/contracts/ViewDriverContract.d.ts +9 -0
  48. package/dist/pagination/contracts/ViewDriverContract.js +1 -0
  49. package/dist/pagination/contracts/ViewDriverFactoryContract.d.ts +4 -0
  50. package/dist/pagination/contracts/ViewDriverFactoryContract.js +1 -0
  51. package/dist/pagination/dataDrivers/ArrayDriver.d.ts +9 -0
  52. package/dist/pagination/dataDrivers/ArrayDriver.js +20 -0
  53. package/dist/pagination/dtos/PaginationDataDto.d.ts +7 -0
  54. package/dist/pagination/dtos/PaginationDataDto.js +12 -0
  55. package/dist/pagination/dtos/StatePaginationDataDto.d.ts +7 -0
  56. package/dist/pagination/dtos/StatePaginationDataDto.js +13 -0
  57. package/dist/pagination/factories/VueBaseViewDriverFactory.d.ts +5 -0
  58. package/dist/pagination/factories/VueBaseViewDriverFactory.js +6 -0
  59. package/dist/pagination/factories/VuePaginationDriverFactory.d.ts +5 -0
  60. package/dist/pagination/factories/VuePaginationDriverFactory.js +6 -0
  61. package/dist/pagination/frontendDrivers/VueBaseViewDriver.d.ts +11 -0
  62. package/dist/pagination/frontendDrivers/VueBaseViewDriver.js +19 -0
  63. package/dist/pagination/frontendDrivers/VuePaginationDriver.d.ts +21 -0
  64. package/dist/pagination/frontendDrivers/VuePaginationDriver.js +41 -0
  65. package/dist/pagination/index.d.ts +22 -0
  66. package/dist/pagination/index.js +13 -0
  67. package/dist/persistenceDrivers/LocalStorageDriver.d.ts +9 -0
  68. package/dist/persistenceDrivers/LocalStorageDriver.js +18 -0
  69. package/dist/persistenceDrivers/NonPersistentDriver.d.ts +7 -0
  70. package/dist/persistenceDrivers/NonPersistentDriver.js +8 -0
  71. package/dist/persistenceDrivers/SessionStorageDriver.d.ts +9 -0
  72. package/dist/persistenceDrivers/SessionStorageDriver.js +18 -0
  73. package/dist/persistenceDrivers/index.d.ts +6 -0
  74. package/dist/persistenceDrivers/index.js +4 -0
  75. package/dist/persistenceDrivers/types/PersistenceDriver.d.ts +5 -0
  76. package/dist/persistenceDrivers/types/PersistenceDriver.js +1 -0
  77. package/dist/requests/BaseRequest.d.ts +62 -0
  78. package/dist/requests/BaseRequest.js +224 -0
  79. package/dist/requests/ErrorHandler.d.ts +11 -0
  80. package/dist/requests/ErrorHandler.js +127 -0
  81. package/dist/requests/RequestConcurrencyMode.enum.d.ts +6 -0
  82. package/dist/requests/RequestConcurrencyMode.enum.js +7 -0
  83. package/dist/requests/RequestErrorRouter.d.ts +38 -0
  84. package/dist/requests/RequestErrorRouter.js +38 -0
  85. package/dist/requests/RequestEvents.enum.d.ts +4 -0
  86. package/dist/requests/RequestEvents.enum.js +5 -0
  87. package/dist/requests/RequestMethod.enum.d.ts +8 -0
  88. package/dist/requests/RequestMethod.enum.js +9 -0
  89. package/dist/requests/bodies/BinaryBody.d.ts +10 -0
  90. package/dist/requests/bodies/BinaryBody.js +22 -0
  91. package/dist/requests/bodies/FormDataBody.d.ts +14 -0
  92. package/dist/requests/bodies/FormDataBody.js +60 -0
  93. package/dist/requests/bodies/JsonBody.d.ts +8 -0
  94. package/dist/requests/bodies/JsonBody.js +13 -0
  95. package/{src/requests/contracts/AbortableRequestContract.ts → dist/requests/contracts/AbortableRequestContract.d.ts} +1 -1
  96. package/dist/requests/contracts/AbortableRequestContract.js +1 -0
  97. package/dist/requests/contracts/BaseRequestContract.d.ts +23 -0
  98. package/dist/requests/contracts/BaseRequestContract.js +1 -0
  99. package/dist/requests/contracts/BodyContract.d.ts +6 -0
  100. package/dist/requests/contracts/BodyContract.js +1 -0
  101. package/dist/requests/contracts/BodyFactoryContract.d.ts +4 -0
  102. package/dist/requests/contracts/BodyFactoryContract.js +1 -0
  103. package/dist/requests/contracts/DriverConfigContract.d.ts +8 -0
  104. package/dist/requests/contracts/DriverConfigContract.js +1 -0
  105. package/dist/requests/contracts/HeadersContract.d.ts +7 -0
  106. package/dist/requests/contracts/HeadersContract.js +1 -0
  107. package/dist/requests/contracts/RequestDriverContract.d.ts +8 -0
  108. package/dist/requests/contracts/RequestDriverContract.js +1 -0
  109. package/dist/requests/contracts/RequestLoaderContract.d.ts +4 -0
  110. package/dist/requests/contracts/RequestLoaderContract.js +1 -0
  111. package/{src/requests/contracts/RequestLoaderFactoryContract.ts → dist/requests/contracts/RequestLoaderFactoryContract.d.ts} +2 -3
  112. package/dist/requests/contracts/RequestLoaderFactoryContract.js +1 -0
  113. package/dist/requests/contracts/ResponseContract.d.ts +5 -0
  114. package/dist/requests/contracts/ResponseContract.js +1 -0
  115. package/dist/requests/drivers/contracts/ResponseHandlerContract.d.ts +9 -0
  116. package/dist/requests/drivers/contracts/ResponseHandlerContract.js +1 -0
  117. package/dist/requests/drivers/fetch/FetchDriver.d.ts +26 -0
  118. package/dist/requests/drivers/fetch/FetchDriver.js +73 -0
  119. package/dist/requests/drivers/fetch/FetchResponse.d.ts +12 -0
  120. package/dist/requests/drivers/fetch/FetchResponse.js +38 -0
  121. package/dist/requests/drivers/xhr/XMLHttpRequestDriver.d.ts +13 -0
  122. package/dist/requests/drivers/xhr/XMLHttpRequestDriver.js +107 -0
  123. package/dist/requests/drivers/xhr/XMLHttpRequestResponse.d.ts +17 -0
  124. package/dist/requests/drivers/xhr/XMLHttpRequestResponse.js +84 -0
  125. package/dist/requests/exceptions/BadGatewayException.d.ts +3 -0
  126. package/dist/requests/exceptions/BadGatewayException.js +3 -0
  127. package/dist/requests/exceptions/BadRequestException.d.ts +3 -0
  128. package/dist/requests/exceptions/BadRequestException.js +3 -0
  129. package/dist/requests/exceptions/ConflictException.d.ts +3 -0
  130. package/dist/requests/exceptions/ConflictException.js +3 -0
  131. package/dist/requests/exceptions/ForbiddenException.d.ts +3 -0
  132. package/dist/requests/exceptions/ForbiddenException.js +3 -0
  133. package/dist/requests/exceptions/GatewayTimeoutException.d.ts +3 -0
  134. package/dist/requests/exceptions/GatewayTimeoutException.js +3 -0
  135. package/dist/requests/exceptions/GoneException.d.ts +3 -0
  136. package/dist/requests/exceptions/GoneException.js +3 -0
  137. package/dist/requests/exceptions/InvalidJsonException.d.ts +7 -0
  138. package/dist/requests/exceptions/InvalidJsonException.js +10 -0
  139. package/dist/requests/exceptions/LockedException.d.ts +3 -0
  140. package/dist/requests/exceptions/LockedException.js +3 -0
  141. package/dist/requests/exceptions/MethodNotAllowedException.d.ts +3 -0
  142. package/dist/requests/exceptions/MethodNotAllowedException.js +3 -0
  143. package/dist/requests/exceptions/NoResponseReceivedException.d.ts +3 -0
  144. package/{src/requests/exceptions/NoResponseReceivedException.ts → dist/requests/exceptions/NoResponseReceivedException.js} +3 -3
  145. package/dist/requests/exceptions/NotFoundException.d.ts +3 -0
  146. package/dist/requests/exceptions/NotFoundException.js +3 -0
  147. package/dist/requests/exceptions/NotImplementedException.d.ts +3 -0
  148. package/dist/requests/exceptions/NotImplementedException.js +3 -0
  149. package/dist/requests/exceptions/PageExpiredException.d.ts +3 -0
  150. package/dist/requests/exceptions/PageExpiredException.js +3 -0
  151. package/dist/requests/exceptions/PayloadTooLargeException.d.ts +3 -0
  152. package/dist/requests/exceptions/PayloadTooLargeException.js +3 -0
  153. package/dist/requests/exceptions/PreconditionFailedException.d.ts +3 -0
  154. package/dist/requests/exceptions/PreconditionFailedException.js +3 -0
  155. package/dist/requests/exceptions/RequestTimeoutException.d.ts +3 -0
  156. package/dist/requests/exceptions/RequestTimeoutException.js +3 -0
  157. package/dist/requests/exceptions/ResponseBodyException.d.ts +7 -0
  158. package/dist/requests/exceptions/ResponseBodyException.js +10 -0
  159. package/dist/requests/exceptions/ResponseException.d.ts +6 -0
  160. package/dist/requests/exceptions/ResponseException.js +9 -0
  161. package/dist/requests/exceptions/ServerErrorException.d.ts +3 -0
  162. package/dist/requests/exceptions/ServerErrorException.js +3 -0
  163. package/dist/requests/exceptions/ServiceUnavailableException.d.ts +3 -0
  164. package/dist/requests/exceptions/ServiceUnavailableException.js +3 -0
  165. package/dist/requests/exceptions/StaleResponseException.d.ts +5 -0
  166. package/dist/requests/exceptions/StaleResponseException.js +10 -0
  167. package/dist/requests/exceptions/TooManyRequestsException.d.ts +3 -0
  168. package/dist/requests/exceptions/TooManyRequestsException.js +3 -0
  169. package/dist/requests/exceptions/UnauthorizedException.d.ts +3 -0
  170. package/dist/requests/exceptions/UnauthorizedException.js +3 -0
  171. package/dist/requests/exceptions/UnsupportedMediaTypeException.d.ts +3 -0
  172. package/dist/requests/exceptions/UnsupportedMediaTypeException.js +3 -0
  173. package/dist/requests/exceptions/ValidationException.d.ts +3 -0
  174. package/dist/requests/exceptions/ValidationException.js +3 -0
  175. package/dist/requests/exceptions/index.d.ts +25 -0
  176. package/dist/requests/exceptions/index.js +25 -0
  177. package/dist/requests/factories/BinaryBodyFactory.d.ts +8 -0
  178. package/dist/requests/factories/BinaryBodyFactory.js +9 -0
  179. package/dist/requests/factories/FormDataFactory.d.ts +12 -0
  180. package/dist/requests/factories/FormDataFactory.js +6 -0
  181. package/dist/requests/factories/JsonBodyFactory.d.ts +5 -0
  182. package/dist/requests/factories/JsonBodyFactory.js +6 -0
  183. package/dist/requests/index.d.ts +31 -0
  184. package/dist/requests/index.js +19 -0
  185. package/dist/requests/responses/BaseResponse.d.ts +14 -0
  186. package/dist/requests/responses/BaseResponse.js +36 -0
  187. package/dist/requests/responses/BlobResponse.d.ts +7 -0
  188. package/dist/requests/responses/BlobResponse.js +16 -0
  189. package/dist/requests/responses/JsonResponse.d.ts +5 -0
  190. package/dist/requests/responses/JsonResponse.js +12 -0
  191. package/dist/requests/responses/PlainTextResponse.d.ts +5 -0
  192. package/dist/requests/responses/PlainTextResponse.js +12 -0
  193. package/{src/requests/types/RequestConcurrencyOptions.ts → dist/requests/types/RequestConcurrencyOptions.d.ts} +4 -5
  194. package/dist/requests/types/RequestConcurrencyOptions.js +1 -0
  195. package/dist/requests/types/RequestUploadProgress.d.ts +6 -0
  196. package/dist/requests/types/RequestUploadProgress.js +1 -0
  197. package/dist/support/DeferredPromise.d.ts +37 -0
  198. package/dist/support/DeferredPromise.js +55 -0
  199. package/dist/support/helpers.d.ts +5 -0
  200. package/dist/support/helpers.js +69 -0
  201. package/{src/support/index.ts → dist/support/index.d.ts} +3 -4
  202. package/dist/support/index.js +3 -0
  203. package/dist/vue/composables/useConfirmDialog.d.ts +20 -0
  204. package/dist/vue/composables/useConfirmDialog.js +52 -0
  205. package/dist/vue/composables/useGlobalCheckbox.d.ts +13 -0
  206. package/dist/vue/composables/useGlobalCheckbox.js +123 -0
  207. package/dist/vue/composables/useIsEmpty.d.ts +4 -0
  208. package/dist/vue/composables/useIsEmpty.js +27 -0
  209. package/dist/vue/composables/useIsOpen.d.ts +5 -0
  210. package/dist/vue/composables/useIsOpen.js +25 -0
  211. package/dist/vue/composables/useIsOpenFromVar.d.ts +6 -0
  212. package/dist/vue/composables/useIsOpenFromVar.js +45 -0
  213. package/dist/vue/composables/useModelWrapper.d.ts +9 -0
  214. package/dist/vue/composables/useModelWrapper.js +18 -0
  215. package/dist/vue/composables/useOnOpen.d.ts +7 -0
  216. package/dist/vue/composables/useOnOpen.js +25 -0
  217. package/{src/vue/contracts/ModelValueOptions.ts → dist/vue/contracts/ModelValueOptions.d.ts} +1 -1
  218. package/dist/vue/contracts/ModelValueOptions.js +1 -0
  219. package/dist/vue/contracts/ModelValueProps.d.ts +3 -0
  220. package/dist/vue/contracts/ModelValueProps.js +1 -0
  221. package/dist/vue/forms/BaseForm.d.ts +162 -0
  222. package/dist/vue/forms/BaseForm.js +997 -0
  223. package/dist/vue/forms/PropertyAwareArray.d.ts +53 -0
  224. package/dist/vue/forms/PropertyAwareArray.js +54 -0
  225. package/{src/vue/forms/index.ts → dist/vue/forms/index.d.ts} +9 -11
  226. package/dist/vue/forms/index.js +6 -0
  227. package/dist/vue/forms/types/PersistedForm.d.ts +6 -0
  228. package/dist/vue/forms/types/PersistedForm.js +1 -0
  229. package/dist/vue/forms/validation/ValidationMode.enum.d.ts +11 -0
  230. package/dist/vue/forms/validation/ValidationMode.enum.js +14 -0
  231. package/dist/vue/forms/validation/index.d.ts +12 -0
  232. package/dist/vue/forms/validation/index.js +9 -0
  233. package/dist/vue/forms/validation/rules/BaseRule.d.ts +5 -0
  234. package/dist/vue/forms/validation/rules/BaseRule.js +5 -0
  235. package/dist/vue/forms/validation/rules/ConfirmedRule.d.ts +10 -0
  236. package/dist/vue/forms/validation/rules/ConfirmedRule.js +26 -0
  237. package/dist/vue/forms/validation/rules/EmailRule.d.ts +7 -0
  238. package/dist/vue/forms/validation/rules/EmailRule.js +19 -0
  239. package/dist/vue/forms/validation/rules/JsonRule.d.ts +7 -0
  240. package/dist/vue/forms/validation/rules/JsonRule.js +25 -0
  241. package/dist/vue/forms/validation/rules/MinRule.d.ts +26 -0
  242. package/dist/vue/forms/validation/rules/MinRule.js +52 -0
  243. package/dist/vue/forms/validation/rules/RequiredRule.d.ts +7 -0
  244. package/dist/vue/forms/validation/rules/RequiredRule.js +16 -0
  245. package/dist/vue/forms/validation/rules/UrlRule.d.ts +7 -0
  246. package/dist/vue/forms/validation/rules/UrlRule.js +22 -0
  247. package/{src/vue/forms/validation/types/BidirectionalRule.ts → dist/vue/forms/validation/types/BidirectionalRule.d.ts} +4 -4
  248. package/dist/vue/forms/validation/types/BidirectionalRule.js +1 -0
  249. package/dist/vue/forms/validation/types/ValidationRules.d.ts +11 -0
  250. package/dist/vue/forms/validation/types/ValidationRules.js +1 -0
  251. package/dist/vue/index.d.ts +11 -0
  252. package/dist/vue/index.js +10 -0
  253. package/dist/vue/requests/factories/VueRequestLoaderFactory.d.ts +6 -0
  254. package/dist/vue/requests/factories/VueRequestLoaderFactory.js +6 -0
  255. package/{src/vue/requests/index.ts → dist/vue/requests/index.d.ts} +4 -5
  256. package/dist/vue/requests/index.js +4 -0
  257. package/dist/vue/requests/loaders/VueRequestBatchLoader.d.ts +12 -0
  258. package/dist/vue/requests/loaders/VueRequestBatchLoader.js +29 -0
  259. package/dist/vue/requests/loaders/VueRequestLoader.d.ts +8 -0
  260. package/dist/vue/requests/loaders/VueRequestLoader.js +12 -0
  261. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.d.ts +57 -0
  262. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.js +135 -0
  263. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.d.ts +6 -0
  264. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.js +20 -0
  265. package/dist/vue/router/routeResourceBinding/defineRoute.d.ts +23 -0
  266. package/dist/vue/router/routeResourceBinding/defineRoute.js +42 -0
  267. package/dist/vue/router/routeResourceBinding/index.d.ts +8 -0
  268. package/dist/vue/router/routeResourceBinding/index.js +6 -0
  269. package/dist/vue/router/routeResourceBinding/installRouteInjection.d.ts +14 -0
  270. package/dist/vue/router/routeResourceBinding/installRouteInjection.js +133 -0
  271. package/dist/vue/router/routeResourceBinding/types.d.ts +55 -0
  272. package/dist/vue/router/routeResourceBinding/types.js +1 -0
  273. package/dist/vue/router/routeResourceBinding/useRouteResource.d.ts +8 -0
  274. package/dist/vue/router/routeResourceBinding/useRouteResource.js +29 -0
  275. package/dist/vue/state/State.d.ts +75 -0
  276. package/dist/vue/state/State.js +267 -0
  277. package/dist/vue/state/index.d.ts +2 -0
  278. package/dist/vue/state/index.js +2 -0
  279. package/package.json +81 -23
  280. package/.editorconfig +0 -508
  281. package/.eslintrc.cjs +0 -15
  282. package/.prettierrc.json +0 -8
  283. package/CHANGELOG.md +0 -226
  284. package/docker-compose.yaml +0 -8
  285. package/docs/.vitepress/config.ts +0 -124
  286. package/docs/index.md +0 -13
  287. package/docs/laravel/pagination.md +0 -67
  288. package/docs/laravel/requests.md +0 -62
  289. package/docs/services/pagination/index.md +0 -46
  290. package/docs/services/pagination/infinite-scroller.md +0 -20
  291. package/docs/services/pagination/page-aware.md +0 -51
  292. package/docs/services/pagination/state-pagination.md +0 -77
  293. package/docs/services/pagination/updating-rows.md +0 -52
  294. package/docs/services/persistence/index.md +0 -46
  295. package/docs/services/requests/abort-requests.md +0 -29
  296. package/docs/services/requests/bulk-requests.md +0 -70
  297. package/docs/services/requests/concurrency.md +0 -58
  298. package/docs/services/requests/drivers.md +0 -115
  299. package/docs/services/requests/error-handling.md +0 -153
  300. package/docs/services/requests/events.md +0 -53
  301. package/docs/services/requests/file-uploads.md +0 -168
  302. package/docs/services/requests/getting-started.md +0 -201
  303. package/docs/services/requests/headers.md +0 -40
  304. package/docs/services/requests/loading.md +0 -63
  305. package/docs/services/requests/request-bodies.md +0 -89
  306. package/docs/services/requests/responses.md +0 -34
  307. package/docs/services/support/deferred-promise.md +0 -63
  308. package/docs/services/support/helpers.md +0 -77
  309. package/docs/services/support/index.md +0 -6
  310. package/docs/upgrading/v1-to-v2.md +0 -64
  311. package/docs/upgrading/v2-to-v3.md +0 -52
  312. package/docs/upgrading/v3-to-v4.md +0 -214
  313. package/docs/upgrading.md +0 -0
  314. package/docs/vue/composables/use-confirm-dialog.md +0 -96
  315. package/docs/vue/composables/use-global-checkbox.md +0 -73
  316. package/docs/vue/composables/use-is-empty.md +0 -26
  317. package/docs/vue/composables/use-is-open-from-var.md +0 -32
  318. package/docs/vue/composables/use-is-open.md +0 -28
  319. package/docs/vue/composables/use-model-wrapper.md +0 -29
  320. package/docs/vue/composables/use-on-open.md +0 -26
  321. package/docs/vue/forms/arrays.md +0 -102
  322. package/docs/vue/forms/errors.md +0 -52
  323. package/docs/vue/forms/index.md +0 -99
  324. package/docs/vue/forms/payloads.md +0 -99
  325. package/docs/vue/forms/persistence.md +0 -19
  326. package/docs/vue/forms/state-and-properties.md +0 -26
  327. package/docs/vue/forms/utilities.md +0 -27
  328. package/docs/vue/forms/validation.md +0 -189
  329. package/docs/vue/requests/loading.md +0 -51
  330. package/docs/vue/router/route-resource-binding.md +0 -240
  331. package/docs/vue/state.md +0 -309
  332. package/env.d.ts +0 -1
  333. package/eslint.config.js +0 -15
  334. package/release-tool.json +0 -26
  335. package/src/bulkRequests/BulkRequestEvent.enum.ts +0 -4
  336. package/src/bulkRequests/BulkRequestSender.ts +0 -196
  337. package/src/bulkRequests/BulkRequestWrapper.ts +0 -49
  338. package/src/bulkRequests/index.ts +0 -6
  339. package/src/laravel/pagination/dataDrivers/RequestDriver.ts +0 -30
  340. package/src/laravel/pagination/index.ts +0 -6
  341. package/src/laravel/requests/JsonBaseRequest.ts +0 -35
  342. package/src/laravel/requests/PaginationJsonBaseRequest.ts +0 -29
  343. package/src/laravel/requests/index.ts +0 -9
  344. package/src/laravel/requests/responses/JsonResponse.ts +0 -8
  345. package/src/laravel/requests/responses/PaginationResponse.ts +0 -16
  346. package/src/pagination/BasePaginator.ts +0 -94
  347. package/src/pagination/InfiniteScroller.ts +0 -22
  348. package/src/pagination/PageAwarePaginator.ts +0 -132
  349. package/src/pagination/StatePaginator.ts +0 -86
  350. package/src/pagination/contracts/BaseViewDriverContract.ts +0 -6
  351. package/src/pagination/contracts/PaginateableRequestContract.ts +0 -13
  352. package/src/pagination/contracts/PaginationDataDriverContract.ts +0 -5
  353. package/src/pagination/contracts/ViewDriverContract.ts +0 -10
  354. package/src/pagination/contracts/ViewDriverFactoryContract.ts +0 -5
  355. package/src/pagination/dataDrivers/ArrayDriver.ts +0 -28
  356. package/src/pagination/dtos/PaginationDataDto.ts +0 -14
  357. package/src/pagination/dtos/StatePaginationDataDto.ts +0 -19
  358. package/src/pagination/factories/VueBaseViewDriverFactory.ts +0 -9
  359. package/src/pagination/factories/VuePaginationDriverFactory.ts +0 -9
  360. package/src/pagination/frontendDrivers/VueBaseViewDriver.ts +0 -28
  361. package/src/pagination/frontendDrivers/VuePaginationDriver.ts +0 -61
  362. package/src/pagination/index.ts +0 -46
  363. package/src/persistenceDrivers/LocalStorageDriver.ts +0 -22
  364. package/src/persistenceDrivers/NonPersistentDriver.ts +0 -12
  365. package/src/persistenceDrivers/SessionStorageDriver.ts +0 -22
  366. package/src/persistenceDrivers/index.ts +0 -8
  367. package/src/persistenceDrivers/types/PersistenceDriver.ts +0 -5
  368. package/src/requests/BaseRequest.ts +0 -321
  369. package/src/requests/ErrorHandler.ts +0 -144
  370. package/src/requests/RequestConcurrencyMode.enum.ts +0 -6
  371. package/src/requests/RequestErrorRouter.ts +0 -89
  372. package/src/requests/RequestEvents.enum.ts +0 -4
  373. package/src/requests/RequestMethod.enum.ts +0 -8
  374. package/src/requests/bodies/BinaryBody.ts +0 -31
  375. package/src/requests/bodies/FormDataBody.ts +0 -81
  376. package/src/requests/bodies/JsonBody.ts +0 -16
  377. package/src/requests/contracts/BaseRequestContract.ts +0 -39
  378. package/src/requests/contracts/BodyContract.ts +0 -9
  379. package/src/requests/contracts/BodyFactoryContract.ts +0 -5
  380. package/src/requests/contracts/DriverConfigContract.ts +0 -9
  381. package/src/requests/contracts/HeadersContract.ts +0 -9
  382. package/src/requests/contracts/RequestDriverContract.ts +0 -15
  383. package/src/requests/contracts/RequestLoaderContract.ts +0 -5
  384. package/src/requests/contracts/ResponseContract.ts +0 -7
  385. package/src/requests/drivers/contracts/ResponseHandlerContract.ts +0 -10
  386. package/src/requests/drivers/fetch/FetchDriver.ts +0 -115
  387. package/src/requests/drivers/fetch/FetchResponse.ts +0 -30
  388. package/src/requests/drivers/xhr/XMLHttpRequestDriver.ts +0 -138
  389. package/src/requests/drivers/xhr/XMLHttpRequestResponse.ts +0 -95
  390. package/src/requests/exceptions/BadGatewayException.ts +0 -3
  391. package/src/requests/exceptions/BadRequestException.ts +0 -3
  392. package/src/requests/exceptions/ConflictException.ts +0 -3
  393. package/src/requests/exceptions/ForbiddenException.ts +0 -3
  394. package/src/requests/exceptions/GatewayTimeoutException.ts +0 -3
  395. package/src/requests/exceptions/GoneException.ts +0 -3
  396. package/src/requests/exceptions/InvalidJsonException.ts +0 -15
  397. package/src/requests/exceptions/LockedException.ts +0 -3
  398. package/src/requests/exceptions/MethodNotAllowedException.ts +0 -3
  399. package/src/requests/exceptions/NotFoundException.ts +0 -3
  400. package/src/requests/exceptions/NotImplementedException.ts +0 -3
  401. package/src/requests/exceptions/PageExpiredException.ts +0 -3
  402. package/src/requests/exceptions/PayloadTooLargeException.ts +0 -3
  403. package/src/requests/exceptions/PreconditionFailedException.ts +0 -3
  404. package/src/requests/exceptions/RequestTimeoutException.ts +0 -3
  405. package/src/requests/exceptions/ResponseBodyException.ts +0 -15
  406. package/src/requests/exceptions/ResponseException.ts +0 -11
  407. package/src/requests/exceptions/ServerErrorException.ts +0 -3
  408. package/src/requests/exceptions/ServiceUnavailableException.ts +0 -3
  409. package/src/requests/exceptions/StaleResponseException.ts +0 -13
  410. package/src/requests/exceptions/TooManyRequestsException.ts +0 -3
  411. package/src/requests/exceptions/UnauthorizedException.ts +0 -3
  412. package/src/requests/exceptions/UnsupportedMediaTypeException.ts +0 -3
  413. package/src/requests/exceptions/ValidationException.ts +0 -3
  414. package/src/requests/exceptions/index.ts +0 -51
  415. package/src/requests/factories/BinaryBodyFactory.ts +0 -13
  416. package/src/requests/factories/FormDataFactory.ts +0 -17
  417. package/src/requests/factories/JsonBodyFactory.ts +0 -9
  418. package/src/requests/index.ts +0 -68
  419. package/src/requests/responses/BaseResponse.ts +0 -41
  420. package/src/requests/responses/BlobResponse.ts +0 -19
  421. package/src/requests/responses/JsonResponse.ts +0 -15
  422. package/src/requests/responses/PlainTextResponse.ts +0 -15
  423. package/src/requests/types/RequestUploadProgress.ts +0 -6
  424. package/src/support/DeferredPromise.ts +0 -67
  425. package/src/support/helpers.ts +0 -78
  426. package/src/vue/composables/useConfirmDialog.ts +0 -63
  427. package/src/vue/composables/useGlobalCheckbox.ts +0 -145
  428. package/src/vue/composables/useIsEmpty.ts +0 -34
  429. package/src/vue/composables/useIsOpen.ts +0 -37
  430. package/src/vue/composables/useIsOpenFromVar.ts +0 -61
  431. package/src/vue/composables/useModelWrapper.ts +0 -27
  432. package/src/vue/composables/useOnOpen.ts +0 -34
  433. package/src/vue/contracts/ModelValueProps.ts +0 -3
  434. package/src/vue/forms/BaseForm.ts +0 -1192
  435. package/src/vue/forms/PropertyAwareArray.ts +0 -81
  436. package/src/vue/forms/types/PersistedForm.ts +0 -6
  437. package/src/vue/forms/validation/ValidationMode.enum.ts +0 -14
  438. package/src/vue/forms/validation/index.ts +0 -15
  439. package/src/vue/forms/validation/rules/BaseRule.ts +0 -7
  440. package/src/vue/forms/validation/rules/ConfirmedRule.ts +0 -39
  441. package/src/vue/forms/validation/rules/EmailRule.ts +0 -23
  442. package/src/vue/forms/validation/rules/JsonRule.ts +0 -28
  443. package/src/vue/forms/validation/rules/MinRule.ts +0 -61
  444. package/src/vue/forms/validation/rules/RequiredRule.ts +0 -19
  445. package/src/vue/forms/validation/rules/UrlRule.ts +0 -24
  446. package/src/vue/forms/validation/types/ValidationRules.ts +0 -15
  447. package/src/vue/index.ts +0 -14
  448. package/src/vue/requests/factories/VueRequestLoaderFactory.ts +0 -10
  449. package/src/vue/requests/loaders/VueRequestBatchLoader.ts +0 -35
  450. package/src/vue/requests/loaders/VueRequestLoader.ts +0 -18
  451. package/src/vue/router/routeResourceBinding/RouteResourceBoundView.ts +0 -145
  452. package/src/vue/router/routeResourceBinding/RouteResourceRequestResolver.ts +0 -11
  453. package/src/vue/router/routeResourceBinding/defineRoute.ts +0 -59
  454. package/src/vue/router/routeResourceBinding/index.ts +0 -11
  455. package/src/vue/router/routeResourceBinding/installRouteInjection.ts +0 -164
  456. package/src/vue/router/routeResourceBinding/types.ts +0 -53
  457. package/src/vue/router/routeResourceBinding/useRouteResource.ts +0 -24
  458. package/src/vue/state/State.ts +0 -380
  459. package/src/vue/state/index.ts +0 -3
  460. package/tests/service/bulkRequests/BulkRequestSender.test.ts +0 -76
  461. package/tests/service/bulkRequests/BulkRequestWrapper.test.ts +0 -51
  462. package/tests/service/helpers/mergeDeep.test.ts +0 -53
  463. package/tests/service/laravel/pagination/dataDrivers/RequestDriver.test.ts +0 -84
  464. package/tests/service/laravel/requests/JsonBaseRequest.test.ts +0 -43
  465. package/tests/service/laravel/requests/PaginationJsonBaseRequest.test.ts +0 -58
  466. package/tests/service/laravel/requests/responses/JsonResponse.test.ts +0 -59
  467. package/tests/service/laravel/requests/responses/PaginationResponse.test.ts +0 -127
  468. package/tests/service/pagination/BasePaginator.test.ts +0 -100
  469. package/tests/service/pagination/InfiniteScroller.test.ts +0 -101
  470. package/tests/service/pagination/PageAwarePaginator.test.ts +0 -133
  471. package/tests/service/pagination/StatePaginator.test.ts +0 -76
  472. package/tests/service/pagination/VueViewDrivers.test.ts +0 -46
  473. package/tests/service/pagination/dtos/PaginationDataDto.test.ts +0 -35
  474. package/tests/service/pagination/dtos/StatePaginationDataDto.test.ts +0 -14
  475. package/tests/service/pagination/factories/VuePaginationDriverFactory.test.ts +0 -32
  476. package/tests/service/pagination/frontendDrivers/VuePaginationDriver.test.ts +0 -66
  477. package/tests/service/persistenceDrivers/PersistenceDrivers.test.ts +0 -56
  478. package/tests/service/requests/BaseRequest.test.ts +0 -250
  479. package/tests/service/requests/BodiesAndFactories.test.ts +0 -52
  480. package/tests/service/requests/Enums.test.ts +0 -20
  481. package/tests/service/requests/ErrorHandler.test.ts +0 -188
  482. package/tests/service/requests/FormDataBody.test.ts +0 -63
  483. package/tests/service/requests/RequestErrorRouter.test.ts +0 -44
  484. package/tests/service/requests/Responses.test.ts +0 -83
  485. package/tests/service/requests/exceptions/Exceptions.test.ts +0 -43
  486. package/tests/service/requests/fetch/FetchDriver.test.ts +0 -94
  487. package/tests/service/requests/fetch/FetchResponse.test.ts +0 -21
  488. package/tests/service/requests/xhr/XMLHttpRequestDriver.test.ts +0 -197
  489. package/tests/service/support/DeferredPromise.test.ts +0 -40
  490. package/tests/service/support/helpers.test.ts +0 -37
  491. package/tests/vue/composables/useConfirmDialog.test.ts +0 -77
  492. package/tests/vue/composables/useGlobalCheckbox.test.ts +0 -126
  493. package/tests/vue/composables/useIsEmpty.test.ts +0 -18
  494. package/tests/vue/composables/useIsOpen.test.ts +0 -25
  495. package/tests/vue/composables/useIsOpenFromVar.test.ts +0 -22
  496. package/tests/vue/composables/useModelWrapper.test.ts +0 -30
  497. package/tests/vue/composables/useOnOpen.test.ts +0 -26
  498. package/tests/vue/forms/BaseForm.behavior.test.ts +0 -98
  499. package/tests/vue/forms/BaseForm.transformers.test.ts +0 -109
  500. package/tests/vue/forms/PropertyAwareArray.test.ts +0 -30
  501. package/tests/vue/forms/validation/ValidationRules.test.ts +0 -79
  502. package/tests/vue/requests/VueRequestLoaders.test.ts +0 -48
  503. package/tests/vue/router/routeResourceBinding/RouteResourceBoundView.test.ts +0 -344
  504. package/tests/vue/router/routeResourceBinding/RouteResourceUtils.test.ts +0 -70
  505. package/tests/vue/router/routeResourceBinding/installRouteInjection.test.ts +0 -450
  506. package/tests/vue/state/State.test.ts +0 -151
  507. package/tsconfig.json +0 -114
  508. package/vite.config.ts +0 -34
  509. package/vitest.config.ts +0 -23
@@ -1,16 +0,0 @@
1
- import { type BodyContract } from '../contracts/BodyContract'
2
- import { type HeadersContract } from '../contracts/HeadersContract'
3
-
4
- export class JsonBody<RequestBody> implements BodyContract {
5
- public constructor(protected data: RequestBody) {}
6
-
7
- public getHeaders(): HeadersContract {
8
- return {
9
- 'Content-Type': 'application/json'
10
- }
11
- }
12
-
13
- public getContent(): string {
14
- return JSON.stringify(this.data)
15
- }
16
- }
@@ -1,39 +0,0 @@
1
- import { RequestMethodEnum } from '../RequestMethod.enum'
2
- import { RequestEvents } from '../RequestEvents.enum'
3
- import { type BodyFactoryContract } from './BodyFactoryContract'
4
- import { type HeadersContract } from './HeadersContract'
5
- import { type RequestConcurrencyOptions } from '../types/RequestConcurrencyOptions'
6
-
7
- export type EventHandlerCallback<T> = (value: T) => void
8
-
9
- export interface BaseRequestContract<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface extends object> {
10
- method(): RequestMethodEnum
11
-
12
- url(): URL | string
13
-
14
- setParams(params?: RequestParamsInterface): this
15
-
16
- withParams(params?: RequestParamsInterface): this
17
-
18
- getParams(): RequestParamsInterface | undefined
19
-
20
- setBody(requestBody: RequestBodyInterface | undefined): this
21
-
22
- requestHeaders(): HeadersContract
23
-
24
- buildUrl(): URL
25
-
26
- on<T>(event: RequestEvents, handler: EventHandlerCallback<T>): this
27
-
28
- send(): Promise<ResponseClass>
29
-
30
- isLoading(): RequestLoaderLoadingType
31
-
32
- getRequestBodyFactory(): BodyFactoryContract<RequestBodyInterface> | undefined
33
-
34
- getResponse(): ResponseClass
35
-
36
- setAbortSignal(signal: AbortSignal): this
37
-
38
- setConcurrency(options?: RequestConcurrencyOptions): this
39
- }
@@ -1,9 +0,0 @@
1
- import { type HeadersContract } from './HeadersContract'
2
-
3
- export type BodyContent = string | FormData | Blob | ArrayBuffer | ArrayBufferView<ArrayBuffer>
4
-
5
- export interface BodyContract {
6
- getContent(): BodyContent
7
-
8
- getHeaders(): HeadersContract
9
- }
@@ -1,5 +0,0 @@
1
- import { type BodyContract } from './BodyContract'
2
-
3
- export interface BodyFactoryContract<RequestBodyInterface> {
4
- make(body: RequestBodyInterface): BodyContract
5
- }
@@ -1,9 +0,0 @@
1
- import { type HeadersContract } from './HeadersContract'
2
- import { type RequestUploadProgress } from '../types/RequestUploadProgress'
3
-
4
- export interface DriverConfigContract {
5
- corsWithCredentials?: boolean | undefined
6
- abortSignal?: AbortSignal | undefined
7
- headers?: HeadersContract | undefined
8
- onUploadProgress?: ((progress: RequestUploadProgress) => void) | undefined
9
- }
@@ -1,9 +0,0 @@
1
- export type HeaderValue = string | (() => string)
2
-
3
- export interface HeadersContract {
4
- [key: string]: HeaderValue
5
- }
6
-
7
- export interface ResolvedHeadersContract {
8
- [key: string]: string
9
- }
@@ -1,15 +0,0 @@
1
- import { RequestMethodEnum } from '../RequestMethod.enum'
2
- import { type HeadersContract } from './HeadersContract'
3
- import { type BodyContract } from './BodyContract'
4
- import { type ResponseHandlerContract } from '../drivers/contracts/ResponseHandlerContract'
5
- import { type DriverConfigContract } from './DriverConfigContract'
6
-
7
- export interface RequestDriverContract {
8
- send(
9
- url: URL | string,
10
- method: RequestMethodEnum,
11
- headers: HeadersContract,
12
- body?: BodyContract,
13
- requestConfig?: DriverConfigContract
14
- ): Promise<ResponseHandlerContract>
15
- }
@@ -1,5 +0,0 @@
1
- export interface RequestLoaderContract<T> {
2
- isLoading(): T
3
-
4
- setLoading(value: boolean): void
5
- }
@@ -1,7 +0,0 @@
1
- import type { ResponseHandlerContract } from '../drivers/contracts/ResponseHandlerContract'
2
-
3
- export interface ResponseContract<ResponseBodyInterface> {
4
- getAcceptHeader(): string
5
-
6
- setResponse(response: ResponseHandlerContract): Promise<ResponseBodyInterface>
7
- }
@@ -1,10 +0,0 @@
1
- import { type ResolvedHeadersContract } from '../../contracts/HeadersContract'
2
-
3
- export interface ResponseHandlerContract {
4
- getStatusCode(): number | undefined
5
- getHeaders(): ResolvedHeadersContract
6
- getRawResponse(): Response
7
- json<ResponseBodyInterface>(): Promise<ResponseBodyInterface>
8
- text(): Promise<string>
9
- blob(): Promise<Blob>
10
- }
@@ -1,115 +0,0 @@
1
- import { ResponseException } from '../../exceptions/ResponseException'
2
- import { FetchResponse } from './FetchResponse'
3
- import { RequestMethodEnum } from '../../RequestMethod.enum'
4
- import { type HeadersContract, type HeaderValue } from '../../contracts/HeadersContract'
5
- import { type BodyContent, type BodyContract } from '../../contracts/BodyContract'
6
- import { type RequestDriverContract } from '../../contracts/RequestDriverContract'
7
- import { type DriverConfigContract } from '../../contracts/DriverConfigContract'
8
- import { type ResponseHandlerContract } from '../contracts/ResponseHandlerContract'
9
-
10
- enum FetchDriverCredentialConfigEnum {
11
- OMIT = 'omit',
12
- INCLUDE = 'include'
13
- }
14
-
15
- interface FetchDriverConfig {
16
- method: RequestMethodEnum
17
- headers: HeadersContract
18
- credentials?: FetchDriverCredentialConfigEnum | undefined
19
- signal?: AbortSignal | undefined
20
- body?: BodyContent | URLSearchParams | undefined
21
- }
22
-
23
- export class FetchDriver implements RequestDriverContract {
24
- public constructor(protected config?: DriverConfigContract) {}
25
-
26
- public async send(
27
- url: URL | string,
28
- method: RequestMethodEnum,
29
- headers: HeadersContract,
30
- body?: BodyContract,
31
- requestConfig?: DriverConfigContract
32
- ): Promise<ResponseHandlerContract> {
33
- const mergedConfig: DriverConfigContract = {
34
- // Global config
35
- ...this.config,
36
-
37
- // Request specific overrides
38
- ...(requestConfig ?? {})
39
- }
40
-
41
- const mergedHeaders: HeadersContract = {
42
- // Set global headers
43
- ...this.config?.headers,
44
-
45
- // Set headers from the request
46
- ...headers,
47
-
48
- // Set Content-Type header
49
- ...body?.getHeaders()
50
- }
51
-
52
- const resolvedHeaders = this.resolveHeaders(mergedHeaders)
53
-
54
- const fetchConfig = this.buildRequestConfig(mergedConfig, method, resolvedHeaders, body)
55
-
56
- const response = await fetch(url, fetchConfig as RequestInit)
57
-
58
- const fetchResponse = new FetchResponse(response)
59
-
60
- if (!response.ok) {
61
- throw new ResponseException(fetchResponse)
62
- }
63
-
64
- return fetchResponse
65
- }
66
-
67
- protected buildRequestConfig(
68
- config: DriverConfigContract,
69
- method: RequestMethodEnum,
70
- headers: HeadersContract,
71
- body?: BodyContract
72
- ): FetchDriverConfig {
73
- return {
74
- method: method,
75
- headers: headers,
76
- credentials: this.getCorsWithCredentials(config.corsWithCredentials),
77
- signal: config.abortSignal ?? undefined,
78
- body: [RequestMethodEnum.GET, RequestMethodEnum.HEAD].includes(method) ? undefined : body?.getContent()
79
- }
80
- }
81
-
82
- protected getCorsWithCredentials(corsWithCredentials: boolean | undefined): FetchDriverCredentialConfigEnum {
83
- // Request takes precedence
84
- if (corsWithCredentials === true) {
85
- return FetchDriverCredentialConfigEnum.INCLUDE
86
- }
87
-
88
- if (corsWithCredentials === false) {
89
- return FetchDriverCredentialConfigEnum.OMIT
90
- }
91
-
92
- // Fallback to default config
93
- if (this.config) {
94
- return this.config.corsWithCredentials ? FetchDriverCredentialConfigEnum.INCLUDE : FetchDriverCredentialConfigEnum.OMIT
95
- }
96
-
97
- // Fallback to safe option if no default set
98
- return FetchDriverCredentialConfigEnum.OMIT
99
- }
100
-
101
- protected resolveHeaders(headers: HeadersContract): HeadersContract {
102
- const resolved: HeadersContract = {}
103
- for (const key in headers) {
104
- const value: HeaderValue | undefined = headers[key]
105
-
106
- if (value === undefined) {
107
- continue
108
- }
109
-
110
- resolved[key] = typeof value === 'function' ? value() : value
111
- }
112
-
113
- return resolved
114
- }
115
- }
@@ -1,30 +0,0 @@
1
- import { type ResolvedHeadersContract } from '../../contracts/HeadersContract'
2
- import { type ResponseHandlerContract } from '../contracts/ResponseHandlerContract'
3
-
4
- export class FetchResponse implements ResponseHandlerContract {
5
- public constructor(protected response: Response) {}
6
-
7
- public getStatusCode(): number | undefined {
8
- return this.response.status
9
- }
10
-
11
- public getHeaders(): ResolvedHeadersContract {
12
- return Object.fromEntries(this.response.headers)
13
- }
14
-
15
- public getRawResponse(): Response {
16
- return this.response
17
- }
18
-
19
- public async json<ResponseBodyInterface>(): Promise<ResponseBodyInterface> {
20
- return await this.response.json()
21
- }
22
-
23
- public async text(): Promise<string> {
24
- return await this.response.text()
25
- }
26
-
27
- public async blob(): Promise<Blob> {
28
- return await this.response.blob()
29
- }
30
- }
@@ -1,138 +0,0 @@
1
- import { ResponseException } from '../../exceptions/ResponseException'
2
- import { RequestMethodEnum } from '../../RequestMethod.enum'
3
- import { type HeadersContract, type HeaderValue } from '../../contracts/HeadersContract'
4
- import { type BodyContract } from '../../contracts/BodyContract'
5
- import { type RequestDriverContract } from '../../contracts/RequestDriverContract'
6
- import { type DriverConfigContract } from '../../contracts/DriverConfigContract'
7
- import { type ResponseHandlerContract } from '../contracts/ResponseHandlerContract'
8
- import { XMLHttpRequestResponse } from './XMLHttpRequestResponse'
9
-
10
- export class XMLHttpRequestDriver implements RequestDriverContract {
11
- public constructor(protected config?: DriverConfigContract) {}
12
-
13
- public async send(
14
- url: URL | string,
15
- method: RequestMethodEnum,
16
- headers: HeadersContract,
17
- body?: BodyContract,
18
- requestConfig?: DriverConfigContract
19
- ): Promise<ResponseHandlerContract> {
20
- const mergedConfig: DriverConfigContract = {
21
- ...this.config,
22
- ...(requestConfig ?? {})
23
- }
24
-
25
- const mergedHeaders: HeadersContract = {
26
- ...this.config?.headers,
27
- ...headers,
28
- ...body?.getHeaders()
29
- }
30
-
31
- const resolvedHeaders = this.resolveHeaders(mergedHeaders)
32
-
33
- return await new Promise<ResponseHandlerContract>((resolve, reject) => {
34
- const request = new XMLHttpRequest()
35
- const requestUrl = url instanceof URL ? url.toString() : url
36
- const requestBody = [RequestMethodEnum.GET, RequestMethodEnum.HEAD].includes(method) ? undefined : body?.getContent()
37
- const abortSignal = mergedConfig.abortSignal
38
- const handleAbortSignal = () => request.abort()
39
-
40
- const cleanup = () => {
41
- request.onload = null
42
- request.onerror = null
43
- request.onabort = null
44
-
45
- if (request.upload) {
46
- request.upload.onprogress = null
47
- }
48
-
49
- abortSignal?.removeEventListener('abort', handleAbortSignal)
50
- }
51
-
52
- request.open(method, requestUrl, true)
53
- request.responseType = 'blob'
54
- request.withCredentials = this.getCorsWithCredentials(mergedConfig.corsWithCredentials)
55
-
56
- for (const key in resolvedHeaders) {
57
- request.setRequestHeader(key, resolvedHeaders[key] as string)
58
- }
59
-
60
- request.onload = () => {
61
- cleanup()
62
-
63
- if (request.status === 0) {
64
- reject(new Error('No response received.'))
65
- return
66
- }
67
-
68
- const response = new XMLHttpRequestResponse(request)
69
-
70
- if (request.status < 200 || request.status >= 300) {
71
- reject(new ResponseException(response))
72
- return
73
- }
74
-
75
- resolve(response)
76
- }
77
-
78
- request.onerror = () => {
79
- cleanup()
80
- reject(new Error('Network request failed.'))
81
- }
82
-
83
- request.onabort = () => {
84
- cleanup()
85
- reject(new DOMException('The operation was aborted.', 'AbortError'))
86
- }
87
-
88
- if (request.upload) {
89
- request.upload.onprogress = (event: ProgressEvent<EventTarget>) => {
90
- const total = event.lengthComputable ? event.total : undefined
91
-
92
- mergedConfig.onUploadProgress?.({
93
- loaded: event.loaded,
94
- total: total,
95
- lengthComputable: event.lengthComputable,
96
- progress: total === undefined || total === 0 ? undefined : event.loaded / total
97
- })
98
- }
99
- }
100
-
101
- if (abortSignal?.aborted) {
102
- handleAbortSignal()
103
- return
104
- }
105
-
106
- abortSignal?.addEventListener('abort', handleAbortSignal, { once: true })
107
- request.send(requestBody)
108
- })
109
- }
110
-
111
- protected getCorsWithCredentials(corsWithCredentials: boolean | undefined): boolean {
112
- if (corsWithCredentials === true) {
113
- return true
114
- }
115
-
116
- if (corsWithCredentials === false) {
117
- return false
118
- }
119
-
120
- return this.config?.corsWithCredentials ?? false
121
- }
122
-
123
- protected resolveHeaders(headers: HeadersContract): HeadersContract {
124
- const resolved: HeadersContract = {}
125
-
126
- for (const key in headers) {
127
- const value: HeaderValue | undefined = headers[key]
128
-
129
- if (value === undefined) {
130
- continue
131
- }
132
-
133
- resolved[key] = typeof value === 'function' ? value() : value
134
- }
135
-
136
- return resolved
137
- }
138
- }
@@ -1,95 +0,0 @@
1
- import { type ResolvedHeadersContract } from '../../contracts/HeadersContract'
2
- import { type ResponseHandlerContract } from '../contracts/ResponseHandlerContract'
3
-
4
- export class XMLHttpRequestResponse implements ResponseHandlerContract {
5
- protected response: Response
6
- protected headers: ResolvedHeadersContract
7
-
8
- public constructor(protected request: XMLHttpRequest) {
9
- this.headers = this.parseHeaders(request.getAllResponseHeaders())
10
- this.response = new Response(this.getResponseBody(), {
11
- status: request.status,
12
- statusText: request.statusText,
13
- headers: Object.entries(this.headers).map(([key, value]) => [key, String(value)])
14
- })
15
- }
16
-
17
- public getStatusCode(): number | undefined {
18
- return this.request.status
19
- }
20
-
21
- public getHeaders(): ResolvedHeadersContract {
22
- return this.headers
23
- }
24
-
25
- public getRawResponse(): Response {
26
- return this.response
27
- }
28
-
29
- public async json<ResponseBodyInterface>(): Promise<ResponseBodyInterface> {
30
- return await this.response.json()
31
- }
32
-
33
- public async text(): Promise<string> {
34
- return await this.response.text()
35
- }
36
-
37
- public async blob(): Promise<Blob> {
38
- return await this.response.blob()
39
- }
40
-
41
- protected getResponseBody(): Blob | string | null {
42
- if ([204, 205, 304].includes(this.request.status)) {
43
- return null
44
- }
45
-
46
- if (this.request.response === null || this.request.response === undefined) {
47
- return null
48
- }
49
-
50
- if (this.isBlobLike(this.request.response) || typeof this.request.response === 'string') {
51
- return this.request.response
52
- }
53
-
54
- return new Blob([this.request.response])
55
- }
56
-
57
- protected isBlobLike(value: unknown): value is Blob {
58
- return (
59
- value instanceof Blob ||
60
- (typeof value === 'object' &&
61
- value !== null &&
62
- typeof (value as Blob).arrayBuffer === 'function' &&
63
- typeof (value as Blob).stream === 'function' &&
64
- typeof (value as Blob).text === 'function')
65
- )
66
- }
67
-
68
- protected parseHeaders(rawHeaders: string): ResolvedHeadersContract {
69
- const headers: ResolvedHeadersContract = {}
70
- const lines = rawHeaders.trim()
71
-
72
- if (lines.length === 0) {
73
- return headers
74
- }
75
-
76
- for (const line of lines.split(/\r?\n/)) {
77
- const separatorIndex = line.indexOf(':')
78
-
79
- if (separatorIndex === -1) {
80
- continue
81
- }
82
-
83
- const key = line.slice(0, separatorIndex).trim()
84
- const value = line.slice(separatorIndex + 1).trim()
85
-
86
- if (key.length === 0) {
87
- continue
88
- }
89
-
90
- headers[key] = key in headers ? `${String(headers[key])}, ${value}` : value
91
- }
92
-
93
- return headers
94
- }
95
- }
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class BadGatewayException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class BadRequestException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class ConflictException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class ForbiddenException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class GatewayTimeoutException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class GoneException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,15 +0,0 @@
1
- import { ResponseException } from './ResponseException'
2
- import { type ResponseHandlerContract } from '../drivers/contracts/ResponseHandlerContract'
3
-
4
- export class InvalidJsonException extends ResponseException {
5
- public constructor(
6
- response: ResponseHandlerContract,
7
- public cause: unknown
8
- ) {
9
- super(response)
10
- }
11
-
12
- public getCause(): unknown {
13
- return this.cause
14
- }
15
- }
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class LockedException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class MethodNotAllowedException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class NotFoundException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class NotImplementedException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class PageExpiredException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class PayloadTooLargeException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class PreconditionFailedException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class RequestTimeoutException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,15 +0,0 @@
1
- import { ResponseException } from './ResponseException'
2
- import { type ResponseHandlerContract } from '../drivers/contracts/ResponseHandlerContract'
3
-
4
- export class ResponseBodyException<ResponseErrorBody> extends ResponseException {
5
- public constructor(
6
- response: ResponseHandlerContract,
7
- protected body: ResponseErrorBody
8
- ) {
9
- super(response)
10
- }
11
-
12
- public getBody(): ResponseErrorBody {
13
- return this.body
14
- }
15
- }
@@ -1,11 +0,0 @@
1
- import { type ResponseHandlerContract } from '../drivers/contracts/ResponseHandlerContract'
2
-
3
- export class ResponseException extends Error {
4
- constructor(protected response: ResponseHandlerContract) {
5
- super()
6
- }
7
-
8
- public getResponse(): ResponseHandlerContract {
9
- return this.response
10
- }
11
- }
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class ServerErrorException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class ServiceUnavailableException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}
@@ -1,13 +0,0 @@
1
- export class StaleResponseException extends Error {
2
- public readonly cause: unknown
3
-
4
- public constructor(message: string = 'Stale response ignored', cause?: unknown) {
5
- super(message)
6
- this.name = 'StaleResponseException'
7
- this.cause = cause
8
- }
9
-
10
- public getCause(): unknown {
11
- return this.cause
12
- }
13
- }
@@ -1,3 +0,0 @@
1
- import { ResponseBodyException } from './ResponseBodyException'
2
-
3
- export class TooManyRequestsException<ResponseErrorBody> extends ResponseBodyException<ResponseErrorBody> {}