Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 14:46
· 46 commits to master since this release
0525c2e
  • Breaking. RequestMaterializer, RequestCaseArbitrary and
    ResponseCaseArbitrary no longer accept their @internal collaborators as
    constructor parameters (#53). Every one had a default and nothing in the
    package, its tests, its examples or its documentation ever passed one, so no
    documented usage changes — but the signature published a type the package
    does not support overriding. RequestMaterializer keeps $baseUri, now its
    third parameter; withBaseUri() is the documented way to set it either way.
  • SecuritySelector is @api. It was marked @internal while the README
    showed a snippet constructing it to materialize a request outside a suite;
    the snippet is the contract, and the class only ever exposed public types.
  • The seven parameter misuse categories of NegativeRequestCaseArbitrary no
    longer restate the path/query/header/cookie handling and the full case shape
    once each: one parameter() helper writes the target's value through a
    single location map, and one imported psalm type describes the case. A
    location can now be mishandled in exactly one place.
  • Helpers that were carried verbatim in several classes are shared:
    MediaType (normalization and the JSON test, nine call sites),
    SchemaShape (array/object schema, three copies), WireValue (the scalar
    wire spelling, four copies with four different failure wordings), and
    ConstructibleCategories (drop the misuse categories a document does not
    admit, then choose uniformly — two copies).
  • ResponseCaseArbitrary discovers the JSON media type of a response once
    instead of once per caller; each caller still words its own "no JSON media
    type" failure.
  • Removed a re-check of is_string() in ContainerArbitraries that the loop
    above already enforced, and the single-use withValue() wrapper in
    RequestMaterializer.
  • README (EN/RU) carries the sections the package conventions require:
    Requirements, Examples, Development and License, plus the llms.txt pointer
    and a Psalm-level badge.
  • examples/README.md lists the scripts as a table and says how to run them.