Skip to content

Feature laravel13#215

Closed
StanBarrows wants to merge 37 commits intomainfrom
feature-laravel13
Closed

Feature laravel13#215
StanBarrows wants to merge 37 commits intomainfrom
feature-laravel13

Conversation

@StanBarrows
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings April 7, 2026 18:44
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the package for Laravel 13 / newer tooling, improves robustness of JSON decoding/mapping across multiple DTOs/responses, and expands both fixture-based and live integration test coverage for many DocuWare endpoints.

Changes:

  • Add platform_path configuration and apply it consistently to base URL construction (connector, OAuth discovery, URL builder).
  • Introduce JsonArrays normalization and harden parsing/mapping in responses/DTOs (lists vs associative maps, 404-as-empty workflow history).
  • Restructure/expand tests: new unit tests, Saloon fixture tests, many new live integration tests, updated CI workflows and test suites.

Reviewed changes

Copilot reviewed 171 out of 208 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/Unit/Requests/FileCabinets/Upload/CreateDataRecordTest.php Adds unit coverage for CreateDataRecord endpoint/query behavior.
tests/Unit/DocuWareSearchRequestBuilderTest.php Adds unit coverage for search builder condition encoding (EMPTY/NOTEMPTY, date list).
tests/TestCase.php Updates test environment setup and Saloon fixture path configuration.
tests/Support/FixtureDocuWareConnector.php Adds connector variant for fixture tests (static token, no OAuth).
tests/Pest.php Moves live-test hooks to Integration suite and adds polling helper for processing.
tests/Manual/RecordGetOrganizationFixtureTest.php Adds manual fixture recorder for Saloon fixtures.
tests/Integration/Requests/Workflow/GetDocumentWorkflowHistoryTest.php Adds live integration test for workflow history retrieval.
tests/Integration/Requests/Workflow/GetDocumentWorkflowHistoryStepsTest.php Updates workflow steps test to handle empty history and removes skip.
tests/Integration/Requests/Search/GetSearchRequestTest.php Fixes date filter range operator in integration test.
tests/Integration/Requests/General/UserManagement/GetUsers/GetUsersTest.php Adds live integration test for listing users.
tests/Integration/Requests/General/UserManagement/GetUsers/GetUsersOfARoleTest.php Adds live integration test for listing users by role.
tests/Integration/Requests/General/UserManagement/GetUsers/GetUsersOfAGroupTest.php Adds live integration test for listing users by group.
tests/Integration/Requests/General/UserManagement/GetUsers/GetUserByIdTest.php Adds live integration test for fetching user by id.
tests/Integration/Requests/General/UserManagement/GetModifyRoles/RemoveUserFromARoleTest.php Refactors role add/remove flow into a single integration test.
tests/Integration/Requests/General/UserManagement/GetModifyRoles/GetRolesTest.php Adds live integration test for listing roles.
tests/Integration/Requests/General/UserManagement/GetModifyRoles/GetAllRolesForASpecificUserTest.php Adds live integration test for roles of a user.
tests/Integration/Requests/General/UserManagement/GetModifyRoles/AddUserToARoleTest.php Adds live integration test for adding a user to a role.
tests/Integration/Requests/General/UserManagement/GetModifyGroups/RemoveUserFromAGroupTest.php Refactors group add/remove flow into a single integration test.
tests/Integration/Requests/General/UserManagement/GetModifyGroups/GetGroupsTest.php Adds live integration test for listing groups.
tests/Integration/Requests/General/UserManagement/GetModifyGroups/GetAllGroupsForASpecificUserTest.php Adds live integration test for groups of a user.
tests/Integration/Requests/General/UserManagement/GetModifyGroups/AddUserToAGroupTest.php Adds live integration test for adding a user to a group.
tests/Integration/Requests/General/UserManagement/CreateUpdateUsers/UpdateUserTest.php Refactors update-user integration test and assertions.
tests/Integration/Requests/General/UserManagement/CreateUpdateUsers/CreateUserTest.php Adds live integration test for creating a user.
tests/Integration/Requests/General/Organization/GetOrganizationTest.php Adds live integration test for listing organizations.
tests/Integration/Requests/General/Organization/GetLoginTokenTest.php Adds live integration test for requesting login token.
tests/Integration/Requests/General/Organization/GetAllFileCabinetsAndDocumentTraysTest.php Adds live integration test for cabinets/trays listing.
tests/Integration/Requests/FileCabinets/Upload/ReplaceAPDFDocumentSectionTest.php Adds live integration test for PDF section replacement.
tests/Integration/Requests/FileCabinets/Upload/CreateDataRecordTest.php Adds live integration tests for creating data records (with/without file).
tests/Integration/Requests/FileCabinets/Upload/AppendFilesToADataRecordTest.php Updates append-files integration test and removes debug/skip.
tests/Integration/Requests/FileCabinets/Upload/AppendASinglePDFToADocumentTest.php Adds live integration test for appending a single PDF.
tests/Integration/Requests/FileCabinets/SelectLists/GetSelectListsTest.php Adds live integration test for select lists.
tests/Integration/Requests/FileCabinets/SelectLists/GetFilteredSelectListsTest.php Adds (skipped) integration test for filtered select lists.
tests/Integration/Requests/FileCabinets/Search/GetDocumentsFromAFileCabinetTest.php Adds live integration test for listing documents from cabinet.
tests/Integration/Requests/FileCabinets/Search/GetASpecificDocumentFromAFileCabinetTest.php Adds live integration test for fetching a specific document.
tests/Integration/Requests/FileCabinets/General/GetTotalNumberOfDocumentsTest.php Adds live integration test for total document count.
tests/Integration/Requests/FileCabinets/General/GetFileCabinetInformationTest.php Adds live integration test for cabinet information.
tests/Integration/Requests/FileCabinets/Dialogs/GetDialogsOfASpecificTypeTest.php Adds live integration test for listing dialogs by type.
tests/Integration/Requests/FileCabinets/Dialogs/GetASpecificDialogTest.php Adds live integration test for fetching a dialog.
tests/Integration/Requests/FileCabinets/Dialogs/GetAllDialogsTest.php Adds live integration test for listing all dialogs.
tests/Integration/Requests/FileCabinets/CheckInCheckOut/UndoDocumentCheckoutTest.php Adds (skipped) integration test for undo checkout flow.
tests/Integration/Requests/FileCabinets/CheckInCheckOut/CheckoutDocumentToFileSystemTest.php Adds (skipped) integration test for checkout-to-filesystem.
tests/Integration/Requests/FileCabinets/CheckInCheckOut/CheckInDocumentFromFileSystemTest.php Adds (skipped) integration test for check-in-from-filesystem.
tests/Integration/Requests/FileCabinets/Batch/BatchDocumentsUpdateFieldsTest.php Adds integration test for batch field update operation.
tests/Integration/Requests/Fields/GetFieldsRequestTest.php Adds live integration test for listing fields.
tests/Integration/Requests/Documents/UpdateIndexValues/UpdateIndexValuesTest.php Adds live integration tests for updating index values (single/multi).
tests/Integration/Requests/Documents/Stamps/GetStampsTest.php Adds integration test for listing stamp definitions.
tests/Integration/Requests/Documents/Stamps/GetDocumentAnnotationsTest.php Adds integration test for listing document annotations.
tests/Integration/Requests/Documents/Stamps/AddDocumentAnnotationsTest.php Adds (skipped) integration test for posting annotations.
tests/Integration/Requests/Documents/Sections/GetTextshotTest.php Adds integration test for textshot endpoint mapping.
tests/Integration/Requests/Documents/Sections/GetASpecificSectionTest.php Adds integration test for retrieving a section.
tests/Integration/Requests/Documents/Sections/GetAllSectionsFromADocumentTest.php Adds integration test for listing sections.
tests/Integration/Requests/Documents/Sections/DeleteSectionTest.php Adds integration test for deleting a section.
tests/Integration/Requests/Documents/ModifyDocuments/TransferDocumentTest.php Adds (skipped) integration test for transfer document operation.
tests/Integration/Requests/Documents/ModifyDocuments/DeleteDocumentTest.php Adds integration test for deleting a document.
tests/Integration/Requests/Documents/GetDocumentPreviewRequestTest.php Adds integration test for preview image retrieval.
tests/Integration/Requests/Documents/Download/DownloadThumbnailTest.php Adds integration test for downloading a thumbnail.
tests/Integration/Requests/Documents/Download/DownloadSectionTest.php Adds integration test for downloading a section.
tests/Integration/Requests/Documents/Download/DownloadDocumentTest.php Adds integration test for downloading a document.
tests/Integration/Requests/Documents/DocumentsTrashBin/RestoreDocumentsTest.php Adds integration test for restoring trashed documents.
tests/Integration/Requests/Documents/DocumentsTrashBin/GetDocumentsTest.php Fixes date filter range operator in trash search integration test.
tests/Integration/Requests/Documents/DocumentsTrashBin/DeleteDocumentsTest.php Adds integration test for deleting documents in trash.
tests/Integration/Requests/Documents/ClipUnclipStapleUnstaple/UnstapleTest.php Adds integration test for unstaple operation.
tests/Integration/Requests/Documents/ClipUnclipStapleUnstaple/UnclipTest.php Adds integration test for unclip operation.
tests/Integration/Requests/Documents/ClipUnclipStapleUnstaple/StapleTest.php Updates staple test assertions to be more tolerant/robust.
tests/Integration/Requests/Documents/ClipUnclipStapleUnstaple/ClipTest.php Adds integration test for clip operation.
tests/Integration/Requests/Documents/ApplicationProperties/UpdateApplicationPropertiesTest.php Adds integration test for updating application properties.
tests/Integration/Requests/Documents/ApplicationProperties/GetApplicationPropertiesTest.php Adds integration test for reading application properties.
tests/Integration/Requests/Documents/ApplicationProperties/DeleteApplicationPropertiesTest.php Adds integration test for deleting application properties.
tests/Integration/Requests/Documents/ApplicationProperties/AddApplicationPropertiesTest.php Adds integration test for adding application properties.
tests/Integration/Requests/Authentication/OAuth/RequestTokenWithCredentialsTrustedUserTest.php Adds (skipped) integration test for trusted-user token grant.
tests/Integration/Requests/Authentication/OAuth/RequestTokenWithCredentialsTest.php Adds integration test for password-grant token request.
tests/Integration/Requests/Authentication/OAuth/GetResponsibleIdentityServiceTest.php Adds integration test for responsible identity service discovery.
tests/Integration/Requests/Authentication/OAuth/GetIdentityServiceConfigurationTest.php Adds integration test for OpenID config retrieval.
tests/Integration/DocuWareTest.php Updates URL composition to use configurable platform path and processing poller.
tests/Integration/DocuWareAuthenticationTest.php Removes redundant OAuth discovery tests in favor of new Integration/OAuth suite.
tests/Fixtures/saloon/get-organization.json Adds Saloon fixture for GetOrganization.
tests/Fixtures/saloon/add-document-annotations.json Adds Saloon fixture for AddDocumentAnnotations.
tests/Feature/SaloonFixtures/RequestTokenWithCredentialsFixtureTest.php Adds mock-client fixture test for token DTO mapping.
tests/Feature/SaloonFixtures/GetOrganizationFixtureTest.php Adds fixture-based test for GetOrganization mapping.
tests/Feature/SaloonFixtures/AddDocumentAnnotationsFixtureTest.php Adds fixture-based test for AddDocumentAnnotations mapping.
tests/Feature/Requests/Workflow/GetDocumentWorkflowHistoryTest.php Removes older feature test in favor of Integration equivalent.
tests/Feature/Requests/Documents/Thumbnail/GetDocumentDownloadThumbnailRequestTest.php Removes older feature test in favor of Integration equivalent.
tests/Feature/Requests/Documents/ApplicationProperties/ApplicationPropertiesTest.php Splits monolithic feature test into dedicated Integration tests.
src/Support/ParseValue.php Hardens parsing for dates/keywords/tables and improves typing.
src/Support/JsonArrays.php Adds helper to normalize decoded JSON into list/record shapes.
src/Support/Auth.php Improves cookie-cache typing safety and guards non-array cache values.
src/Responses/Workflow/GetDocumentWorkflowHistoryResponse.php Handles 404 as empty history and normalizes list shapes.
src/Responses/Search/GetTrashSearchResponse.php Tightens pagination parameter types.
src/Responses/Search/GetSearchResponse.php Tightens pagination parameter types.
src/Responses/General/UserManagement/GetUsers/GetUsersResponse.php Normalizes list shapes and tightens return type.
src/Responses/General/UserManagement/GetModifyRoles/GetRolesResponse.php Normalizes list shapes and tightens return type.
src/Responses/General/UserManagement/GetModifyGroups/GetGroupsResponse.php Normalizes list shapes and tightens return type.
src/Responses/General/Organization/GetOrganizationResponse.php Normalizes list shapes and tightens return type.
src/Responses/General/Organization/GetAllFileCabinetsAndDocumentTraysResponse.php Normalizes list shapes and tightens return type.
src/Responses/FileCabinets/Search/GetDocumentsFromAFileCabinetResponse.php Tightens pagination parameter types.
src/Responses/FileCabinets/Dialogs/GetAllDialogsResponse.php Normalizes list shapes and tightens return type.
src/Responses/Fields/GetFieldsResponse.php Normalizes list shapes and tightens return type.
src/Responses/Documents/UpdateIndexValues/UpdateIndexValuesResponse.php Normalizes list shapes for update-index response mapping.
src/Responses/Documents/Sections/GetAllSectionsFromADocumentResponse.php Normalizes list shapes and tightens return type.
src/Responses/Documents/ApplicationProperties/GetApplicationPropertiesResponse.php Normalizes list shapes and returns typed Collection.
src/Requests/Workflow/GetDocumentWorkflowHistory.php Adds return type docs for workflow history collection.
src/Requests/Search/GetSearchRequest.php Adds typing docs for additional cabinet IDs and body.
src/Requests/General/UserManagement/GetUsers/GetUsersOfARole.php Tightens DTO return typing.
src/Requests/General/UserManagement/GetUsers/GetUsersOfAGroup.php Tightens DTO return typing.
src/Requests/General/UserManagement/GetUsers/GetUsers.php Tightens DTO return typing.
src/Requests/General/UserManagement/GetModifyRoles/RemoveUserFromARole.php Adds parameter/body typing docs.
src/Requests/General/UserManagement/GetModifyRoles/GetRoles.php Tightens DTO return typing.
src/Requests/General/UserManagement/GetModifyRoles/GetAllRolesForASpecificUser.php Tightens DTO return typing.
src/Requests/General/UserManagement/GetModifyRoles/AddUserToARole.php Adds parameter/body typing docs.
src/Requests/General/UserManagement/GetModifyGroups/RemoveUserFromAGroup.php Adds parameter/body typing docs.
src/Requests/General/UserManagement/GetModifyGroups/GetGroups.php Tightens DTO return typing.
src/Requests/General/UserManagement/GetModifyGroups/GetAllGroupsForASpecificUser.php Tightens DTO return typing.
src/Requests/General/UserManagement/GetModifyGroups/AddUserToAGroup.php Adds parameter/body typing docs.
src/Requests/General/UserManagement/CreateUpdateUsers/UpdateUser.php Guards nullable out-of-office fields and adds typing docs.
src/Requests/General/UserManagement/CreateUpdateUsers/CreateUser.php Adds typing docs for request body.
src/Requests/General/Organization/GetOrganization.php Tightens DTO return typing.
src/Requests/General/Organization/GetLoginToken.php Adds typing docs for request body.
src/Requests/General/Organization/GetAllFileCabinetsAndDocumentTrays.php Tightens DTO return typing.
src/Requests/FileCabinets/Upload/ReplaceAPDFDocumentSection.php Adds typing docs for multipart body.
src/Requests/FileCabinets/Upload/CreateDataRecord.php Adds StoreDialogId query support and index typing docs.
src/Requests/FileCabinets/Upload/AppendFilesToADataRecord.php Adds typing docs and imports for multipart values.
src/Requests/FileCabinets/Upload/AppendASinglePDFToADocument.php Adds typing docs for multipart body.
src/Requests/FileCabinets/SelectLists/GetSelectLists.php Switches to POST with JSON body to match expected API shape.
src/Requests/FileCabinets/SelectLists/GetFilteredSelectLists.php Switches to POST with JSON body and typed dialog expression payload.
src/Requests/FileCabinets/Search/GetDocumentsFromAFileCabinet.php Adds typing docs for fields parameter.
src/Requests/FileCabinets/CheckInCheckOut/UndoDocumentCheckout.php Adds request for undo checkout (PUT with JSON body).
src/Requests/FileCabinets/CheckInCheckOut/CheckoutDocumentToFileSystem.php Adds request for checkout-to-filesystem operation.
src/Requests/FileCabinets/CheckInCheckOut/CheckInDocumentFromFileSystem.php Adds request for check-in-from-filesystem (multipart).
src/Requests/FileCabinets/Batch/BatchDocumentsUpdateFields.php Adds request for batch update fields operation.
src/Requests/Fields/GetFieldsRequest.php Tightens DTO return typing.
src/Requests/Documents/UpdateIndexValues/UpdateIndexValues.php Adds broader index DTO typing docs and typed return docs.
src/Requests/Documents/Stamps/GetStamps.php Adds request for stamps listing (with normalized list mapping).
src/Requests/Documents/Stamps/GetDocumentAnnotations.php Adds request for annotation listing with shape normalization and caching.
src/Requests/Documents/Stamps/AddDocumentAnnotations.php Adds request for posting annotations with typed array DTO return.
src/Requests/Documents/Sections/GetAllSectionsFromADocument.php Tightens DTO return typing.
src/Requests/Documents/ModifyDocuments/TransferDocument.php Fixes Arr import and adds typing docs for fields/body.
src/Requests/Documents/DocumentsTrashBin/RestoreDocuments.php Adds typing docs for ids/body.
src/Requests/Documents/DocumentsTrashBin/GetDocuments.php Adds typing docs for condition/body.
src/Requests/Documents/DocumentsTrashBin/DeleteDocuments.php Adds typing docs for ids/body.
src/Requests/Documents/ClipUnclipStapleUnstaple/Unstaple.php Adds typing docs for request body.
src/Requests/Documents/ClipUnclipStapleUnstaple/Unclip.php Adds typing docs for request body.
src/Requests/Documents/ClipUnclipStapleUnstaple/Staple.php Adds typing docs for documents/body.
src/Requests/Documents/ClipUnclipStapleUnstaple/Clip.php Adds typing docs for documents/body.
src/Requests/Documents/ApplicationProperties/UpdateApplicationProperties.php Adds property typing docs and returns typed array body.
src/Requests/Documents/ApplicationProperties/DeleteApplicationProperties.php Adds property-name typing docs and typed return.
src/Requests/Documents/ApplicationProperties/AddApplicationProperties.php Adds property typing docs and typed return.
src/Requests/Authentication/OAuth/RequestTokenWithCredentialsTrustedUser.php Adds typed body docs for token requests.
src/Requests/Authentication/OAuth/RequestTokenWithCredentials.php Adds typed body docs for token requests.
src/Requests/Authentication/OAuth/GetResponsibleIdentityService.php Updates endpoint building to use configurable platform path.
src/Facades/DocuWare.php Improves PHPDoc generics/array typing for facade methods.
src/DTO/Workflow/InstanceHistory.php Normalizes steps list mapping and improves typing docs.
src/DTO/Workflow/HistoryStep.php Normalizes Info.Item shapes into a predictable collection.
src/DTO/TextshotPage.php Normalizes raw items list and improves typing.
src/DTO/Textshot.php Normalizes pages list mapping and improves typing.
src/DTO/SuggestionField.php Adds typing docs for JSON parsing and fake helpers.
src/DTO/Section.php Adds typing docs for JSON parsing.
src/DTO/General/UserManagement/GetUsers/User.php Adds typing docs for JSON parsing.
src/DTO/General/UserManagement/GetUsers/RegionalSettings.php Adds typing docs for JSON parsing.
src/DTO/General/UserManagement/GetUsers/OutOfOffice.php Adds typing docs for JSON parsing.
src/DTO/General/UserManagement/GetModifyRoles/Role.php Adds typing docs for JSON parsing.
src/DTO/General/UserManagement/GetModifyGroups/Group.php Adds typing docs for JSON parsing.
src/DTO/General/UserManagement/CreateUpdateUser/User.php Adds typing docs for JSON parsing.
src/DTO/General/Organization/OrganizationIndex.php Adds typing docs for JSON parsing.
src/DTO/General/Organization/Organization.php Adds typing docs and parameter typing for ctor/fake.
src/DTO/General/Organization/FileCabinet.php Adds typing docs for JSON parsing.
src/DTO/FileCabinets/General/FileCabinetInformation.php Adds typing docs for JSON parsing.
src/DTO/FileCabinets/Dialog.php Normalizes Fields shape and improves typing docs.
src/DTO/FileCabinets/CheckoutToFileSystemResult.php Adds DTO for checkout operation response links.
src/DTO/Documents/TrashDocumentPaginator.php Hardens row/header mapping and improves typing.
src/DTO/Documents/TableRow.php Normalizes table row fields list mapping and adds typing docs.
src/DTO/Documents/Field.php Adds typing docs for JSON parsing.
src/DTO/Documents/DocumentThumbnail.php Adds typing docs for JSON parsing.
src/DTO/Documents/DocumentsTrashBin/RestoreDocuments.php Normalizes FailedItems list and improves typing.
src/DTO/Documents/DocumentsTrashBin/DeleteDocuments.php Normalizes FailedItems list and improves typing.
src/DTO/Documents/DocumentPaginator.php Hardens Items list mapping and improves typing.
src/DTO/Documents/DocumentIndex/PrepareDTO.php Adds typing docs for index payload building.
src/DTO/Documents/DocumentIndex/IndexTextDTO.php Adds typing docs for values payload.
src/DTO/Documents/DocumentIndex/IndexTableDTO.php Hardens row normalization and adds typing docs.
src/DTO/Documents/DocumentIndex/IndexNumericDTO.php Adds typing docs for values payload.
src/DTO/Documents/DocumentIndex/IndexMemoDTO.php Adds typing docs for values payload.
src/DTO/Documents/DocumentIndex/IndexKeywordDTO.php Adds typing docs for values payload.
src/DTO/Documents/DocumentIndex/IndexDetectDTO.php Tightens return type for detect/make.
src/DTO/Documents/DocumentIndex/IndexDecimalDTO.php Adds typing docs for values payload.
src/DTO/Documents/DocumentIndex/IndexDateTimeDTO.php Tightens fallback return type and adds typing docs.
src/DTO/Documents/DocumentIndex/IndexDateDTO.php Tightens fallback return type and adds typing docs.
src/DTO/Documents/DocumentField.php Adds typing docs for JSON parsing and value union.
src/DTO/Documents/Document.php Normalizes fields/sections/suggestions lists and hardens extension extraction.
src/DTO/Authentication/OAuth/ResponsibleIdentityService.php Adds typing docs for DTO creation.
src/DTO/Authentication/OAuth/RequestToken.php Adds typing docs for DTO creation.
src/DTO/Authentication/OAuth/IdentityServiceConfiguration.php Normalizes supported-* lists to list<string> and adds typing docs.
src/DocuWareUrl.php Uses configurable platform path when generating integration URLs.
src/DocuWareSearchRequestBuilder.php Adds EMPTY/NOTEMPTY filters and normalizes condition value lists.
src/Connectors/DocuWareConnector.php Uses configurable platform path, improves token caching TTL, and safe error messages.
phpunit.xml.dist Updates test suite split (default vs integration) and adds platform env.
phpstan.neon.dist Raises PHPStan level.
config/laravel-docuware.php Adds platform_path and expands tests.* config keys.
composer.json Updates platform requirements/deps and introduces separate test scripts/suites.
.github/workflows/run-tests.yml Updates CI matrix, adds postman parity check, splits default vs integration tests.
.github/workflows/phpstan.yml Updates PHP version used for static analysis.
.github/workflows/fix-php-code-style-issues.yml Reworks Pint workflow to install deps and run Pint directly.
.github/workflows/dependabot-auto-merge.yml Updates dependabot metadata action and env workaround for node runtime.
.github/workflows/composer-audit.yml Updates PHP version used for audit workflow.
.github/ISSUE_TEMPLATE/bug_report.yml Updates default PHP/Laravel version placeholders.
.env.example Adds documented env mapping for platform path and test configuration keys.
Comments suppressed due to low confidence (1)

src/DocuWareSearchRequestBuilder.php:113

  • filterDate now requires a non-null Carbon $date, which is a breaking change for callers that previously passed null to conditionally skip date filters. Consider keeping the nullable signature and treating null as a no-op (or introduce a separate whenDate(...) helper) to preserve the builder's ergonomic API.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@StanBarrows StanBarrows closed this Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants