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

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 (514) 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 +71 -0
  78. package/dist/requests/BaseRequest.js +239 -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 +33 -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 +224 -0
  222. package/dist/vue/forms/BaseForm.js +1569 -0
  223. package/dist/vue/forms/PropertyAwareArray.d.ts +54 -0
  224. package/dist/vue/forms/PropertyAwareArray.js +54 -0
  225. package/dist/vue/forms/PropertyAwareObject.d.ts +13 -0
  226. package/dist/vue/forms/PropertyAwareObject.js +18 -0
  227. package/dist/vue/forms/index.d.ts +10 -0
  228. package/dist/vue/forms/index.js +7 -0
  229. package/dist/vue/forms/types/PersistedForm.d.ts +6 -0
  230. package/dist/vue/forms/types/PersistedForm.js +1 -0
  231. package/dist/vue/forms/validation/ValidationMode.enum.d.ts +11 -0
  232. package/dist/vue/forms/validation/ValidationMode.enum.js +14 -0
  233. package/dist/vue/forms/validation/index.d.ts +13 -0
  234. package/dist/vue/forms/validation/index.js +10 -0
  235. package/dist/vue/forms/validation/rules/BaseRule.d.ts +12 -0
  236. package/dist/vue/forms/validation/rules/BaseRule.js +24 -0
  237. package/dist/vue/forms/validation/rules/ConfirmedRule.d.ts +10 -0
  238. package/dist/vue/forms/validation/rules/ConfirmedRule.js +26 -0
  239. package/dist/vue/forms/validation/rules/EmailRule.d.ts +7 -0
  240. package/dist/vue/forms/validation/rules/EmailRule.js +19 -0
  241. package/dist/vue/forms/validation/rules/JsonRule.d.ts +7 -0
  242. package/dist/vue/forms/validation/rules/JsonRule.js +25 -0
  243. package/dist/vue/forms/validation/rules/MinRule.d.ts +26 -0
  244. package/dist/vue/forms/validation/rules/MinRule.js +52 -0
  245. package/dist/vue/forms/validation/rules/PrecognitiveRule.d.ts +22 -0
  246. package/dist/vue/forms/validation/rules/PrecognitiveRule.js +58 -0
  247. package/dist/vue/forms/validation/rules/RequiredRule.d.ts +7 -0
  248. package/dist/vue/forms/validation/rules/RequiredRule.js +16 -0
  249. package/dist/vue/forms/validation/rules/UrlRule.d.ts +7 -0
  250. package/dist/vue/forms/validation/rules/UrlRule.js +22 -0
  251. package/{src/vue/forms/validation/types/BidirectionalRule.ts → dist/vue/forms/validation/types/BidirectionalRule.d.ts} +4 -4
  252. package/dist/vue/forms/validation/types/BidirectionalRule.js +1 -0
  253. package/dist/vue/forms/validation/types/ValidationRules.d.ts +14 -0
  254. package/dist/vue/forms/validation/types/ValidationRules.js +1 -0
  255. package/dist/vue/index.d.ts +11 -0
  256. package/dist/vue/index.js +10 -0
  257. package/dist/vue/requests/factories/VueRequestLoaderFactory.d.ts +6 -0
  258. package/dist/vue/requests/factories/VueRequestLoaderFactory.js +6 -0
  259. package/{src/vue/requests/index.ts → dist/vue/requests/index.d.ts} +4 -5
  260. package/dist/vue/requests/index.js +4 -0
  261. package/dist/vue/requests/loaders/VueRequestBatchLoader.d.ts +12 -0
  262. package/dist/vue/requests/loaders/VueRequestBatchLoader.js +29 -0
  263. package/dist/vue/requests/loaders/VueRequestLoader.d.ts +8 -0
  264. package/dist/vue/requests/loaders/VueRequestLoader.js +12 -0
  265. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.d.ts +57 -0
  266. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.js +135 -0
  267. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.d.ts +6 -0
  268. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.js +20 -0
  269. package/dist/vue/router/routeResourceBinding/defineRoute.d.ts +23 -0
  270. package/dist/vue/router/routeResourceBinding/defineRoute.js +42 -0
  271. package/dist/vue/router/routeResourceBinding/index.d.ts +8 -0
  272. package/dist/vue/router/routeResourceBinding/index.js +6 -0
  273. package/dist/vue/router/routeResourceBinding/installRouteInjection.d.ts +14 -0
  274. package/dist/vue/router/routeResourceBinding/installRouteInjection.js +133 -0
  275. package/dist/vue/router/routeResourceBinding/types.d.ts +55 -0
  276. package/dist/vue/router/routeResourceBinding/types.js +1 -0
  277. package/dist/vue/router/routeResourceBinding/useRouteResource.d.ts +8 -0
  278. package/dist/vue/router/routeResourceBinding/useRouteResource.js +29 -0
  279. package/dist/vue/state/State.d.ts +75 -0
  280. package/dist/vue/state/State.js +267 -0
  281. package/dist/vue/state/index.d.ts +2 -0
  282. package/dist/vue/state/index.js +2 -0
  283. package/package.json +81 -23
  284. package/.editorconfig +0 -508
  285. package/.eslintrc.cjs +0 -15
  286. package/.prettierrc.json +0 -8
  287. package/CHANGELOG.md +0 -226
  288. package/docker-compose.yaml +0 -8
  289. package/docs/.vitepress/config.ts +0 -124
  290. package/docs/index.md +0 -13
  291. package/docs/laravel/pagination.md +0 -67
  292. package/docs/laravel/requests.md +0 -62
  293. package/docs/services/pagination/index.md +0 -46
  294. package/docs/services/pagination/infinite-scroller.md +0 -20
  295. package/docs/services/pagination/page-aware.md +0 -51
  296. package/docs/services/pagination/state-pagination.md +0 -77
  297. package/docs/services/pagination/updating-rows.md +0 -52
  298. package/docs/services/persistence/index.md +0 -46
  299. package/docs/services/requests/abort-requests.md +0 -29
  300. package/docs/services/requests/bulk-requests.md +0 -70
  301. package/docs/services/requests/concurrency.md +0 -58
  302. package/docs/services/requests/drivers.md +0 -115
  303. package/docs/services/requests/error-handling.md +0 -153
  304. package/docs/services/requests/events.md +0 -53
  305. package/docs/services/requests/file-uploads.md +0 -168
  306. package/docs/services/requests/getting-started.md +0 -201
  307. package/docs/services/requests/headers.md +0 -40
  308. package/docs/services/requests/loading.md +0 -63
  309. package/docs/services/requests/request-bodies.md +0 -89
  310. package/docs/services/requests/responses.md +0 -34
  311. package/docs/services/support/deferred-promise.md +0 -63
  312. package/docs/services/support/helpers.md +0 -77
  313. package/docs/services/support/index.md +0 -6
  314. package/docs/upgrading/v1-to-v2.md +0 -64
  315. package/docs/upgrading/v2-to-v3.md +0 -52
  316. package/docs/upgrading/v3-to-v4.md +0 -214
  317. package/docs/upgrading.md +0 -0
  318. package/docs/vue/composables/use-confirm-dialog.md +0 -96
  319. package/docs/vue/composables/use-global-checkbox.md +0 -73
  320. package/docs/vue/composables/use-is-empty.md +0 -26
  321. package/docs/vue/composables/use-is-open-from-var.md +0 -32
  322. package/docs/vue/composables/use-is-open.md +0 -28
  323. package/docs/vue/composables/use-model-wrapper.md +0 -29
  324. package/docs/vue/composables/use-on-open.md +0 -26
  325. package/docs/vue/forms/arrays.md +0 -102
  326. package/docs/vue/forms/errors.md +0 -52
  327. package/docs/vue/forms/index.md +0 -99
  328. package/docs/vue/forms/payloads.md +0 -99
  329. package/docs/vue/forms/persistence.md +0 -19
  330. package/docs/vue/forms/state-and-properties.md +0 -26
  331. package/docs/vue/forms/utilities.md +0 -27
  332. package/docs/vue/forms/validation.md +0 -189
  333. package/docs/vue/requests/loading.md +0 -51
  334. package/docs/vue/router/route-resource-binding.md +0 -240
  335. package/docs/vue/state.md +0 -309
  336. package/env.d.ts +0 -1
  337. package/eslint.config.js +0 -15
  338. package/release-tool.json +0 -26
  339. package/src/bulkRequests/BulkRequestEvent.enum.ts +0 -4
  340. package/src/bulkRequests/BulkRequestSender.ts +0 -196
  341. package/src/bulkRequests/BulkRequestWrapper.ts +0 -49
  342. package/src/bulkRequests/index.ts +0 -6
  343. package/src/laravel/pagination/dataDrivers/RequestDriver.ts +0 -30
  344. package/src/laravel/pagination/index.ts +0 -6
  345. package/src/laravel/requests/JsonBaseRequest.ts +0 -35
  346. package/src/laravel/requests/PaginationJsonBaseRequest.ts +0 -29
  347. package/src/laravel/requests/index.ts +0 -9
  348. package/src/laravel/requests/responses/JsonResponse.ts +0 -8
  349. package/src/laravel/requests/responses/PaginationResponse.ts +0 -16
  350. package/src/pagination/BasePaginator.ts +0 -94
  351. package/src/pagination/InfiniteScroller.ts +0 -22
  352. package/src/pagination/PageAwarePaginator.ts +0 -132
  353. package/src/pagination/StatePaginator.ts +0 -86
  354. package/src/pagination/contracts/BaseViewDriverContract.ts +0 -6
  355. package/src/pagination/contracts/PaginateableRequestContract.ts +0 -13
  356. package/src/pagination/contracts/PaginationDataDriverContract.ts +0 -5
  357. package/src/pagination/contracts/ViewDriverContract.ts +0 -10
  358. package/src/pagination/contracts/ViewDriverFactoryContract.ts +0 -5
  359. package/src/pagination/dataDrivers/ArrayDriver.ts +0 -28
  360. package/src/pagination/dtos/PaginationDataDto.ts +0 -14
  361. package/src/pagination/dtos/StatePaginationDataDto.ts +0 -19
  362. package/src/pagination/factories/VueBaseViewDriverFactory.ts +0 -9
  363. package/src/pagination/factories/VuePaginationDriverFactory.ts +0 -9
  364. package/src/pagination/frontendDrivers/VueBaseViewDriver.ts +0 -28
  365. package/src/pagination/frontendDrivers/VuePaginationDriver.ts +0 -61
  366. package/src/pagination/index.ts +0 -46
  367. package/src/persistenceDrivers/LocalStorageDriver.ts +0 -22
  368. package/src/persistenceDrivers/NonPersistentDriver.ts +0 -12
  369. package/src/persistenceDrivers/SessionStorageDriver.ts +0 -22
  370. package/src/persistenceDrivers/index.ts +0 -8
  371. package/src/persistenceDrivers/types/PersistenceDriver.ts +0 -5
  372. package/src/requests/BaseRequest.ts +0 -321
  373. package/src/requests/ErrorHandler.ts +0 -144
  374. package/src/requests/RequestConcurrencyMode.enum.ts +0 -6
  375. package/src/requests/RequestErrorRouter.ts +0 -89
  376. package/src/requests/RequestEvents.enum.ts +0 -4
  377. package/src/requests/RequestMethod.enum.ts +0 -8
  378. package/src/requests/bodies/BinaryBody.ts +0 -31
  379. package/src/requests/bodies/FormDataBody.ts +0 -81
  380. package/src/requests/bodies/JsonBody.ts +0 -16
  381. package/src/requests/contracts/BaseRequestContract.ts +0 -39
  382. package/src/requests/contracts/BodyContract.ts +0 -9
  383. package/src/requests/contracts/BodyFactoryContract.ts +0 -5
  384. package/src/requests/contracts/DriverConfigContract.ts +0 -9
  385. package/src/requests/contracts/HeadersContract.ts +0 -9
  386. package/src/requests/contracts/RequestDriverContract.ts +0 -15
  387. package/src/requests/contracts/RequestLoaderContract.ts +0 -5
  388. package/src/requests/contracts/ResponseContract.ts +0 -7
  389. package/src/requests/drivers/contracts/ResponseHandlerContract.ts +0 -10
  390. package/src/requests/drivers/fetch/FetchDriver.ts +0 -115
  391. package/src/requests/drivers/fetch/FetchResponse.ts +0 -30
  392. package/src/requests/drivers/xhr/XMLHttpRequestDriver.ts +0 -138
  393. package/src/requests/drivers/xhr/XMLHttpRequestResponse.ts +0 -95
  394. package/src/requests/exceptions/BadGatewayException.ts +0 -3
  395. package/src/requests/exceptions/BadRequestException.ts +0 -3
  396. package/src/requests/exceptions/ConflictException.ts +0 -3
  397. package/src/requests/exceptions/ForbiddenException.ts +0 -3
  398. package/src/requests/exceptions/GatewayTimeoutException.ts +0 -3
  399. package/src/requests/exceptions/GoneException.ts +0 -3
  400. package/src/requests/exceptions/InvalidJsonException.ts +0 -15
  401. package/src/requests/exceptions/LockedException.ts +0 -3
  402. package/src/requests/exceptions/MethodNotAllowedException.ts +0 -3
  403. package/src/requests/exceptions/NotFoundException.ts +0 -3
  404. package/src/requests/exceptions/NotImplementedException.ts +0 -3
  405. package/src/requests/exceptions/PageExpiredException.ts +0 -3
  406. package/src/requests/exceptions/PayloadTooLargeException.ts +0 -3
  407. package/src/requests/exceptions/PreconditionFailedException.ts +0 -3
  408. package/src/requests/exceptions/RequestTimeoutException.ts +0 -3
  409. package/src/requests/exceptions/ResponseBodyException.ts +0 -15
  410. package/src/requests/exceptions/ResponseException.ts +0 -11
  411. package/src/requests/exceptions/ServerErrorException.ts +0 -3
  412. package/src/requests/exceptions/ServiceUnavailableException.ts +0 -3
  413. package/src/requests/exceptions/StaleResponseException.ts +0 -13
  414. package/src/requests/exceptions/TooManyRequestsException.ts +0 -3
  415. package/src/requests/exceptions/UnauthorizedException.ts +0 -3
  416. package/src/requests/exceptions/UnsupportedMediaTypeException.ts +0 -3
  417. package/src/requests/exceptions/ValidationException.ts +0 -3
  418. package/src/requests/exceptions/index.ts +0 -51
  419. package/src/requests/factories/BinaryBodyFactory.ts +0 -13
  420. package/src/requests/factories/FormDataFactory.ts +0 -17
  421. package/src/requests/factories/JsonBodyFactory.ts +0 -9
  422. package/src/requests/index.ts +0 -68
  423. package/src/requests/responses/BaseResponse.ts +0 -41
  424. package/src/requests/responses/BlobResponse.ts +0 -19
  425. package/src/requests/responses/JsonResponse.ts +0 -15
  426. package/src/requests/responses/PlainTextResponse.ts +0 -15
  427. package/src/requests/types/RequestUploadProgress.ts +0 -6
  428. package/src/support/DeferredPromise.ts +0 -67
  429. package/src/support/helpers.ts +0 -78
  430. package/src/vue/composables/useConfirmDialog.ts +0 -63
  431. package/src/vue/composables/useGlobalCheckbox.ts +0 -145
  432. package/src/vue/composables/useIsEmpty.ts +0 -34
  433. package/src/vue/composables/useIsOpen.ts +0 -37
  434. package/src/vue/composables/useIsOpenFromVar.ts +0 -61
  435. package/src/vue/composables/useModelWrapper.ts +0 -27
  436. package/src/vue/composables/useOnOpen.ts +0 -34
  437. package/src/vue/contracts/ModelValueProps.ts +0 -3
  438. package/src/vue/forms/BaseForm.ts +0 -1192
  439. package/src/vue/forms/PropertyAwareArray.ts +0 -81
  440. package/src/vue/forms/index.ts +0 -11
  441. package/src/vue/forms/types/PersistedForm.ts +0 -6
  442. package/src/vue/forms/validation/ValidationMode.enum.ts +0 -14
  443. package/src/vue/forms/validation/index.ts +0 -15
  444. package/src/vue/forms/validation/rules/BaseRule.ts +0 -7
  445. package/src/vue/forms/validation/rules/ConfirmedRule.ts +0 -39
  446. package/src/vue/forms/validation/rules/EmailRule.ts +0 -23
  447. package/src/vue/forms/validation/rules/JsonRule.ts +0 -28
  448. package/src/vue/forms/validation/rules/MinRule.ts +0 -61
  449. package/src/vue/forms/validation/rules/RequiredRule.ts +0 -19
  450. package/src/vue/forms/validation/rules/UrlRule.ts +0 -24
  451. package/src/vue/forms/validation/types/ValidationRules.ts +0 -15
  452. package/src/vue/index.ts +0 -14
  453. package/src/vue/requests/factories/VueRequestLoaderFactory.ts +0 -10
  454. package/src/vue/requests/loaders/VueRequestBatchLoader.ts +0 -35
  455. package/src/vue/requests/loaders/VueRequestLoader.ts +0 -18
  456. package/src/vue/router/routeResourceBinding/RouteResourceBoundView.ts +0 -145
  457. package/src/vue/router/routeResourceBinding/RouteResourceRequestResolver.ts +0 -11
  458. package/src/vue/router/routeResourceBinding/defineRoute.ts +0 -59
  459. package/src/vue/router/routeResourceBinding/index.ts +0 -11
  460. package/src/vue/router/routeResourceBinding/installRouteInjection.ts +0 -164
  461. package/src/vue/router/routeResourceBinding/types.ts +0 -53
  462. package/src/vue/router/routeResourceBinding/useRouteResource.ts +0 -24
  463. package/src/vue/state/State.ts +0 -380
  464. package/src/vue/state/index.ts +0 -3
  465. package/tests/service/bulkRequests/BulkRequestSender.test.ts +0 -76
  466. package/tests/service/bulkRequests/BulkRequestWrapper.test.ts +0 -51
  467. package/tests/service/helpers/mergeDeep.test.ts +0 -53
  468. package/tests/service/laravel/pagination/dataDrivers/RequestDriver.test.ts +0 -84
  469. package/tests/service/laravel/requests/JsonBaseRequest.test.ts +0 -43
  470. package/tests/service/laravel/requests/PaginationJsonBaseRequest.test.ts +0 -58
  471. package/tests/service/laravel/requests/responses/JsonResponse.test.ts +0 -59
  472. package/tests/service/laravel/requests/responses/PaginationResponse.test.ts +0 -127
  473. package/tests/service/pagination/BasePaginator.test.ts +0 -100
  474. package/tests/service/pagination/InfiniteScroller.test.ts +0 -101
  475. package/tests/service/pagination/PageAwarePaginator.test.ts +0 -133
  476. package/tests/service/pagination/StatePaginator.test.ts +0 -76
  477. package/tests/service/pagination/VueViewDrivers.test.ts +0 -46
  478. package/tests/service/pagination/dtos/PaginationDataDto.test.ts +0 -35
  479. package/tests/service/pagination/dtos/StatePaginationDataDto.test.ts +0 -14
  480. package/tests/service/pagination/factories/VuePaginationDriverFactory.test.ts +0 -32
  481. package/tests/service/pagination/frontendDrivers/VuePaginationDriver.test.ts +0 -66
  482. package/tests/service/persistenceDrivers/PersistenceDrivers.test.ts +0 -56
  483. package/tests/service/requests/BaseRequest.test.ts +0 -250
  484. package/tests/service/requests/BodiesAndFactories.test.ts +0 -52
  485. package/tests/service/requests/Enums.test.ts +0 -20
  486. package/tests/service/requests/ErrorHandler.test.ts +0 -188
  487. package/tests/service/requests/FormDataBody.test.ts +0 -63
  488. package/tests/service/requests/RequestErrorRouter.test.ts +0 -44
  489. package/tests/service/requests/Responses.test.ts +0 -83
  490. package/tests/service/requests/exceptions/Exceptions.test.ts +0 -43
  491. package/tests/service/requests/fetch/FetchDriver.test.ts +0 -94
  492. package/tests/service/requests/fetch/FetchResponse.test.ts +0 -21
  493. package/tests/service/requests/xhr/XMLHttpRequestDriver.test.ts +0 -197
  494. package/tests/service/support/DeferredPromise.test.ts +0 -40
  495. package/tests/service/support/helpers.test.ts +0 -37
  496. package/tests/vue/composables/useConfirmDialog.test.ts +0 -77
  497. package/tests/vue/composables/useGlobalCheckbox.test.ts +0 -126
  498. package/tests/vue/composables/useIsEmpty.test.ts +0 -18
  499. package/tests/vue/composables/useIsOpen.test.ts +0 -25
  500. package/tests/vue/composables/useIsOpenFromVar.test.ts +0 -22
  501. package/tests/vue/composables/useModelWrapper.test.ts +0 -30
  502. package/tests/vue/composables/useOnOpen.test.ts +0 -26
  503. package/tests/vue/forms/BaseForm.behavior.test.ts +0 -98
  504. package/tests/vue/forms/BaseForm.transformers.test.ts +0 -109
  505. package/tests/vue/forms/PropertyAwareArray.test.ts +0 -30
  506. package/tests/vue/forms/validation/ValidationRules.test.ts +0 -79
  507. package/tests/vue/requests/VueRequestLoaders.test.ts +0 -48
  508. package/tests/vue/router/routeResourceBinding/RouteResourceBoundView.test.ts +0 -344
  509. package/tests/vue/router/routeResourceBinding/RouteResourceUtils.test.ts +0 -70
  510. package/tests/vue/router/routeResourceBinding/installRouteInjection.test.ts +0 -450
  511. package/tests/vue/state/State.test.ts +0 -151
  512. package/tsconfig.json +0 -114
  513. package/vite.config.ts +0 -34
  514. package/vitest.config.ts +0 -23
