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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/dist/bulkRequests/BulkRequestEvent.enum.d.ts +4 -0
  2. package/dist/bulkRequests/BulkRequestEvent.enum.js +5 -0
  3. package/dist/bulkRequests/BulkRequestSender.d.ts +31 -0
  4. package/dist/bulkRequests/BulkRequestSender.js +161 -0
  5. package/dist/bulkRequests/BulkRequestWrapper.d.ts +15 -0
  6. package/dist/bulkRequests/BulkRequestWrapper.js +50 -0
  7. package/dist/bulkRequests/index.d.ts +5 -0
  8. package/dist/bulkRequests/index.js +5 -0
  9. package/{src/laravel/pagination/contracts/PaginationResponseBodyContract.ts → dist/laravel/pagination/contracts/PaginationResponseBodyContract.d.ts} +4 -4
  10. package/dist/laravel/pagination/contracts/PaginationResponseBodyContract.js +1 -0
  11. package/dist/laravel/pagination/dataDrivers/RequestDriver.d.ts +10 -0
  12. package/dist/laravel/pagination/dataDrivers/RequestDriver.js +18 -0
  13. package/dist/laravel/pagination/index.d.ts +4 -0
  14. package/dist/laravel/pagination/index.js +2 -0
  15. package/dist/laravel/requests/JsonBaseRequest.d.ts +14 -0
  16. package/dist/laravel/requests/JsonBaseRequest.js +15 -0
  17. package/dist/laravel/requests/PaginationJsonBaseRequest.d.ts +8 -0
  18. package/dist/laravel/requests/PaginationJsonBaseRequest.js +13 -0
  19. package/dist/laravel/requests/index.d.ts +7 -0
  20. package/dist/laravel/requests/index.js +5 -0
  21. package/dist/laravel/requests/responses/JsonResponse.d.ts +5 -0
  22. package/dist/laravel/requests/responses/JsonResponse.js +6 -0
  23. package/dist/laravel/requests/responses/PaginationResponse.d.ts +7 -0
  24. package/dist/laravel/requests/responses/PaginationResponse.js +9 -0
  25. package/dist/pagination/BasePaginator.d.ts +19 -0
  26. package/dist/pagination/BasePaginator.js +65 -0
  27. package/dist/pagination/InfiniteScroller.d.ts +6 -0
  28. package/dist/pagination/InfiniteScroller.js +17 -0
  29. package/dist/pagination/PageAwarePaginator.d.ts +32 -0
  30. package/dist/pagination/PageAwarePaginator.js +86 -0
  31. package/dist/pagination/StatePaginator.d.ts +25 -0
  32. package/dist/pagination/StatePaginator.js +55 -0
  33. package/dist/pagination/contracts/BaseViewDriverContract.d.ts +6 -0
  34. package/dist/pagination/contracts/BaseViewDriverContract.js +1 -0
  35. package/{src/pagination/contracts/BaseViewDriverFactoryContract.ts → dist/pagination/contracts/BaseViewDriverFactoryContract.d.ts} +2 -3
  36. package/dist/pagination/contracts/BaseViewDriverFactoryContract.js +1 -0
  37. package/dist/pagination/contracts/PaginateableRequestContract.d.ts +4 -0
  38. package/dist/pagination/contracts/PaginateableRequestContract.js +1 -0
  39. package/dist/pagination/contracts/PaginationDataDriverContract.d.ts +4 -0
  40. package/dist/pagination/contracts/PaginationDataDriverContract.js +1 -0
  41. package/{src/pagination/contracts/PaginationResponseContract.ts → dist/pagination/contracts/PaginationResponseContract.d.ts} +3 -5
  42. package/dist/pagination/contracts/PaginationResponseContract.js +1 -0
  43. package/{src/pagination/contracts/PaginatorLoadDataOptions.ts → dist/pagination/contracts/PaginatorLoadDataOptions.d.ts} +2 -2
  44. package/dist/pagination/contracts/PaginatorLoadDataOptions.js +1 -0
  45. package/{src/pagination/contracts/StatePaginationDataDriverContract.ts → dist/pagination/contracts/StatePaginationDataDriverContract.d.ts} +2 -3
  46. package/dist/pagination/contracts/StatePaginationDataDriverContract.js +1 -0
  47. package/dist/pagination/contracts/ViewDriverContract.d.ts +9 -0
  48. package/dist/pagination/contracts/ViewDriverContract.js +1 -0
  49. package/dist/pagination/contracts/ViewDriverFactoryContract.d.ts +4 -0
  50. package/dist/pagination/contracts/ViewDriverFactoryContract.js +1 -0
  51. package/dist/pagination/dataDrivers/ArrayDriver.d.ts +9 -0
  52. package/dist/pagination/dataDrivers/ArrayDriver.js +20 -0
  53. package/dist/pagination/dtos/PaginationDataDto.d.ts +7 -0
  54. package/dist/pagination/dtos/PaginationDataDto.js +12 -0
  55. package/dist/pagination/dtos/StatePaginationDataDto.d.ts +7 -0
  56. package/dist/pagination/dtos/StatePaginationDataDto.js +13 -0
  57. package/dist/pagination/factories/VueBaseViewDriverFactory.d.ts +5 -0
  58. package/dist/pagination/factories/VueBaseViewDriverFactory.js +6 -0
  59. package/dist/pagination/factories/VuePaginationDriverFactory.d.ts +5 -0
  60. package/dist/pagination/factories/VuePaginationDriverFactory.js +6 -0
  61. package/dist/pagination/frontendDrivers/VueBaseViewDriver.d.ts +11 -0
  62. package/dist/pagination/frontendDrivers/VueBaseViewDriver.js +19 -0
  63. package/dist/pagination/frontendDrivers/VuePaginationDriver.d.ts +21 -0
  64. package/dist/pagination/frontendDrivers/VuePaginationDriver.js +41 -0
  65. package/dist/pagination/index.d.ts +22 -0
  66. package/dist/pagination/index.js +13 -0
  67. package/dist/persistenceDrivers/LocalStorageDriver.d.ts +9 -0
  68. package/dist/persistenceDrivers/LocalStorageDriver.js +18 -0
  69. package/dist/persistenceDrivers/NonPersistentDriver.d.ts +7 -0
  70. package/dist/persistenceDrivers/NonPersistentDriver.js +8 -0
  71. package/dist/persistenceDrivers/SessionStorageDriver.d.ts +9 -0
  72. package/dist/persistenceDrivers/SessionStorageDriver.js +18 -0
  73. package/dist/persistenceDrivers/index.d.ts +6 -0
  74. package/dist/persistenceDrivers/index.js +4 -0
  75. package/dist/persistenceDrivers/types/PersistenceDriver.d.ts +5 -0
  76. package/dist/persistenceDrivers/types/PersistenceDriver.js +1 -0
  77. package/dist/requests/BaseRequest.d.ts +62 -0
  78. package/dist/requests/BaseRequest.js +224 -0
  79. package/dist/requests/ErrorHandler.d.ts +11 -0
  80. package/dist/requests/ErrorHandler.js +127 -0
  81. package/dist/requests/RequestConcurrencyMode.enum.d.ts +6 -0
  82. package/dist/requests/RequestConcurrencyMode.enum.js +7 -0
  83. package/dist/requests/RequestErrorRouter.d.ts +38 -0
  84. package/dist/requests/RequestErrorRouter.js +38 -0
  85. package/dist/requests/RequestEvents.enum.d.ts +4 -0
  86. package/dist/requests/RequestEvents.enum.js +5 -0
  87. package/dist/requests/RequestMethod.enum.d.ts +8 -0
  88. package/dist/requests/RequestMethod.enum.js +9 -0
  89. package/dist/requests/bodies/BinaryBody.d.ts +10 -0
  90. package/dist/requests/bodies/BinaryBody.js +22 -0
  91. package/dist/requests/bodies/FormDataBody.d.ts +14 -0
  92. package/dist/requests/bodies/FormDataBody.js +60 -0
  93. package/dist/requests/bodies/JsonBody.d.ts +8 -0
  94. package/dist/requests/bodies/JsonBody.js +13 -0
  95. package/{src/requests/contracts/AbortableRequestContract.ts → dist/requests/contracts/AbortableRequestContract.d.ts} +1 -1
  96. package/dist/requests/contracts/AbortableRequestContract.js +1 -0
  97. package/dist/requests/contracts/BaseRequestContract.d.ts +23 -0
  98. package/dist/requests/contracts/BaseRequestContract.js +1 -0
  99. package/dist/requests/contracts/BodyContract.d.ts +6 -0
  100. package/dist/requests/contracts/BodyContract.js +1 -0
  101. package/dist/requests/contracts/BodyFactoryContract.d.ts +4 -0
  102. package/dist/requests/contracts/BodyFactoryContract.js +1 -0
  103. package/dist/requests/contracts/DriverConfigContract.d.ts +8 -0
  104. package/dist/requests/contracts/DriverConfigContract.js +1 -0
  105. package/dist/requests/contracts/HeadersContract.d.ts +7 -0
  106. package/dist/requests/contracts/HeadersContract.js +1 -0
  107. package/dist/requests/contracts/RequestDriverContract.d.ts +8 -0
  108. package/dist/requests/contracts/RequestDriverContract.js +1 -0
  109. package/dist/requests/contracts/RequestLoaderContract.d.ts +4 -0
  110. package/dist/requests/contracts/RequestLoaderContract.js +1 -0
  111. package/{src/requests/contracts/RequestLoaderFactoryContract.ts → dist/requests/contracts/RequestLoaderFactoryContract.d.ts} +2 -3
  112. package/dist/requests/contracts/RequestLoaderFactoryContract.js +1 -0
  113. package/dist/requests/contracts/ResponseContract.d.ts +5 -0
  114. package/dist/requests/contracts/ResponseContract.js +1 -0
  115. package/dist/requests/drivers/contracts/ResponseHandlerContract.d.ts +9 -0
  116. package/dist/requests/drivers/contracts/ResponseHandlerContract.js +1 -0
  117. package/dist/requests/drivers/fetch/FetchDriver.d.ts +26 -0
  118. package/dist/requests/drivers/fetch/FetchDriver.js +73 -0
  119. package/dist/requests/drivers/fetch/FetchResponse.d.ts +12 -0
  120. package/dist/requests/drivers/fetch/FetchResponse.js +38 -0
  121. package/dist/requests/drivers/xhr/XMLHttpRequestDriver.d.ts +13 -0
  122. package/dist/requests/drivers/xhr/XMLHttpRequestDriver.js +107 -0
  123. package/dist/requests/drivers/xhr/XMLHttpRequestResponse.d.ts +17 -0
  124. package/dist/requests/drivers/xhr/XMLHttpRequestResponse.js +84 -0
  125. package/dist/requests/exceptions/BadGatewayException.d.ts +3 -0
  126. package/dist/requests/exceptions/BadGatewayException.js +3 -0
  127. package/dist/requests/exceptions/BadRequestException.d.ts +3 -0
  128. package/dist/requests/exceptions/BadRequestException.js +3 -0
  129. package/dist/requests/exceptions/ConflictException.d.ts +3 -0
  130. package/dist/requests/exceptions/ConflictException.js +3 -0
  131. package/dist/requests/exceptions/ForbiddenException.d.ts +3 -0
  132. package/dist/requests/exceptions/ForbiddenException.js +3 -0
  133. package/dist/requests/exceptions/GatewayTimeoutException.d.ts +3 -0
  134. package/dist/requests/exceptions/GatewayTimeoutException.js +3 -0
  135. package/dist/requests/exceptions/GoneException.d.ts +3 -0
  136. package/dist/requests/exceptions/GoneException.js +3 -0
  137. package/dist/requests/exceptions/InvalidJsonException.d.ts +7 -0
  138. package/dist/requests/exceptions/InvalidJsonException.js +10 -0
  139. package/dist/requests/exceptions/LockedException.d.ts +3 -0
  140. package/dist/requests/exceptions/LockedException.js +3 -0
  141. package/dist/requests/exceptions/MethodNotAllowedException.d.ts +3 -0
  142. package/dist/requests/exceptions/MethodNotAllowedException.js +3 -0
  143. package/dist/requests/exceptions/NoResponseReceivedException.d.ts +3 -0
  144. package/{src/requests/exceptions/NoResponseReceivedException.ts → dist/requests/exceptions/NoResponseReceivedException.js} +3 -3
  145. package/dist/requests/exceptions/NotFoundException.d.ts +3 -0
  146. package/dist/requests/exceptions/NotFoundException.js +3 -0
  147. package/dist/requests/exceptions/NotImplementedException.d.ts +3 -0
  148. package/dist/requests/exceptions/NotImplementedException.js +3 -0
  149. package/dist/requests/exceptions/PageExpiredException.d.ts +3 -0
  150. package/dist/requests/exceptions/PageExpiredException.js +3 -0
  151. package/dist/requests/exceptions/PayloadTooLargeException.d.ts +3 -0
  152. package/dist/requests/exceptions/PayloadTooLargeException.js +3 -0
  153. package/dist/requests/exceptions/PreconditionFailedException.d.ts +3 -0
  154. package/dist/requests/exceptions/PreconditionFailedException.js +3 -0
  155. package/dist/requests/exceptions/RequestTimeoutException.d.ts +3 -0
  156. package/dist/requests/exceptions/RequestTimeoutException.js +3 -0
  157. package/dist/requests/exceptions/ResponseBodyException.d.ts +7 -0
  158. package/dist/requests/exceptions/ResponseBodyException.js +10 -0
  159. package/dist/requests/exceptions/ResponseException.d.ts +6 -0
  160. package/dist/requests/exceptions/ResponseException.js +9 -0
  161. package/dist/requests/exceptions/ServerErrorException.d.ts +3 -0
  162. package/dist/requests/exceptions/ServerErrorException.js +3 -0
  163. package/dist/requests/exceptions/ServiceUnavailableException.d.ts +3 -0
  164. package/dist/requests/exceptions/ServiceUnavailableException.js +3 -0
  165. package/dist/requests/exceptions/StaleResponseException.d.ts +5 -0
  166. package/dist/requests/exceptions/StaleResponseException.js +10 -0
  167. package/dist/requests/exceptions/TooManyRequestsException.d.ts +3 -0
  168. package/dist/requests/exceptions/TooManyRequestsException.js +3 -0
  169. package/dist/requests/exceptions/UnauthorizedException.d.ts +3 -0
  170. package/dist/requests/exceptions/UnauthorizedException.js +3 -0
  171. package/dist/requests/exceptions/UnsupportedMediaTypeException.d.ts +3 -0
  172. package/dist/requests/exceptions/UnsupportedMediaTypeException.js +3 -0
  173. package/dist/requests/exceptions/ValidationException.d.ts +3 -0
  174. package/dist/requests/exceptions/ValidationException.js +3 -0
  175. package/dist/requests/exceptions/index.d.ts +25 -0
  176. package/dist/requests/exceptions/index.js +25 -0
  177. package/dist/requests/factories/BinaryBodyFactory.d.ts +8 -0
  178. package/dist/requests/factories/BinaryBodyFactory.js +9 -0
  179. package/dist/requests/factories/FormDataFactory.d.ts +12 -0
  180. package/dist/requests/factories/FormDataFactory.js +6 -0
  181. package/dist/requests/factories/JsonBodyFactory.d.ts +5 -0
  182. package/dist/requests/factories/JsonBodyFactory.js +6 -0
  183. package/dist/requests/index.d.ts +31 -0
  184. package/dist/requests/index.js +19 -0
  185. package/dist/requests/responses/BaseResponse.d.ts +14 -0
  186. package/dist/requests/responses/BaseResponse.js +36 -0
  187. package/dist/requests/responses/BlobResponse.d.ts +7 -0
  188. package/dist/requests/responses/BlobResponse.js +16 -0
  189. package/dist/requests/responses/JsonResponse.d.ts +5 -0
  190. package/dist/requests/responses/JsonResponse.js +12 -0
  191. package/dist/requests/responses/PlainTextResponse.d.ts +5 -0
  192. package/dist/requests/responses/PlainTextResponse.js +12 -0
  193. package/{src/requests/types/RequestConcurrencyOptions.ts → dist/requests/types/RequestConcurrencyOptions.d.ts} +4 -5
  194. package/dist/requests/types/RequestConcurrencyOptions.js +1 -0
  195. package/dist/requests/types/RequestUploadProgress.d.ts +6 -0
  196. package/dist/requests/types/RequestUploadProgress.js +1 -0
  197. package/dist/support/DeferredPromise.d.ts +37 -0
  198. package/dist/support/DeferredPromise.js +55 -0
  199. package/dist/support/helpers.d.ts +5 -0
  200. package/dist/support/helpers.js +69 -0
  201. package/{src/support/index.ts → dist/support/index.d.ts} +3 -4
  202. package/dist/support/index.js +3 -0
  203. package/dist/vue/composables/useConfirmDialog.d.ts +20 -0
  204. package/dist/vue/composables/useConfirmDialog.js +52 -0
  205. package/dist/vue/composables/useGlobalCheckbox.d.ts +13 -0
  206. package/dist/vue/composables/useGlobalCheckbox.js +123 -0
  207. package/dist/vue/composables/useIsEmpty.d.ts +4 -0
  208. package/dist/vue/composables/useIsEmpty.js +27 -0
  209. package/dist/vue/composables/useIsOpen.d.ts +5 -0
  210. package/dist/vue/composables/useIsOpen.js +25 -0
  211. package/dist/vue/composables/useIsOpenFromVar.d.ts +6 -0
  212. package/dist/vue/composables/useIsOpenFromVar.js +45 -0
  213. package/dist/vue/composables/useModelWrapper.d.ts +9 -0
  214. package/dist/vue/composables/useModelWrapper.js +18 -0
  215. package/dist/vue/composables/useOnOpen.d.ts +7 -0
  216. package/dist/vue/composables/useOnOpen.js +25 -0
  217. package/{src/vue/contracts/ModelValueOptions.ts → dist/vue/contracts/ModelValueOptions.d.ts} +1 -1
  218. package/dist/vue/contracts/ModelValueOptions.js +1 -0
  219. package/dist/vue/contracts/ModelValueProps.d.ts +3 -0
  220. package/dist/vue/contracts/ModelValueProps.js +1 -0
  221. package/dist/vue/forms/BaseForm.d.ts +162 -0
  222. package/dist/vue/forms/BaseForm.js +997 -0
  223. package/dist/vue/forms/PropertyAwareArray.d.ts +53 -0
  224. package/dist/vue/forms/PropertyAwareArray.js +54 -0
  225. package/{src/vue/forms/index.ts → dist/vue/forms/index.d.ts} +9 -11
  226. package/dist/vue/forms/index.js +6 -0
  227. package/dist/vue/forms/types/PersistedForm.d.ts +6 -0
  228. package/dist/vue/forms/types/PersistedForm.js +1 -0
  229. package/dist/vue/forms/validation/ValidationMode.enum.d.ts +11 -0
  230. package/dist/vue/forms/validation/ValidationMode.enum.js +14 -0
  231. package/dist/vue/forms/validation/index.d.ts +12 -0
  232. package/dist/vue/forms/validation/index.js +9 -0
  233. package/dist/vue/forms/validation/rules/BaseRule.d.ts +5 -0
  234. package/dist/vue/forms/validation/rules/BaseRule.js +5 -0
  235. package/dist/vue/forms/validation/rules/ConfirmedRule.d.ts +10 -0
  236. package/dist/vue/forms/validation/rules/ConfirmedRule.js +26 -0
  237. package/dist/vue/forms/validation/rules/EmailRule.d.ts +7 -0
  238. package/dist/vue/forms/validation/rules/EmailRule.js +19 -0
  239. package/dist/vue/forms/validation/rules/JsonRule.d.ts +7 -0
  240. package/dist/vue/forms/validation/rules/JsonRule.js +25 -0
  241. package/dist/vue/forms/validation/rules/MinRule.d.ts +26 -0
  242. package/dist/vue/forms/validation/rules/MinRule.js +52 -0
  243. package/dist/vue/forms/validation/rules/RequiredRule.d.ts +7 -0
  244. package/dist/vue/forms/validation/rules/RequiredRule.js +16 -0
  245. package/dist/vue/forms/validation/rules/UrlRule.d.ts +7 -0
  246. package/dist/vue/forms/validation/rules/UrlRule.js +22 -0
  247. package/{src/vue/forms/validation/types/BidirectionalRule.ts → dist/vue/forms/validation/types/BidirectionalRule.d.ts} +4 -4
  248. package/dist/vue/forms/validation/types/BidirectionalRule.js +1 -0
  249. package/dist/vue/forms/validation/types/ValidationRules.d.ts +11 -0
  250. package/dist/vue/forms/validation/types/ValidationRules.js +1 -0
  251. package/dist/vue/index.d.ts +11 -0
  252. package/dist/vue/index.js +10 -0
  253. package/dist/vue/requests/factories/VueRequestLoaderFactory.d.ts +6 -0
  254. package/dist/vue/requests/factories/VueRequestLoaderFactory.js +6 -0
  255. package/{src/vue/requests/index.ts → dist/vue/requests/index.d.ts} +4 -5
  256. package/dist/vue/requests/index.js +4 -0
  257. package/dist/vue/requests/loaders/VueRequestBatchLoader.d.ts +12 -0
  258. package/dist/vue/requests/loaders/VueRequestBatchLoader.js +29 -0
  259. package/dist/vue/requests/loaders/VueRequestLoader.d.ts +8 -0
  260. package/dist/vue/requests/loaders/VueRequestLoader.js +12 -0
  261. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.d.ts +57 -0
  262. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.js +135 -0
  263. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.d.ts +6 -0
  264. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.js +20 -0
  265. package/dist/vue/router/routeResourceBinding/defineRoute.d.ts +23 -0
  266. package/dist/vue/router/routeResourceBinding/defineRoute.js +42 -0
  267. package/dist/vue/router/routeResourceBinding/index.d.ts +8 -0
  268. package/dist/vue/router/routeResourceBinding/index.js +6 -0
  269. package/dist/vue/router/routeResourceBinding/installRouteInjection.d.ts +14 -0
  270. package/dist/vue/router/routeResourceBinding/installRouteInjection.js +133 -0
  271. package/dist/vue/router/routeResourceBinding/types.d.ts +55 -0
  272. package/dist/vue/router/routeResourceBinding/types.js +1 -0
  273. package/dist/vue/router/routeResourceBinding/useRouteResource.d.ts +8 -0
  274. package/dist/vue/router/routeResourceBinding/useRouteResource.js +29 -0
  275. package/dist/vue/state/State.d.ts +75 -0
  276. package/dist/vue/state/State.js +267 -0
  277. package/dist/vue/state/index.d.ts +2 -0
  278. package/dist/vue/state/index.js +2 -0
  279. package/package.json +81 -23
  280. package/.editorconfig +0 -508
  281. package/.eslintrc.cjs +0 -15
  282. package/.prettierrc.json +0 -8
  283. package/CHANGELOG.md +0 -226
  284. package/docker-compose.yaml +0 -8
  285. package/docs/.vitepress/config.ts +0 -124
  286. package/docs/index.md +0 -13
  287. package/docs/laravel/pagination.md +0 -67
  288. package/docs/laravel/requests.md +0 -62
  289. package/docs/services/pagination/index.md +0 -46
  290. package/docs/services/pagination/infinite-scroller.md +0 -20
  291. package/docs/services/pagination/page-aware.md +0 -51
  292. package/docs/services/pagination/state-pagination.md +0 -77
  293. package/docs/services/pagination/updating-rows.md +0 -52
  294. package/docs/services/persistence/index.md +0 -46
  295. package/docs/services/requests/abort-requests.md +0 -29
  296. package/docs/services/requests/bulk-requests.md +0 -70
  297. package/docs/services/requests/concurrency.md +0 -58
  298. package/docs/services/requests/drivers.md +0 -115
  299. package/docs/services/requests/error-handling.md +0 -153
  300. package/docs/services/requests/events.md +0 -53
  301. package/docs/services/requests/file-uploads.md +0 -168
  302. package/docs/services/requests/getting-started.md +0 -201
  303. package/docs/services/requests/headers.md +0 -40
  304. package/docs/services/requests/loading.md +0 -63
  305. package/docs/services/requests/request-bodies.md +0 -89
  306. package/docs/services/requests/responses.md +0 -34
  307. package/docs/services/support/deferred-promise.md +0 -63
  308. package/docs/services/support/helpers.md +0 -77
  309. package/docs/services/support/index.md +0 -6
  310. package/docs/upgrading/v1-to-v2.md +0 -64
  311. package/docs/upgrading/v2-to-v3.md +0 -52
  312. package/docs/upgrading/v3-to-v4.md +0 -214
  313. package/docs/upgrading.md +0 -0
  314. package/docs/vue/composables/use-confirm-dialog.md +0 -96
  315. package/docs/vue/composables/use-global-checkbox.md +0 -73
  316. package/docs/vue/composables/use-is-empty.md +0 -26
  317. package/docs/vue/composables/use-is-open-from-var.md +0 -32
  318. package/docs/vue/composables/use-is-open.md +0 -28
  319. package/docs/vue/composables/use-model-wrapper.md +0 -29
  320. package/docs/vue/composables/use-on-open.md +0 -26
  321. package/docs/vue/forms/arrays.md +0 -102
  322. package/docs/vue/forms/errors.md +0 -52
  323. package/docs/vue/forms/index.md +0 -99
  324. package/docs/vue/forms/payloads.md +0 -99
  325. package/docs/vue/forms/persistence.md +0 -19
  326. package/docs/vue/forms/state-and-properties.md +0 -26
  327. package/docs/vue/forms/utilities.md +0 -27
  328. package/docs/vue/forms/validation.md +0 -189
  329. package/docs/vue/requests/loading.md +0 -51
  330. package/docs/vue/router/route-resource-binding.md +0 -240
  331. package/docs/vue/state.md +0 -309
  332. package/env.d.ts +0 -1
  333. package/eslint.config.js +0 -15
  334. package/release-tool.json +0 -26
  335. package/src/bulkRequests/BulkRequestEvent.enum.ts +0 -4
  336. package/src/bulkRequests/BulkRequestSender.ts +0 -196
  337. package/src/bulkRequests/BulkRequestWrapper.ts +0 -49
  338. package/src/bulkRequests/index.ts +0 -6
  339. package/src/laravel/pagination/dataDrivers/RequestDriver.ts +0 -30
  340. package/src/laravel/pagination/index.ts +0 -6
  341. package/src/laravel/requests/JsonBaseRequest.ts +0 -35
  342. package/src/laravel/requests/PaginationJsonBaseRequest.ts +0 -29
  343. package/src/laravel/requests/index.ts +0 -9
  344. package/src/laravel/requests/responses/JsonResponse.ts +0 -8
  345. package/src/laravel/requests/responses/PaginationResponse.ts +0 -16
  346. package/src/pagination/BasePaginator.ts +0 -94
  347. package/src/pagination/InfiniteScroller.ts +0 -22
  348. package/src/pagination/PageAwarePaginator.ts +0 -132
  349. package/src/pagination/StatePaginator.ts +0 -86
  350. package/src/pagination/contracts/BaseViewDriverContract.ts +0 -6
  351. package/src/pagination/contracts/PaginateableRequestContract.ts +0 -13
  352. package/src/pagination/contracts/PaginationDataDriverContract.ts +0 -5
  353. package/src/pagination/contracts/ViewDriverContract.ts +0 -10
  354. package/src/pagination/contracts/ViewDriverFactoryContract.ts +0 -5
  355. package/src/pagination/dataDrivers/ArrayDriver.ts +0 -28
  356. package/src/pagination/dtos/PaginationDataDto.ts +0 -14
  357. package/src/pagination/dtos/StatePaginationDataDto.ts +0 -19
  358. package/src/pagination/factories/VueBaseViewDriverFactory.ts +0 -9
  359. package/src/pagination/factories/VuePaginationDriverFactory.ts +0 -9
  360. package/src/pagination/frontendDrivers/VueBaseViewDriver.ts +0 -28
  361. package/src/pagination/frontendDrivers/VuePaginationDriver.ts +0 -61
  362. package/src/pagination/index.ts +0 -46
  363. package/src/persistenceDrivers/LocalStorageDriver.ts +0 -22
  364. package/src/persistenceDrivers/NonPersistentDriver.ts +0 -12
  365. package/src/persistenceDrivers/SessionStorageDriver.ts +0 -22
  366. package/src/persistenceDrivers/index.ts +0 -8
  367. package/src/persistenceDrivers/types/PersistenceDriver.ts +0 -5
  368. package/src/requests/BaseRequest.ts +0 -321
  369. package/src/requests/ErrorHandler.ts +0 -144
  370. package/src/requests/RequestConcurrencyMode.enum.ts +0 -6
  371. package/src/requests/RequestErrorRouter.ts +0 -89
  372. package/src/requests/RequestEvents.enum.ts +0 -4
  373. package/src/requests/RequestMethod.enum.ts +0 -8
  374. package/src/requests/bodies/BinaryBody.ts +0 -31
  375. package/src/requests/bodies/FormDataBody.ts +0 -81
  376. package/src/requests/bodies/JsonBody.ts +0 -16
  377. package/src/requests/contracts/BaseRequestContract.ts +0 -39
  378. package/src/requests/contracts/BodyContract.ts +0 -9
  379. package/src/requests/contracts/BodyFactoryContract.ts +0 -5
  380. package/src/requests/contracts/DriverConfigContract.ts +0 -9
  381. package/src/requests/contracts/HeadersContract.ts +0 -9
  382. package/src/requests/contracts/RequestDriverContract.ts +0 -15
  383. package/src/requests/contracts/RequestLoaderContract.ts +0 -5
  384. package/src/requests/contracts/ResponseContract.ts +0 -7
  385. package/src/requests/drivers/contracts/ResponseHandlerContract.ts +0 -10
  386. package/src/requests/drivers/fetch/FetchDriver.ts +0 -115
  387. package/src/requests/drivers/fetch/FetchResponse.ts +0 -30
  388. package/src/requests/drivers/xhr/XMLHttpRequestDriver.ts +0 -138
  389. package/src/requests/drivers/xhr/XMLHttpRequestResponse.ts +0 -95
  390. package/src/requests/exceptions/BadGatewayException.ts +0 -3
  391. package/src/requests/exceptions/BadRequestException.ts +0 -3
  392. package/src/requests/exceptions/ConflictException.ts +0 -3
  393. package/src/requests/exceptions/ForbiddenException.ts +0 -3
  394. package/src/requests/exceptions/GatewayTimeoutException.ts +0 -3
  395. package/src/requests/exceptions/GoneException.ts +0 -3
  396. package/src/requests/exceptions/InvalidJsonException.ts +0 -15
  397. package/src/requests/exceptions/LockedException.ts +0 -3
  398. package/src/requests/exceptions/MethodNotAllowedException.ts +0 -3
  399. package/src/requests/exceptions/NotFoundException.ts +0 -3
  400. package/src/requests/exceptions/NotImplementedException.ts +0 -3
  401. package/src/requests/exceptions/PageExpiredException.ts +0 -3
  402. package/src/requests/exceptions/PayloadTooLargeException.ts +0 -3
  403. package/src/requests/exceptions/PreconditionFailedException.ts +0 -3
  404. package/src/requests/exceptions/RequestTimeoutException.ts +0 -3
  405. package/src/requests/exceptions/ResponseBodyException.ts +0 -15
  406. package/src/requests/exceptions/ResponseException.ts +0 -11
  407. package/src/requests/exceptions/ServerErrorException.ts +0 -3
  408. package/src/requests/exceptions/ServiceUnavailableException.ts +0 -3
  409. package/src/requests/exceptions/StaleResponseException.ts +0 -13
  410. package/src/requests/exceptions/TooManyRequestsException.ts +0 -3
  411. package/src/requests/exceptions/UnauthorizedException.ts +0 -3
  412. package/src/requests/exceptions/UnsupportedMediaTypeException.ts +0 -3
  413. package/src/requests/exceptions/ValidationException.ts +0 -3
  414. package/src/requests/exceptions/index.ts +0 -51
  415. package/src/requests/factories/BinaryBodyFactory.ts +0 -13
  416. package/src/requests/factories/FormDataFactory.ts +0 -17
  417. package/src/requests/factories/JsonBodyFactory.ts +0 -9
  418. package/src/requests/index.ts +0 -68
  419. package/src/requests/responses/BaseResponse.ts +0 -41
  420. package/src/requests/responses/BlobResponse.ts +0 -19
  421. package/src/requests/responses/JsonResponse.ts +0 -15
  422. package/src/requests/responses/PlainTextResponse.ts +0 -15
  423. package/src/requests/types/RequestUploadProgress.ts +0 -6
  424. package/src/support/DeferredPromise.ts +0 -67
  425. package/src/support/helpers.ts +0 -78
  426. package/src/vue/composables/useConfirmDialog.ts +0 -63
  427. package/src/vue/composables/useGlobalCheckbox.ts +0 -145
  428. package/src/vue/composables/useIsEmpty.ts +0 -34
  429. package/src/vue/composables/useIsOpen.ts +0 -37
  430. package/src/vue/composables/useIsOpenFromVar.ts +0 -61
  431. package/src/vue/composables/useModelWrapper.ts +0 -27
  432. package/src/vue/composables/useOnOpen.ts +0 -34
  433. package/src/vue/contracts/ModelValueProps.ts +0 -3
  434. package/src/vue/forms/BaseForm.ts +0 -1192
  435. package/src/vue/forms/PropertyAwareArray.ts +0 -81
  436. package/src/vue/forms/types/PersistedForm.ts +0 -6
  437. package/src/vue/forms/validation/ValidationMode.enum.ts +0 -14
  438. package/src/vue/forms/validation/index.ts +0 -15
  439. package/src/vue/forms/validation/rules/BaseRule.ts +0 -7
  440. package/src/vue/forms/validation/rules/ConfirmedRule.ts +0 -39
  441. package/src/vue/forms/validation/rules/EmailRule.ts +0 -23
  442. package/src/vue/forms/validation/rules/JsonRule.ts +0 -28
  443. package/src/vue/forms/validation/rules/MinRule.ts +0 -61
  444. package/src/vue/forms/validation/rules/RequiredRule.ts +0 -19
  445. package/src/vue/forms/validation/rules/UrlRule.ts +0 -24
  446. package/src/vue/forms/validation/types/ValidationRules.ts +0 -15
  447. package/src/vue/index.ts +0 -14
  448. package/src/vue/requests/factories/VueRequestLoaderFactory.ts +0 -10
  449. package/src/vue/requests/loaders/VueRequestBatchLoader.ts +0 -35
  450. package/src/vue/requests/loaders/VueRequestLoader.ts +0 -18
  451. package/src/vue/router/routeResourceBinding/RouteResourceBoundView.ts +0 -145
  452. package/src/vue/router/routeResourceBinding/RouteResourceRequestResolver.ts +0 -11
  453. package/src/vue/router/routeResourceBinding/defineRoute.ts +0 -59
  454. package/src/vue/router/routeResourceBinding/index.ts +0 -11
  455. package/src/vue/router/routeResourceBinding/installRouteInjection.ts +0 -164
  456. package/src/vue/router/routeResourceBinding/types.ts +0 -53
  457. package/src/vue/router/routeResourceBinding/useRouteResource.ts +0 -24
  458. package/src/vue/state/State.ts +0 -380
  459. package/src/vue/state/index.ts +0 -3
  460. package/tests/service/bulkRequests/BulkRequestSender.test.ts +0 -76
  461. package/tests/service/bulkRequests/BulkRequestWrapper.test.ts +0 -51
  462. package/tests/service/helpers/mergeDeep.test.ts +0 -53
  463. package/tests/service/laravel/pagination/dataDrivers/RequestDriver.test.ts +0 -84
  464. package/tests/service/laravel/requests/JsonBaseRequest.test.ts +0 -43
  465. package/tests/service/laravel/requests/PaginationJsonBaseRequest.test.ts +0 -58
  466. package/tests/service/laravel/requests/responses/JsonResponse.test.ts +0 -59
  467. package/tests/service/laravel/requests/responses/PaginationResponse.test.ts +0 -127
  468. package/tests/service/pagination/BasePaginator.test.ts +0 -100
  469. package/tests/service/pagination/InfiniteScroller.test.ts +0 -101
  470. package/tests/service/pagination/PageAwarePaginator.test.ts +0 -133
  471. package/tests/service/pagination/StatePaginator.test.ts +0 -76
  472. package/tests/service/pagination/VueViewDrivers.test.ts +0 -46
  473. package/tests/service/pagination/dtos/PaginationDataDto.test.ts +0 -35
  474. package/tests/service/pagination/dtos/StatePaginationDataDto.test.ts +0 -14
  475. package/tests/service/pagination/factories/VuePaginationDriverFactory.test.ts +0 -32
  476. package/tests/service/pagination/frontendDrivers/VuePaginationDriver.test.ts +0 -66
  477. package/tests/service/persistenceDrivers/PersistenceDrivers.test.ts +0 -56
  478. package/tests/service/requests/BaseRequest.test.ts +0 -250
  479. package/tests/service/requests/BodiesAndFactories.test.ts +0 -52
  480. package/tests/service/requests/Enums.test.ts +0 -20
  481. package/tests/service/requests/ErrorHandler.test.ts +0 -188
  482. package/tests/service/requests/FormDataBody.test.ts +0 -63
  483. package/tests/service/requests/RequestErrorRouter.test.ts +0 -44
  484. package/tests/service/requests/Responses.test.ts +0 -83
  485. package/tests/service/requests/exceptions/Exceptions.test.ts +0 -43
  486. package/tests/service/requests/fetch/FetchDriver.test.ts +0 -94
  487. package/tests/service/requests/fetch/FetchResponse.test.ts +0 -21
  488. package/tests/service/requests/xhr/XMLHttpRequestDriver.test.ts +0 -197
  489. package/tests/service/support/DeferredPromise.test.ts +0 -40
  490. package/tests/service/support/helpers.test.ts +0 -37
  491. package/tests/vue/composables/useConfirmDialog.test.ts +0 -77
  492. package/tests/vue/composables/useGlobalCheckbox.test.ts +0 -126
  493. package/tests/vue/composables/useIsEmpty.test.ts +0 -18
  494. package/tests/vue/composables/useIsOpen.test.ts +0 -25
  495. package/tests/vue/composables/useIsOpenFromVar.test.ts +0 -22
  496. package/tests/vue/composables/useModelWrapper.test.ts +0 -30
  497. package/tests/vue/composables/useOnOpen.test.ts +0 -26
  498. package/tests/vue/forms/BaseForm.behavior.test.ts +0 -98
  499. package/tests/vue/forms/BaseForm.transformers.test.ts +0 -109
  500. package/tests/vue/forms/PropertyAwareArray.test.ts +0 -30
  501. package/tests/vue/forms/validation/ValidationRules.test.ts +0 -79
  502. package/tests/vue/requests/VueRequestLoaders.test.ts +0 -48
  503. package/tests/vue/router/routeResourceBinding/RouteResourceBoundView.test.ts +0 -344
  504. package/tests/vue/router/routeResourceBinding/RouteResourceUtils.test.ts +0 -70
  505. package/tests/vue/router/routeResourceBinding/installRouteInjection.test.ts +0 -450
  506. package/tests/vue/state/State.test.ts +0 -151
  507. package/tsconfig.json +0 -114
  508. package/vite.config.ts +0 -34
  509. package/vitest.config.ts +0 -23
@@ -1,51 +0,0 @@
1
- # Loading
2
-
3
- For Vue apps, the library includes `VueRequestLoader`, `VueRequestLoaderFactory`, and `VueRequestBatchLoader`, which
4
- use Vue refs to track loading state.
5
-
6
- ## Registering the Vue Loader Factory
7
-
8
- ```typescript
9
- import { BaseRequest } from '@blueprint-ts/core/requests'
10
- import { VueRequestLoaderFactory } from '@blueprint-ts/core/vue/requests'
11
-
12
- BaseRequest.setRequestLoaderFactory(new VueRequestLoaderFactory())
13
- ```
14
-
15
- ## Reading Loading State
16
-
17
- ```typescript
18
- const request = new ExpenseIndexRequest()
19
-
20
- request.send()
21
-
22
- const isLoading = request.isLoading()
23
- // isLoading is a Ref<boolean> when using VueRequestLoaderFactory
24
- ```
25
-
26
- ## Batch Loading
27
-
28
- `VueRequestBatchLoader` can track the loading state of multiple requests. Use it when you want a single loading ref to
29
- reflect a batch of requests.
30
-
31
- ```typescript
32
- import { VueRequestBatchLoader } from '@blueprint-ts/core/vue/requests'
33
-
34
- const batchLoader = new VueRequestBatchLoader(2)
35
- batchLoader.startBatch(2)
36
-
37
- const requestA = new ExpenseIndexRequest().setRequestLoader(batchLoader)
38
- const requestB = new ExpenseIndexRequest().setRequestLoader(batchLoader)
39
-
40
- requestA.send()
41
- requestB.send()
42
-
43
- const isLoading = batchLoader.isLoading()
44
- ```
45
-
46
- If the batch will not complete (for example, when a chained request fails), call `abortBatch()` to stop waiting for the
47
- remaining requests:
48
-
49
- ```typescript
50
- batchLoader.abortBatch()
51
- ```
@@ -1,240 +0,0 @@
1
- # Route Resource Binding
2
-
3
- When using `vue-router`, you can automatically bind route parameters to resources, similar to how Laravel's route model binding works.
4
-
5
- ## Setup
6
-
7
- To enable the router to load resources automatically, install the route injection plugin when initializing your router:
8
-
9
- ```ts
10
- import { installRouteInjection } from '@blueprint-ts/core/vue/router/routeResourceBinding'
11
-
12
- installRouteInjection(router)
13
- ```
14
-
15
- ## Defining Routes
16
-
17
- Use the `defineRoute` helper to define your routes and specify which parameters should be resolved into resources:
18
-
19
- ```ts
20
- import { defineRoute, RouteResourceRequestResolver } from '@blueprint-ts/core/vue/router/routeResourceBinding'
21
- import ProductDetailPage from '@/pages/ProductDetailPage.vue'
22
-
23
- export default defineRoute<{
24
- product: ProductResource
25
- }>()({
26
- path: ':productId',
27
- name: 'products.show',
28
- component: ProductDetailPage,
29
- meta: {
30
- inject: {
31
- product: {
32
- from: 'productId',
33
- resolve: (productId: string) => {
34
- return new RouteResourceRequestResolver(
35
- new ProductShowRequest(productId)
36
- )
37
- }
38
- }
39
- }
40
- }
41
- })
42
- ```
43
-
44
- Navigation is blocking by default. Cached values are reused when navigating between child routes with unchanged parameters.
45
-
46
- ## Usage in Components
47
-
48
- Your component can directly access the resolved resource via props:
49
-
50
- ```vue
51
- <script setup lang="ts">
52
- const props = defineProps<{
53
- product: ProductResource
54
- }>()
55
- </script>
56
- ```
57
-
58
- ## Handling Loading & Error States
59
-
60
- ### Using `RouteResourceBoundView`
61
-
62
- `RouteResourceBoundView` is a drop-in replacement for `<RouterView>` that automatically handles loading and error states. Define error and loading components directly in the route:
63
-
64
- ```ts
65
- import { defineRoute, RouteResourceRequestResolver } from '@blueprint-ts/core/vue/router/routeResourceBinding'
66
- import ProductDetailPage from '@/pages/ProductDetailPage.vue'
67
- import GenericErrorPage from '@/pages/GenericErrorPage.vue'
68
- import LoadingSpinner from '@/components/LoadingSpinner.vue'
69
-
70
- export default defineRoute<{
71
- product: ProductResource
72
- }>()({
73
- path: ':productId',
74
- name: 'products.show',
75
- component: ProductDetailPage,
76
- errorComponent: GenericErrorPage,
77
- loadingComponent: LoadingSpinner,
78
- meta: {
79
- inject: {
80
- product: {
81
- from: 'productId',
82
- resolve: (productId: string) => {
83
- return new RouteResourceRequestResolver(
84
- new ProductShowRequest(productId)
85
- )
86
- }
87
- }
88
- }
89
- }
90
- })
91
- ```
92
-
93
- Then replace `<RouterView>` with `<RouteResourceBoundView>` in your layout:
94
-
95
- ```vue
96
- <template>
97
- <RouteResourceBoundView />
98
- </template>
99
-
100
- <script setup lang="ts">
101
- import { RouteResourceBoundView } from '@blueprint-ts/core/vue/router/routeResourceBinding'
102
- </script>
103
- ```
104
-
105
- The `errorComponent` receives `error` and `refresh` as props. The `refresh` function retries all failed resources:
106
-
107
- ```vue
108
- <!-- GenericErrorPage.vue -->
109
- <template>
110
- <div>
111
- <p>{{ error.message }}</p>
112
- <button @click="refresh">Try Again</button>
113
- </div>
114
- </template>
115
-
116
- <script setup lang="ts">
117
- defineProps<{
118
- error: Error
119
- refresh: () => Promise<void>
120
- }>()
121
- </script>
122
- ```
123
-
124
- #### Using Scoped Slots
125
-
126
- `RouteResourceBoundView` supports the same `v-slot` pattern as `<RouterView>`:
127
-
128
- ```vue
129
- <RouteResourceBoundView v-slot="{ Component, route }">
130
- <component
131
- :is="Component"
132
- v-if="Component"
133
- />
134
- <EmptyState v-else />
135
- </RouteResourceBoundView>
136
- ```
137
-
138
- When no `errorComponent` or `loadingComponent` is defined on the route, you can use named slots as fallbacks:
139
-
140
- ```vue
141
- <RouteResourceBoundView>
142
- <template #default="{ Component, route }">
143
- <component :is="Component" v-if="Component" />
144
- </template>
145
-
146
- <template #loading>
147
- <LoadingSpinner />
148
- </template>
149
-
150
- <template #error="{ error, refresh }">
151
- <div>
152
- <p>{{ error.message }}</p>
153
- <button @click="refresh">Retry</button>
154
- </div>
155
- </template>
156
- </RouteResourceBoundView>
157
- ```
158
-
159
- ### Using `useRouteResource` (Manual Handling)
160
-
161
- If you prefer to handle loading and error states inside the component itself, set `lazy: false` on the route. This renders the component immediately while resources resolve in the background:
162
-
163
- ```ts
164
- export default defineRoute<{
165
- product: ProductResource
166
- }>()({
167
- path: ':productId',
168
- name: 'products.show',
169
- component: ProductDetailPage,
170
- lazy: false,
171
- meta: {
172
- inject: {
173
- product: {
174
- from: 'productId',
175
- resolve: (productId: string) => {
176
- return new RouteResourceRequestResolver(
177
- new ProductShowRequest(productId)
178
- )
179
- }
180
- }
181
- }
182
- }
183
- })
184
- ```
185
-
186
- Then use the `useRouteResource` composable inside your component:
187
-
188
- ```vue
189
- <template>
190
- <div v-if="isLoading">Loading...</div>
191
- <div v-else-if="error">
192
- <p>{{ error.message }}</p>
193
- <button @click="refresh">Retry</button>
194
- </div>
195
- <div v-else>
196
- <h1>{{ product.name }}</h1>
197
- </div>
198
- </template>
199
-
200
- <script setup lang="ts">
201
- import { useRouteResource } from '@blueprint-ts/core/vue/router/routeResourceBinding'
202
-
203
- const props = defineProps<{
204
- product: ProductResource
205
- }>()
206
-
207
- const { refresh, isLoading, error } = useRouteResource('product')
208
- </script>
209
- ```
210
-
211
- `useRouteResource` returns:
212
-
213
- | Property | Type | Description |
214
- |-------------|---------------------------|------------------------------------------|
215
- | `isLoading` | `ComputedRef<boolean>` | `true` while the resource is resolving |
216
- | `error` | `ComputedRef<Error\|null>` | The error if resolution failed, else `null` |
217
- | `refresh` | `(options?: { silent?: boolean }) => Promise<void>` | Re-fetches the resource. Pass `{ silent: true }` to suppress the loading state. |
218
-
219
- #### Silent Refresh
220
-
221
- By default, calling `refresh()` sets `isLoading` to `true` while the resource is being re-fetched, which causes `RouteResourceBoundView` to show the loading component. If you want to refresh the resource in the background without triggering the loading state (e.g. polling or optimistic updates), pass `{ silent: true }`:
222
-
223
- ```ts
224
- const { refresh } = useRouteResource('product')
225
-
226
- // Normal refresh — triggers loading state
227
- await refresh()
228
-
229
- // Silent refresh — does not trigger loading state
230
- await refresh({ silent: true })
231
- ```
232
-
233
- A silent refresh still updates the `error` state if the request fails.
234
-
235
- ### Lazy vs Non-Lazy
236
-
237
- | Option | Behavior |
238
- |-----------------|-----------------------------------------------------------------------------------------------|
239
- | `lazy: true` (default) | `RouteResourceBoundView` intercepts loading/error states and shows the appropriate component |
240
- | `lazy: false` | The target component renders immediately; use `useRouteResource()` for manual state handling |
package/docs/vue/state.md DELETED
@@ -1,309 +0,0 @@
1
- # State Management
2
-
3
- ## Overview
4
- The `State` class provides a reactive, type-safe state management system with rich features like change detection, nested property watching, persistence, and more. It's designed to make state management in Vue applications clean and flexible.
5
-
6
- ## Core Features
7
- - **Type-safe state**: Fully typed with TypeScript generics
8
- - **Reactive properties**: Seamless integration with Vue's reactivity system
9
- - **Nested property watching**: Track changes to deeply nested properties
10
- - **Persistence options**: Optional state persistence between sessions
11
- - **Change subscriptions**: React to state changes with optional debouncing
12
- - **Deep object watching**: Special handling for nested objects
13
- - **Efficient equality checking**: Smart comparison of state values
14
- - **State export/import**: Easily serialize and deserialize state
15
- - **Reset capability**: Revert to initial state when needed
16
-
17
- ## Usage Guide
18
- ### Creating a State Class
19
- Create a new state by extending the base class and defining your interface:
20
-
21
- ```typescript
22
- import { State } from '@blueprint-ts/core/vue/state'
23
- import { type PersistenceDriver, LocalStorageDriver } from '@blueprint-ts/core/persistenceDrivers'
24
-
25
- // Define your state interface
26
- interface UserStateInterface {
27
- name: string;
28
- email: string;
29
- preferences: {
30
- darkMode: boolean;
31
- notifications: boolean;
32
- };
33
- }
34
-
35
- // Create your state class
36
- class UserState extends State<UserStateInterface> {
37
- constructor() {
38
- super(
39
- {
40
- name: '',
41
- email: '',
42
- preferences: {
43
- darkMode: false,
44
- notifications: true
45
- }
46
- },
47
- {
48
- persist: true, // Enable persistence
49
- persistSuffix: 'user' // Optional namespace for the storage key
50
- }
51
- );
52
- }
53
-
54
- // Optional: Override persistence method
55
- protected override getPersistenceDriver(): PersistenceDriver {
56
- return new LocalStorageDriver()
57
- }
58
- }
59
-
60
- // Create an instance
61
- export const userState = new UserState();
62
- ```
63
-
64
- ### Accessing State
65
-
66
- ````typescript
67
- // Read
68
- const userName = userState.state.name;
69
-
70
- // Write
71
- userState.state.name = 'John Doe';
72
- ````
73
-
74
- ### Subscribing to Changes
75
- Listen for changes to specific properties using the method: `subscribe`
76
-
77
- #### Basic subscription to a single property
78
- ````typescript
79
- // Subscribe to changes on a top-level property
80
- userState.subscribe(
81
- 'name',
82
- (newValue, oldValue) => {
83
- console.log(`Name changed from ${oldValue} to ${newValue}`);
84
- }
85
- );
86
- ````
87
-
88
- `subscribe` returns an unsubscribe function:
89
-
90
- ````typescript
91
- const unsubscribe = userState.subscribe('name', () => {
92
- // ...
93
- });
94
-
95
- unsubscribe();
96
- ````
97
-
98
- #### Subscribing to nested properties
99
-
100
- ````typescript
101
- // Subscribe to a nested property using dot notation
102
- userState.subscribe(
103
- 'preferences.darkMode',
104
- (newValue, oldValue) => {
105
- console.log(`Dark mode changed from ${oldValue} to ${newValue}`);
106
- // Update UI theme
107
- }
108
- );
109
- ````
110
-
111
- #### Debounced subscriptions
112
-
113
- ````typescript
114
- // Debounce the handler to avoid frequent updates
115
- userState.subscribe(
116
- 'email',
117
- (newValue, oldValue) => {
118
- // This will only execute after 300ms of stability
119
- validateEmail(newValue);
120
- },
121
- { debounce: 300 }
122
- );
123
- ````
124
-
125
- #### Watching multiple properties
126
- ````typescript
127
- // Subscribe to multiple properties at once
128
- userState.subscribe(
129
- ['name', 'email'],
130
- (changedPath, state) => {
131
- console.log(`Property ${changedPath} changed`);
132
- console.log('Current state:', state);
133
- }
134
- );
135
- ````
136
-
137
- ### State Persistence
138
- Enable state persistence by passing `persist: true` in the constructor options. You can optionally set `persistSuffix` to namespace the storage key. Override the method `getPersistenceDriver` to use different storage mechanisms:
139
-
140
- ````typescript
141
- // Examples of different persistence drivers:
142
- protected override getPersistenceDriver(): PersistenceDriver {
143
- // Session storage (lasts until browser tab is closed)
144
- return new SessionStorageDriver();
145
-
146
- // Local storage (persists between sessions)
147
- // return new LocalStorageDriver();
148
-
149
- // Non-persistent (for testing or when persistence not needed)
150
- // return new NonPersistentDriver();
151
- }
152
- ````
153
-
154
- You can inspect the computed key via `state.persistKey`.
155
-
156
- ### Importing and Exporting State
157
-
158
- Export the current state to a plain object or import values:
159
-
160
- ````typescript
161
- // Export current state as a plain object
162
- const stateSnapshot = userState.export();
163
- console.log(stateSnapshot);
164
-
165
- // Import partial state
166
- userState.import({
167
- name: 'Jane Doe',
168
- preferences: {
169
- darkMode: true
170
- }
171
- });
172
-
173
- ````
174
-
175
- ### Resetting State
176
- Reset the state to its initial values:
177
-
178
- ````typescript
179
- // Reset to initial values
180
- userState.reset();
181
- ````
182
-
183
- ````
184
- userState.subscribe(
185
- 'name',
186
- (newValue, oldValue) => {
187
- console.log(`Name reset from ${oldValue} to ${newValue}`);
188
- },
189
- { executeOnReset: true }
190
- );
191
- ````
192
-
193
- ### Cleanup
194
- If you create short‑lived state instances, call `destroy()` to remove watchers and release references:
195
-
196
- ````typescript
197
- userState.destroy();
198
- ````
199
-
200
- ## Advanced Features
201
- ### Deep Object Watching
202
- When you modify nested properties, the system automatically detects these changes and triggers appropriate callbacks:
203
-
204
- ````typescript
205
- // Both of these will trigger the 'preferences.darkMode' subscription
206
- userState.state.preferences.darkMode = true;
207
- userState.state.preferences = { darkMode: true, notifications: false };
208
- ````
209
-
210
- ### Type-Safe Path Access
211
- The state system enforces type safety for property paths:
212
-
213
- ````typescript
214
- // TypeScript will error on invalid paths
215
- userState.subscribe(
216
- 'preferences.invalidProperty', // Type error!
217
- (newValue, oldValue) => {
218
- // ...
219
- }
220
- );
221
- ````
222
-
223
- ### Smart Comparison
224
- The system performs deep equality checks before triggering change handlers, ensuring callbacks are only called when values actually change:
225
-
226
- ````typescript
227
- // This won't trigger change handlers if the values are deeply equal
228
- userState.state.preferences = { darkMode: false, notifications: true };
229
- ````
230
-
231
- ## Example: Complete Workflow
232
-
233
- ````typescript
234
- // 1. Define state interface
235
- interface FormState {
236
- username: string;
237
- password: string;
238
- validation: {
239
- usernameValid: boolean;
240
- passwordValid: boolean;
241
- };
242
- }
243
-
244
- // 2. Create state class
245
- class FormStateManager extends State<FormState> {
246
- constructor() {
247
- super({
248
- username: '',
249
- password: '',
250
- validation: {
251
- usernameValid: false,
252
- passwordValid: false
253
- }
254
- });
255
- }
256
-
257
- // Helper methods can be added to state classes
258
- public validateForm(): boolean {
259
- return this.state.validation.usernameValid &&
260
- this.state.validation.passwordValid;
261
- }
262
- }
263
-
264
- // 3. Create instance
265
- const formState = new FormStateManager();
266
-
267
- // 4. Set up subscriptions
268
- formState.subscribe(
269
- 'username',
270
- (username) => {
271
- // Validate username
272
- const valid = username.length >= 3;
273
- formState.state.validation.usernameValid = valid;
274
- },
275
- { debounce: 300 }
276
- );
277
-
278
- formState.subscribe(
279
- 'password',
280
- (password) => {
281
- // Validate password
282
- const valid = password.length >= 8;
283
- formState.state.validation.passwordValid = valid;
284
- },
285
- { debounce: 300 }
286
- );
287
-
288
- // 5. Watch form validity
289
- formState.subscribe(
290
- ['validation.usernameValid', 'validation.passwordValid'],
291
- (_, state) => {
292
- const submitButton = document.getElementById('submit');
293
- if (formState.validateForm()) {
294
- submitButton.disabled = false;
295
- } else {
296
- submitButton.disabled = true;
297
- }
298
- }
299
- );
300
-
301
- // 6. Use the state
302
- formState.state.username = 'john_doe';
303
- formState.state.password = 'securePassword123';
304
-
305
- // 7. Reset when needed
306
- document.getElementById('reset').addEventListener('click', () => {
307
- formState.reset();
308
- });
309
- ````
package/env.d.ts DELETED
@@ -1 +0,0 @@
1
- /// <reference types="vite/client" />
package/eslint.config.js DELETED
@@ -1,15 +0,0 @@
1
- import eslint from '@eslint/js';
2
- import tseslint from 'typescript-eslint';
3
- import pluginVue from 'eslint-plugin-vue';
4
-
5
- import {
6
- defineConfigWithVueTs,
7
- vueTsConfigs,
8
- } from '@vue/eslint-config-typescript'
9
-
10
- export default defineConfigWithVueTs(
11
- eslint.configs.recommended,
12
- ...tseslint.configs.recommended,
13
- ...pluginVue.configs['flat/recommended'],
14
- vueTsConfigs.recommended,
15
- )
package/release-tool.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "version_file": "package.json",
3
- "version_pattern": "\"version\":\\s*\"([0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-z]+\\.[0-9]+)?)\"",
4
- "version_template": "\"version\": \"{}\"",
5
- "develop_branch": "develop",
6
- "main_branch": "main",
7
- "docs": {
8
- "build": {
9
- "cwd": "./docs",
10
- "commands": [
11
- ["npm", "ci"],
12
- ["npm", "run", "docs:build"]
13
- ],
14
- "output_dir": ".vitepress/dist"
15
- },
16
- "publish": {
17
- "repo_path": "./docs",
18
- "remote": "origin",
19
- "branch": "gh-pages",
20
- "subdir": "",
21
- "commit_message": "docs: publish {tag}",
22
- "add_nojekyll": true,
23
- "force_push": true
24
- }
25
- }
26
- }
@@ -1,4 +0,0 @@
1
- export enum BulkRequestEventEnum {
2
- REQUEST_SUCCESSFUL = 'REQUEST_SUCCESSFUL',
3
- REQUEST_FAILED = 'REQUEST_FAILED'
4
- }