- Replaced action versions with hashes for security.
-
BidsWebAccessor— a new browser-compatible BIDS file accessor that reads dataset files from browserFileobjects provided via an<input webkitdirectory>element or drag-and-drop upload. Schema loading is performed via remote HTTPS fetching. This enables in-browser BIDS/HED validation without a server. (#718) -
Tests for
BidsWebAccessorcovering core accessor behavior. (#718) -
The main package is now fully browser-friendly via its ESM build (
dist/esm/index.js). Theexportsmap exposes bothbrowserandimportconditions pointing to the ESM bundle. (#719)
-
The browser UI application (
browser/) has been removed from this package and moved to a dedicated repository: hed-standard/hed-web. (#721) -
CI GitHub Actions: the
deploy-pagesworkflow now deploys documentation only; browser app build steps have been removed. (#720) -
Bundling refactored for better ESM/browser compatibility (stage 1). (#719)
-
ts-jestremoved from dev dependencies; TypeScript upgraded to 6.0.2, then 6.0.3. (#697) -
tsconfig.jsonhandling revised to address TypeScript 6.x deprecations. (#692) -
README updated to reflect separation of browser interface into
hed-web. (#721)
-
Picomatch security vulnerability addressed. (#692)
-
CI workflow permissions tightened to reduce attack surface. (#692)
fast-xml-parserupdated through 5.5.8 → 5.8.0 (#728, #732)fast-xml-builderupdated 1.1.5 → 1.2.0 (#722)eslintupdated through 10.1.0 → 10.4.0 (#730)@babel/preset-envupdated 7.29.0 → 7.29.5 (#724)@babel/plugin-transform-modules-systemjsupdated 7.29.0 → 7.29.4 (#723)jest/jest-environment-node/@jest/globalsupdated 30.3.0 → 30.4.2 (#725, #727, #734)semverupdated 7.7.4 → 7.8.0 (#726)tsxupdated 4.21.0 → 4.22.2 (#731)globalsupdated 17.4.0 → 17.6.0prettierupdated 3.8.1 → 3.8.3typedocupdated 0.28.18 → 0.28.19@types/nodeupdated 25.5.0 → 25.9.0 (#733)typescriptupdated 6.0.2 → 6.0.3actions/deploy-pagesupdated 4 → 5actions/upload-pages-artifactupdated 4 → 5
-
Replaced the
xml2jsXML parser withfast-xml-parser.xml2jswas causing multiple downstream build issues as well as problems in this package itself. -
Simplified and refactored schema XML parsing code: merged the mini-XPath parser into the main parser class and refactored several methods.
-
CI GitHub Actions updated to use OpenID Connect for npm publishing instead of long-lived access tokens.
-
Package
repositoryURL shortened to canonical short form inpackage.json. -
Type test infrastructure: added a Unix shell script for running type tests locally; switched to standard Bourne shell.
-
Merged the ESM build configurations, which had been split in 4.1.0, using the browser configuration as the base. This resolves remaining build issues introduced by the split. (#527)
-
Updated test configuration for compatibility with Node 22.
-
Replaced the
cross-fetchpolyfill with Node's built-infetch. As a result the minimum Node.js version has been bumped from 18 to 22. (#526) -
JSON spec tests are now excluded from the default
npm testrun; they only execute vianpm run testSpecs. (#526)
This patch release fixes type declaration issues discovered in 4.1.0.
-
TypeScript type declarations corrected to match the intended public interface and the BIDS validator integration code. (#524)
-
Potential null-pointer dereferences in
BidsFilesubclasses fixed. (#524) -
Windows CR-LF line endings converted to Unix LF throughout the repository. (#525)
-
Initial browser-based HED validation application (
browser/): dataset upload, sidecar merging, and JSON validation; interface elements including validation buttons, clear/reset, and issue-report download; full support for both web and filesystem workflows. (#400, #403, #416, #417) -
TypeScript type declarations (
types/index.d.ts) for the public API. (#496) -
Scripts for local type testing:
scripts/test-types-local-windows.ps1,scripts/test-types-local-unix.sh, andscripts/test-types-local.js. (#496) -
Bundled HED schemas expanded: now includes HED 8.4.0 and other current schema versions, with proper access across environments. (#381, #443, #496)
-
Static factory methods on BIDS file classes for constructing objects directly from file paths. (#384, #397)
-
Jekyll-based GitHub Pages site hosting the TypeDoc API documentation and the browser validator. (#426, #428)
-
TypeDoc API documentation reorganized and enhanced. (#426, #428, #436)
-
Test framework split into separate paths for Node and browser environments. (#344, #445, #446)
-
Code coverage configuration moved from Code Climate to Qlty. (#520)
-
GitHub Actions CI workflows updated: added browser test automation and stabilized the deployment flow. (#344, #445, #446)
-
Internal file-loading, schema-parsing, and environment-separation code reorganized. (#468, #510)
-
Tokenizer and sidecar context-based error reporting improved. (#468)
-
Legacy dependencies removed; Jest and Vite configurations improved.
eslintupdated 9.22.0 → 9.31.0typedocupdated 0.28.0 → 0.28.7typescriptupdated 5.8.2 → 5.8.3jestupdated 29.7.0 → 30.0.5prettierupdated 3.5.3 → 3.6.2esbuildupdated 0.25.1 → 0.25.8- Related plugins (
eslint-plugin-prettier,eslint-config-prettier, etc.) updated accordingly
-
Fixed a bug in which top-level tags used inside column splices were not correctly validated as part of a group when appearing in sidecars. (#321, #322, #324)
-
Added a stronger validity check for spliced group issues. (#326)
-
Added tests for
n/ahandling in the onset column. (#319)
-
Private fields and methods reverted from JavaScript
#-prefix syntax back to underscore-prefix convention, due to a lack of tool support for the number-sign syntax. -
GitHub Actions test configuration restructured. (#323)
-
Code Climate issues addressed. (#320)
esbuildupdated 0.25.0 → 0.25.1 (#316)eslint/@eslint/jsupdated 9.21.0 → 9.22.0 (#313, #314)eslint-config-prettierupdated 10.0.2 → 10.1.1 (#317)pretty-quickupdated 4.0.0 → 4.1.1 (#315)typedocupdated 0.27.9 → 0.28.0 (#325)
This is the fourth major version of hed-validator — a substantial rewrite of
the code and public interface. It delivers full compliance with the current
HED-3G specification and correct implementation of definition and temporal tag
validation, which were not properly implemented in earlier versions.
Note: This release was inadvertently published to npm as version 5.0.0 due to a typo. That npm release has been pulled. Use v4.0.0.
-
Complete new validation pipeline: tokenizer, splitter, parser, and tag converter rewritten from scratch with HED-3G compliance. (#208, #212, #213, #219, #227)
-
Object-based JSON test datasets replacing the previous inline JavaScript test cases; test data separated from test scripts. (#208, #209, #210, #220)
-
JSON-based spec tests shared with the Python HED validator, run as a separate GitHub Actions workflow. (#236, #275)
-
Full support for definition and temporal tag validation:
Definition,Onset,Offset,Duration, andDelaytags handled correctly, including duplicate-onset detection. (#225, #226, #228, #237, #238, #239, #243) -
Warning support added alongside errors:
deprecatedandextensionwarnings, missing sidecar key warnings. (#293, #294, #295) -
esbuildbuild producingdist/commonjs/anddist/esm/outputs. (#267) -
Dependabot configuration for automated dependency updates. (#254)
-
JSON spec test support extended to handle multi-schema versions. (#276)
-
Public API redesigned. The previous APIs giving direct access to parsing, schema-loading, and validation internals have been removed. The dataset-level validation API (
BidsDataset) has also been removed due to performance issues with large datasets. (#279)The public API is:
BidsSidecar— JSON sidecar filesBidsJsonFile— non-sidecar JSON files (e.g.dataset_description.json)BidsTsvFile— TSV event filesBidsHedIssue— issue objects type-compatible with the BIDSIssuetypebuildBidsSchemas(datasetDescription)— async function returning aSchemasobject (opaque to callers) from aBidsJsonFileofdataset_description.json- Validation is performed by calling
.validate(schemas)on anyBidsFilesubclass
-
Source code reorganized under
src/, with issues moved tosrc/issues/. (#248, #251) -
Validation now stops at the first error found rather than attempting to collect all errors, reducing spurious cascading error messages.
-
Issue handling revamped:
IssueErrorused throughout; special issue parameters moved to a staticMap. (#287, #288, #311) -
Error codes updated and aligned with the HED spec. (#288)
-
BidsFileconstructor parameter order changed: file object before data arguments. (#285) -
BidsFileconstructor signatures finalized for BIDS validator compatibility. (#301, #310) -
Private fields on
SchemaTagconverted to use setters. (#241) -
Documentation (JSDoc) corrected and improved; sphinx-js removed due to security issues; TypeDoc adopted. (#245, #246, #247, #249, #250)
-
Unused code removed:
RegexClass, skipped tests, legacy dependencies. (#244, #252) -
husky configuration updated. (#309)
-
Date-time value class parsing corrected to avoid confusion with namespace syntax. (#272)
-
HED version 2 support removed entirely. (#216)
-
Syntax-only validation mode removed.
-
BidsDatasetand whole-dataset validation API removed. (#279)
typedocupdated 0.25.13 → 0.27.9 (#255)typescriptupdated 5.4.5 → 5.8.2 (#260, #305)eslintupdated 8.22.0 → 9.22.0 (#261, then incrementally)prettierupdated 3.2.5 → 3.5.3 (#266, #282, #291, #298, #307)esbuildupdated 0.20.2 → 0.25.0 (#267, #284)semverupdated 7.6.0 → 7.7.1 (#257, #277, #289)globalsupdated 15.14.0 → 16.0.0 (#290, #308)huskyupdated 9.0.11 → 9.1.7 (#256)cross-fetchupdated 4.0.0 → 4.1.0 (#259)unicode-nameupdated 1.0.2 → 1.0.4 (#262)date-fnsupdated 3.6.0 → 4.1.0 (#264)date-and-timeupdated 3.1.1 → 3.6.0 (#265)eslint-config-prettierupdated 9.1.0 → 10.0.2 (#258)eslint-plugin-prettierupdated 5.1.3 → 5.2.3 (#263)