@blueprint-ts/core 4.1.0-beta.1 → 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 (507) 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 -213
  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 -105
  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 -61
  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/FormDataBody.ts +0 -81
  375. package/src/requests/bodies/JsonBody.ts +0 -16
  376. package/src/requests/contracts/BaseRequestContract.ts +0 -39
  377. package/src/requests/contracts/BodyContract.ts +0 -7
  378. package/src/requests/contracts/BodyFactoryContract.ts +0 -5
  379. package/src/requests/contracts/DriverConfigContract.ts +0 -9
  380. package/src/requests/contracts/HeadersContract.ts +0 -5
  381. package/src/requests/contracts/RequestDriverContract.ts +0 -15
  382. package/src/requests/contracts/RequestLoaderContract.ts +0 -5
  383. package/src/requests/contracts/ResponseContract.ts +0 -7
  384. package/src/requests/drivers/contracts/ResponseHandlerContract.ts +0 -10
  385. package/src/requests/drivers/fetch/FetchDriver.ts +0 -115
  386. package/src/requests/drivers/fetch/FetchResponse.ts +0 -30
  387. package/src/requests/drivers/xhr/XMLHttpRequestDriver.ts +0 -138
  388. package/src/requests/drivers/xhr/XMLHttpRequestResponse.ts +0 -95
  389. package/src/requests/exceptions/BadGatewayException.ts +0 -3
  390. package/src/requests/exceptions/BadRequestException.ts +0 -3
  391. package/src/requests/exceptions/ConflictException.ts +0 -3
  392. package/src/requests/exceptions/ForbiddenException.ts +0 -3
  393. package/src/requests/exceptions/GatewayTimeoutException.ts +0 -3
  394. package/src/requests/exceptions/GoneException.ts +0 -3
  395. package/src/requests/exceptions/InvalidJsonException.ts +0 -15
  396. package/src/requests/exceptions/LockedException.ts +0 -3
  397. package/src/requests/exceptions/MethodNotAllowedException.ts +0 -3
  398. package/src/requests/exceptions/NotFoundException.ts +0 -3
  399. package/src/requests/exceptions/NotImplementedException.ts +0 -3
  400. package/src/requests/exceptions/PageExpiredException.ts +0 -3
  401. package/src/requests/exceptions/PayloadTooLargeException.ts +0 -3
  402. package/src/requests/exceptions/PreconditionFailedException.ts +0 -3
  403. package/src/requests/exceptions/RequestTimeoutException.ts +0 -3
  404. package/src/requests/exceptions/ResponseBodyException.ts +0 -15
  405. package/src/requests/exceptions/ResponseException.ts +0 -11
  406. package/src/requests/exceptions/ServerErrorException.ts +0 -3
  407. package/src/requests/exceptions/ServiceUnavailableException.ts +0 -3
  408. package/src/requests/exceptions/StaleResponseException.ts +0 -13
  409. package/src/requests/exceptions/TooManyRequestsException.ts +0 -3
  410. package/src/requests/exceptions/UnauthorizedException.ts +0 -3
  411. package/src/requests/exceptions/UnsupportedMediaTypeException.ts +0 -3
  412. package/src/requests/exceptions/ValidationException.ts +0 -3
  413. package/src/requests/exceptions/index.ts +0 -51
  414. package/src/requests/factories/FormDataFactory.ts +0 -17
  415. package/src/requests/factories/JsonBodyFactory.ts +0 -9
  416. package/src/requests/index.ts +0 -61
  417. package/src/requests/responses/BaseResponse.ts +0 -41
  418. package/src/requests/responses/BlobResponse.ts +0 -19
  419. package/src/requests/responses/JsonResponse.ts +0 -15
  420. package/src/requests/responses/PlainTextResponse.ts +0 -15
  421. package/src/requests/types/RequestUploadProgress.ts +0 -6
  422. package/src/support/DeferredPromise.ts +0 -67
  423. package/src/support/helpers.ts +0 -78
  424. package/src/vue/composables/useConfirmDialog.ts +0 -63
  425. package/src/vue/composables/useGlobalCheckbox.ts +0 -145
  426. package/src/vue/composables/useIsEmpty.ts +0 -34
  427. package/src/vue/composables/useIsOpen.ts +0 -37
  428. package/src/vue/composables/useIsOpenFromVar.ts +0 -61
  429. package/src/vue/composables/useModelWrapper.ts +0 -27
  430. package/src/vue/composables/useOnOpen.ts +0 -34
  431. package/src/vue/contracts/ModelValueProps.ts +0 -3
  432. package/src/vue/forms/BaseForm.ts +0 -1192
  433. package/src/vue/forms/PropertyAwareArray.ts +0 -81
  434. package/src/vue/forms/types/PersistedForm.ts +0 -6
  435. package/src/vue/forms/validation/ValidationMode.enum.ts +0 -14
  436. package/src/vue/forms/validation/index.ts +0 -15
  437. package/src/vue/forms/validation/rules/BaseRule.ts +0 -7
  438. package/src/vue/forms/validation/rules/ConfirmedRule.ts +0 -39
  439. package/src/vue/forms/validation/rules/EmailRule.ts +0 -23
  440. package/src/vue/forms/validation/rules/JsonRule.ts +0 -28
  441. package/src/vue/forms/validation/rules/MinRule.ts +0 -61
  442. package/src/vue/forms/validation/rules/RequiredRule.ts +0 -19
  443. package/src/vue/forms/validation/rules/UrlRule.ts +0 -24
  444. package/src/vue/forms/validation/types/ValidationRules.ts +0 -15
  445. package/src/vue/index.ts +0 -14
  446. package/src/vue/requests/factories/VueRequestLoaderFactory.ts +0 -10
  447. package/src/vue/requests/loaders/VueRequestBatchLoader.ts +0 -35
  448. package/src/vue/requests/loaders/VueRequestLoader.ts +0 -18
  449. package/src/vue/router/routeResourceBinding/RouteResourceBoundView.ts +0 -145
  450. package/src/vue/router/routeResourceBinding/RouteResourceRequestResolver.ts +0 -11
  451. package/src/vue/router/routeResourceBinding/defineRoute.ts +0 -59
  452. package/src/vue/router/routeResourceBinding/index.ts +0 -11
  453. package/src/vue/router/routeResourceBinding/installRouteInjection.ts +0 -164
  454. package/src/vue/router/routeResourceBinding/types.ts +0 -53
  455. package/src/vue/router/routeResourceBinding/useRouteResource.ts +0 -24
  456. package/src/vue/state/State.ts +0 -380
  457. package/src/vue/state/index.ts +0 -3
  458. package/tests/service/bulkRequests/BulkRequestSender.test.ts +0 -76
  459. package/tests/service/bulkRequests/BulkRequestWrapper.test.ts +0 -51
  460. package/tests/service/helpers/mergeDeep.test.ts +0 -53
  461. package/tests/service/laravel/pagination/dataDrivers/RequestDriver.test.ts +0 -84
  462. package/tests/service/laravel/requests/JsonBaseRequest.test.ts +0 -43
  463. package/tests/service/laravel/requests/PaginationJsonBaseRequest.test.ts +0 -58
  464. package/tests/service/laravel/requests/responses/JsonResponse.test.ts +0 -59
  465. package/tests/service/laravel/requests/responses/PaginationResponse.test.ts +0 -127
  466. package/tests/service/pagination/BasePaginator.test.ts +0 -100
  467. package/tests/service/pagination/InfiniteScroller.test.ts +0 -101
  468. package/tests/service/pagination/PageAwarePaginator.test.ts +0 -133
  469. package/tests/service/pagination/StatePaginator.test.ts +0 -76
  470. package/tests/service/pagination/VueViewDrivers.test.ts +0 -46
  471. package/tests/service/pagination/dtos/PaginationDataDto.test.ts +0 -35
  472. package/tests/service/pagination/dtos/StatePaginationDataDto.test.ts +0 -14
  473. package/tests/service/pagination/factories/VuePaginationDriverFactory.test.ts +0 -32
  474. package/tests/service/pagination/frontendDrivers/VuePaginationDriver.test.ts +0 -66
  475. package/tests/service/persistenceDrivers/PersistenceDrivers.test.ts +0 -56
  476. package/tests/service/requests/BaseRequest.test.ts +0 -250
  477. package/tests/service/requests/BodiesAndFactories.test.ts +0 -28
  478. package/tests/service/requests/Enums.test.ts +0 -20
  479. package/tests/service/requests/ErrorHandler.test.ts +0 -188
  480. package/tests/service/requests/FormDataBody.test.ts +0 -63
  481. package/tests/service/requests/RequestErrorRouter.test.ts +0 -44
  482. package/tests/service/requests/Responses.test.ts +0 -83
  483. package/tests/service/requests/exceptions/Exceptions.test.ts +0 -43
  484. package/tests/service/requests/fetch/FetchDriver.test.ts +0 -76
  485. package/tests/service/requests/fetch/FetchResponse.test.ts +0 -21
  486. package/tests/service/requests/xhr/XMLHttpRequestDriver.test.ts +0 -178
  487. package/tests/service/support/DeferredPromise.test.ts +0 -40
  488. package/tests/service/support/helpers.test.ts +0 -37
  489. package/tests/vue/composables/useConfirmDialog.test.ts +0 -77
  490. package/tests/vue/composables/useGlobalCheckbox.test.ts +0 -126
  491. package/tests/vue/composables/useIsEmpty.test.ts +0 -18
  492. package/tests/vue/composables/useIsOpen.test.ts +0 -25
  493. package/tests/vue/composables/useIsOpenFromVar.test.ts +0 -22
  494. package/tests/vue/composables/useModelWrapper.test.ts +0 -30
  495. package/tests/vue/composables/useOnOpen.test.ts +0 -26
  496. package/tests/vue/forms/BaseForm.behavior.test.ts +0 -98
  497. package/tests/vue/forms/BaseForm.transformers.test.ts +0 -109
  498. package/tests/vue/forms/PropertyAwareArray.test.ts +0 -30
  499. package/tests/vue/forms/validation/ValidationRules.test.ts +0 -79
  500. package/tests/vue/requests/VueRequestLoaders.test.ts +0 -48
  501. package/tests/vue/router/routeResourceBinding/RouteResourceBoundView.test.ts +0 -344
  502. package/tests/vue/router/routeResourceBinding/RouteResourceUtils.test.ts +0 -70
  503. package/tests/vue/router/routeResourceBinding/installRouteInjection.test.ts +0 -450
  504. package/tests/vue/state/State.test.ts +0 -151
  505. package/tsconfig.json +0 -114
  506. package/vite.config.ts +0 -34
  507. package/vitest.config.ts +0 -23
