@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,201 +0,0 @@
1
- # Getting Started
2
-
3
- Each API endpoint is represented as a separate class that extends `BaseRequest`. This class specifies the HTTP Method,
4
- URL, and the expected request/response types.
5
-
6
- ## Request Handling
7
-
8
- The library leverages a fetch-based driver to perform HTTP requests. The following sections explain how to initialize
9
- the request driver and define custom requests.
10
-
11
- ## Initializing the Request Driver
12
-
13
- Before making any requests, you must initialize the appropriate request driver. This is done during your application's
14
- boot process by using the static `setRequestDriver` method.
15
-
16
- ### Using the Fetch Driver
17
-
18
- To set up the fetch driver, import `BaseRequest` and `FetchDriver` from '@blueprint-ts/core/requests' and initialize
19
- the driver as shown:
20
-
21
- ```typescript
22
- import { BaseRequest, FetchDriver } from '@blueprint-ts/core/requests'
23
-
24
- BaseRequest.setRequestDriver(new FetchDriver())
25
- ```
26
-
27
- ### Enabling Credential Support
28
-
29
- If your requests need to include credentials (e.g., cookies for cross-origin requests), enable credential support as
30
- follows:
31
-
32
- ```typescript
33
- BaseRequest.setRequestDriver(new FetchDriver({
34
- corsWithCredentials: true,
35
- }))
36
- ```
37
-
38
- ### Adding Global Headers
39
-
40
- To include headers such as a CSRF token with every request, define them globally:
41
-
42
- ```typescript
43
- BaseRequest.setRequestDriver(new FetchDriver({
44
- headers: {
45
- 'X-XSRF-TOKEN': "<token>",
46
- },
47
- }))
48
- ```
49
-
50
- Sometimes you want to refetch the header when the request is sent. You may specify a callback for this:
51
-
52
- ```typescript
53
- BaseRequest.setRequestDriver(new FetchDriver({
54
- headers: {
55
- 'X-XSRF-TOKEN': () => getCookie('XSRF-TOKEN')
56
- },
57
- }))
58
- ```
59
-
60
- ### Specifying a Base URL
61
-
62
- In case your backend lives on a separate domain, you may specify a default base url, which is prepended to every request url:
63
-
64
- ```typescript
65
- BaseRequest.setDefaultBaseUrl('https://example.com')
66
- ```
67
-
68
- ## Example: Expense Index Request
69
-
70
- The following example demonstrates how to define a GET request to the `/api/v1/expenses` endpoint:
71
-
72
- ```typescript
73
- import { BaseRequest, RequestMethodEnum, JsonResponse } from '@blueprint-ts/core/requests'
74
-
75
- export interface GenericResponseErrorInterface {
76
- message: string
77
- }
78
-
79
- export interface ExpenseIndexRequestParams {
80
- filter?: {
81
- search_text?: string
82
- };
83
- }
84
-
85
- export interface ExpenseResource {
86
- id: string;
87
- // other data fields
88
- }
89
-
90
- export interface ExpenseIndexRequestResponseBody {
91
- data: ExpenseResource[]
92
- }
93
-
94
- export class ExpenseIndexRequest extends BaseRequest<
95
- boolean, // Generic RequestLoaderLoadingType
96
- GenericResponseErrorInterface, // Generic ResponseErrorBody
97
- ExpenseIndexRequestResponseBody, // Generic ResponseBodyInterface
98
- JsonResponse<ExpenseIndexRequestResponseBody>, // Generic ResponseClass
99
- undefined, // Generic RequestBodyInterface
100
- ExpenseIndexRequestParams // RequestParamsInterface
101
- > {
102
- public method(): RequestMethodEnum {
103
- return RequestMethodEnum.GET
104
- }
105
-
106
- public url(): string {
107
- return '/api/v1/expenses'
108
- }
109
- }
110
- ```
111
-
112
- ### Explanation
113
-
114
- - **HTTP Method**: Uses `GET` to retrieve data from the `/api/v1/expenses` endpoint.
115
- - **Error Handling**: On failure (4XX/5XX status codes), the response will conform to `GenericResponseErrorInterface`.
116
- - **Success Response**: A successful response is expected to follow the `ExpenseIndexRequestResponseBody` interface.
117
- - **Response Format**: The response is of type JSON, as indicated by `JsonResponse`.
118
- - **Request Body**: Since this is a GET request, the body is `undefined`.
119
- - **Query Parameters**: Accepts query parameters that match the `ExpenseIndexRequestParams` interface.
120
-
121
- ### Sending the Request
122
-
123
- Once the request is defined, you can send it using the following code:
124
-
125
- ```typescript
126
- const request = new ExpenseIndexRequest()
127
-
128
- // The response type and body are inferred automatically.
129
- const response: JsonResponse<ExpenseIndexRequestResponseBody> = await request.send()
130
-
131
- const body = response.getBody() // Type: ExpenseIndexRequestResponseBody
132
- ```
133
-
134
- ## Example: Create Expense Request (POST)
135
-
136
- This example demonstrates a POST request that sends a JSON body by overriding `getRequestBodyFactory()`:
137
-
138
- ```typescript
139
- import {
140
- BaseRequest,
141
- RequestMethodEnum,
142
- JsonResponse,
143
- JsonBodyFactory
144
- } from '@blueprint-ts/core/requests'
145
-
146
- export interface CreateExpensePayload {
147
- title: string
148
- amount: number
149
- }
150
-
151
- export interface CreateExpenseResponseBody {
152
- id: string
153
- }
154
-
155
- export class CreateExpenseRequest extends BaseRequest<
156
- boolean,
157
- GenericResponseErrorInterface,
158
- CreateExpenseResponseBody,
159
- JsonResponse<CreateExpenseResponseBody>,
160
- CreateExpensePayload
161
- > {
162
- public method(): RequestMethodEnum {
163
- return RequestMethodEnum.POST
164
- }
165
-
166
- public url(): string {
167
- return '/api/v1/expenses'
168
- }
169
-
170
- public getResponse(): JsonResponse<CreateExpenseResponseBody> {
171
- return new JsonResponse<CreateExpenseResponseBody>()
172
- }
173
-
174
- public override getRequestBodyFactory() {
175
- return new JsonBodyFactory<CreateExpensePayload>()
176
- }
177
- }
178
- ```
179
-
180
- ### Explanation
181
-
182
- - **HTTP Method**: Uses `POST` to create a new expense.
183
- - **Error Handling**: On failure (4XX/5XX status codes), the response will conform to `GenericResponseErrorInterface`.
184
- - **Success Response**: A successful response is expected to follow the `CreateExpenseResponseBody` interface.
185
- - **Response Format**: The response is of type JSON, as indicated by `JsonResponse`.
186
- - **Request Body**: Uses `JsonBodyFactory` to send JSON with `Content-Type: application/json`.
187
-
188
- ### Sending the Request
189
-
190
- ```typescript
191
- const request = new CreateExpenseRequest()
192
-
193
- const response = await request.setBody({
194
- title: 'Office supplies',
195
- amount: 42
196
- }).send()
197
-
198
- const body = response.getBody() // Type: CreateExpenseResponseBody
199
- ```
200
-
201
- Note: If you use Laravel or an API that wraps payloads under a `data` key, consider using `JsonBaseRequest` from the Laravel integration.
@@ -1,40 +0,0 @@
1
- # Headers
2
-
3
- Requests assemble headers from multiple sources before sending:
4
-
5
- 1. **Driver defaults** (global headers set on the driver)
6
- 2. **Request headers** returned by `requestHeaders()`
7
- 3. **Body headers** from the request body factory (e.g., `Content-Type`)
8
-
9
- Later sources override earlier ones. Header values can be strings or callbacks that resolve at send time.
10
-
11
- ## Global Headers (Driver)
12
-
13
- Set headers once when you configure the driver:
14
-
15
- ```typescript
16
- BaseRequest.setRequestDriver(new FetchDriver({
17
- headers: {
18
- 'X-XSRF-TOKEN': () => getCookie('XSRF-TOKEN')
19
- },
20
- }))
21
- ```
22
-
23
- ## Per-Request Headers
24
-
25
- Override `requestHeaders()` on a request to add headers per request:
26
-
27
- ```typescript
28
- import { type HeadersContract } from '@blueprint-ts/core/requests'
29
-
30
- public override requestHeaders(): HeadersContract {
31
- return {
32
- Authorization: `Bearer ${this.accessToken}`
33
- }
34
- }
35
- ```
36
-
37
- ## Body Headers
38
-
39
- Request body factories can set headers such as `Content-Type`. For example, `JsonBodyFactory` sets
40
- `Content-Type: application/json`.
@@ -1,63 +0,0 @@
1
- # Loading
2
-
3
- Requests can expose loading state through a request loader. You register a loader factory once, and each `BaseRequest`
4
- instance will ask the factory for a loader.
5
-
6
- Note: For Vue apps, the library provides `VueRequestLoader` and `VueRequestLoaderFactory` in `@blueprint-ts/core/vue/requests`.
7
-
8
- ## Registering a Loader Factory
9
-
10
- Use `BaseRequest.setRequestLoaderFactory()` to register a factory that implements `RequestLoaderFactoryContract` and
11
- returns a `RequestLoaderContract`:
12
-
13
- ```typescript
14
- import {
15
- BaseRequest,
16
- type RequestLoaderContract,
17
- type RequestLoaderFactoryContract
18
- } from '@blueprint-ts/core/requests'
19
-
20
- class BooleanLoader implements RequestLoaderContract<boolean> {
21
- private loading = false
22
-
23
- public isLoading(): boolean {
24
- return this.loading
25
- }
26
-
27
- public setLoading(value: boolean): void {
28
- this.loading = value
29
- }
30
- }
31
-
32
- class BooleanLoaderFactory implements RequestLoaderFactoryContract<boolean> {
33
- public make(): RequestLoaderContract<boolean> {
34
- return new BooleanLoader()
35
- }
36
- }
37
-
38
- BaseRequest.setRequestLoaderFactory(new BooleanLoaderFactory())
39
- ```
40
-
41
- ## Reading Loading State
42
-
43
- Once a loader factory is registered, every request created from `BaseRequest` can read loading state:
44
-
45
- ```typescript
46
- const request = new ExpenseIndexRequest()
47
-
48
- request.send()
49
-
50
- const isLoading = request.isLoading()
51
- ```
52
-
53
- ## Override Loader
54
-
55
- You can override the loader per request with `setRequestLoader`:
56
-
57
- ```typescript
58
- const request = new ExpenseIndexRequest()
59
-
60
- request.setRequestLoader(customLoader)
61
- ```
62
-
63
- This lets you create or share a loader before the request exists, which is useful when loading state must be wired up ahead of time.
@@ -1,61 +0,0 @@
1
- # Request Bodies
2
-
3
- Request body factories control how outgoing request bodies are serialized and which `Content-Type` header is sent.
4
- They are separate from response parsing (response classes control `Accept` and how the response body is parsed).
5
-
6
- ## How It Works
7
-
8
- When you call `send()`, `BaseRequest` uses the request body factory to build a `BodyContract`:
9
-
10
- - `getRequestBodyFactory()` returns a `BodyFactoryContract`
11
- - `BodyFactoryContract.make()` returns a `BodyContract`
12
- - `BodyContract.getHeaders()` provides headers (like `Content-Type`)
13
- - `BodyContract.getContent()` provides the serialized body
14
-
15
- If you call `setBody(...)` without providing a body factory, the body is not sent.
16
-
17
- ## JSON Bodies
18
-
19
- Use `JsonBodyFactory` to send JSON and set `Content-Type: application/json`:
20
-
21
- ```typescript
22
- import { BaseRequest, JsonBodyFactory, RequestMethodEnum } from '@blueprint-ts/core/requests'
23
-
24
- class CreateExpenseRequest extends BaseRequest<boolean, GenericResponseErrorInterface, ExpenseResource, JsonResponse<ExpenseResource>, CreateExpensePayload> {
25
- public method(): RequestMethodEnum {
26
- return RequestMethodEnum.POST
27
- }
28
-
29
- public url(): string {
30
- return '/api/v1/expenses'
31
- }
32
-
33
- public getResponse(): JsonResponse<ExpenseResource> {
34
- return new JsonResponse<ExpenseResource>()
35
- }
36
-
37
- public override getRequestBodyFactory() {
38
- return new JsonBodyFactory<CreateExpensePayload>()
39
- }
40
- }
41
- ```
42
-
43
- If you are using the Laravel integration, `JsonBaseRequest` already configures the JSON body factory for you.
44
-
45
- ## FormData Bodies
46
-
47
- Use `FormDataFactory` for multipart requests (uploads, mixed fields):
48
-
49
- ```typescript
50
- import { FormDataFactory } from '@blueprint-ts/core/requests'
51
-
52
- public override getRequestBodyFactory() {
53
- return new FormDataFactory<FormPayload>()
54
- }
55
- ```
56
-
57
- If you want to show upload progress for multipart file uploads, see [File Uploads](/services/requests/file-uploads).
58
-
59
- ## Custom Body Factories
60
-
61
- You can implement your own body factory by returning a `BodyContract` with custom headers and serialization logic.
@@ -1,34 +0,0 @@
1
- # Responses
2
-
3
- Requests return a response class that controls the `Accept` header and how the body is parsed.
4
-
5
- ## JsonResponse
6
-
7
- Use `JsonResponse<T>` for JSON APIs. It sets `Accept: application/json` and parses the body with `response.json()`:
8
-
9
- ```typescript
10
- import { JsonResponse } from '@blueprint-ts/core/requests'
11
-
12
- // In your request generic parameters:
13
- // JsonResponse<ExpenseIndexRequestResponseBody>
14
- ```
15
-
16
- ## PlainTextResponse
17
-
18
- Use `PlainTextResponse` for endpoints that return plain text. It sets `Accept: text/plain` and parses the body with
19
- `response.text()`:
20
-
21
- ```typescript
22
- import { PlainTextResponse } from '@blueprint-ts/core/requests'
23
- ```
24
-
25
- ## BlobResponse
26
-
27
- Use `BlobResponse` for binary responses like files. It sets `Accept` to the provided MIME type (default
28
- `application/octet-stream`) and parses the body with `response.blob()`:
29
-
30
- ```typescript
31
- import { BlobResponse } from '@blueprint-ts/core/requests'
32
-
33
- const response = new BlobResponse('application/pdf')
34
- ```
@@ -1,63 +0,0 @@
1
- # DeferredPromise
2
-
3
- `DeferredPromise` exposes a Promise along with `resolve`, `reject`, and a `state` property you can inspect.
4
-
5
- ```typescript
6
- import { DeferredPromise } from '@blueprint-ts/core/support'
7
-
8
- const deferred = new DeferredPromise<string>()
9
-
10
- deferred.then((value) => {
11
- console.log(value)
12
- })
13
-
14
- deferred.resolve('Done')
15
- ```
16
-
17
- State values:
18
-
19
- - `pending`
20
- - `fulfilled`
21
- - `rejected`
22
-
23
- ## Example: Defer Component Rendering
24
-
25
- Use a `DeferredPromise` to delay rendering of a Vue component until the slideover is opened and has received the props as non undefined:
26
-
27
- ```vue
28
- <template>
29
- <SlideOver v-model="isOpen">
30
- <template v-if="resolvedresource">
31
- <UpdateForm :options="options" :resource="resolvedresource" />
32
- </template>
33
- </SlideOver>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import { ref, onMounted } from 'vue'
38
- import { DeferredPromise } from '@blueprint-ts/core/support'
39
-
40
- const props = defineProps<{ resource?: Resource }>()
41
- const isOpen = defineModel<boolean>('isOpen', { default: false })
42
-
43
- const readyPromise = new DeferredPromise<Resource>()
44
- const resolvedresource = ref<Resource>(undefined)
45
- let options: UpdateFormOptionsContract | undefined
46
-
47
- readyPromise.then((contract) => {
48
- options = new UpdateFormOptions(contract)
49
- })
50
-
51
- onMounted(() => {
52
- readyPromise.then((resource: Resource) => {
53
- resolvedresource.value = resource
54
- })
55
- })
56
-
57
- watch(isOpen, (open) => {
58
- if (open && props.resource) {
59
- readyPromise.resolve(props.resource)
60
- }
61
- })
62
- </script>
63
- ```
@@ -1,77 +0,0 @@
1
- # Helpers
2
-
3
- ## isAtBottom
4
-
5
- Detect whether a scroll container is at the bottom:
6
-
7
- ```typescript
8
- import { isAtBottom } from '@blueprint-ts/core/support'
9
-
10
- const atBottom = isAtBottom(scrollHeight, scrollTop, clientHeight)
11
- ```
12
-
13
- Example with a scroll container:
14
-
15
- ```html
16
- <nav class="overflow-y-auto" @scroll="handleScroll">
17
- <!-- content -->
18
- </nav>
19
- ```
20
-
21
- ```typescript
22
- import { isAtBottom } from '@blueprint-ts/core/support'
23
-
24
- function handleScroll(event: Event): void {
25
- if (!(event.target instanceof Element)) {
26
- return
27
- }
28
-
29
- const atBottom = isAtBottom(event.target.scrollHeight, event.target.scrollTop, event.target.clientHeight)
30
-
31
- if (atBottom) {
32
- loadMore()
33
- }
34
- }
35
- ```
36
-
37
- ## getCookie
38
-
39
- Read a cookie value by name:
40
-
41
- ```typescript
42
- import { getCookie } from '@blueprint-ts/core/support'
43
-
44
- const token = getCookie('XSRF-TOKEN')
45
- ```
46
-
47
- ## isObject
48
-
49
- Check if a value is a non-array object:
50
-
51
- ```typescript
52
- import { isObject } from '@blueprint-ts/core/support'
53
-
54
- if (isObject(value)) {
55
- // value is an object (not null, not an array)
56
- }
57
- ```
58
-
59
- ## mergeDeep
60
-
61
- Deep-merge plain objects:
62
-
63
- ```typescript
64
- import { mergeDeep } from '@blueprint-ts/core/support'
65
-
66
- const result = mergeDeep({}, defaults, overrides)
67
- ```
68
-
69
- ## getDisplayablePages
70
-
71
- Generate a window of page numbers for pagination UI:
72
-
73
- ```typescript
74
- import { getDisplayablePages } from '@blueprint-ts/core/support'
75
-
76
- const pages = getDisplayablePages(currentPage, totalPages, displayPages)
77
- ```
@@ -1,6 +0,0 @@
1
- # Support
2
-
3
- The Support utilities include helper functions and small primitives used across the library.
4
-
5
- - [Helpers](./helpers)
6
- - [DeferredPromise](./deferred-promise)
@@ -1,64 +0,0 @@
1
- ## Upgrading from v1 to v2
2
-
3
- ### Route Resource Binding
4
-
5
- Commit `db70b77` introduced significant changes to the route resource binding system to support better caching, parent-to-child inheritance, and non-blocking navigation.
6
-
7
- #### Non-blocking Navigation (Breaking Change)
8
-
9
- In v1, navigation was blocked until all resources were resolved in the `beforeResolve` guard. In v2, navigation proceeds immediately, and resources are loaded in the background.
10
-
11
- This means that your components will now render **before** the resources are available (they will be `undefined` initially).
12
-
13
- **How to upgrade:**
14
-
15
- 1. **Use `RouteResourceBoundView`**: Replace `<RouterView>` with `<RouteResourceBoundView>`. This component automatically manages loading and error states for you.
16
- ```vue
17
- <script setup lang="ts">
18
- import { RouteResourceBoundView } from '@blueprint-ts/core'
19
- </script>
20
-
21
- <template>
22
- <RouteResourceBoundView />
23
- </template>
24
- ```
25
-
26
- 2. **Define Loading/Error Components**: You can now define these directly in your `defineRoute` call to be used by `RouteResourceBoundView`:
27
- ```ts
28
- defineRoute<{ product: ProductResource }>()({
29
- path: ':productId',
30
- component: ProductDetailPage,
31
- loadingComponent: MyLoadingSpinner,
32
- errorComponent: MyErrorPage,
33
- inject: {
34
- product: { from: 'productId', resolve: ... }
35
- }
36
- })
37
- ```
38
-
39
- 3. **Manual Handling**: If you want your component to handle its own loading state, set `lazy: false` in the route definition and use the updated `useRouteResource` composable.
40
-
41
- #### `useRouteResource` API Changes (Breaking Change)
42
-
43
- The `useRouteResource` composable has been updated to support multiple resources and provide reactive state.
44
-
45
- * **v1**: `const { refresh } = useRouteResource()`
46
- * **v2**: `const { refresh, isLoading, error } = useRouteResource('resourceName')`
47
-
48
- The `refresh` function no longer takes the resource name as an argument. It now accepts an optional options object for silent refreshes.
49
-
50
- ```ts
51
- // v1
52
- const { refresh } = useRouteResource()
53
- await refresh('product')
54
-
55
- // v2
56
- const { refresh, isLoading, error } = useRouteResource('product')
57
- await refresh() // Triggers loading state
58
- await refresh({ silent: true }) // Background refresh
59
- ```
60
-
61
- #### New Features: Caching and Inheritance
62
-
63
- * **Caching**: Resources are now cached based on the route parameter value. Navigating between child routes that share the same parameter will no longer trigger redundant requests.
64
- * **Inheritance**: Child routes now automatically inherit resources defined on parent routes. You can define a resource once on a parent route and it will be available to all children through props or `useRouteResource`.
@@ -1,52 +0,0 @@
1
- ## Upgrading from v2 to v3
2
-
3
- ### BaseForm
4
-
5
- #### Omission of fields with `undefined` values (Breaking Change)
6
-
7
- Commit `26c0d0e` changed how `BaseForm.buildPayload()` handles `undefined` values returned by transformers (getters).
8
-
9
- In v2, returning `undefined` from a getter would still include the key in the resulting payload object. In v3, the field is **omitted** entirely from the payload.
10
-
11
- This applies to:
12
- - **Field Getters**: `getFieldName(value)`
13
- - **Composite Getters**: `getParentFieldNestedField(value)`
14
- - **Appended Fields**: Getters for fields defined in the `append` array.
15
- - **Nested Objects/Arrays**: Recursive transformation of nested data structures.
16
-
17
- **How to upgrade:**
18
- If you previously relied on a field being present with an `undefined` value in the JS object, you should now return `null` if you want the field to be included in the request payload.
19
-
20
- ```ts
21
- // v2: payload was { name: undefined }
22
- // v3: payload is {}
23
- protected getName(value: string) {
24
- return value ? value : undefined
25
- }
26
-
27
- // v3: if you want the field to be included
28
- protected getName(value: string) {
29
- return value ? value : null // payload is { name: null }
30
- }
31
- ```
32
-
33
- #### Removal of Suggestions (Breaking Change)
34
-
35
- The suggestions feature has been removed from `BaseForm` in commit `f21d6ce`.
36
-
37
- **Changes:**
38
- - Removed `fillSuggestions()` method from `BaseForm`.
39
- - Removed `suggestions` property from the `properties` tree (e.g., `form.properties.email.suggestions` is no longer available).
40
- - Removed `suggestions` from `PropertyAwareField` and `PropertyAware` types.
41
-
42
- **How to upgrade:**
43
- If you were using the suggestions feature, you should now manage suggestions independently of the form state, for example, by using a separate reactive object or a dedicated composable.
44
-
45
- #### File Upload Support and Form Data Handling
46
-
47
- Commit `d765cae` introduced native support for `File` and `Blob` objects in `BaseForm`.
48
-
49
- **Changes:**
50
- - `BaseForm` now detects if the payload contains `File` or `Blob` objects.
51
- - When sending a request with a `File` or `Blob` in the payload, the library will automatically use `FormData` and set the appropriate `Content-Type` header (multipart/form-data).
52
- - `File` values are kept intact during the transformation process and are not converted into plain objects.