@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,196 +0,0 @@
1
- import { BulkRequestWrapper } from './BulkRequestWrapper'
2
- import { BulkRequestEventEnum } from './BulkRequestEvent.enum'
3
-
4
- export enum BulkRequestExecutionMode {
5
- PARALLEL = 'parallel',
6
- SEQUENTIAL = 'sequential'
7
- }
8
-
9
- export class BulkRequestSender<
10
- RequestLoaderLoadingType = unknown,
11
- RequestBodyInterface = unknown,
12
- ResponseClass = unknown,
13
- RequestParamsInterface extends object = object
14
- > {
15
- protected events: Map<
16
- BulkRequestEventEnum,
17
- ((req: BulkRequestWrapper<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface>) => void)[]
18
- > = new Map()
19
- protected abortController: AbortController | undefined = undefined
20
-
21
- public constructor(
22
- protected requests: BulkRequestWrapper<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface>[] = [],
23
- protected executionMode: BulkRequestExecutionMode = BulkRequestExecutionMode.PARALLEL,
24
- protected retryCount: number = 0
25
- ) {}
26
-
27
- public setRequests(requests: BulkRequestWrapper<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface>[] = []) {
28
- this.requests = requests
29
-
30
- return this
31
- }
32
-
33
- public setExecutionMode(mode: BulkRequestExecutionMode): this {
34
- this.executionMode = mode
35
-
36
- return this
37
- }
38
-
39
- public setRetryCount(count: number): this {
40
- this.retryCount = count
41
-
42
- return this
43
- }
44
-
45
- public get isLoading(): boolean {
46
- return this.requests.some((req) => Boolean(req.isLoading() as unknown))
47
- }
48
-
49
- public on(
50
- event: BulkRequestEventEnum,
51
- callback: (req: BulkRequestWrapper<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface>) => void
52
- ): this {
53
- if (!this.events.has(event)) {
54
- this.events.set(event, [])
55
- }
56
-
57
- this.events.get(event)!.push(callback)
58
-
59
- return this
60
- }
61
-
62
- public off(event: BulkRequestEventEnum): this {
63
- this.events.delete(event)
64
-
65
- return this
66
- }
67
-
68
- protected emit(
69
- event: BulkRequestEventEnum,
70
- req: BulkRequestWrapper<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface>
71
- ): void {
72
- const callbacks = this.events.get(event) || []
73
-
74
- callbacks.forEach((callback) => callback(req))
75
- }
76
-
77
- public get signal(): AbortSignal | undefined {
78
- return this.abortController?.signal
79
- }
80
-
81
- public abort(): void {
82
- this.abortController?.abort()
83
- }
84
-
85
- public async send() {
86
- this.abortController = new AbortController()
87
-
88
- try {
89
- if (this.executionMode === BulkRequestExecutionMode.PARALLEL) {
90
- await this.sendParallel()
91
- } else {
92
- await this.sendSequential()
93
- }
94
- } catch (error) {
95
- // If an abort occurs, the underlying fetch (or request mechanism) should throw an AbortError.
96
- console.error('Bulk operation aborted or encountered an error:', error)
97
- }
98
-
99
- return {
100
- getSuccessCount: () => this.requests.filter((r) => !r.hasError()).length,
101
- getErrorCount: () => this.requests.filter((r) => r.hasError()).length,
102
- getSuccessfulResponses: () =>
103
- this.requests
104
- .filter((r) => !r.hasError())
105
- .map((r) => r.getResponse())
106
- .filter((response): response is ResponseClass => response !== null),
107
- getFailedResponses: () => this.requests.filter((r) => r.hasError()).map((r) => r.getError())
108
- }
109
- }
110
-
111
- protected async sendParallel() {
112
- // First attempt for all requests
113
- await Promise.all(
114
- this.requests.map((req) =>
115
- req.send(this.abortController?.signal).then(() => {
116
- if (!req.hasError()) {
117
- this.emit(BulkRequestEventEnum.REQUEST_SUCCESSFUL, req)
118
- }
119
- })
120
- )
121
- )
122
-
123
- // Retry logic for failed requests
124
- let retriesLeft = this.retryCount
125
- while (retriesLeft > 0) {
126
- const failedRequests = this.requests.filter((req) => req.hasError())
127
-
128
- if (failedRequests.length === 0) {
129
- break // No failed requests to retry
130
- }
131
-
132
- console.log(`Retrying ${failedRequests.length} failed requests. Attempts left: ${retriesLeft}`)
133
-
134
- await Promise.all(
135
- failedRequests.map((req) =>
136
- req.send(this.abortController?.signal).then(() => {
137
- if (!req.hasError()) {
138
- // Success after retry
139
- this.emit(BulkRequestEventEnum.REQUEST_SUCCESSFUL, req)
140
- }
141
- })
142
- )
143
- )
144
-
145
- retriesLeft--
146
- }
147
-
148
- // Emit failed events for any requests that still have errors after all retries
149
- this.requests
150
- .filter((req) => req.hasError())
151
- .forEach((req) => {
152
- this.emit(BulkRequestEventEnum.REQUEST_FAILED, req)
153
- })
154
- }
155
-
156
- protected async sendSequential() {
157
- // First attempt for all requests
158
- for (const req of this.requests) {
159
- await req.send(this.abortController?.signal)
160
-
161
- if (!req.hasError()) {
162
- this.emit(BulkRequestEventEnum.REQUEST_SUCCESSFUL, req)
163
- }
164
- }
165
-
166
- // Retry logic for failed requests
167
- let retriesLeft = this.retryCount
168
- while (retriesLeft > 0) {
169
- const failedRequests = this.requests.filter((req) => req.hasError())
170
-
171
- if (failedRequests.length === 0) {
172
- break // No failed requests to retry
173
- }
174
-
175
- console.log(`Retrying ${failedRequests.length} failed requests sequentially. Attempts left: ${retriesLeft}`)
176
-
177
- for (const req of failedRequests) {
178
- await req.send(this.abortController?.signal)
179
-
180
- if (!req.hasError()) {
181
- // Success after retry
182
- this.emit(BulkRequestEventEnum.REQUEST_SUCCESSFUL, req)
183
- }
184
- }
185
-
186
- retriesLeft--
187
- }
188
-
189
- // Emit failed events for any requests that still have errors after all retries
190
- this.requests
191
- .filter((req) => req.hasError())
192
- .forEach((req) => {
193
- this.emit(BulkRequestEventEnum.REQUEST_FAILED, req)
194
- })
195
- }
196
- }
@@ -1,49 +0,0 @@
1
- import { type BaseRequestContract } from '../requests'
2
-
3
- export class BulkRequestWrapper<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface extends object> {
4
- protected response: ResponseClass | null = null
5
- protected error: unknown | null = null
6
- protected sent: boolean = false
7
-
8
- public constructor(protected request: BaseRequestContract<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface>) {}
9
-
10
- public async send(signal?: AbortSignal) {
11
- try {
12
- if (signal !== undefined) {
13
- this.request.setAbortSignal(signal)
14
- }
15
-
16
- this.response = await this.request.send()
17
- } catch (err) {
18
- console.error(err)
19
-
20
- this.error = err
21
- }
22
-
23
- this.sent = true
24
- }
25
-
26
- public isLoading(): RequestLoaderLoadingType {
27
- return this.request.isLoading()
28
- }
29
-
30
- public getResponse(): ResponseClass | null {
31
- return this.response
32
- }
33
-
34
- public getError(): unknown | null {
35
- return this.error
36
- }
37
-
38
- public getRequest(): BaseRequestContract<RequestLoaderLoadingType, RequestBodyInterface, ResponseClass, RequestParamsInterface> {
39
- return this.request
40
- }
41
-
42
- public hasError(): boolean {
43
- return this.error !== null
44
- }
45
-
46
- public wasSent(): boolean {
47
- return this.sent
48
- }
49
- }
@@ -1,6 +0,0 @@
1
- import { BulkRequestWrapper } from './BulkRequestWrapper'
2
- import { BulkRequestSender } from './BulkRequestSender'
3
- import { BulkRequestEventEnum } from './BulkRequestEvent.enum'
4
- import { BulkRequestExecutionMode } from './BulkRequestSender'
5
-
6
- export { BulkRequestEventEnum, BulkRequestWrapper, BulkRequestSender, BulkRequestExecutionMode }
@@ -1,30 +0,0 @@
1
- import { PaginationDataDto } from '../../../pagination/dtos/PaginationDataDto'
2
- import { PaginationResponse } from '../../requests/responses/PaginationResponse'
3
- import { type PaginateableRequestContract } from '../../../pagination/contracts/PaginateableRequestContract'
4
- import { type PaginationDataDriverContract } from '../../../pagination/contracts/PaginationDataDriverContract'
5
-
6
- export class RequestDriver<
7
- Resource,
8
- TReq extends PaginateableRequestContract<unknown, PaginationResponse<Resource>, unknown, object> = PaginateableRequestContract<
9
- unknown,
10
- PaginationResponse<Resource>,
11
- unknown,
12
- object
13
- >
14
- > implements PaginationDataDriverContract<Resource> {
15
- public constructor(protected request: TReq) {}
16
-
17
- public get(pageNumber: number, pageSize: number): Promise<PaginationDataDto<Resource>> {
18
- return this.request
19
- .setPaginationParams(pageNumber, pageSize)
20
- .send()
21
- .then((response) => {
22
- const paginationResponse = response as PaginationResponse<Resource>
23
- return new PaginationDataDto<Resource>(paginationResponse.getData(), paginationResponse.getTotal())
24
- })
25
- }
26
-
27
- public getRequest(): TReq {
28
- return this.request
29
- }
30
- }
@@ -1,6 +0,0 @@
1
- import { type PaginationResponseBodyContract } from './contracts/PaginationResponseBodyContract'
2
- import { RequestDriver } from './dataDrivers/RequestDriver'
3
-
4
- export type { PaginationResponseBodyContract }
5
-
6
- export { RequestDriver }
@@ -1,35 +0,0 @@
1
- import { BaseRequest } from '../../requests/BaseRequest'
2
- import { JsonResponse } from './responses/JsonResponse'
3
- import { JsonBodyFactory } from '../../requests/factories/JsonBodyFactory'
4
- import { type BodyFactoryContract } from '../../requests/contracts/BodyFactoryContract'
5
-
6
- export interface JsonResponseInterface<ResourceInterface> {
7
- data: ResourceInterface
8
- }
9
-
10
- /**
11
- * This requests expects a response in the JSON format
12
- * and automatically sets the required headers.
13
- */
14
- export abstract class JsonBaseRequest<
15
- RequestLoaderLoadingType,
16
- ResponseErrorBody,
17
- ResourceInterface,
18
- RequestBodyInterface = undefined,
19
- RequestParamsInterface extends object = object
20
- > extends BaseRequest<
21
- RequestLoaderLoadingType,
22
- ResponseErrorBody,
23
- JsonResponseInterface<ResourceInterface>,
24
- JsonResponse<ResourceInterface>,
25
- RequestBodyInterface,
26
- RequestParamsInterface
27
- > {
28
- public getResponse(): JsonResponse<ResourceInterface> {
29
- return new JsonResponse<ResourceInterface>()
30
- }
31
-
32
- public override getRequestBodyFactory(): BodyFactoryContract<RequestBodyInterface | undefined> {
33
- return new JsonBodyFactory<RequestBodyInterface>()
34
- }
35
- }
@@ -1,29 +0,0 @@
1
- import { BaseRequest } from '../../requests/BaseRequest'
2
- import { type PaginationResponseBodyContract } from '../pagination/contracts/PaginationResponseBodyContract'
3
- import { type PaginationResponseContract } from '../../pagination/contracts/PaginationResponseContract'
4
- import { PaginationResponse } from './responses/PaginationResponse'
5
-
6
- export abstract class PaginationJsonBaseRequest<
7
- RequestLoaderLoadingType,
8
- ResponseErrorBodyInterface,
9
- ResourceInterface,
10
- RequestParamsInterface extends object
11
- > extends BaseRequest<
12
- RequestLoaderLoadingType,
13
- ResponseErrorBodyInterface,
14
- PaginationResponseBodyContract<ResourceInterface>,
15
- PaginationResponseContract<PaginationResponseBodyContract<ResourceInterface>, ResourceInterface>,
16
- undefined,
17
- RequestParamsInterface
18
- > {
19
- public getResponse(): PaginationResponse<ResourceInterface> {
20
- return new PaginationResponse()
21
- }
22
-
23
- public setPaginationParams(page: number, size: number): this {
24
- return this.withParams({
25
- page_number: page,
26
- page_size: size
27
- } as RequestParamsInterface)
28
- }
29
- }
@@ -1,9 +0,0 @@
1
- import { JsonResponse } from './responses/JsonResponse'
2
- import { PaginationResponse } from './responses/PaginationResponse'
3
- import { JsonBaseRequest } from './JsonBaseRequest'
4
- import { PaginationJsonBaseRequest } from './PaginationJsonBaseRequest'
5
- import { type JsonResponseInterface } from './JsonBaseRequest'
6
-
7
- export { JsonResponse, PaginationResponse, JsonBaseRequest, PaginationJsonBaseRequest }
8
-
9
- export type { JsonResponseInterface }
@@ -1,8 +0,0 @@
1
- import { JsonResponse as ParentJsonResponse } from '../../../requests/responses/JsonResponse'
2
- import { type JsonResponseInterface } from '../JsonBaseRequest'
3
-
4
- export class JsonResponse<ResourceInterface> extends ParentJsonResponse<JsonResponseInterface<ResourceInterface>> {
5
- public getData(): ResourceInterface {
6
- return this.getBody().data
7
- }
8
- }
@@ -1,16 +0,0 @@
1
- import { JsonResponse } from '../../../requests/responses/JsonResponse'
2
- import { type PaginationResponseBodyContract } from '../../pagination/contracts/PaginationResponseBodyContract'
3
- import { type PaginationResponseContract } from '../../../pagination/contracts/PaginationResponseContract'
4
-
5
- export class PaginationResponse<ResourceInterface>
6
- extends JsonResponse<PaginationResponseBodyContract<ResourceInterface>>
7
- implements PaginationResponseContract<PaginationResponseBodyContract<ResourceInterface>, ResourceInterface>
8
- {
9
- public getTotal(): number {
10
- return this.getBody().meta.total
11
- }
12
-
13
- public getData(): ResourceInterface {
14
- return this.getBody().data
15
- }
16
- }
@@ -1,94 +0,0 @@
1
- import { PaginationDataDto } from './dtos/PaginationDataDto'
2
- import { type BaseViewDriverContract } from './contracts/BaseViewDriverContract'
3
- import { type PaginatorLoadDataOptions } from './contracts/PaginatorLoadDataOptions'
4
-
5
- export abstract class BasePaginator<ResourceInterface, ViewDriver extends BaseViewDriverContract<ResourceInterface[]>> {
6
- protected initialized: boolean = false
7
-
8
- protected abstract viewDriver: ViewDriver
9
-
10
- public constructor(protected dataDriver: unknown) {}
11
-
12
- public isInitialized(): boolean {
13
- return this.initialized
14
- }
15
-
16
- public flush(): void {
17
- this.viewDriver.setData([])
18
- }
19
-
20
- public getPageData(): ResourceInterface[] {
21
- return this.viewDriver.getData()
22
- }
23
-
24
- public updateRows(
25
- predicate: (row: ResourceInterface, index: number, data: ResourceInterface[]) => boolean,
26
- updater: (row: ResourceInterface, index: number, data: ResourceInterface[]) => ResourceInterface | void
27
- ): number {
28
- const data = this.viewDriver.getData()
29
- let updated = 0
30
-
31
- for (let i = 0; i < data.length; i++) {
32
- const row = data[i]
33
-
34
- if (row === undefined) {
35
- continue
36
- }
37
-
38
- if (!predicate(row, i, data)) {
39
- continue
40
- }
41
-
42
- const result = updater(row, i, data)
43
-
44
- if (result !== undefined) {
45
- data[i] = result as ResourceInterface
46
- }
47
-
48
- updated++
49
- }
50
-
51
- if (updated > 0) {
52
- this.viewDriver.setData(data)
53
- }
54
-
55
- return updated
56
- }
57
-
58
- public removeRows(
59
- predicate: (row: ResourceInterface, index: number, data: ResourceInterface[]) => boolean,
60
- options?: { adjustTotal?: boolean }
61
- ): number {
62
- const data = this.viewDriver.getData()
63
- const next = data.filter((row, index) => !predicate(row, index, data))
64
- const removed = data.length - next.length
65
-
66
- if (removed > 0) {
67
- this.viewDriver.setData(next)
68
-
69
- if (options?.adjustTotal ?? true) {
70
- this.viewDriver.setTotal(Math.max(0, this.viewDriver.getTotal() - removed))
71
- }
72
- }
73
-
74
- return removed
75
- }
76
-
77
- public getTotal(): number {
78
- return this.viewDriver.getTotal()
79
- }
80
-
81
- protected passDataToViewDriver(dto: PaginationDataDto<ResourceInterface[]>, options?: PaginatorLoadDataOptions): void {
82
- if (options?.flush) {
83
- this.flush()
84
- }
85
-
86
- this.viewDriver.setData(dto.getData())
87
- this.viewDriver.setTotal(dto.getTotal())
88
- this.initialized = true
89
- }
90
-
91
- protected handleStaleResponse(): PaginationDataDto<ResourceInterface[]> {
92
- return new PaginationDataDto<ResourceInterface[]>(this.viewDriver.getData(), this.viewDriver.getTotal())
93
- }
94
- }
@@ -1,22 +0,0 @@
1
- import { PageAwarePaginator } from './PageAwarePaginator'
2
- import { PaginationDataDto } from './dtos/PaginationDataDto'
3
- import { type PaginatorLoadDataOptions } from './contracts/PaginatorLoadDataOptions'
4
-
5
- export class InfiniteScroller<ResourceInterface> extends PageAwarePaginator<ResourceInterface> {
6
- protected override passDataToViewDriver(dto: PaginationDataDto<ResourceInterface[]>, options: PaginatorLoadDataOptions = {}) {
7
- const { flush = false, replace = false } = options
8
-
9
- if (flush) {
10
- this.flush()
11
- }
12
-
13
- if (replace) {
14
- this.viewDriver.setData(dto.getData())
15
- } else {
16
- this.viewDriver.setData(this.viewDriver.getData().concat(dto.getData()))
17
- }
18
-
19
- this.viewDriver.setTotal(dto.getTotal())
20
- this.initialized = true
21
- }
22
- }
@@ -1,132 +0,0 @@
1
- import { PaginationDataDto } from './dtos/PaginationDataDto'
2
- import { type ViewDriverContract } from './contracts/ViewDriverContract'
3
- import { type ViewDriverFactoryContract } from './contracts/ViewDriverFactoryContract'
4
- import { type PaginatorLoadDataOptions } from './contracts/PaginatorLoadDataOptions'
5
- import { type PaginationDataDriverContract } from './contracts/PaginationDataDriverContract'
6
- import { BasePaginator } from './BasePaginator'
7
- import { StaleResponseException } from '../requests/exceptions/StaleResponseException'
8
-
9
- export interface PageAwarePaginatorOptions {
10
- viewDriverFactory?: ViewDriverFactoryContract
11
- }
12
-
13
- export class PageAwarePaginator<ResourceInterface> extends BasePaginator<ResourceInterface, ViewDriverContract<ResourceInterface[]>> {
14
- protected static viewDriverFactory: ViewDriverFactoryContract
15
-
16
- protected override viewDriver: ViewDriverContract<ResourceInterface[]>
17
-
18
- public static setViewDriverFactory(value: ViewDriverFactoryContract): void {
19
- PageAwarePaginator.viewDriverFactory = value
20
- }
21
-
22
- public constructor(
23
- protected override dataDriver: PaginationDataDriverContract<ResourceInterface[]>,
24
- pageNumber: number = 1,
25
- pageSize: number = 10,
26
- options?: PageAwarePaginatorOptions
27
- ) {
28
- super(dataDriver)
29
- this.viewDriver = options?.viewDriverFactory
30
- ? options.viewDriverFactory.make<ResourceInterface>(pageNumber, pageSize)
31
- : PageAwarePaginator.viewDriverFactory.make<ResourceInterface>(pageNumber, pageSize)
32
- }
33
-
34
- public setDataDriver(dataDriver: PaginationDataDriverContract<ResourceInterface[]>): this {
35
- this.dataDriver = dataDriver
36
-
37
- return this
38
- }
39
-
40
- public getDataDriver(): PaginationDataDriverContract<ResourceInterface[]> {
41
- return this.dataDriver
42
- }
43
-
44
- public load(pageNumber?: number, options?: PaginatorLoadDataOptions): Promise<PaginationDataDto<ResourceInterface[]>> {
45
- if (pageNumber !== undefined) {
46
- this.setPageNumber(pageNumber)
47
- }
48
-
49
- return this.loadData(this.getCurrentPage(), this.getPageSize(), options)
50
- }
51
-
52
- public setPageNumber(pageNumber: number): this {
53
- this.viewDriver.setPage(pageNumber)
54
-
55
- return this
56
- }
57
-
58
- public getLastPage(): number {
59
- return this.viewDriver.getLastPage()
60
- }
61
-
62
- public toNextPage(): Promise<PaginationDataDto<ResourceInterface[]>> {
63
- this.setPageNumber(this.getCurrentPage() + 1)
64
-
65
- return this.load()
66
- }
67
-
68
- public toFirstPage(): Promise<PaginationDataDto<ResourceInterface[]>> {
69
- this.setPageNumber(1)
70
-
71
- return this.load()
72
- }
73
-
74
- public toLastPage(): Promise<PaginationDataDto<ResourceInterface[]>> {
75
- this.setPageNumber(this.viewDriver.getLastPage())
76
-
77
- return this.load()
78
- }
79
-
80
- public toPreviousPage(): Promise<PaginationDataDto<ResourceInterface[]>> {
81
- this.setPageNumber(this.getCurrentPage() - 1)
82
-
83
- return this.load()
84
- }
85
-
86
- public getCurrentPage(): number {
87
- return this.viewDriver.getCurrentPage()
88
- }
89
-
90
- public getFromItemNumber(): number {
91
- return (this.getCurrentPage() - 1) * this.getPageSize() + 1
92
- }
93
-
94
- public getToItemNumber(): number {
95
- return this.getCurrentPage() * this.getPageSize()
96
- }
97
-
98
- public getPageSize(): number {
99
- return this.viewDriver.getPageSize()
100
- }
101
-
102
- public setPageSize(pageSize: number): this {
103
- this.viewDriver.setPageSize(pageSize)
104
-
105
- if (this.getCurrentPage() * pageSize > this.getTotal()) {
106
- this.setPageNumber(1)
107
- }
108
-
109
- return this
110
- }
111
-
112
- public getPages(): number[] {
113
- return this.viewDriver.getPages()
114
- }
115
-
116
- protected loadData(pageNumber: number, pageSize: number, options?: PaginatorLoadDataOptions): Promise<PaginationDataDto<ResourceInterface[]>> {
117
- return this.dataDriver
118
- .get(pageNumber, pageSize)
119
- .then((value: PaginationDataDto<ResourceInterface[]>) => {
120
- this.passDataToViewDriver(value, options)
121
-
122
- return value
123
- })
124
- .catch((error) => {
125
- if (error instanceof StaleResponseException) {
126
- return this.handleStaleResponse()
127
- }
128
-
129
- throw error
130
- })
131
- }
132
- }