v1.2.0
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.jsonvia
schema_validator.py(fastjsonschema-compiled,jsonschemafallback
for full error lists) instead of the hand-writtenyupy_schema.py
(kept temporarily, unused by the public API, as a reference/safety net) proto/profedit.protonow lives once at the repo root instead of a
local copy underproto/
js/
Changed
- Validation now runs against the shared
schema/a7p.schema.jsonvia a
compiled, standaloneajvvalidator (src/generated/a7p_schema_validator.cjs,
regenerated byscripts/build_schema_validator.mjs) instead ofyup—
yupand@types/yupare gone;ajvis a devDependency only (used by
the codegen script, not shipped) proto/profedit.protonow lives once at the repo root instead of a
local copy undersrc/proto/- License changed from ISC to LGPL-3.0, matching
dart— both generate
bindings from the same LGPL-3.0-sourcedproto/profedit.proto
Added
- First test suite (
test/validate.test.ts, 10 tests) covering the same
categories asdart's validator tests
Fixed
zoomwas unbounded (accepted 0–255); now bounded to 0–6, matching the schemabc_cd/mvforCUSTOMdrag models were capped ×10 too lowb_lengthminimum was 1 instead of 10ValidationErrorwas imported fromyup, not this package's own
errors.ts—error instanceof ValidationErrorchecks inindex.ts
never matched a validation failure as a result; fixed as part of the
yupremoval
dart/
Changed
- Validation now runs against the shared
schema/a7p.schema.jsonvia the
json_schemapackage instead of hand-writtenA7pValidator/
A7pFieldConstraintsrange checks — the schema is embedded as a
generated Dart string constant (lib/src/generated/a7p_schema.g.dart,
regenerated bypython scripts/compile.py --dart), since no
standalone-codegen JSON Schema validator exists for Dart c_zero_distance_idxno longer bounds dynamically bydistances.length - 1; now the static 0–255 range, matchingpy/jsproto/profedit.protonow lives once at the repo root instead of a
local copy underproto/
Added
- Test suite (
test/a7p_validator_test.dart, 9 tests) covering real
protobufPayloadobjects, including thec_idx201–254 gap andmv
uniqueness - "Dimensions" table in
README.md(previously missing, unlikepy/js)
Full Changelog: v1.2.0-alpha.2...v1.2.0