Conversation
…nsumers for `DateTime` and `Enum` types, remove unused `UserDefinedParsers`, and simplify `ArrayConsumer`.
…xemes`, simplifying token parsing and decoding logic, removing now-obsolete classes and tests.
…or TypeScript code generation and related tests.
…tion, and TypeScript code generation, including related tests and documentation updates.
…e `Arrays::filterNullValues` with specialized methods, and update PHP version requirement to `^8.5`.
…es, enums, structs, collections, and unions. Include related utilities, registry handling, and extensive test coverage.
…es, enums, structs, collections, and unions. Include related utilities, registry handling, and extensive test coverage.
…et`, refactor code generators to use `TypescriptGenerator` and new `Options`, add tests for branded type handling and unsupported type exception.
…pdate dependencies in `composer.lock`.
…with dedicated nodes (`BoolNode`, `FloatNode`, `IntNode`, `MixedNode`, `NullNode`, `StringNode`) and associated `BackingType` enum; update consumers, tests, and utilities accordingly.
…lientAwareExceptionPresenter` to `ExposedExceptionPresenter`; update dependencies, tests, and usages accordingly.
…and mocks to handle branded and named types directly via attributes; expand type system validation with additional tests and exceptions.
…ing and optimization; add comprehensive unit tests for AST optimization, metadata elimination, node diagnostics, and registry shape validation across multiple scenarios.
…ipt source generation with imports and code blocks; include comprehensive unit tests for deterministic behavior and edge cases.
… and `TypeScriptFile` classes; refactor to use `TypescriptFile` and `TypescriptImport` for streamlined source generation with unified import handling and code composition; update tests and dependencies accordingly.
…rializableClient` and TypeScript utilities; implement `InteractsWithToasts` trait, `ToastType`, and `Toast` classes; update client behaviors, type definitions, and Laravel controller integration tests.
…prove type safety with named parameters and static closures while enhancing error type serialization.
…dleware` to include class and method info
…ommands, and registry handling for customizable cache key length.
…ollection-like-stuff' into feature/remove-old-parsers-and-collection-like-stuff
…factor error handling and TypeScript generation; add comprehensive unit tests.
…, and `NonFalsyString` with specialized constraint classes; add `IntRange`, `ListLength`, `LowercaseString`, `NonEmptyString`, `NonFalsyString`, and `NumericString`.
… Laravel adapter - Added `ClientFactory` interface and default `OperationClientFactory` with `createClientFromHttpRequest` method. - Updated Laravel adapter to support configurable client creation via `client` config key. - Replaced inline client header logic with `ClientFactory` for improved flexibility and maintainability. - Enhanced documentation to detail the new `ClientFactory` configuration and default behavior. - Added comprehensive tests for `OperationClientFactory` to validate client selection logic.
…in error classifications - Implemented `ErrorClassifier` for precise error categorization. - Added tests for `ThrowAttributeResolver` and `ErrorClassifier`, validating cases like authentication, authorization, domain errors, and fallback logic. - Introduced diverse mock classes (`RequiresLoginInterface`, `SessionExpiredException`, `NamedDomainExposedException`, etc.) for error handling scenarios. - Refactored `Throws` and `ExposeAs` attributes to improve validation and type distinction (e.g., `ErrorType`, `name` support). - Standardized naming logic in middleware and improved domain error handling declarations. - Updated documentation and comments for new error handling behavior.
…elated tests, and introduce new error handling setup for scope-specific declarations and improved domain error categorization.
…TTP response details, improve TypeScript typing accuracy, and update documentation and test coverage accordingly.
…ils, and improve explanation of core concepts and server-client communication.
… handling and documentation - Introduced the `RATE_LIMITED` (429) error category for rate-limiting scenarios, with optional `RetryInResolver` for dynamic `retryIn` resolution. - Enhanced `ServerConfiguration` to support resolver configuration and exception
…ify class hierarchy
- Add `RecordKey` to validate if a node is usable as a key (`isUsableAsKey`) and to check closed key sets (`isClosedKeySet`). - Introduce `literalKeyValue` to handle stringified JSON object keys. - Update `ArrayConsumer` to integrate `RecordKey` for stricter key validation during parsing. - Add extensive unit tests for `RecordKey` to cover key validation scenarios. - Ensure JSON output differentiates between lists and records in serialization. - Extend test coverage for executor and parser with a focus on record handling.
…ion logic - Introduced new mocks (`ApiCredentials`, `AuditedNoteInput`, `UpdateProfileInput`) to enhance testing of parsing and hydration scenarios. - Added support for virtual properties in parsing strategies and reflection. - Implemented `PropertiesReflector` for determining property accessibility and hooks. - Expanded tests for `TypeParser` and `UserDefinedObjectConsumer` to validate casting strategies and property handling. - Updated serialization and hydration logic to respect input-output constraints, including virtual and hooked properties. - Simplified handling of uncastable types and enriched related test cases.
… operation factories - Introduced `CachedOperationRegistryTest` for comprehensive unit testing of cached operation behavior, including partial materialization, memoization, and error handling. - Added `RegistryFixtureOperations` mock for testing query and command operation scenarios. - Refactored `CachedOperationRegistry` to replace legacy one-closure-per-operation format with a centralized match-arm approach, improving performance and memory efficiency. - Enhanced error handling with `OperationNotFoundException::forKey` for unknown operation keys. - Updated PHP code generation in `CachedOperationRegistry::toPhpCode` to streamline key and operation definition logic.
…across operation registries and improve parameter naming.
… across documentation, code, and tests to standardize naming and improve clarity.
…lue objects - Introduced comprehensive test suites (`OrderCastingTest`, `OrderErrorsTest`) to validate end-to-end behavior for commands and queries with nested casting, value objects, and optional handling. - Added new fixtures for `CartCommands`, `CheckoutCommands`, `OrderCommands`, and `OrderQueries` to demonstrate command/query input-output flows. - Implemented `IntegrationHarness` for consistent integration testing of cached and non-cached operation behavior. - Expanded type fixtures (`Address`, `Currency`, `LineItemInput`, `Money`, `OrderNumber`, `CustomerProfile`) to support edge case validations. - Improved error handling coverage, including domain exceptions (`OrderAlreadyShippedException`, `OrderNotFoundException`) and runtime exceptions in value objects. - Finalized support for `Castable` attributes and object hydration strategies.
…rrayConsumer` and `TypeParser`.
…n `fromStringValue`
…tions, input validation, and return type consistency.
… ensure `sku` is an instance of `Sku`.
…ution, generics, and structural shapes - Introduced new test cases to validate edge conditions for nested casting, union resolution, nullable containers, and virtual getters/setters using classes like `Batch`, `HandlingInstructions`, and `HomeDelivery`. - Added comprehensive test coverage for coercion, input validation, and alias handling in queries (`CatalogQueries`, `InventoryQueries`) and types (`CatalogShared`, `Sku`). - Implemented `CastingGenericsAndAliasesTest`, `CollectionsAndStructuresTest`, and `CoercionAndEdgeModesTest` to confirm behavior consistency across various scenarios. - Extended fixtures with new value objects (`CatalogShared`, `Money`) and container classes (`Batch`, `Paginated`, `HomeDelivery`) to support generics and intersection types. - Updated integration harness to support advanced input scenarios like discriminated unions, indexed paths, and coercion flags during testing.
…ion registries - Introduced `tests/benchmark/run.php` to compare registry initialization, schema resolution, and request execution. - Updated `composer.json` to include `benchmark` script with description. - Refactored `IntegrationHarness` to expose `discoverEagerRegistry` and added `CACHE_ID_LENGTH` constant for reuse. - Optimized `Operation` class to memoize input/output nodes for improved performance.
- Extended `tests/benchmark/run.php` to include `end2end` measurements, simulating a full PHP-FPM request lifecycle. - Configured warm-up and sample sizes for end-to-end benchmarks (`WARMUP_E2E`, `SAMPLES_E2E`). - Added checks to validate `orders.getOrder` execution results on both eager and cached registries. - Updated benchmark output to include `end2end` results for comprehensive performance comparison.
- Introduced `ConfigurableMiddleware` interface to enable middleware with per-operation configurations. - Updated `OperationDiscovery` to support configuration validation for `#[Middleware]` attributes. - Added `MiddlewareDefinition` class to encapsulate middleware details, including class and configuration data. - Enhanced `Server` to pass configured middleware instances to operations during runtime execution. - Implemented tests for configured middleware, ensuring correct behavior with valid, invalid, and container-shared instances. - Extended documentation to include guidelines for configuring middleware using the `#[Middleware]` attribute.
- Updated `executeOperation` to handle all response validation, errors, and hooks, ensuring consistent error handling across transports. - Simplified `OperationClient` interface to return raw status and parsed JSON, delegating envelope validation to `executeOperation`. - Removed client-bound hooks, introducing global hooks via new `registerHook` API for unified operation observation. - Enhanced client error reporting to return detailed envelopes instead of throwing, enabling easier downstream handling. - Updated tests and documentation to reflect changes in transport responsibilities and hook registration.
- Implemented `MetadataMiddleware` to enable metadata injection in RPC responses. - Updated `ShippingCommands` to utilize `MetadataMiddleware` with per-operation configuration. - Adjusted `RpcSuccess` to maintain metadata order in serialized output. - Enhanced integration tests to validate metadata appending for successful and error responses. - Fixed unit test in `RpcSuccessTest` to ensure metadata is correctly serialized.
|
Important Review skippedToo many files! This PR contains 569 files, which is 419 over the limit of 150. To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to Pro+ to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (13)
📒 Files selected for processing (569)
You can disable this status message by setting the Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.