@blueprint-ts/core 4.1.0-beta.1 → 4.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bulkRequests/BulkRequestEvent.enum.d.ts +4 -0
- package/dist/bulkRequests/BulkRequestEvent.enum.js +5 -0
- package/dist/bulkRequests/BulkRequestSender.d.ts +31 -0
- package/dist/bulkRequests/BulkRequestSender.js +161 -0
- package/dist/bulkRequests/BulkRequestWrapper.d.ts +15 -0
- package/dist/bulkRequests/BulkRequestWrapper.js +50 -0
- package/dist/bulkRequests/index.d.ts +5 -0
- package/dist/bulkRequests/index.js +5 -0
- package/{src/laravel/pagination/contracts/PaginationResponseBodyContract.ts → dist/laravel/pagination/contracts/PaginationResponseBodyContract.d.ts} +4 -4
- package/dist/laravel/pagination/contracts/PaginationResponseBodyContract.js +1 -0
- package/dist/laravel/pagination/dataDrivers/RequestDriver.d.ts +10 -0
- package/dist/laravel/pagination/dataDrivers/RequestDriver.js +18 -0
- package/dist/laravel/pagination/index.d.ts +4 -0
- package/dist/laravel/pagination/index.js +2 -0
- package/dist/laravel/requests/JsonBaseRequest.d.ts +14 -0
- package/dist/laravel/requests/JsonBaseRequest.js +15 -0
- package/dist/laravel/requests/PaginationJsonBaseRequest.d.ts +8 -0
- package/dist/laravel/requests/PaginationJsonBaseRequest.js +13 -0
- package/dist/laravel/requests/index.d.ts +7 -0
- package/dist/laravel/requests/index.js +5 -0
- package/dist/laravel/requests/responses/JsonResponse.d.ts +5 -0
- package/dist/laravel/requests/responses/JsonResponse.js +6 -0
- package/dist/laravel/requests/responses/PaginationResponse.d.ts +7 -0
- package/dist/laravel/requests/responses/PaginationResponse.js +9 -0
- package/dist/pagination/BasePaginator.d.ts +19 -0
- package/dist/pagination/BasePaginator.js +65 -0
- package/dist/pagination/InfiniteScroller.d.ts +6 -0
- package/dist/pagination/InfiniteScroller.js +17 -0
- package/dist/pagination/PageAwarePaginator.d.ts +32 -0
- package/dist/pagination/PageAwarePaginator.js +86 -0
- package/dist/pagination/StatePaginator.d.ts +25 -0
- package/dist/pagination/StatePaginator.js +55 -0
- package/dist/pagination/contracts/BaseViewDriverContract.d.ts +6 -0
- package/dist/pagination/contracts/BaseViewDriverContract.js +1 -0
- package/{src/pagination/contracts/BaseViewDriverFactoryContract.ts → dist/pagination/contracts/BaseViewDriverFactoryContract.d.ts} +2 -3
- package/dist/pagination/contracts/BaseViewDriverFactoryContract.js +1 -0
- package/dist/pagination/contracts/PaginateableRequestContract.d.ts +4 -0
- package/dist/pagination/contracts/PaginateableRequestContract.js +1 -0
- package/dist/pagination/contracts/PaginationDataDriverContract.d.ts +4 -0
- package/dist/pagination/contracts/PaginationDataDriverContract.js +1 -0
- package/{src/pagination/contracts/PaginationResponseContract.ts → dist/pagination/contracts/PaginationResponseContract.d.ts} +3 -5
- package/dist/pagination/contracts/PaginationResponseContract.js +1 -0
- package/{src/pagination/contracts/PaginatorLoadDataOptions.ts → dist/pagination/contracts/PaginatorLoadDataOptions.d.ts} +2 -2
- package/dist/pagination/contracts/PaginatorLoadDataOptions.js +1 -0
- package/{src/pagination/contracts/StatePaginationDataDriverContract.ts → dist/pagination/contracts/StatePaginationDataDriverContract.d.ts} +2 -3
- package/dist/pagination/contracts/StatePaginationDataDriverContract.js +1 -0
- package/dist/pagination/contracts/ViewDriverContract.d.ts +9 -0
- package/dist/pagination/contracts/ViewDriverContract.js +1 -0
- package/dist/pagination/contracts/ViewDriverFactoryContract.d.ts +4 -0
- package/dist/pagination/contracts/ViewDriverFactoryContract.js +1 -0
- package/dist/pagination/dataDrivers/ArrayDriver.d.ts +9 -0
- package/dist/pagination/dataDrivers/ArrayDriver.js +20 -0
- package/dist/pagination/dtos/PaginationDataDto.d.ts +7 -0
- package/dist/pagination/dtos/PaginationDataDto.js +12 -0
- package/dist/pagination/dtos/StatePaginationDataDto.d.ts +7 -0
- package/dist/pagination/dtos/StatePaginationDataDto.js +13 -0
- package/dist/pagination/factories/VueBaseViewDriverFactory.d.ts +5 -0
- package/dist/pagination/factories/VueBaseViewDriverFactory.js +6 -0
- package/dist/pagination/factories/VuePaginationDriverFactory.d.ts +5 -0
- package/dist/pagination/factories/VuePaginationDriverFactory.js +6 -0
- package/dist/pagination/frontendDrivers/VueBaseViewDriver.d.ts +11 -0
- package/dist/pagination/frontendDrivers/VueBaseViewDriver.js +19 -0
- package/dist/pagination/frontendDrivers/VuePaginationDriver.d.ts +21 -0
- package/dist/pagination/frontendDrivers/VuePaginationDriver.js +41 -0
- package/dist/pagination/index.d.ts +22 -0
- package/dist/pagination/index.js +13 -0
- package/dist/persistenceDrivers/LocalStorageDriver.d.ts +9 -0
- package/dist/persistenceDrivers/LocalStorageDriver.js +18 -0
- package/dist/persistenceDrivers/NonPersistentDriver.d.ts +7 -0
- package/dist/persistenceDrivers/NonPersistentDriver.js +8 -0
- package/dist/persistenceDrivers/SessionStorageDriver.d.ts +9 -0
- package/dist/persistenceDrivers/SessionStorageDriver.js +18 -0
- package/dist/persistenceDrivers/index.d.ts +6 -0
- package/dist/persistenceDrivers/index.js +4 -0
- package/dist/persistenceDrivers/types/PersistenceDriver.d.ts +5 -0
- package/dist/persistenceDrivers/types/PersistenceDriver.js +1 -0
- package/dist/requests/BaseRequest.d.ts +62 -0
- package/dist/requests/BaseRequest.js +224 -0
- package/dist/requests/ErrorHandler.d.ts +11 -0
- package/dist/requests/ErrorHandler.js +127 -0
- package/dist/requests/RequestConcurrencyMode.enum.d.ts +6 -0
- package/dist/requests/RequestConcurrencyMode.enum.js +7 -0
- package/dist/requests/RequestErrorRouter.d.ts +38 -0
- package/dist/requests/RequestErrorRouter.js +38 -0
- package/dist/requests/RequestEvents.enum.d.ts +4 -0
- package/dist/requests/RequestEvents.enum.js +5 -0
- package/dist/requests/RequestMethod.enum.d.ts +8 -0
- package/dist/requests/RequestMethod.enum.js +9 -0
- package/dist/requests/bodies/BinaryBody.d.ts +10 -0
- package/dist/requests/bodies/BinaryBody.js +22 -0
- package/dist/requests/bodies/FormDataBody.d.ts +14 -0
- package/dist/requests/bodies/FormDataBody.js +60 -0
- package/dist/requests/bodies/JsonBody.d.ts +8 -0
- package/dist/requests/bodies/JsonBody.js +13 -0
- package/{src/requests/contracts/AbortableRequestContract.ts → dist/requests/contracts/AbortableRequestContract.d.ts} +1 -1
- package/dist/requests/contracts/AbortableRequestContract.js +1 -0
- package/dist/requests/contracts/BaseRequestContract.d.ts +23 -0
- package/dist/requests/contracts/BaseRequestContract.js +1 -0
- package/dist/requests/contracts/BodyContract.d.ts +6 -0
- package/dist/requests/contracts/BodyContract.js +1 -0
- package/dist/requests/contracts/BodyFactoryContract.d.ts +4 -0
- package/dist/requests/contracts/BodyFactoryContract.js +1 -0
- package/dist/requests/contracts/DriverConfigContract.d.ts +8 -0
- package/dist/requests/contracts/DriverConfigContract.js +1 -0
- package/dist/requests/contracts/HeadersContract.d.ts +7 -0
- package/dist/requests/contracts/HeadersContract.js +1 -0
- package/dist/requests/contracts/RequestDriverContract.d.ts +8 -0
- package/dist/requests/contracts/RequestDriverContract.js +1 -0
- package/dist/requests/contracts/RequestLoaderContract.d.ts +4 -0
- package/dist/requests/contracts/RequestLoaderContract.js +1 -0
- package/{src/requests/contracts/RequestLoaderFactoryContract.ts → dist/requests/contracts/RequestLoaderFactoryContract.d.ts} +2 -3
- package/dist/requests/contracts/RequestLoaderFactoryContract.js +1 -0
- package/dist/requests/contracts/ResponseContract.d.ts +5 -0
- package/dist/requests/contracts/ResponseContract.js +1 -0
- package/dist/requests/drivers/contracts/ResponseHandlerContract.d.ts +9 -0
- package/dist/requests/drivers/contracts/ResponseHandlerContract.js +1 -0
- package/dist/requests/drivers/fetch/FetchDriver.d.ts +26 -0
- package/dist/requests/drivers/fetch/FetchDriver.js +73 -0
- package/dist/requests/drivers/fetch/FetchResponse.d.ts +12 -0
- package/dist/requests/drivers/fetch/FetchResponse.js +38 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestDriver.d.ts +13 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestDriver.js +107 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestResponse.d.ts +17 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestResponse.js +84 -0
- package/dist/requests/exceptions/BadGatewayException.d.ts +3 -0
- package/dist/requests/exceptions/BadGatewayException.js +3 -0
- package/dist/requests/exceptions/BadRequestException.d.ts +3 -0
- package/dist/requests/exceptions/BadRequestException.js +3 -0
- package/dist/requests/exceptions/ConflictException.d.ts +3 -0
- package/dist/requests/exceptions/ConflictException.js +3 -0
- package/dist/requests/exceptions/ForbiddenException.d.ts +3 -0
- package/dist/requests/exceptions/ForbiddenException.js +3 -0
- package/dist/requests/exceptions/GatewayTimeoutException.d.ts +3 -0
- package/dist/requests/exceptions/GatewayTimeoutException.js +3 -0
- package/dist/requests/exceptions/GoneException.d.ts +3 -0
- package/dist/requests/exceptions/GoneException.js +3 -0
- package/dist/requests/exceptions/InvalidJsonException.d.ts +7 -0
- package/dist/requests/exceptions/InvalidJsonException.js +10 -0
- package/dist/requests/exceptions/LockedException.d.ts +3 -0
- package/dist/requests/exceptions/LockedException.js +3 -0
- package/dist/requests/exceptions/MethodNotAllowedException.d.ts +3 -0
- package/dist/requests/exceptions/MethodNotAllowedException.js +3 -0
- package/dist/requests/exceptions/NoResponseReceivedException.d.ts +3 -0
- package/{src/requests/exceptions/NoResponseReceivedException.ts → dist/requests/exceptions/NoResponseReceivedException.js} +3 -3
- package/dist/requests/exceptions/NotFoundException.d.ts +3 -0
- package/dist/requests/exceptions/NotFoundException.js +3 -0
- package/dist/requests/exceptions/NotImplementedException.d.ts +3 -0
- package/dist/requests/exceptions/NotImplementedException.js +3 -0
- package/dist/requests/exceptions/PageExpiredException.d.ts +3 -0
- package/dist/requests/exceptions/PageExpiredException.js +3 -0
- package/dist/requests/exceptions/PayloadTooLargeException.d.ts +3 -0
- package/dist/requests/exceptions/PayloadTooLargeException.js +3 -0
- package/dist/requests/exceptions/PreconditionFailedException.d.ts +3 -0
- package/dist/requests/exceptions/PreconditionFailedException.js +3 -0
- package/dist/requests/exceptions/RequestTimeoutException.d.ts +3 -0
- package/dist/requests/exceptions/RequestTimeoutException.js +3 -0
- package/dist/requests/exceptions/ResponseBodyException.d.ts +7 -0
- package/dist/requests/exceptions/ResponseBodyException.js +10 -0
- package/dist/requests/exceptions/ResponseException.d.ts +6 -0
- package/dist/requests/exceptions/ResponseException.js +9 -0
- package/dist/requests/exceptions/ServerErrorException.d.ts +3 -0
- package/dist/requests/exceptions/ServerErrorException.js +3 -0
- package/dist/requests/exceptions/ServiceUnavailableException.d.ts +3 -0
- package/dist/requests/exceptions/ServiceUnavailableException.js +3 -0
- package/dist/requests/exceptions/StaleResponseException.d.ts +5 -0
- package/dist/requests/exceptions/StaleResponseException.js +10 -0
- package/dist/requests/exceptions/TooManyRequestsException.d.ts +3 -0
- package/dist/requests/exceptions/TooManyRequestsException.js +3 -0
- package/dist/requests/exceptions/UnauthorizedException.d.ts +3 -0
- package/dist/requests/exceptions/UnauthorizedException.js +3 -0
- package/dist/requests/exceptions/UnsupportedMediaTypeException.d.ts +3 -0
- package/dist/requests/exceptions/UnsupportedMediaTypeException.js +3 -0
- package/dist/requests/exceptions/ValidationException.d.ts +3 -0
- package/dist/requests/exceptions/ValidationException.js +3 -0
- package/dist/requests/exceptions/index.d.ts +25 -0
- package/dist/requests/exceptions/index.js +25 -0
- package/dist/requests/factories/BinaryBodyFactory.d.ts +8 -0
- package/dist/requests/factories/BinaryBodyFactory.js +9 -0
- package/dist/requests/factories/FormDataFactory.d.ts +12 -0
- package/dist/requests/factories/FormDataFactory.js +6 -0
- package/dist/requests/factories/JsonBodyFactory.d.ts +5 -0
- package/dist/requests/factories/JsonBodyFactory.js +6 -0
- package/dist/requests/index.d.ts +31 -0
- package/dist/requests/index.js +19 -0
- package/dist/requests/responses/BaseResponse.d.ts +14 -0
- package/dist/requests/responses/BaseResponse.js +36 -0
- package/dist/requests/responses/BlobResponse.d.ts +7 -0
- package/dist/requests/responses/BlobResponse.js +16 -0
- package/dist/requests/responses/JsonResponse.d.ts +5 -0
- package/dist/requests/responses/JsonResponse.js +12 -0
- package/dist/requests/responses/PlainTextResponse.d.ts +5 -0
- package/dist/requests/responses/PlainTextResponse.js +12 -0
- package/{src/requests/types/RequestConcurrencyOptions.ts → dist/requests/types/RequestConcurrencyOptions.d.ts} +4 -5
- package/dist/requests/types/RequestConcurrencyOptions.js +1 -0
- package/dist/requests/types/RequestUploadProgress.d.ts +6 -0
- package/dist/requests/types/RequestUploadProgress.js +1 -0
- package/dist/support/DeferredPromise.d.ts +37 -0
- package/dist/support/DeferredPromise.js +55 -0
- package/dist/support/helpers.d.ts +5 -0
- package/dist/support/helpers.js +69 -0
- package/{src/support/index.ts → dist/support/index.d.ts} +3 -4
- package/dist/support/index.js +3 -0
- package/dist/vue/composables/useConfirmDialog.d.ts +20 -0
- package/dist/vue/composables/useConfirmDialog.js +52 -0
- package/dist/vue/composables/useGlobalCheckbox.d.ts +13 -0
- package/dist/vue/composables/useGlobalCheckbox.js +123 -0
- package/dist/vue/composables/useIsEmpty.d.ts +4 -0
- package/dist/vue/composables/useIsEmpty.js +27 -0
- package/dist/vue/composables/useIsOpen.d.ts +5 -0
- package/dist/vue/composables/useIsOpen.js +25 -0
- package/dist/vue/composables/useIsOpenFromVar.d.ts +6 -0
- package/dist/vue/composables/useIsOpenFromVar.js +45 -0
- package/dist/vue/composables/useModelWrapper.d.ts +9 -0
- package/dist/vue/composables/useModelWrapper.js +18 -0
- package/dist/vue/composables/useOnOpen.d.ts +7 -0
- package/dist/vue/composables/useOnOpen.js +25 -0
- package/{src/vue/contracts/ModelValueOptions.ts → dist/vue/contracts/ModelValueOptions.d.ts} +1 -1
- package/dist/vue/contracts/ModelValueOptions.js +1 -0
- package/dist/vue/contracts/ModelValueProps.d.ts +3 -0
- package/dist/vue/contracts/ModelValueProps.js +1 -0
- package/dist/vue/forms/BaseForm.d.ts +162 -0
- package/dist/vue/forms/BaseForm.js +997 -0
- package/dist/vue/forms/PropertyAwareArray.d.ts +53 -0
- package/dist/vue/forms/PropertyAwareArray.js +54 -0
- package/{src/vue/forms/index.ts → dist/vue/forms/index.d.ts} +9 -11
- package/dist/vue/forms/index.js +6 -0
- package/dist/vue/forms/types/PersistedForm.d.ts +6 -0
- package/dist/vue/forms/types/PersistedForm.js +1 -0
- package/dist/vue/forms/validation/ValidationMode.enum.d.ts +11 -0
- package/dist/vue/forms/validation/ValidationMode.enum.js +14 -0
- package/dist/vue/forms/validation/index.d.ts +12 -0
- package/dist/vue/forms/validation/index.js +9 -0
- package/dist/vue/forms/validation/rules/BaseRule.d.ts +5 -0
- package/dist/vue/forms/validation/rules/BaseRule.js +5 -0
- package/dist/vue/forms/validation/rules/ConfirmedRule.d.ts +10 -0
- package/dist/vue/forms/validation/rules/ConfirmedRule.js +26 -0
- package/dist/vue/forms/validation/rules/EmailRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/EmailRule.js +19 -0
- package/dist/vue/forms/validation/rules/JsonRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/JsonRule.js +25 -0
- package/dist/vue/forms/validation/rules/MinRule.d.ts +26 -0
- package/dist/vue/forms/validation/rules/MinRule.js +52 -0
- package/dist/vue/forms/validation/rules/RequiredRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/RequiredRule.js +16 -0
- package/dist/vue/forms/validation/rules/UrlRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/UrlRule.js +22 -0
- package/{src/vue/forms/validation/types/BidirectionalRule.ts → dist/vue/forms/validation/types/BidirectionalRule.d.ts} +4 -4
- package/dist/vue/forms/validation/types/BidirectionalRule.js +1 -0
- package/dist/vue/forms/validation/types/ValidationRules.d.ts +11 -0
- package/dist/vue/forms/validation/types/ValidationRules.js +1 -0
- package/dist/vue/index.d.ts +11 -0
- package/dist/vue/index.js +10 -0
- package/dist/vue/requests/factories/VueRequestLoaderFactory.d.ts +6 -0
- package/dist/vue/requests/factories/VueRequestLoaderFactory.js +6 -0
- package/{src/vue/requests/index.ts → dist/vue/requests/index.d.ts} +4 -5
- package/dist/vue/requests/index.js +4 -0
- package/dist/vue/requests/loaders/VueRequestBatchLoader.d.ts +12 -0
- package/dist/vue/requests/loaders/VueRequestBatchLoader.js +29 -0
- package/dist/vue/requests/loaders/VueRequestLoader.d.ts +8 -0
- package/dist/vue/requests/loaders/VueRequestLoader.js +12 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.d.ts +57 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.js +135 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.d.ts +6 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.js +20 -0
- package/dist/vue/router/routeResourceBinding/defineRoute.d.ts +23 -0
- package/dist/vue/router/routeResourceBinding/defineRoute.js +42 -0
- package/dist/vue/router/routeResourceBinding/index.d.ts +8 -0
- package/dist/vue/router/routeResourceBinding/index.js +6 -0
- package/dist/vue/router/routeResourceBinding/installRouteInjection.d.ts +14 -0
- package/dist/vue/router/routeResourceBinding/installRouteInjection.js +133 -0
- package/dist/vue/router/routeResourceBinding/types.d.ts +55 -0
- package/dist/vue/router/routeResourceBinding/types.js +1 -0
- package/dist/vue/router/routeResourceBinding/useRouteResource.d.ts +8 -0
- package/dist/vue/router/routeResourceBinding/useRouteResource.js +29 -0
- package/dist/vue/state/State.d.ts +75 -0
- package/dist/vue/state/State.js +267 -0
- package/dist/vue/state/index.d.ts +2 -0
- package/dist/vue/state/index.js +2 -0
- package/package.json +81 -23
- package/.editorconfig +0 -508
- package/.eslintrc.cjs +0 -15
- package/.prettierrc.json +0 -8
- package/CHANGELOG.md +0 -213
- package/docker-compose.yaml +0 -8
- package/docs/.vitepress/config.ts +0 -124
- package/docs/index.md +0 -13
- package/docs/laravel/pagination.md +0 -67
- package/docs/laravel/requests.md +0 -62
- package/docs/services/pagination/index.md +0 -46
- package/docs/services/pagination/infinite-scroller.md +0 -20
- package/docs/services/pagination/page-aware.md +0 -51
- package/docs/services/pagination/state-pagination.md +0 -77
- package/docs/services/pagination/updating-rows.md +0 -52
- package/docs/services/persistence/index.md +0 -46
- package/docs/services/requests/abort-requests.md +0 -29
- package/docs/services/requests/bulk-requests.md +0 -70
- package/docs/services/requests/concurrency.md +0 -58
- package/docs/services/requests/drivers.md +0 -115
- package/docs/services/requests/error-handling.md +0 -153
- package/docs/services/requests/events.md +0 -53
- package/docs/services/requests/file-uploads.md +0 -105
- package/docs/services/requests/getting-started.md +0 -201
- package/docs/services/requests/headers.md +0 -40
- package/docs/services/requests/loading.md +0 -63
- package/docs/services/requests/request-bodies.md +0 -61
- package/docs/services/requests/responses.md +0 -34
- package/docs/services/support/deferred-promise.md +0 -63
- package/docs/services/support/helpers.md +0 -77
- package/docs/services/support/index.md +0 -6
- package/docs/upgrading/v1-to-v2.md +0 -64
- package/docs/upgrading/v2-to-v3.md +0 -52
- package/docs/upgrading/v3-to-v4.md +0 -214
- package/docs/upgrading.md +0 -0
- package/docs/vue/composables/use-confirm-dialog.md +0 -96
- package/docs/vue/composables/use-global-checkbox.md +0 -73
- package/docs/vue/composables/use-is-empty.md +0 -26
- package/docs/vue/composables/use-is-open-from-var.md +0 -32
- package/docs/vue/composables/use-is-open.md +0 -28
- package/docs/vue/composables/use-model-wrapper.md +0 -29
- package/docs/vue/composables/use-on-open.md +0 -26
- package/docs/vue/forms/arrays.md +0 -102
- package/docs/vue/forms/errors.md +0 -52
- package/docs/vue/forms/index.md +0 -99
- package/docs/vue/forms/payloads.md +0 -99
- package/docs/vue/forms/persistence.md +0 -19
- package/docs/vue/forms/state-and-properties.md +0 -26
- package/docs/vue/forms/utilities.md +0 -27
- package/docs/vue/forms/validation.md +0 -189
- package/docs/vue/requests/loading.md +0 -51
- package/docs/vue/router/route-resource-binding.md +0 -240
- package/docs/vue/state.md +0 -309
- package/env.d.ts +0 -1
- package/eslint.config.js +0 -15
- package/release-tool.json +0 -26
- package/src/bulkRequests/BulkRequestEvent.enum.ts +0 -4
- package/src/bulkRequests/BulkRequestSender.ts +0 -196
- package/src/bulkRequests/BulkRequestWrapper.ts +0 -49
- package/src/bulkRequests/index.ts +0 -6
- package/src/laravel/pagination/dataDrivers/RequestDriver.ts +0 -30
- package/src/laravel/pagination/index.ts +0 -6
- package/src/laravel/requests/JsonBaseRequest.ts +0 -35
- package/src/laravel/requests/PaginationJsonBaseRequest.ts +0 -29
- package/src/laravel/requests/index.ts +0 -9
- package/src/laravel/requests/responses/JsonResponse.ts +0 -8
- package/src/laravel/requests/responses/PaginationResponse.ts +0 -16
- package/src/pagination/BasePaginator.ts +0 -94
- package/src/pagination/InfiniteScroller.ts +0 -22
- package/src/pagination/PageAwarePaginator.ts +0 -132
- package/src/pagination/StatePaginator.ts +0 -86
- package/src/pagination/contracts/BaseViewDriverContract.ts +0 -6
- package/src/pagination/contracts/PaginateableRequestContract.ts +0 -13
- package/src/pagination/contracts/PaginationDataDriverContract.ts +0 -5
- package/src/pagination/contracts/ViewDriverContract.ts +0 -10
- package/src/pagination/contracts/ViewDriverFactoryContract.ts +0 -5
- package/src/pagination/dataDrivers/ArrayDriver.ts +0 -28
- package/src/pagination/dtos/PaginationDataDto.ts +0 -14
- package/src/pagination/dtos/StatePaginationDataDto.ts +0 -19
- package/src/pagination/factories/VueBaseViewDriverFactory.ts +0 -9
- package/src/pagination/factories/VuePaginationDriverFactory.ts +0 -9
- package/src/pagination/frontendDrivers/VueBaseViewDriver.ts +0 -28
- package/src/pagination/frontendDrivers/VuePaginationDriver.ts +0 -61
- package/src/pagination/index.ts +0 -46
- package/src/persistenceDrivers/LocalStorageDriver.ts +0 -22
- package/src/persistenceDrivers/NonPersistentDriver.ts +0 -12
- package/src/persistenceDrivers/SessionStorageDriver.ts +0 -22
- package/src/persistenceDrivers/index.ts +0 -8
- package/src/persistenceDrivers/types/PersistenceDriver.ts +0 -5
- package/src/requests/BaseRequest.ts +0 -321
- package/src/requests/ErrorHandler.ts +0 -144
- package/src/requests/RequestConcurrencyMode.enum.ts +0 -6
- package/src/requests/RequestErrorRouter.ts +0 -89
- package/src/requests/RequestEvents.enum.ts +0 -4
- package/src/requests/RequestMethod.enum.ts +0 -8
- package/src/requests/bodies/FormDataBody.ts +0 -81
- package/src/requests/bodies/JsonBody.ts +0 -16
- package/src/requests/contracts/BaseRequestContract.ts +0 -39
- package/src/requests/contracts/BodyContract.ts +0 -7
- package/src/requests/contracts/BodyFactoryContract.ts +0 -5
- package/src/requests/contracts/DriverConfigContract.ts +0 -9
- package/src/requests/contracts/HeadersContract.ts +0 -5
- package/src/requests/contracts/RequestDriverContract.ts +0 -15
- package/src/requests/contracts/RequestLoaderContract.ts +0 -5
- package/src/requests/contracts/ResponseContract.ts +0 -7
- package/src/requests/drivers/contracts/ResponseHandlerContract.ts +0 -10
- package/src/requests/drivers/fetch/FetchDriver.ts +0 -115
- package/src/requests/drivers/fetch/FetchResponse.ts +0 -30
- package/src/requests/drivers/xhr/XMLHttpRequestDriver.ts +0 -138
- package/src/requests/drivers/xhr/XMLHttpRequestResponse.ts +0 -95
- package/src/requests/exceptions/BadGatewayException.ts +0 -3
- package/src/requests/exceptions/BadRequestException.ts +0 -3
- package/src/requests/exceptions/ConflictException.ts +0 -3
- package/src/requests/exceptions/ForbiddenException.ts +0 -3
- package/src/requests/exceptions/GatewayTimeoutException.ts +0 -3
- package/src/requests/exceptions/GoneException.ts +0 -3
- package/src/requests/exceptions/InvalidJsonException.ts +0 -15
- package/src/requests/exceptions/LockedException.ts +0 -3
- package/src/requests/exceptions/MethodNotAllowedException.ts +0 -3
- package/src/requests/exceptions/NotFoundException.ts +0 -3
- package/src/requests/exceptions/NotImplementedException.ts +0 -3
- package/src/requests/exceptions/PageExpiredException.ts +0 -3
- package/src/requests/exceptions/PayloadTooLargeException.ts +0 -3
- package/src/requests/exceptions/PreconditionFailedException.ts +0 -3
- package/src/requests/exceptions/RequestTimeoutException.ts +0 -3
- package/src/requests/exceptions/ResponseBodyException.ts +0 -15
- package/src/requests/exceptions/ResponseException.ts +0 -11
- package/src/requests/exceptions/ServerErrorException.ts +0 -3
- package/src/requests/exceptions/ServiceUnavailableException.ts +0 -3
- package/src/requests/exceptions/StaleResponseException.ts +0 -13
- package/src/requests/exceptions/TooManyRequestsException.ts +0 -3
- package/src/requests/exceptions/UnauthorizedException.ts +0 -3
- package/src/requests/exceptions/UnsupportedMediaTypeException.ts +0 -3
- package/src/requests/exceptions/ValidationException.ts +0 -3
- package/src/requests/exceptions/index.ts +0 -51
- package/src/requests/factories/FormDataFactory.ts +0 -17
- package/src/requests/factories/JsonBodyFactory.ts +0 -9
- package/src/requests/index.ts +0 -61
- package/src/requests/responses/BaseResponse.ts +0 -41
- package/src/requests/responses/BlobResponse.ts +0 -19
- package/src/requests/responses/JsonResponse.ts +0 -15
- package/src/requests/responses/PlainTextResponse.ts +0 -15
- package/src/requests/types/RequestUploadProgress.ts +0 -6
- package/src/support/DeferredPromise.ts +0 -67
- package/src/support/helpers.ts +0 -78
- package/src/vue/composables/useConfirmDialog.ts +0 -63
- package/src/vue/composables/useGlobalCheckbox.ts +0 -145
- package/src/vue/composables/useIsEmpty.ts +0 -34
- package/src/vue/composables/useIsOpen.ts +0 -37
- package/src/vue/composables/useIsOpenFromVar.ts +0 -61
- package/src/vue/composables/useModelWrapper.ts +0 -27
- package/src/vue/composables/useOnOpen.ts +0 -34
- package/src/vue/contracts/ModelValueProps.ts +0 -3
- package/src/vue/forms/BaseForm.ts +0 -1192
- package/src/vue/forms/PropertyAwareArray.ts +0 -81
- package/src/vue/forms/types/PersistedForm.ts +0 -6
- package/src/vue/forms/validation/ValidationMode.enum.ts +0 -14
- package/src/vue/forms/validation/index.ts +0 -15
- package/src/vue/forms/validation/rules/BaseRule.ts +0 -7
- package/src/vue/forms/validation/rules/ConfirmedRule.ts +0 -39
- package/src/vue/forms/validation/rules/EmailRule.ts +0 -23
- package/src/vue/forms/validation/rules/JsonRule.ts +0 -28
- package/src/vue/forms/validation/rules/MinRule.ts +0 -61
- package/src/vue/forms/validation/rules/RequiredRule.ts +0 -19
- package/src/vue/forms/validation/rules/UrlRule.ts +0 -24
- package/src/vue/forms/validation/types/ValidationRules.ts +0 -15
- package/src/vue/index.ts +0 -14
- package/src/vue/requests/factories/VueRequestLoaderFactory.ts +0 -10
- package/src/vue/requests/loaders/VueRequestBatchLoader.ts +0 -35
- package/src/vue/requests/loaders/VueRequestLoader.ts +0 -18
- package/src/vue/router/routeResourceBinding/RouteResourceBoundView.ts +0 -145
- package/src/vue/router/routeResourceBinding/RouteResourceRequestResolver.ts +0 -11
- package/src/vue/router/routeResourceBinding/defineRoute.ts +0 -59
- package/src/vue/router/routeResourceBinding/index.ts +0 -11
- package/src/vue/router/routeResourceBinding/installRouteInjection.ts +0 -164
- package/src/vue/router/routeResourceBinding/types.ts +0 -53
- package/src/vue/router/routeResourceBinding/useRouteResource.ts +0 -24
- package/src/vue/state/State.ts +0 -380
- package/src/vue/state/index.ts +0 -3
- package/tests/service/bulkRequests/BulkRequestSender.test.ts +0 -76
- package/tests/service/bulkRequests/BulkRequestWrapper.test.ts +0 -51
- package/tests/service/helpers/mergeDeep.test.ts +0 -53
- package/tests/service/laravel/pagination/dataDrivers/RequestDriver.test.ts +0 -84
- package/tests/service/laravel/requests/JsonBaseRequest.test.ts +0 -43
- package/tests/service/laravel/requests/PaginationJsonBaseRequest.test.ts +0 -58
- package/tests/service/laravel/requests/responses/JsonResponse.test.ts +0 -59
- package/tests/service/laravel/requests/responses/PaginationResponse.test.ts +0 -127
- package/tests/service/pagination/BasePaginator.test.ts +0 -100
- package/tests/service/pagination/InfiniteScroller.test.ts +0 -101
- package/tests/service/pagination/PageAwarePaginator.test.ts +0 -133
- package/tests/service/pagination/StatePaginator.test.ts +0 -76
- package/tests/service/pagination/VueViewDrivers.test.ts +0 -46
- package/tests/service/pagination/dtos/PaginationDataDto.test.ts +0 -35
- package/tests/service/pagination/dtos/StatePaginationDataDto.test.ts +0 -14
- package/tests/service/pagination/factories/VuePaginationDriverFactory.test.ts +0 -32
- package/tests/service/pagination/frontendDrivers/VuePaginationDriver.test.ts +0 -66
- package/tests/service/persistenceDrivers/PersistenceDrivers.test.ts +0 -56
- package/tests/service/requests/BaseRequest.test.ts +0 -250
- package/tests/service/requests/BodiesAndFactories.test.ts +0 -28
- package/tests/service/requests/Enums.test.ts +0 -20
- package/tests/service/requests/ErrorHandler.test.ts +0 -188
- package/tests/service/requests/FormDataBody.test.ts +0 -63
- package/tests/service/requests/RequestErrorRouter.test.ts +0 -44
- package/tests/service/requests/Responses.test.ts +0 -83
- package/tests/service/requests/exceptions/Exceptions.test.ts +0 -43
- package/tests/service/requests/fetch/FetchDriver.test.ts +0 -76
- package/tests/service/requests/fetch/FetchResponse.test.ts +0 -21
- package/tests/service/requests/xhr/XMLHttpRequestDriver.test.ts +0 -178
- package/tests/service/support/DeferredPromise.test.ts +0 -40
- package/tests/service/support/helpers.test.ts +0 -37
- package/tests/vue/composables/useConfirmDialog.test.ts +0 -77
- package/tests/vue/composables/useGlobalCheckbox.test.ts +0 -126
- package/tests/vue/composables/useIsEmpty.test.ts +0 -18
- package/tests/vue/composables/useIsOpen.test.ts +0 -25
- package/tests/vue/composables/useIsOpenFromVar.test.ts +0 -22
- package/tests/vue/composables/useModelWrapper.test.ts +0 -30
- package/tests/vue/composables/useOnOpen.test.ts +0 -26
- package/tests/vue/forms/BaseForm.behavior.test.ts +0 -98
- package/tests/vue/forms/BaseForm.transformers.test.ts +0 -109
- package/tests/vue/forms/PropertyAwareArray.test.ts +0 -30
- package/tests/vue/forms/validation/ValidationRules.test.ts +0 -79
- package/tests/vue/requests/VueRequestLoaders.test.ts +0 -48
- package/tests/vue/router/routeResourceBinding/RouteResourceBoundView.test.ts +0 -344
- package/tests/vue/router/routeResourceBinding/RouteResourceUtils.test.ts +0 -70
- package/tests/vue/router/routeResourceBinding/installRouteInjection.test.ts +0 -450
- package/tests/vue/state/State.test.ts +0 -151
- package/tsconfig.json +0 -114
- package/vite.config.ts +0 -34
- package/vitest.config.ts +0 -23
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from 'vitest'
|
|
2
|
-
import { BulkRequestWrapper } from '../../../src/bulkRequests/BulkRequestWrapper'
|
|
3
|
-
|
|
4
|
-
const createRequest = (behavior: { shouldFail?: boolean } = {}) => {
|
|
5
|
-
return {
|
|
6
|
-
send: vi.fn().mockImplementation(() => {
|
|
7
|
-
if (behavior.shouldFail) {
|
|
8
|
-
return Promise.reject(new Error('fail'))
|
|
9
|
-
}
|
|
10
|
-
return Promise.resolve('ok')
|
|
11
|
-
}),
|
|
12
|
-
isLoading: vi.fn().mockReturnValue(false),
|
|
13
|
-
setAbortSignal: vi.fn(),
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
describe('BulkRequestWrapper', () => {
|
|
18
|
-
it('stores response on success', async () => {
|
|
19
|
-
const request = createRequest()
|
|
20
|
-
const wrapper = new BulkRequestWrapper(request as any)
|
|
21
|
-
|
|
22
|
-
await wrapper.send()
|
|
23
|
-
|
|
24
|
-
expect(wrapper.getResponse()).toBe('ok')
|
|
25
|
-
expect(wrapper.getError()).toBeNull()
|
|
26
|
-
expect(wrapper.hasError()).toBe(false)
|
|
27
|
-
expect(wrapper.wasSent()).toBe(true)
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
it('stores error on failure', async () => {
|
|
31
|
-
const request = createRequest({ shouldFail: true })
|
|
32
|
-
const wrapper = new BulkRequestWrapper(request as any)
|
|
33
|
-
|
|
34
|
-
await wrapper.send()
|
|
35
|
-
|
|
36
|
-
expect(wrapper.getResponse()).toBeNull()
|
|
37
|
-
expect(wrapper.getError()).toBeInstanceOf(Error)
|
|
38
|
-
expect(wrapper.hasError()).toBe(true)
|
|
39
|
-
expect(wrapper.wasSent()).toBe(true)
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
it('passes abort signal to request', async () => {
|
|
43
|
-
const request = createRequest()
|
|
44
|
-
const wrapper = new BulkRequestWrapper(request as any)
|
|
45
|
-
const controller = new AbortController()
|
|
46
|
-
|
|
47
|
-
await wrapper.send(controller.signal)
|
|
48
|
-
|
|
49
|
-
expect(request.setAbortSignal).toHaveBeenCalledWith(controller.signal)
|
|
50
|
-
})
|
|
51
|
-
})
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { mergeDeep } from '../../../src/support/helpers'
|
|
2
|
-
import { describe, it, expect } from 'vitest';
|
|
3
|
-
|
|
4
|
-
describe('mergeDeep', () => {
|
|
5
|
-
it('should merge nested objects and replace primitive values', () => {
|
|
6
|
-
const previous = {
|
|
7
|
-
filter: {
|
|
8
|
-
role: 'supplier',
|
|
9
|
-
search_text: ''
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const params = {
|
|
14
|
-
filter: {
|
|
15
|
-
search_text: 'ad'
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const result = mergeDeep(previous, params)
|
|
20
|
-
|
|
21
|
-
expect(result).toEqual({
|
|
22
|
-
filter: {
|
|
23
|
-
role: 'supplier',
|
|
24
|
-
search_text: 'ad'
|
|
25
|
-
}
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
it('should deeply merge multiple levels', () => {
|
|
30
|
-
const a = { a: { b: { c: 1 }, d: 2 } }
|
|
31
|
-
const b = { a: { b: { c: 3 }, e: 4 } }
|
|
32
|
-
|
|
33
|
-
const result = mergeDeep( a, b)
|
|
34
|
-
|
|
35
|
-
expect(result).toEqual({
|
|
36
|
-
a: {
|
|
37
|
-
b: { c: 3 },
|
|
38
|
-
d: 2,
|
|
39
|
-
e: 4
|
|
40
|
-
}
|
|
41
|
-
})
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
it('should not mutate the original objects', () => {
|
|
45
|
-
const a = { foo: { bar: 'baz' } }
|
|
46
|
-
const b = { foo: { bar: 'qux' } }
|
|
47
|
-
|
|
48
|
-
const result = mergeDeep({}, a, b)
|
|
49
|
-
|
|
50
|
-
expect(result).toEqual({ foo: { bar: 'qux' } })
|
|
51
|
-
expect(a.foo.bar).toBe('baz') // confirm a was not mutated
|
|
52
|
-
})
|
|
53
|
-
})
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, vi, beforeEach } from 'vitest'
|
|
2
|
-
import { RequestDriver } from '../../../../../src/laravel/pagination'
|
|
3
|
-
import { PaginationDataDto } from '../../../../../src/pagination'
|
|
4
|
-
import { PaginationResponse } from '../../../../../src/laravel/requests'
|
|
5
|
-
|
|
6
|
-
// Mocks für Schnittstellen und Klassen
|
|
7
|
-
class MockRequest {
|
|
8
|
-
setPaginationParams = vi.fn().mockReturnThis()
|
|
9
|
-
send = vi.fn()
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
class MockPaginationResponse extends PaginationResponse<any> {
|
|
13
|
-
protected resolveBody = vi.fn().mockResolvedValue(this.mockBody)
|
|
14
|
-
private mockBody
|
|
15
|
-
|
|
16
|
-
constructor(data: any[]) {
|
|
17
|
-
super()
|
|
18
|
-
this.mockBody = data
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
getTotal() {
|
|
22
|
-
return this.mockBody.length
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
getData() {
|
|
26
|
-
return this.mockBody
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
describe('RequestDriver', () => {
|
|
31
|
-
let mockRequest: MockRequest
|
|
32
|
-
let requestDriver: RequestDriver<typeof mockRequest>
|
|
33
|
-
|
|
34
|
-
beforeEach(() => {
|
|
35
|
-
mockRequest = new MockRequest()
|
|
36
|
-
requestDriver = new RequestDriver(mockRequest as any)
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
test('should call setPaginationParams with correct parameters', async () => {
|
|
40
|
-
const pageNumber = 1
|
|
41
|
-
const pageSize = 10
|
|
42
|
-
|
|
43
|
-
// Mock PaginationResponse
|
|
44
|
-
const mockResponse = new MockPaginationResponse([{ id: 1 }, { id: 2 }])
|
|
45
|
-
|
|
46
|
-
// Mock send method to resolve to a mock PaginationResponse
|
|
47
|
-
mockRequest.send.mockResolvedValue(mockResponse)
|
|
48
|
-
await requestDriver.get(pageNumber, pageSize)
|
|
49
|
-
|
|
50
|
-
expect(mockRequest.setPaginationParams).toHaveBeenCalledWith(
|
|
51
|
-
pageNumber,
|
|
52
|
-
pageSize
|
|
53
|
-
)
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
test('should correctly map response to PaginationDataDto', async () => {
|
|
57
|
-
const pageNumber = 1
|
|
58
|
-
const pageSize = 10
|
|
59
|
-
|
|
60
|
-
const mockData = [{ id: 1 }, { id: 2 }]
|
|
61
|
-
const mockResponse = new MockPaginationResponse(mockData)
|
|
62
|
-
|
|
63
|
-
// Mock send method to resolve to a mock PaginationResponse
|
|
64
|
-
mockRequest.send.mockResolvedValue(mockResponse)
|
|
65
|
-
|
|
66
|
-
const result = await requestDriver.get(pageNumber, pageSize)
|
|
67
|
-
|
|
68
|
-
expect(result).toBeInstanceOf(PaginationDataDto)
|
|
69
|
-
expect(result.data).toEqual(mockData)
|
|
70
|
-
expect(result.total).toBe(mockData.length)
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
test('should handle request errors gracefully', async () => {
|
|
74
|
-
const pageNumber = 1
|
|
75
|
-
const pageSize = 10
|
|
76
|
-
|
|
77
|
-
const error = new Error('Request failed')
|
|
78
|
-
mockRequest.send.mockRejectedValue(error)
|
|
79
|
-
|
|
80
|
-
await expect(requestDriver.get(pageNumber, pageSize)).rejects.toThrowError(
|
|
81
|
-
'Request failed'
|
|
82
|
-
)
|
|
83
|
-
})
|
|
84
|
-
})
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { JsonBaseRequest } from '../../../../src/laravel/requests'
|
|
3
|
-
import { JsonResponse } from '../../../../src/laravel/requests'
|
|
4
|
-
import { JsonBodyFactory } from '../../../../src/requests'
|
|
5
|
-
|
|
6
|
-
interface TestResource {
|
|
7
|
-
id: number;
|
|
8
|
-
name: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
class TestJsonBaseRequest extends JsonBaseRequest<TestResource> {
|
|
12
|
-
// Abstrakte Klasse muss hier für Tests konkretisiert werden
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
describe('JsonBaseRequest', () => {
|
|
16
|
-
let request: TestJsonBaseRequest;
|
|
17
|
-
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
// Instanziiere die Testklasse vor jedem Test
|
|
20
|
-
request = new TestJsonBaseRequest();
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test('should return a JsonResponse instance from getResponse', () => {
|
|
24
|
-
const response = request.getResponse();
|
|
25
|
-
// Überprüfe, ob getResponse eine JsonResponse-Instanz zurückgibt
|
|
26
|
-
expect(response).toBeInstanceOf(JsonResponse);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
test('should return a JsonBodyFactory instance from getRequestBodyFactory', () => {
|
|
30
|
-
const bodyFactory = request.getRequestBodyFactory();
|
|
31
|
-
// Überprüfe, ob getRequestBodyFactory eine JsonBodyFactory-Instanz zurückgibt
|
|
32
|
-
expect(bodyFactory).toBeInstanceOf(JsonBodyFactory);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
test('should handle generic type definitions for JsonResponse and factory', () => {
|
|
36
|
-
// Testen des generischen Typsystems
|
|
37
|
-
const response = request.getResponse();
|
|
38
|
-
const bodyFactory = request.getRequestBodyFactory();
|
|
39
|
-
|
|
40
|
-
expect(response).toBeInstanceOf(JsonResponse<TestResource>);
|
|
41
|
-
expect(bodyFactory).toBeInstanceOf(JsonBodyFactory);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, beforeEach, vi } from 'vitest';
|
|
2
|
-
import { PaginationJsonBaseRequest } from '../../../../src/laravel/requests'
|
|
3
|
-
import { PaginationResponse } from '../../../../src/laravel/requests'
|
|
4
|
-
|
|
5
|
-
interface TestResource {
|
|
6
|
-
id: number;
|
|
7
|
-
name: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
interface TestRequestParams {
|
|
11
|
-
page_number: number;
|
|
12
|
-
page_size: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
class TestPaginationJsonBaseRequest extends PaginationJsonBaseRequest<TestResource, TestRequestParams> {
|
|
16
|
-
// Abstrakte Klasse für Tests konkretisiert
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
describe('PaginationJsonBaseRequest', () => {
|
|
20
|
-
let request: TestPaginationJsonBaseRequest;
|
|
21
|
-
|
|
22
|
-
beforeEach(() => {
|
|
23
|
-
// Instanziiere die Testklasse vor jedem Test
|
|
24
|
-
request = new TestPaginationJsonBaseRequest();
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
test('should return a PaginationResponse instance from getResponse', () => {
|
|
28
|
-
const response = request.getResponse();
|
|
29
|
-
// Überprüfe, ob getResponse eine PaginationResponse-Instanz zurückgibt
|
|
30
|
-
expect(response).toBeInstanceOf(PaginationResponse);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test('should correctly set pagination parameters with setPaginationParams', () => {
|
|
34
|
-
const page = 2;
|
|
35
|
-
const size = 50;
|
|
36
|
-
|
|
37
|
-
// Mock der `withParams`-Methode, falls sie von `BaseRequest` stammt
|
|
38
|
-
const mockWithParams = vi.spyOn(request, 'withParams');
|
|
39
|
-
|
|
40
|
-
// Rufe `setPaginationParams` auf
|
|
41
|
-
const updatedRequest = request.setPaginationParams(page, size);
|
|
42
|
-
|
|
43
|
-
expect(updatedRequest).toBe(request); // Überprüft die fluente API
|
|
44
|
-
expect(mockWithParams).toHaveBeenCalledWith({
|
|
45
|
-
page_number: page,
|
|
46
|
-
page_size: size,
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
// Aufräumen von Mocks
|
|
50
|
-
mockWithParams.mockRestore();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test('should handle generic type definitions for getResponse', () => {
|
|
54
|
-
// Testen des generischen Typsystems
|
|
55
|
-
const response = request.getResponse();
|
|
56
|
-
expect(response).toBeInstanceOf(PaginationResponse<TestResource>);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, beforeEach, vi } from 'vitest';
|
|
2
|
-
import { JsonResponse } from '../../../../../src/laravel/requests'
|
|
3
|
-
|
|
4
|
-
describe('JsonResponse', () => {
|
|
5
|
-
let jsonResponse: JsonResponse<any>; // Generische Instanz für flexibles Testen
|
|
6
|
-
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
jsonResponse = new JsonResponse();
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
test('should correctly return data from response body', async () => {
|
|
12
|
-
const mockBody = {
|
|
13
|
-
data: { id: 1, name: 'Test Resource' },
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
// Simuliere die Methode `setResponse` mit einem Mock-ResponseHandler
|
|
17
|
-
const mockResponseHandler = {
|
|
18
|
-
async json() {
|
|
19
|
-
return mockBody;
|
|
20
|
-
},
|
|
21
|
-
getRawResponse: vi.fn(),
|
|
22
|
-
getStatusCode: vi.fn(),
|
|
23
|
-
getHeaders: vi.fn(),
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
await jsonResponse.setResponse(mockResponseHandler as any);
|
|
27
|
-
|
|
28
|
-
// Rufe die Methode `getData` auf und erwarte die korrekten Daten
|
|
29
|
-
const data = jsonResponse.getData();
|
|
30
|
-
expect(data).toEqual(mockBody.data);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test('should throw error if body is not set before calling getData', () => {
|
|
34
|
-
// Direkt getData aufrufen ohne vorher einen Response-Body zu setzen
|
|
35
|
-
expect(() => jsonResponse.getData()).toThrowError('Response body is not set');
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test('should correctly handle nested resource data', async () => {
|
|
39
|
-
const mockBody = {
|
|
40
|
-
data: { id: 42, attributes: { title: 'Nested Test' } },
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
// Simuliere die Methode `setResponse` mit einem Mock-ResponseHandler
|
|
44
|
-
const mockResponseHandler = {
|
|
45
|
-
async json() {
|
|
46
|
-
return mockBody;
|
|
47
|
-
},
|
|
48
|
-
getRawResponse: vi.fn(),
|
|
49
|
-
getStatusCode: vi.fn(),
|
|
50
|
-
getHeaders: vi.fn(),
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
await jsonResponse.setResponse(mockResponseHandler as any);
|
|
54
|
-
|
|
55
|
-
// Rufe die Methode `getData` auf und überprüfe, ob die geschachtelten Daten korrekt verarbeitet werden
|
|
56
|
-
const data = jsonResponse.getData();
|
|
57
|
-
expect(data).toEqual(mockBody.data);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, beforeEach, vi } from 'vitest';
|
|
2
|
-
import { PaginationResponse } from '../../../../../src/laravel/requests'
|
|
3
|
-
|
|
4
|
-
describe('PaginationResponse', () => {
|
|
5
|
-
let paginationResponse: PaginationResponse<{ id: number; name: string }>;
|
|
6
|
-
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
// Erstelle für jeden Test eine neue Instanz
|
|
9
|
-
paginationResponse = new PaginationResponse();
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test('should correctly return total from the response body meta', async () => {
|
|
13
|
-
const mockBody = {
|
|
14
|
-
data: { id: 1, name: 'Test Data' },
|
|
15
|
-
meta: { total: 42 },
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
// Simuliere den ResponseHandler mit einem Mock
|
|
19
|
-
const mockResponseHandler = {
|
|
20
|
-
async json() {
|
|
21
|
-
return mockBody;
|
|
22
|
-
},
|
|
23
|
-
getRawResponse: vi.fn(),
|
|
24
|
-
getStatusCode: vi.fn(),
|
|
25
|
-
getHeaders: vi.fn(),
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
// Setze die Response und überprüfe getTotal
|
|
29
|
-
await paginationResponse.setResponse(mockResponseHandler as any);
|
|
30
|
-
|
|
31
|
-
const total = paginationResponse.getTotal();
|
|
32
|
-
expect(total).toBe(mockBody.meta.total);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
test('should correctly return data from the response body data', async () => {
|
|
36
|
-
const mockBody = {
|
|
37
|
-
data: { id: 1, name: 'Test Data' },
|
|
38
|
-
meta: { total: 42 },
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
// Simuliere den ResponseHandler
|
|
42
|
-
const mockResponseHandler = {
|
|
43
|
-
async json() {
|
|
44
|
-
return mockBody;
|
|
45
|
-
},
|
|
46
|
-
getRawResponse: vi.fn(),
|
|
47
|
-
getStatusCode: vi.fn(),
|
|
48
|
-
getHeaders: vi.fn(),
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
// Setze die Response und überprüfe die Methode getData
|
|
52
|
-
await paginationResponse.setResponse(mockResponseHandler as any);
|
|
53
|
-
|
|
54
|
-
const data = paginationResponse.getData();
|
|
55
|
-
expect(data).toEqual(mockBody.data);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
test('should throw error when body is not set before calling getTotal', () => {
|
|
59
|
-
// Rufe getTotal auf, ohne den Body zu setzen
|
|
60
|
-
expect(() => paginationResponse.getTotal()).toThrowError(
|
|
61
|
-
'Response body is not set'
|
|
62
|
-
);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
test('should throw error when body is not set before calling getData', () => {
|
|
66
|
-
// Rufe getData auf, ohne den Body zu setzen
|
|
67
|
-
expect(() => paginationResponse.getData()).toThrowError(
|
|
68
|
-
'Response body is not set'
|
|
69
|
-
);
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
test('should preserve raw response, headers, and status code', async () => {
|
|
73
|
-
const mockBody = {
|
|
74
|
-
data: { id: 3, name: 'Test Headers' },
|
|
75
|
-
meta: { total: 15 },
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const mockRawResponse = { ok: true };
|
|
79
|
-
const mockHeaders = { 'content-type': 'application/json' };
|
|
80
|
-
const mockStatusCode = 200;
|
|
81
|
-
|
|
82
|
-
const mockResponseHandler = {
|
|
83
|
-
async json() {
|
|
84
|
-
return mockBody;
|
|
85
|
-
},
|
|
86
|
-
getRawResponse: () => mockRawResponse,
|
|
87
|
-
getStatusCode: () => mockStatusCode,
|
|
88
|
-
getHeaders: () => mockHeaders,
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
// Setze die Response
|
|
92
|
-
await paginationResponse.setResponse(mockResponseHandler as any);
|
|
93
|
-
|
|
94
|
-
// Prüfe getRawResponse, getHeaders und getStatusCode
|
|
95
|
-
expect(paginationResponse.getData()).toEqual(mockBody.data);
|
|
96
|
-
expect(paginationResponse.getTotal()).toBe(mockBody.meta.total);
|
|
97
|
-
expect(paginationResponse.getRawResponse()).toEqual(mockRawResponse);
|
|
98
|
-
expect(paginationResponse.getHeaders()).toEqual(mockHeaders);
|
|
99
|
-
expect(paginationResponse.getStatusCode()).toBe(mockStatusCode);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
test('should handle responses with no meta data gracefully', async () => {
|
|
103
|
-
const mockBody = {
|
|
104
|
-
data: { id: 1, name: 'Test Data without Meta' },
|
|
105
|
-
meta: null, // Keine meta-Daten
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
const mockResponseHandler = {
|
|
109
|
-
async json() {
|
|
110
|
-
return mockBody;
|
|
111
|
-
},
|
|
112
|
-
getRawResponse: vi.fn(),
|
|
113
|
-
getStatusCode: vi.fn(),
|
|
114
|
-
getHeaders: vi.fn(),
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
// Setze die Response, auch wenn meta null ist
|
|
118
|
-
await paginationResponse.setResponse(mockResponseHandler as any);
|
|
119
|
-
|
|
120
|
-
const data = paginationResponse.getData();
|
|
121
|
-
expect(data).toEqual(mockBody.data);
|
|
122
|
-
|
|
123
|
-
expect(() => paginationResponse.getTotal()).toThrowError(
|
|
124
|
-
"Cannot read properties of null (reading 'total')"
|
|
125
|
-
);
|
|
126
|
-
});
|
|
127
|
-
});
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
-
import { BasePaginator } from '../../../src/pagination/BasePaginator'
|
|
3
|
-
import { PaginationDataDto } from '../../../src/pagination/dtos/PaginationDataDto'
|
|
4
|
-
import type { BaseViewDriverContract } from '../../../src/pagination/contracts/BaseViewDriverContract'
|
|
5
|
-
|
|
6
|
-
class TestViewDriver implements BaseViewDriverContract<number[]> {
|
|
7
|
-
private data: number[] = []
|
|
8
|
-
private total = 0
|
|
9
|
-
|
|
10
|
-
setData(data: number[]): void {
|
|
11
|
-
this.data = data
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
getData(): number[] {
|
|
15
|
-
return this.data
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
setTotal(value: number): void {
|
|
19
|
-
this.total = value
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getTotal(): number {
|
|
23
|
-
return this.total
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
class TestPaginator extends BasePaginator<number, TestViewDriver> {
|
|
28
|
-
protected override viewDriver = new TestViewDriver()
|
|
29
|
-
|
|
30
|
-
public exposePass(dto: PaginationDataDto<number[]>, options?: { flush?: boolean }) {
|
|
31
|
-
this.passDataToViewDriver(dto, options)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public exposeHandleStale() {
|
|
35
|
-
return this.handleStaleResponse()
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public getViewDriver() {
|
|
39
|
-
return this.viewDriver
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
describe('BasePaginator', () => {
|
|
44
|
-
it('updates rows and returns updated count', () => {
|
|
45
|
-
const paginator = new TestPaginator(null)
|
|
46
|
-
paginator.getViewDriver().setData([1, 2, 3])
|
|
47
|
-
|
|
48
|
-
const updated = paginator.updateRows(
|
|
49
|
-
(row) => row % 2 === 0,
|
|
50
|
-
(row) => row * 10
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
expect(updated).toBe(1)
|
|
54
|
-
expect(paginator.getPageData()).toEqual([1, 20, 3])
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
it('removes rows and adjusts total', () => {
|
|
58
|
-
const paginator = new TestPaginator(null)
|
|
59
|
-
paginator.getViewDriver().setData([1, 2, 3])
|
|
60
|
-
paginator.getViewDriver().setTotal(3)
|
|
61
|
-
|
|
62
|
-
const removed = paginator.removeRows((row) => row > 1)
|
|
63
|
-
|
|
64
|
-
expect(removed).toBe(2)
|
|
65
|
-
expect(paginator.getPageData()).toEqual([1])
|
|
66
|
-
expect(paginator.getTotal()).toBe(1)
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
it('can remove rows without adjusting total', () => {
|
|
70
|
-
const paginator = new TestPaginator(null)
|
|
71
|
-
paginator.getViewDriver().setData([1, 2, 3])
|
|
72
|
-
paginator.getViewDriver().setTotal(3)
|
|
73
|
-
|
|
74
|
-
paginator.removeRows((row) => row === 1, { adjustTotal: false })
|
|
75
|
-
|
|
76
|
-
expect(paginator.getPageData()).toEqual([2, 3])
|
|
77
|
-
expect(paginator.getTotal()).toBe(3)
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
it('passes data to view driver and marks initialized', () => {
|
|
81
|
-
const paginator = new TestPaginator(null)
|
|
82
|
-
|
|
83
|
-
paginator.exposePass(new PaginationDataDto([4, 5], 2), { flush: true })
|
|
84
|
-
|
|
85
|
-
expect(paginator.getPageData()).toEqual([4, 5])
|
|
86
|
-
expect(paginator.getTotal()).toBe(2)
|
|
87
|
-
expect(paginator.isInitialized()).toBe(true)
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
it('handles stale response by returning current data/total', () => {
|
|
91
|
-
const paginator = new TestPaginator(null)
|
|
92
|
-
paginator.getViewDriver().setData([7])
|
|
93
|
-
paginator.getViewDriver().setTotal(9)
|
|
94
|
-
|
|
95
|
-
const dto = paginator.exposeHandleStale()
|
|
96
|
-
|
|
97
|
-
expect(dto.getData()).toEqual([7])
|
|
98
|
-
expect(dto.getTotal()).toBe(9)
|
|
99
|
-
})
|
|
100
|
-
})
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
-
import { InfiniteScroller } from '../../../src/pagination/InfiniteScroller'
|
|
3
|
-
import { PaginationDataDto } from '../../../src/pagination/dtos/PaginationDataDto'
|
|
4
|
-
import type { PaginationDataDriverContract } from '../../../src/pagination/contracts/PaginationDataDriverContract'
|
|
5
|
-
import type { ViewDriverFactoryContract } from '../../../src/pagination/contracts/ViewDriverFactoryContract'
|
|
6
|
-
import type { ViewDriverContract } from '../../../src/pagination/contracts/ViewDriverContract'
|
|
7
|
-
|
|
8
|
-
class StubViewDriver implements ViewDriverContract<number[]> {
|
|
9
|
-
private data: number[] = []
|
|
10
|
-
private total = 0
|
|
11
|
-
private currentPage: number
|
|
12
|
-
private pageSize: number
|
|
13
|
-
|
|
14
|
-
constructor(pageNumber: number, pageSize: number) {
|
|
15
|
-
this.currentPage = pageNumber
|
|
16
|
-
this.pageSize = pageSize
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
setData(data: number[]): void {
|
|
20
|
-
this.data = data
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
getData(): number[] {
|
|
24
|
-
return this.data
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
setTotal(value: number): void {
|
|
28
|
-
this.total = value
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
getTotal(): number {
|
|
32
|
-
return this.total
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
getCurrentPage(): number {
|
|
36
|
-
return this.currentPage
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
setPage(value: number): void {
|
|
40
|
-
this.currentPage = value
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
setPageSize(value: number): void {
|
|
44
|
-
this.pageSize = value
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
getPageSize(): number {
|
|
48
|
-
return this.pageSize
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
getLastPage(): number {
|
|
52
|
-
return Math.max(1, Math.ceil(this.total / this.pageSize))
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
getPages(): number[] {
|
|
56
|
-
return Array.from({ length: this.getLastPage() }, (_, i) => i + 1)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
class StubViewDriverFactory implements ViewDriverFactoryContract {
|
|
61
|
-
public make<ResourceInterface>(pageNumber: number, pageSize: number): ViewDriverContract<ResourceInterface[]> {
|
|
62
|
-
return new StubViewDriver(pageNumber, pageSize) as ViewDriverContract<ResourceInterface[]>
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
describe('InfiniteScroller', () => {
|
|
67
|
-
it('concatenates data by default', async () => {
|
|
68
|
-
let call = 0
|
|
69
|
-
const dataDriver: PaginationDataDriverContract<number[]> = {
|
|
70
|
-
get: async () => {
|
|
71
|
-
call += 1
|
|
72
|
-
return new PaginationDataDto(call === 1 ? [1, 2] : [3], 3)
|
|
73
|
-
},
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const paginator = new InfiniteScroller<number[]>(dataDriver, 1, 2, {
|
|
77
|
-
viewDriverFactory: new StubViewDriverFactory(),
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
await paginator.load()
|
|
81
|
-
await paginator.load()
|
|
82
|
-
|
|
83
|
-
expect(paginator.getPageData()).toEqual([1, 2, 3])
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
it('replaces data when replace is true', async () => {
|
|
87
|
-
const dataDriver: PaginationDataDriverContract<number[]> = {
|
|
88
|
-
get: async () => new PaginationDataDto([9], 1),
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const paginator = new InfiniteScroller<number[]>(dataDriver, 1, 2, {
|
|
92
|
-
viewDriverFactory: new StubViewDriverFactory(),
|
|
93
|
-
})
|
|
94
|
-
|
|
95
|
-
;(paginator as any).viewDriver.setData([1, 2])
|
|
96
|
-
|
|
97
|
-
await paginator.load(1, { replace: true })
|
|
98
|
-
|
|
99
|
-
expect(paginator.getPageData()).toEqual([9])
|
|
100
|
-
})
|
|
101
|
-
})
|