Frontend Enhancements: - Complete React TypeScript frontend with modern UI components - Distributed workflows management interface with real-time updates - Socket.IO integration for live agent status monitoring - Agent management dashboard with cluster visualization - Project management interface with metrics and task tracking - Responsive design with proper error handling and loading states Backend Infrastructure: - Distributed coordinator for multi-agent workflow orchestration - Cluster management API with comprehensive agent operations - Enhanced database models for agents and projects - Project service for filesystem-based project discovery - Performance monitoring and metrics collection - Comprehensive API documentation and error handling Documentation: - Complete distributed development guide (README_DISTRIBUTED.md) - Comprehensive development report with architecture insights - System configuration templates and deployment guides The platform now provides a complete web interface for managing the distributed AI cluster with real-time monitoring, workflow orchestration, and agent coordination capabilities. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
13 KiB
fast-equals CHANGELOG
5.2.2
- #139 - Add file extensions to type definition files to allow it to work in projects with
NodeNextmodule resolution
5.2.1
Bugfixes
- #138 - Actually fix reference to
srccode inindex.d.tsby flattening types in file
5.2.0
Enhancements
- Support Preact objects in equality comparison
Bugfixes
- #137 - Fix circular React references in object comparisons
5.1.3
Enhancements
- #136 - More than double speed of iterables (
Map/Set) equality comparisons
Maintenance
- #135 - Include
dequalanddequal/litein benchmark comparisons
5.1.2
Maintenance
Re-release of 5.1.0 with correct pre-release setup.
5.1.1
DO NOT USE
This was an accidental pre-release when cleaning up release setup.
5.1.0
Enhancements
- #127 - Add support for custom
Functioninstance comparisons (resolves #118) - #128 - Add support for
URLinstance comparisons (resolves #121) - #129 - Add support for
Errorinstance comparisons (resolves #123) - #130 - Add support for custom
Numberinstance comparisons (resolves #112)
Bugfixes
- #132 - Fix
assert.deepEqualcheck in benchmark (resolves #125) - #126 - Export explicit types via
export type(attempts to resolve #114)
5.0.1
Bugfixes
- Fix reference to
metaOverridein typings and documentation (holdover from temporary API in v5 beta)
5.0.0
Breaking changes
constructor equality now required
To align with other implementations common in the community, but also to be more functionally correct, the two objects being compared now must have equal constructors.
Map / Set comparisons no longer support IE11
In previous verisons, .forEach() was used to ensure that support for Symbol was not required, as IE11 did not have Symbol and therefore both Map and Set did not have iterator-based methods such as .values() or .entries(). Since IE11 is no longer a supported browser, and support for those methods is present in all browsers and Node for quite a while, the comparison has moved to use these methods. This results in a ~20% performance increase.
createCustomEqual contract has changed
To better facilitate strict comparisons, but also to allow for meta use separate from caching, the contract for createCustomEqual has changed. See the README documentation for more details, but froma high-level:
metais no longer passed through to equality comparators, but rather a generalstateobject which containsmetacachenow also lives on thestateobject, which allows for use of themetaproperty separate from but in parallel with the circular cacheequalsis now onstate, which prevents the need to pass through the separateisEqualmethod for the equality comparator
createCustomCircularEqual has been removed
You can create a custom circular equality comparator through createCustomEqual now by providing circular: true to the options.
Custom meta values are no longer passed at callsite
To use meta properties for comparisons, they must be returned in a createState method.
Deep links have changed
If you were deep-linking into a specific asset type (ESM / CJS / UMD), they have changed location.
NOTE: You may no longer need to deep-link, as the build resolution has improved.
Enhancements
New "strict" comparators available
The following new comparators are available:
strictDeepEqualstrictShallowEqualstrictCircularDeepEqualstrictCircularShallowEqual
This will perform the same comparisons as their non-strict counterparts, but will verify additional properties (non-enumerable properties on objects, keyed objects on Array / Map / Set) and that the descriptors for the properties align.
TypedArray support
Support for comparing all typed array values is now supported, and you can provide a custom comparator via the new areTypedArraysEqual option in the createCustomEqual configuration.
Better build system resolution
The library now leverages the exports property in the package.json to provide builds specific to your method of consumption (ESM / CommonJS / UMD). There is still a minified UMD version available if you want to use it instead.
arePrimitiveWrappersEqual option added to createCustomEqual configuration
If you want a custom comparator for primitive wrappers (new Boolean() / new Number() / new String()) it is now available.
4.0.3
- Remove unnecessary second strict equality check for objects in edge-case scenarios
4.0.2
- #85 -
createCustomCircularEqualtyping is incorrect
4.0.1
- #81 - Fix typing issues related to importing in
index.d.tsfile
4.0.0
Breaking Changes
Certain ES2015 features are now required
In previous versions, there were automatic fallbacks for certain ES2015 features if they did not exist:
Due to the omnipresence of support in both browser and NodeJS, these have been deprecated. There is still an option if you require support for these legacy environments, however; see createCustomEqual and createCustomCircularEqual for more details.
createCustomEqual contract has changed
To allow more flexibility and customizability for a variety of edge cases, createCustomEqual now allows override of specific type value comparisons in addition to the general comparator it did prior. See the documentation for more details.
Enhancements
createCustomCircularEqual added
Like createCustomEqual, it will create a custom equality comparator, with the exception that it will handle circular references. See the documentation for more details.
Cross-realm comparisons are now supported
Prior to 4.x.x., instanceof was used internally for checking of object classes, which only worked when comparing objects from the same Realm. This has changed to instead use an object's StringTag, which is not realm-specific.
TypeScript typings improved
For better typing in edge-case scenarios like custom comparators with meta values, typings have been refactored for accuracy and better narrow flow-through.
3.0.3
- Fix #77 - better circular object validation
3.0.2
- Fix #73 - support comparison of primitive wrappers
- #76 - improve speed and accuracy of
RegExpcomparison in modern environments
3.0.1
- Fix #71 - use generic types for better type flow-through
3.0.0
Breaking changes
When creating a custom equality comparator via createCustomEqual, the equality method has an expanded contract:
// Before
type EqualityComparator = (objectA: any, objectB: any, meta: any) => boolean;
// After
type InternalEqualityComparator = (
objectA: any,
objectB: any,
indexOrKeyA: any,
indexOrKeyB: any,
parentA: any,
parentB: any,
meta: any,
) => boolean;
If you have a custom equality comparator, you can ignore the differences by just passing additional undefined parameters, or you can use the parameters to further improve / clarify the logic.
- Add #57 - support additional metadata for custom equality comparators
2.0.4
- Fix #58 - duplicate entries in
Map/Setcan create false equality success - #60 - Add documentation for key equality of
Mapbeing a part ofdeepEqual
2.0.3
- Fix #50 - copy-pasta in cacheable check
2.0.2
- Optimize iterables comparisons to not double-iterate
- Optimize loop-based comparisons for speed
- Improve cache handling in circular handlers
- Improve stability of memory by reducing variable instantiation
2.0.1
- Fix #41 - prevent
.rpt2_cachedirectory from being published for better CI environment support (thanks @herberttn)
2.0.0
Breaking changes
- There are longer
fast-equals/es,fast-equals/lib,fast-equals/mjslocations- Instead, there are 3 builds in
distfor different consumption types:fast-equals.js(UMD /browser)fast-equals.esm.js(ESM /module)fast-equals.cjs.js(CommonJS /main)
- Instead, there are 3 builds in
- There is no default export anymore, only the previously-existing named exports
- To get all into a namespace, use
import * as fe from 'fast-equals
- To get all into a namespace, use
Updates
- Rewritten completely in TypeScript
- Improve speed of
Map/Setcomparisons - Improve speed of React element comparisons
Fixes
- Consider pure objects (
Object.create(null)) to be plain objects - Fix typings for
createCustomEqual
1.6.3
- Check the size of the iterable before converting to arrays
1.6.2
- Fix #23 - false positives for map
- Replace
uglifywithterser - Use
rollupto build all the distributables (main,module, andbrowser)- Maintain
libandestranspilations in case consumers were deep-linking
- Maintain
1.6.1
- Upgrade to
babel@7 - Add
"sideEffects": falsetopackage.jsonfor better tree-shaking inwebpack
1.6.0
- Add ESM support for NodeJS with separate
.mjsextension exports
1.5.3
- Fix
Map/Setcomparison to not require order to match to be equal
1.5.2
- Improve speed of object comparison through custom
hasKeymethod
1.5.1
- Fix lack of support for
unicodeandstickyRegExp flag checks
1.5.0
- Add
circularDeepEqualandcircularShallowEqualmethods - Add
metathird parameter tocomparatorcalls, for use withcreateCustomEqualmethod
1.4.1
- Fix issue where
lastIndexwas not being tested onRegExpobjects
1.4.0
- Add support for comparing promise-like objects (strict equality only)
1.3.1
- Make
reactcomparison more accurate, and a touch faster
1.3.0
- Add support for deep-equal comparisons between
reactelements - Add comparison with
react-fast-compare - Use
rollupfordistfile builds
1.2.1
- Fix errors from TypeScript typings in strict mode (thanks @HitoriSensei)
1.2.0
- Surface
isSameValueZeroassameValueZeroEqualoption
1.1.0
- Add TypeScript typings (thanks @josh-sachs)
1.0.6
- Support invalid date equality via
isSameValueZero
1.0.5
- Replace
isStrictlyEqualwithisSameValueZeroto ensure thatshallowEqualaccounts forNaNequality
1.0.4
- Only check values when comparing
Setobjects (improves performance ofSetcheck by ~12%)
1.0.3
- Make
MapandSetcomparisons more explicit
1.0.2
- Fix symmetrical comparison of iterables
- Reduce footprint
1.0.1
- Prevent babel transpilation of
typeofinto helper for faster runtime
1.0.0
- Initial release