@@ -1,250 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest'
2
- import { BaseRequest } from '../../../src/requests/BaseRequest'
3
- import { BaseResponse } from '../../../src/requests/responses/BaseResponse'
4
- import { JsonBodyFactory } from '../../../src/requests/factories/JsonBodyFactory'
5
- import { RequestMethodEnum } from '../../../src/requests/RequestMethod.enum'
6
- import { RequestEvents } from '../../../src/requests/RequestEvents.enum'
7
- import { RequestConcurrencyMode } from '../../../src/requests/RequestConcurrencyMode.enum'
8
- import { StaleResponseException } from '../../../src/requests/exceptions/StaleResponseException'
9
- import { ResponseException } from '../../../src/requests/exceptions/ResponseException'
10
- import { ErrorHandler } from '../../../src/requests/ErrorHandler'
11
- import type { RequestDriverContract } from '../../../src/requests/contracts/RequestDriverContract'
12
- import type { RequestLoaderContract } from '../../../src/requests/contracts/RequestLoaderContract'
13
- import type { RequestLoaderFactoryContract } from '../../../src/requests/contracts/RequestLoaderFactoryContract'
14
- import type { ResponseHandlerContract } from '../../../src/requests/drivers/contracts/ResponseHandlerContract'
15
-
16
- class TestResponse extends BaseResponse<string> {
17
- public getAcceptHeader(): string {
18
- return 'text/plain'
19
- }
20
-
21
- protected resolveBody(): Promise<string> {
22
- return Promise.resolve('ok')
23
- }
24
- }
25
-
26
- class TestLoader implements RequestLoaderContract<boolean> {
27
- private loading = false
28
-
29
- isLoading(): boolean {
30
- return this.loading
31
- }
32
-
33
- setLoading(value: boolean): void {
34
- this.loading = value
35
- }
36
- }
37
-
38
- class TestRequest extends BaseRequest<boolean, { message: string }, string, TestResponse, { name: string }, { filter?: { active?: boolean } }> {
39
- public method(): RequestMethodEnum {
40
- return RequestMethodEnum.POST
41
- }
42
-
43
- public url(): string {
44
- return '/test'
45
- }
46
-
47
- public getResponse(): TestResponse {
48
- return new TestResponse()
49
- }
50
-
51
- public requestHeaders() {
52
- return { 'X-Req': 'value' }
53
- }
54
-
55
- public getRequestBodyFactory() {
56
- return new JsonBodyFactory<{ name: string }>()
57
- }
58
- }
59
-
60
- const createResponseHandler = (): ResponseHandlerContract => ({
61
- getStatusCode: () => 200,
62
- getHeaders: () => ({}),
63
- getRawResponse: () => new Response('ok'),
64
- json: async () => ({ ok: true }),
65
- text: async () => 'ok',
66
- blob: async () => new Blob(),
67
- })
68
-
69
- describe('BaseRequest', () => {
70
- beforeEach(() => {
71
- BaseRequest.setDefaultBaseUrl('https://example.com')
72
- BaseRequest.setRequestLoaderFactory(undefined as unknown as RequestLoaderFactoryContract<boolean>)
73
- BaseRequest.setRequestDriver(undefined as unknown as RequestDriverContract)
74
- })
75
-
76
- it('builds URLs with params and merges params deeply', () => {
77
- const request = new TestRequest()
78
-
79
- request.setParams({ filter: { active: true } })
80
- request.withParams({ filter: { active: false } })
81
-
82
- expect(request.getParams()).toEqual({ filter: { active: false } })
83
-
84
- const url = request.buildUrl()
85
- expect(url.toString()).toBe('https://example.com/test?filter%5Bactive%5D=false')
86
- })
87
-
88
- it('dispatches loading events and toggles loader', async () => {
89
- const loaderFactory: RequestLoaderFactoryContract<boolean> = {
90
- make: () => new TestLoader(),
91
- }
92
-
93
- BaseRequest.setRequestLoaderFactory(loaderFactory)
94
-
95
- const driver: RequestDriverContract = {
96
- send: vi.fn().mockResolvedValue(createResponseHandler()),
97
- }
98
- BaseRequest.setRequestDriver(driver)
99
-
100
- const request = new TestRequest()
101
- const loadingEvents: boolean[] = []
102
-
103
- request.on(RequestEvents.LOADING, (value: boolean) => loadingEvents.push(value))
104
- request.setBody({ name: 'Ada' })
105
-
106
- const response = await request.send()
107
-
108
- expect(response.getBody()).toBe('ok')
109
- expect(loadingEvents).toEqual([true, false])
110
- expect(request.isLoading()).toBe(false)
111
-
112
- expect(driver.send).toHaveBeenCalledTimes(1)
113
-
114
- const [url, method, headers, body] = (driver.send as ReturnType<typeof vi.fn>).mock.calls[0]
115
- expect(url.toString()).toBe('https://example.com/test')
116
- expect(method).toBe(RequestMethodEnum.POST)
117
- expect(headers).toEqual({ Accept: 'text/plain', 'X-Req': 'value' })
118
- expect(body?.getContent()).toBe('{"name":"Ada"}')
119
- })
120
-
121
- it('dispatches upload progress events from the driver config callback', async () => {
122
- const driver: RequestDriverContract = {
123
- send: vi.fn().mockImplementation(async (_url, _method, _headers, _body, requestConfig) => {
124
- requestConfig?.onUploadProgress?.({
125
- loaded: 5,
126
- total: 10,
127
- lengthComputable: true,
128
- progress: 0.5,
129
- })
130
-
131
- return createResponseHandler()
132
- }),
133
- }
134
-
135
- BaseRequest.setRequestDriver(driver)
136
-
137
- const request = new TestRequest()
138
- const progressEvents: Array<number | undefined> = []
139
-
140
- request.on(RequestEvents.UPLOAD_PROGRESS, (value: { progress?: number }) => progressEvents.push(value.progress))
141
- request.setBody({ name: 'Ada' })
142
-
143
- await request.send()
144
-
145
- expect(progressEvents).toEqual([0.5])
146
- })
147
-
148
- it('throws when loading state is requested without a loader', () => {
149
- const request = new TestRequest()
150
-
151
- expect(() => request.isLoading()).toThrow('Request loader is not set.')
152
- })
153
-
154
- it('marks stale responses when using LATEST concurrency mode', async () => {
155
- const driver: RequestDriverContract = {
156
- send: vi.fn(),
157
- }
158
- BaseRequest.setRequestDriver(driver)
159
-
160
- const resolvers: Array<(value: ResponseHandlerContract) => void> = []
161
-
162
- ;(driver.send as ReturnType<typeof vi.fn>).mockImplementation(() =>
163
- new Promise<ResponseHandlerContract>((resolve) => {
164
- resolvers.push(resolve)
165
- })
166
- )
167
-
168
- const request = new TestRequest()
169
- request.setConcurrency({ mode: RequestConcurrencyMode.LATEST, key: 'latest-test' })
170
-
171
- const first = request.send()
172
- const second = request.send()
173
-
174
- resolvers[1](createResponseHandler())
175
- await expect(second).resolves.toBeInstanceOf(TestResponse)
176
-
177
- resolvers[0](createResponseHandler())
178
- await expect(first).rejects.toBeInstanceOf(StaleResponseException)
179
- })
180
-
181
- it('aborts previous request when using REPLACE mode', async () => {
182
- const driver: RequestDriverContract = {
183
- send: vi.fn(),
184
- }
185
- BaseRequest.setRequestDriver(driver)
186
-
187
- const request = new TestRequest()
188
- request.setConcurrency({ mode: RequestConcurrencyMode.REPLACE, key: 'replace-test' })
189
-
190
- const resolvers: Array<(value: ResponseHandlerContract) => void> = []
191
- ;(driver.send as ReturnType<typeof vi.fn>).mockImplementation(() =>
192
- new Promise<ResponseHandlerContract>((resolve) => {
193
- resolvers.push(resolve)
194
- })
195
- )
196
-
197
- const firstPromise = request.send()
198
- const firstConfig = (driver.send as ReturnType<typeof vi.fn>).mock.calls[0][4]
199
-
200
- const secondPromise = request.send()
201
-
202
- expect(firstConfig?.abortSignal?.aborted).toBe(true)
203
-
204
- resolvers[0](createResponseHandler())
205
- resolvers[1](createResponseHandler())
206
-
207
- await Promise.allSettled([firstPromise, secondPromise])
208
- })
209
-
210
- it('invokes ErrorHandler when a ResponseException is thrown', async () => {
211
- const responseHandler = createResponseHandler()
212
- const responseException = new ResponseException(responseHandler)
213
-
214
- const driver: RequestDriverContract = {
215
- send: vi.fn().mockRejectedValue(responseException),
216
- }
217
- BaseRequest.setRequestDriver(driver)
218
-
219
- const handleSpy = vi.spyOn(ErrorHandler.prototype, 'handle').mockResolvedValue(undefined as never)
220
-
221
- const request = new TestRequest()
222
-
223
- await expect(request.send()).rejects.toBe(responseException)
224
- expect(handleSpy).toHaveBeenCalledTimes(1)
225
- })
226
-
227
- it('uses a request-defined driver when provided', async () => {
228
- const globalDriver: RequestDriverContract = {
229
- send: vi.fn().mockResolvedValue(createResponseHandler()),
230
- }
231
- const requestDriver: RequestDriverContract = {
232
- send: vi.fn().mockResolvedValue(createResponseHandler()),
233
- }
234
-
235
- BaseRequest.setRequestDriver(globalDriver)
236
-
237
- class DriverSpecificRequest extends TestRequest {
238
- protected override getRequestDriver(): RequestDriverContract {
239
- return requestDriver
240
- }
241
- }
242
-
243
- const request = new DriverSpecificRequest()
244
-
245
- await request.send()
246
-
247
- expect(requestDriver.send).toHaveBeenCalledTimes(1)
248
- expect(globalDriver.send).not.toHaveBeenCalled()
249
- })
250
- })
@@ -1,28 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
- import { JsonBody } from '../../../src/requests/bodies/JsonBody'
3
- import { JsonBodyFactory } from '../../../src/requests/factories/JsonBodyFactory'
4
- import { FormDataFactory } from '../../../src/requests/factories/FormDataFactory'
5
- import { FormDataBody } from '../../../src/requests/bodies/FormDataBody'
6
-
7
- describe('Request bodies and factories', () => {
8
- it('JsonBody returns headers and JSON content', () => {
9
- const body = new JsonBody({ hello: 'world' })
10
-
11
- expect(body.getHeaders()).toEqual({ 'Content-Type': 'application/json' })
12
- expect(body.getContent()).toBe('{"hello":"world"}')
13
- })
14
-
15
- it('JsonBodyFactory returns JsonBody', () => {
16
- const factory = new JsonBodyFactory<{ foo: string }>()
17
- const body = factory.make({ foo: 'bar' })
18
-
19
- expect(body).toBeInstanceOf(JsonBody)
20
- })
21
-
22
- it('FormDataFactory returns FormDataBody', () => {
23
- const factory = new FormDataFactory<{ name: string }>()
24
- const body = factory.make({ name: 'alice' })
25
-
26
- expect(body).toBeInstanceOf(FormDataBody)
27
- })
28
- })
@@ -1,20 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
- import { RequestMethodEnum } from '../../../src/requests/RequestMethod.enum'
3
- import { RequestEvents } from '../../../src/requests/RequestEvents.enum'
4
- import { RequestConcurrencyMode } from '../../../src/requests/RequestConcurrencyMode.enum'
5
- import { BulkRequestExecutionMode } from '../../../src/bulkRequests/BulkRequestSender'
6
-
7
-
8
- describe('Enums', () => {
9
- it('exposes expected request enums', () => {
10
- expect(RequestMethodEnum.GET).toBe('GET')
11
- expect(RequestEvents.LOADING).toBe('loading')
12
- expect(RequestEvents.UPLOAD_PROGRESS).toBe('upload-progress')
13
- expect(RequestConcurrencyMode.REPLACE_LATEST).toBe('replace-latest')
14
- })
15
-
16
- it('exposes bulk request execution modes', () => {
17
- expect(BulkRequestExecutionMode.PARALLEL).toBe('parallel')
18
- expect(BulkRequestExecutionMode.SEQUENTIAL).toBe('sequential')
19
- })
20
- })
@@ -1,188 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { ErrorHandler } from '../../../src/requests'
3
-
4
- import {
5
- PageExpiredException,
6
- NotFoundException,
7
- UnauthorizedException,
8
- ValidationException,
9
- ResponseException,
10
- NoResponseReceivedException,
11
- ServerErrorException,
12
- InvalidJsonException,
13
- BadRequestException,
14
- ForbiddenException,
15
- MethodNotAllowedException,
16
- RequestTimeoutException,
17
- ConflictException,
18
- GoneException,
19
- PreconditionFailedException,
20
- PayloadTooLargeException,
21
- UnsupportedMediaTypeException,
22
- LockedException,
23
- TooManyRequestsException,
24
- NotImplementedException,
25
- BadGatewayException,
26
- ServiceUnavailableException,
27
- GatewayTimeoutException
28
- } from '../../../src/requests/exceptions';
29
-
30
- describe('ErrorHandler', () => {
31
- beforeEach(() => {
32
- ErrorHandler.registerHandler(undefined);
33
- });
34
-
35
- it('should throw UnauthorizedException for status code 401', async () => {
36
- const mockResponse = {
37
- getStatusCode: vi.fn().mockReturnValue(401),
38
- json: vi.fn().mockResolvedValue({}),
39
- };
40
-
41
- const handler = new ErrorHandler(mockResponse as any)
42
-
43
- await expect(handler.handle()).rejects.toThrow(UnauthorizedException);
44
-
45
- expect(mockResponse.getStatusCode).toHaveBeenCalled();
46
- expect(mockResponse.json).toHaveBeenCalled();
47
- });
48
-
49
- it('should throw NotFoundException for status code 404', async () => {
50
- const mockResponse = {
51
- getStatusCode: vi.fn().mockReturnValue(404),
52
- json: vi.fn().mockResolvedValue({}),
53
- };
54
-
55
- const handler = new ErrorHandler(mockResponse as any)
56
-
57
- await expect(handler.handle()).rejects.toThrow(NotFoundException);
58
-
59
- expect(mockResponse.getStatusCode).toHaveBeenCalled();
60
- expect(mockResponse.json).toHaveBeenCalled();
61
- });
62
-
63
- it('should throw PageExpiredException for status code 419', async () => {
64
- const mockResponse = {
65
- getStatusCode: vi.fn().mockReturnValue(419),
66
- json: vi.fn().mockResolvedValue({}),
67
- };
68
-
69
- const handler = new ErrorHandler(mockResponse as any)
70
-
71
- await expect(handler.handle()).rejects.toThrow(PageExpiredException);
72
-
73
- expect(mockResponse.getStatusCode).toHaveBeenCalled();
74
- expect(mockResponse.json).toHaveBeenCalled();
75
- });
76
-
77
- it('should throw ValidationException for status code 422', async () => {
78
- const mockResponse = {
79
- getStatusCode: vi.fn().mockReturnValue(422),
80
- json: vi.fn().mockResolvedValue({}),
81
- };
82
-
83
- const handler = new ErrorHandler(mockResponse as any)
84
-
85
- await expect(handler.handle()).rejects.toThrow(ValidationException);
86
-
87
- expect(mockResponse.getStatusCode).toHaveBeenCalled();
88
- expect(mockResponse.json).toHaveBeenCalled();
89
- });
90
-
91
- it('should throw ServerErrorException for status code 500', async () => {
92
- const mockResponse = {
93
- getStatusCode: vi.fn().mockReturnValue(500),
94
- json: vi.fn().mockResolvedValue({}),
95
- };
96
-
97
- const handler = new ErrorHandler(mockResponse as any)
98
-
99
- await expect(handler.handle()).rejects.toThrow(ServerErrorException);
100
-
101
- expect(mockResponse.getStatusCode).toHaveBeenCalled();
102
- expect(mockResponse.json).toHaveBeenCalled();
103
- });
104
-
105
- it('should throw NoResponseReceivedException if response body is undefined', async () => {
106
- const mockResponse = {
107
- getStatusCode: vi.fn().mockReturnValue(undefined),
108
- json: vi.fn().mockResolvedValue(undefined),
109
- };
110
-
111
- const handler = new ErrorHandler(mockResponse as any)
112
-
113
- await expect(handler.handle()).rejects.toThrow(NoResponseReceivedException);
114
- expect(mockResponse.json).toHaveBeenCalled();
115
- });
116
-
117
- it('should throw ResponseException for other status codes', async () => {
118
- const mockResponse = {
119
- getStatusCode: vi.fn().mockReturnValue(499),
120
- json: vi.fn().mockResolvedValue({}),
121
- };
122
-
123
- const handler = new ErrorHandler(mockResponse as any)
124
-
125
- await expect(handler.handle()).rejects.toThrow(ResponseException);
126
-
127
- expect(mockResponse.getStatusCode).toHaveBeenCalled();
128
- expect(mockResponse.json).toHaveBeenCalled();
129
- });
130
-
131
- it('should correctly use global error handler if registered', async () => {
132
- const handlerMock = vi.fn().mockReturnValue(false);
133
- ErrorHandler.registerHandler(handlerMock);
134
-
135
- const mockResponse = {
136
- getStatusCode: vi.fn().mockReturnValue(500),
137
- json: vi.fn().mockResolvedValue({}),
138
- };
139
-
140
- const handler = new ErrorHandler(mockResponse as any)
141
-
142
- await expect(handler.handle()).resolves.toBeUndefined();
143
-
144
- expect(handlerMock).toHaveBeenCalledWith(mockResponse);
145
- expect(mockResponse.json).not.toHaveBeenCalled();
146
- });
147
-
148
- it('should throw InvalidJsonException when response parsing fails', async () => {
149
- const mockResponse = {
150
- getStatusCode: vi.fn().mockReturnValue(500),
151
- json: vi.fn().mockRejectedValue(new Error('Invalid JSON')),
152
- };
153
-
154
- const handler = new ErrorHandler(mockResponse as any)
155
-
156
- await expect(handler.handle()).rejects.toThrow(InvalidJsonException);
157
- expect(mockResponse.json).toHaveBeenCalled();
158
- });
159
-
160
- it.each([
161
- [400, BadRequestException],
162
- [403, ForbiddenException],
163
- [405, MethodNotAllowedException],
164
- [408, RequestTimeoutException],
165
- [409, ConflictException],
166
- [410, GoneException],
167
- [412, PreconditionFailedException],
168
- [413, PayloadTooLargeException],
169
- [415, UnsupportedMediaTypeException],
170
- [423, LockedException],
171
- [429, TooManyRequestsException],
172
- [501, NotImplementedException],
173
- [502, BadGatewayException],
174
- [503, ServiceUnavailableException],
175
- [504, GatewayTimeoutException],
176
- ])('should throw correct exception for status code %i', async (status, ExceptionType) => {
177
- const mockResponse = {
178
- getStatusCode: vi.fn().mockReturnValue(status),
179
- json: vi.fn().mockResolvedValue({}),
180
- };
181
-
182
- const handler = new ErrorHandler(mockResponse as any);
183
-
184
- await expect(handler.handle()).rejects.toThrow(ExceptionType);
185
- expect(mockResponse.getStatusCode).toHaveBeenCalled();
186
- expect(mockResponse.json).toHaveBeenCalled();
187
- });
188
- });
@@ -1,63 +0,0 @@
1
- import { describe, it, expect } from 'vitest'
2
- import { FormDataBody } from '../../../src/requests/bodies/FormDataBody'
3
-
4
- describe('FormDataBody', () => {
5
- it('appends strings and files', () => {
6
- const file = new File(['abc'], 'credentials.kdbx', { type: 'application/octet-stream' })
7
-
8
- const body = new FormDataBody({
9
- name: 'aerg',
10
- type: 'kdbx',
11
- password: 'aerg',
12
- file,
13
- })
14
-
15
- const fd = body.getContent()
16
-
17
- expect(fd.get('name')).toBe('aerg')
18
- expect(fd.get('type')).toBe('kdbx')
19
- expect(fd.get('password')).toBe('aerg')
20
- expect(fd.get('file')).toBe(file)
21
- })
22
-
23
- it('encodes null as empty string (key present)', () => {
24
- const body = new FormDataBody({
25
- name: 'aerg',
26
- file: null,
27
- })
28
-
29
- const fd = body.getContent()
30
- expect(fd.get('name')).toBe('aerg')
31
- expect(fd.get('file')).toBe('')
32
- })
33
-
34
- it('rejects undefined values (should not be silently dropped)', () => {
35
- expect(
36
- () =>
37
- new FormDataBody({
38
- missing: undefined,
39
- } as any),
40
- ).toThrow()
41
- })
42
-
43
- it('stringifies number/boolean values', () => {
44
- const body = new FormDataBody({
45
- count: 3,
46
- enabled: false,
47
- })
48
-
49
- const fd = body.getContent()
50
- expect(fd.get('count')).toBe('3')
51
- expect(fd.get('enabled')).toBe('false')
52
- })
53
-
54
- it('supports arrays via bracket notation', () => {
55
- const body = new FormDataBody({
56
- tags: ['a', 'b'],
57
- })
58
-
59
- const fd = body.getContent()
60
- expect(fd.get('tags[0]')).toBe('a')
61
- expect(fd.get('tags[1]')).toBe('b')
62
- })
63
- })
@@ -1,44 +0,0 @@
1
- import { describe, expect, it, vi } from 'vitest'
2
- import { RequestErrorRouter } from '../../../src/requests/RequestErrorRouter'
3
- import { BadRequestException } from '../../../src/requests/exceptions/BadRequestException'
4
-
5
- const mockResponse = {
6
- getStatusCode: () => 400,
7
- getHeaders: () => ({}),
8
- getRawResponse: () => new Response(),
9
- json: async () => ({}),
10
- text: async () => '',
11
- blob: async () => new Blob(),
12
- }
13
-
14
- describe('RequestErrorRouter', () => {
15
- it('routes known errors to handlers', async () => {
16
- const router = new RequestErrorRouter()
17
- const handler = vi.fn()
18
-
19
- router.on(BadRequestException, handler)
20
-
21
- const handled = await router.handle(new BadRequestException(mockResponse as any, { message: 'bad' }))
22
-
23
- expect(handled).toBe(true)
24
- expect(handler).toHaveBeenCalledTimes(1)
25
- })
26
-
27
- it('uses default handler when no match found', async () => {
28
- const router = new RequestErrorRouter()
29
- const fallback = vi.fn()
30
-
31
- router.otherwise(fallback)
32
-
33
- const handled = await router.handle(new Error('other'))
34
-
35
- expect(handled).toBe(true)
36
- expect(fallback).toHaveBeenCalledTimes(1)
37
- })
38
-
39
- it('returns false when no handlers are registered', async () => {
40
- const router = new RequestErrorRouter()
41
-
42
- await expect(router.handle(new Error('nope'))).resolves.toBe(false)
43
- })
44
- })
@@ -1,83 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
- import { BaseResponse } from '../../../src/requests/responses/BaseResponse'
3
- import { JsonResponse } from '../../../src/requests/responses/JsonResponse'
4
- import { PlainTextResponse } from '../../../src/requests/responses/PlainTextResponse'
5
- import { BlobResponse } from '../../../src/requests/responses/BlobResponse'
6
- import type { ResponseHandlerContract } from '../../../src/requests/drivers/contracts/ResponseHandlerContract'
7
-
8
- class TestResponse extends BaseResponse<string> {
9
- public getAcceptHeader(): string {
10
- return 'text/plain'
11
- }
12
-
13
- protected resolveBody(): Promise<string> {
14
- return Promise.resolve('ok')
15
- }
16
- }
17
-
18
- const mockResponseHandler: ResponseHandlerContract = {
19
- getStatusCode: () => 200,
20
- getHeaders: () => ({ 'x-test': 'yes' }),
21
- getRawResponse: () => new Response('raw'),
22
- json: async () => ({ ok: true }),
23
- text: async () => 'plain',
24
- blob: async () => new Blob(['blob'], { type: 'text/plain' }),
25
- }
26
-
27
- describe('Response classes', () => {
28
- it('BaseResponse throws if body not set', () => {
29
- const response = new TestResponse()
30
-
31
- expect(() => response.getBody()).toThrow('Response body is not set')
32
- })
33
-
34
- it('BaseResponse stores response metadata and body', async () => {
35
- const response = new TestResponse()
36
-
37
- await response.setResponse(mockResponseHandler)
38
-
39
- expect(response.getBody()).toBe('ok')
40
- expect(response.getStatusCode()).toBe(200)
41
- expect(response.getHeaders()).toEqual({ 'x-test': 'yes' })
42
- expect(response.getRawResponse()).toBeInstanceOf(Response)
43
- })
44
-
45
- it('JsonResponse resolves JSON body', async () => {
46
- const response = new JsonResponse<{ ok: boolean }>()
47
-
48
- await response.setResponse(mockResponseHandler)
49
-
50
- expect(response.getAcceptHeader()).toBe('application/json')
51
- expect(response.getBody()).toEqual({ ok: true })
52
- })
53
-
54
- it('PlainTextResponse resolves text body', async () => {
55
- const response = new PlainTextResponse()
56
-
57
- await response.setResponse(mockResponseHandler)
58
-
59
- expect(response.getAcceptHeader()).toBe('text/plain')
60
- expect(response.getBody()).toBe('plain')
61
- })
62
-
63
- it('BlobResponse resolves blob body and uses mime type', async () => {
64
- const response = new BlobResponse('application/pdf')
65
-
66
- await response.setResponse(mockResponseHandler)
67
-
68
- expect(response.getAcceptHeader()).toBe('application/pdf')
69
- expect(response.getBody()).toBeInstanceOf(Blob)
70
- })
71
-
72
- it('throws when resolveBody is called without a response', () => {
73
- const response = new JsonResponse()
74
-
75
- expect(() => (response as any).resolveBody()).toThrow('Response is not set')
76
-
77
- const plain = new PlainTextResponse()
78
- expect(() => (plain as any).resolveBody()).toThrow('Response is not set')
79
-
80
- const blob = new BlobResponse()
81
- expect(() => (blob as any).resolveBody()).toThrow('Response is not set')
82
- })
83
- })