@@ -1,168 +0,0 @@
1
- # File Uploads
2
-
3
- Use `FormDataFactory` for multipart uploads with fields, and use `BinaryBodyFactory` when the endpoint expects a raw
4
- binary body such as a chunk `PUT`. Use `XMLHttpRequestDriver` when the consuming application needs upload progress for a
5
- progress bar.
6
-
7
- Choose the body factory based on the wire format your endpoint expects:
8
-
9
- - Use `FormDataFactory` when the request includes normal fields plus one or more files.
10
- - Use `BinaryBodyFactory` when the request body itself is the file or chunk.
11
- - Use `FetchDriver` if you just need to send the upload.
12
- - Use `XMLHttpRequestDriver` if you also need upload progress events.
13
-
14
- ## Request Definition
15
-
16
- ```typescript
17
- import {
18
- BaseRequest,
19
- FormDataFactory,
20
- JsonResponse,
21
- RequestMethodEnum,
22
- XMLHttpRequestDriver
23
- } from '@blueprint-ts/core/requests'
24
-
25
- interface UploadAvatarPayload {
26
- avatar: File
27
- }
28
-
29
- interface UploadAvatarResponse {
30
- id: string
31
- url: string
32
- }
33
-
34
- class UploadAvatarRequest extends BaseRequest<
35
- boolean,
36
- { message: string },
37
- UploadAvatarResponse,
38
- JsonResponse<UploadAvatarResponse>,
39
- UploadAvatarPayload
40
- > {
41
- public method(): RequestMethodEnum {
42
- return RequestMethodEnum.POST
43
- }
44
-
45
- public url(): string {
46
- return '/api/v1/avatar'
47
- }
48
-
49
- public getResponse(): JsonResponse<UploadAvatarResponse> {
50
- return new JsonResponse<UploadAvatarResponse>()
51
- }
52
-
53
- public override getRequestBodyFactory() {
54
- return new FormDataFactory<UploadAvatarPayload>()
55
- }
56
-
57
- protected override getRequestDriver() {
58
- return new XMLHttpRequestDriver({
59
- corsWithCredentials: true,
60
- headers: {
61
- 'X-XSRF-TOKEN': () => getCookie('XSRF-TOKEN')
62
- }
63
- })
64
- }
65
- }
66
- ```
67
-
68
- ## Global Default Driver
69
-
70
- You can keep `FetchDriver` as the application default. The upload request above will still use `XMLHttpRequestDriver`
71
- because it defines its own driver internally:
72
-
73
- ```typescript
74
- import { BaseRequest, FetchDriver } from '@blueprint-ts/core/requests'
75
-
76
- BaseRequest.setRequestDriver(new FetchDriver())
77
- ```
78
-
79
- Important: the upload request's `XMLHttpRequestDriver` does not inherit config from the global `FetchDriver`. If the
80
- upload request needs credentials or shared headers, define them on the `XMLHttpRequestDriver` returned by
81
- `getRequestDriver()`.
82
-
83
- ## Listening for Upload Progress
84
-
85
- ```typescript
86
- import { RequestEvents, type RequestUploadProgress } from '@blueprint-ts/core/requests'
87
-
88
- const request = new UploadAvatarRequest()
89
-
90
- request.on<RequestUploadProgress>(RequestEvents.UPLOAD_PROGRESS, (progress) => {
91
- if (!progress.lengthComputable || progress.progress === undefined) {
92
- return
93
- }
94
-
95
- progressBar.value = progress.progress * 100
96
- })
97
-
98
- await request.setBody({
99
- avatar: fileInput.files![0],
100
- }).send()
101
- ```
102
-
103
- ## Raw Chunk Uploads
104
-
105
- ```typescript
106
- import {
107
- BaseRequest,
108
- BinaryBodyFactory,
109
- JsonResponse,
110
- RequestMethodEnum,
111
- XMLHttpRequestDriver
112
- } from '@blueprint-ts/core/requests'
113
-
114
- interface UploadPartResponse {
115
- etag: string
116
- }
117
-
118
- class UploadPartRequest extends BaseRequest<
119
- boolean,
120
- { message: string },
121
- UploadPartResponse,
122
- JsonResponse<UploadPartResponse>,
123
- Uint8Array
124
- > {
125
- public method(): RequestMethodEnum {
126
- return RequestMethodEnum.PUT
127
- }
128
-
129
- public url(): string {
130
- return '/api/v1/uploads/part'
131
- }
132
-
133
- public getResponse(): JsonResponse<UploadPartResponse> {
134
- return new JsonResponse<UploadPartResponse>()
135
- }
136
-
137
- public override getRequestBodyFactory() {
138
- return new BinaryBodyFactory<Uint8Array>('application/octet-stream')
139
- }
140
-
141
- public override requestHeaders() {
142
- return {
143
- 'X-Part-Number': '1'
144
- }
145
- }
146
-
147
- protected override getRequestDriver() {
148
- return new XMLHttpRequestDriver()
149
- }
150
- }
151
- ```
152
-
153
- In this example, `setBody(...)` can receive a `Blob`, `ArrayBuffer`, `Uint8Array`, or another typed-array/data-view
154
- payload supported by `BinaryBodyFactory`.
155
-
156
- ## Notes
157
-
158
- - Upload progress requires `XMLHttpRequestDriver`. The default `FetchDriver` does not emit upload progress events.
159
- - Define `XMLHttpRequestDriver` inside the upload request class when that request should always support progress.
160
- - `BinaryBodyFactory` only sets `Content-Type` automatically when the body is a `Blob` with a non-empty `type`.
161
- For `ArrayBuffer` and typed-array uploads, pass the expected content type explicitly.
162
- - `XMLHttpRequestDriver` supports the same `corsWithCredentials` and `headers` options as `FetchDriver`, including
163
- header callbacks.
164
- - Request-defined drivers do not automatically inherit config from the globally registered driver.
165
- - Some browsers cannot compute a reliable total size for every upload. Check `lengthComputable` before rendering a
166
- percentage.
167
- - Upload event listeners may cause CORS preflight requests on cross-origin uploads. Ensure the server is configured
168
- accordingly.
@@ -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,89 +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
- ## Raw Binary Bodies
60
-
61
- Use `BinaryBodyFactory` when the request body should be sent as raw binary instead of multipart form data. This is a
62
- better fit for chunk uploads, binary artifact pushes, and endpoints that expect the request body as-is:
63
-
64
- ```typescript
65
- import { BinaryBodyFactory } from '@blueprint-ts/core/requests'
66
-
67
- public override getRequestBodyFactory() {
68
- return new BinaryBodyFactory<ArrayBuffer>('application/octet-stream')
69
- }
70
- ```
71
-
72
- `BinaryBodyFactory` supports:
73
-
74
- - `Blob`
75
- - `ArrayBuffer`
76
- - typed-array and view values such as `Uint8Array` or `DataView`
77
-
78
- `Content-Type` resolution works like this:
79
-
80
- - If you pass a content type to `BinaryBodyFactory`, Blueprint sends that `Content-Type` header.
81
- - Otherwise, if the body is a `Blob` with a non-empty `type`, Blueprint uses `Blob.type`.
82
- - Otherwise, Blueprint does not add a `Content-Type` header for you.
83
-
84
- `BinaryBodyFactory` works with both `FetchDriver` and `XMLHttpRequestDriver`. Choose `XMLHttpRequestDriver` only when
85
- the consuming application needs upload progress events.
86
-
87
- ## Custom Body Factories
88
-
89
- 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
- ```