mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
0139b91b5d
* chore: Replace lodash with es-toolkit Migrate all direct lodash imports to es-toolkit/compat for a smaller, faster, lodash-compatible utility library. Transitive lodash usage from other packages remains unchanged. * fix: Restore isPlainObject semantics in CanCan policy The lodash migration aliased `isObject` to `lodash/isPlainObject` and the codemod incorrectly mapped the local name to es-toolkit's `isObject`, which also returns true for arrays and functions. This caused condition objects in policy definitions to be skipped, breaking authorization checks across the codebase. * fix: Restore unicode-aware length counting in validators es-toolkit/compat's size() returns string.length, while lodash's _.size() counts unicode code points. Switch to [...value].length to preserve the previous behavior so multi-byte characters like emoji count as one.
rfc6902 (vendorized)
This is a vendorized copy of rfc6902, a complete implementation of RFC 6902 JSON Patch.
Why vendorized?
The upstream rfc6902 package has a performance issue with the diffArrays function. For large arrays, the recursive memoization approach uses excessive memory and CPU, making it impractical for real-world use cases.
This vendorized version includes a fix from PR #88 which replaces the recursive approach with an iterative dynamic programming implementation, significantly improving performance for large array comparisons.
Source
- Original package: https://github.com/chbrown/rfc6902
- Performance fix PR: https://github.com/chbrown/rfc6902/pull/88
- Fork with fix: https://github.com/supermeng/rfc6902/tree/performance