Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 08:33
· 41 commits to main since this release
ebc6b75

py, js, and dart merged from separate repos/submodules into this
monorepo, with full git history preserved — see
docs/DESIGN-schema-unification.md for the design behind this release.

py/

Changed

  • Validation now runs against the shared schema/a7p.schema.json via
    schema_validator.py (fastjsonschema-compiled, jsonschema fallback
    for full error lists) instead of the hand-written yupy_schema.py
    (kept temporarily, unused by the public API, as a reference/safety net)
  • proto/profedit.proto now lives once at the repo root instead of a
    local copy under proto/

js/

Changed

  • Validation now runs against the shared schema/a7p.schema.json via a
    compiled, standalone ajv validator (src/generated/a7p_schema_validator.cjs,
    regenerated by scripts/build_schema_validator.mjs) instead of yup
    yup and @types/yup are gone; ajv is a devDependency only (used by
    the codegen script, not shipped)
  • proto/profedit.proto now lives once at the repo root instead of a
    local copy under src/proto/
  • License changed from ISC to LGPL-3.0, matching dart — both generate
    bindings from the same LGPL-3.0-sourced proto/profedit.proto

Added

  • First test suite (test/validate.test.ts, 10 tests) covering the same
    categories as dart's validator tests

Fixed

  • zoom was unbounded (accepted 0–255); now bounded to 0–6, matching the schema
  • bc_cd/mv for CUSTOM drag models were capped ×10 too low
  • b_length minimum was 1 instead of 10
  • ValidationError was imported from yup, not this package's own
    errors.tserror instanceof ValidationError checks in index.ts
    never matched a validation failure as a result; fixed as part of the
    yup removal

dart/

Changed

  • Validation now runs against the shared schema/a7p.schema.json via the
    json_schema package instead of hand-written A7pValidator/
    A7pFieldConstraints range checks — the schema is embedded as a
    generated Dart string constant (lib/src/generated/a7p_schema.g.dart,
    regenerated by python scripts/compile.py --dart), since no
    standalone-codegen JSON Schema validator exists for Dart
  • c_zero_distance_idx no longer bounds dynamically by distances.length - 1; now the static 0–255 range, matching py/js
  • proto/profedit.proto now lives once at the repo root instead of a
    local copy under proto/

Added

  • Test suite (test/a7p_validator_test.dart, 9 tests) covering real
    protobuf Payload objects, including the c_idx 201–254 gap and mv
    uniqueness
  • "Dimensions" table in README.md (previously missing, unlike py/js)
    Full Changelog: v1.2.0-alpha.2...v1.2.0