Releases: frost-js/core
Release list
v4.0.0
Major release standardizing camel casing in the public DOM helper names. Update imports and calls to use the new names.
Breaking changes
- Renamed
callDOMMethod(node, method, ...args)tocallDomMethod(node, method, ...args). - Renamed
getDOMProperty(node, property)togetDomProperty(node, property). - Removed the previous export names without compatibility aliases. The helpers retain their existing behavior.
Changed
- Updated internal imports, tests, and README documentation for the renamed helpers.
- Rebuilt the distribution bundles and source maps.
v3.1.4
Patch release protecting DOM property access from named elements that shadow native properties. Adds two shared helpers while preserving existing node classification and array handling.
Fixed
- Read
nodeTypethrough DOM prototypes so form controls named or identified asnodeTypeno longer break DOM predicates. - Protect window detection from named elements that shadow a document's
defaultView. - Keep forms and windows affected by these collisions from being treated as array-like values or expanded by
wrap().
Added
- Exported
getDOMProperty(node, property)andcallDOMMethod(node, method, ...args)with the correct getter and method receivers, without requiring browser globals, DOM constructors, or new runtime dependencies.
Changed
- Shared an internal node-type lookup across DOM predicates.
isNode()still recognizes Element, Text, and Comment nodes only. - Preserved ordinary property access for non-DOM values, including plain document stand-ins and null-prototype objects. DOM prototype lookups intentionally bypass own properties even when the result is
undefined. - Added focused regression coverage and documented the new helpers. Array identity and existing iterable handling are preserved.
- Rebuilt the distribution bundles and source maps.
v3.1.3
Patch release focused on utility bug fixes, simpler implementations, and clearer documentation and tests. No utility functions were added or removed.
Fixed
- Fixed decimal ranges omitting aligned endpoints, such as
range(1, 1.4, 0.1)missing1.4. - Recognized plain objects from other JavaScript contexts so deep merges preserve nested fields and copy those objects.
- Preserved trailing empty slots in nested sparse arrays during deep merges.
- Handled empty property names consistently in
getDot(),hasDot(),setDot(), andforgetDot(), including paths generated byflatten(). - Kept uppercase words and acronyms together during case conversion, so
camelCase('HELLO WORLD')returnshelloWorld. - Fixed
randomInt()rounding up to the excluded upper bound when adding a random offset to a large lower bound.
Changed
- Simplified range generation, deep merging, partial application, and type checks.
- Updated the README to reflect current utility behavior and added JSDoc for top-level internal helpers.
- Consolidated repetitive tests into data-driven cases and made random and timer checks deterministic.
- Rebuilt the distribution bundles and source maps.
v3.1.2
Patch release reflecting the project's move to the frost-js GitHub organization and standardizing its display name. No exported API changes.
Changed
- Updated the repository, issue tracker, CI, Codecov, bundle-size, and license links for the new
frost-js/corelocation. - Standardized the human-facing project name from
FrostCoretoFrost Corethroughout the README. - Updated
@fr0st/eslint-configfrom5.0.2to5.0.3. - Refreshed
package-lock.jsonfor the updated tooling dependency tree.
v3.1.1
Patch release focused on development tooling and clearer package usage documentation. No exported API changes.
Changed
- Updated
@fr0st/eslint-configfrom5.0.1to5.0.2. - Clarified that the package entry point is ESM-only and added a direct import example.
- Documented the prebuilt ESM entry point and available
./dist/*and./src/*package subpaths. - Refreshed
package-lock.jsonfor the updated tooling dependency tree.
v3.1.0
Minor release focused on modernizing the build and test toolchain and expanding distribution options. No utility functions were added or removed.
Added
- Added prebuilt ESM bundles, including minified variants and source maps, for direct browser and CDN use.
- Added public
./dist/*and./src/*package subpath exports. - Added Codecov reporting with LCOV uploads over GitHub OIDC and a repository-defined coverage policy.
Changed
- Replaced the Rollup and Terser build pipeline with Vite and Rolldown while retaining the existing UMD bundles.
- Updated the primary package entry point to use the prebuilt ESM bundle.
- Replaced Mocha with Vitest and converted timer-dependent tests to deterministic fake timers.
- Updated CI to collect and upload coverage and validate the generated package contents.
- Refreshed the README, generated bundles, development dependencies, and
package-lock.jsonfor the updated toolchain.
v3.0.6
Maintenance release focused on development tooling and npm script consistency. No exported API changes.
Changed
- Renamed npm scripts from
js-compile,js-lint, andjs-minifytobundle,lint, andminify. - Updated CI, publishing, and development documentation to use the normalized script names.
- Updated
@fr0st/eslint-configfrom4.0.0to5.0.0and aligned JSDoc with the expanded lint rules. - Simplified internal animation-frame callback forwarding without changing its public behavior.
- Refreshed generated bundles and
package-lock.jsonfor the updated tooling dependency tree.
v3.0.5
Patch release focused on utility correctness, edge-case handling, and release safeguards. No exported APIs were added or removed.
Fixed
- Updated
intersect()to handle empty input and preserve first-array order while removing duplicates. - Updated
merge()to support self-merges and very large arrays. - Improved
range()floating-point endpoint handling andwrap()support for iterable values. - Preserved call-site context across function wrappers, corrected stale delayed calls, and hardened
once()behavior for errors, re-entrancy, and promises. - Corrected
randomInt()behavior for fractional and large bounds, and improvedtoStep()handling of scientific notation. - Hardened object merge and dot-path utilities against inherited properties and prototype-shaped keys, including wildcard and overwrite handling.
- Updated
escapeRegExp()for Unicode-mode compatibility andrandomString()for complete Unicode code points and empty-character validation. - Expanded
isPlainObject()support for null-prototype and shadowed-constructor objects.
Changed
- Added
--forbid-onlyto the test command. - Added CI validation that generated bundles remain current.
- Updated source map output naming and added an npm release-age policy.
- Updated
@fr0st/eslint-configfrom3.0.0to4.0.0. - Updated
eslintfrom10.1.0to10.8.1. - Updated
mochafrom11.7.5to11.8.0. - Updated
rollupfrom4.60.0to4.62.4. - Updated
terserfrom5.46.1to5.50.0.
v3.0.4
Maintenance release focused on development tooling updates. No runtime API changes.
Changed
- Updated
@fr0st/eslint-configfrom2.0.6to3.0.0. - Updated
rollupfrom4.59.1to4.60.0. - Refreshed
package-lock.jsonto capture the updated tooling dependency tree.
v3.0.3
Maintenance release focused on CI coverage, publish validation, and tooling updates. No runtime API changes.
Changed
- Expanded CI to run on Node.js 20, 22, and 24.
- Added
npm pack --dry-runvalidation to the CI and publish workflows. - Added explicit workflow permissions for CI and publish jobs.
- Updated
@fr0st/eslint-configfrom2.0.4to2.0.6. - Updated
eslintfrom10.0.3to10.1.0. - Updated
rollupfrom4.59.0to4.59.1. - Tightened the declared Node.js engine range to
^20.19.0 || ^22.13.0 || >=24. - Removed the manual
workflow_dispatchtrigger from the publish workflow.