sapphiredev/shapeshift (@sapphire/shapeshift)
### [`v4.0.0`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#400---2024-05-20)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.7...v4.0.0)
#### ๐ Features
- \***:** Add custom message options to all shapes, validators and constraints ([#231](https://togithub.com/sapphiredev/shapeshift/issues/231)) ([44a5cea](https://togithub.com/sapphiredev/shapeshift/commit/44a5cea211ebe409316d3d9e83afb01051a14498))
- ๐ฅ **BREAKING CHANGE:** Most shapes and validators that were previously getters are now functions to allow for custom options. The following list should show all of the changes, but if we have forgot any and you get an error saying something should be a function where you have provided a constant it is safe to assume you simply need to add `()` to your code for it to work again.
- ๐ฅ **BREAKING CHANGE:** `PickDefined` utility type has been removed.
- ๐ฅ **BREAKING CHANGE:** `PickUndefinedMakeOptional` utility type has been removed.
- ๐ฅ **BREAKING CHANGE:** `NonNullObject` utility type has been removed.
- ๐ฅ **BREAKING CHANGE:** `s.any` is now `s.any()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthEqual` is now `s.array(T).lengthEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthGreaterThan` is now `s.array(T).lengthGreaterThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthGreaterThanOrEqual` is now `s.array(T).lengthGreaterThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthLessThan` is now `s.array(T).lengthLessThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthLessThanOrEqual` is now `s.array(T).lengthLessThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthNotEqual` is now `s.array(T).lengthNotEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthRange` is now `s.array(T).lengthRange()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthRangeExclusive` is now `s.array(T).lengthRangeExclusive()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthRangeInclusive` is now `s.array(T).lengthRangeInclusive()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array(T).unique` is now `s.array(T).unique()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.array` is now `s.array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint.divisibleBy` is now `s.bigint().divisibleBy()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint.equal` is now `s.bigint().equal()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint.greaterThan` is now `s.bigint().greaterThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint.greaterThanOrEqual` is now `s.bigint().greaterThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint.lessThan` is now `s.bigint().lessThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint.lessThanOrEqual` is now `s.bigint().lessThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint.notEqual` is now `s.bigint().notEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint().abs` is now `s.bigint().abs()` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint().negative` is now `s.bigint().negative()` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint().positive` is now `s.bigint().positive()` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigint` is now `s.bigint()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigInt64Array` is now `s.bigInt64Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.bigUint64Array` is now `s.bigUint64Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.boolean.false` is now `s.boolean().false()` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.boolean.true` is now `s.boolean().true()` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.boolean` is now `s.boolean()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.default(...)` now gets a second parameter to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.default(...).default(...)` now gets a second parameter to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.equal` is now `s.date().equal()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.greaterThan` is now `s.date().greaterThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.greaterThanOrEqual` is now `s.date().greaterThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.invalid` is now `s.date().invalid()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.lessThan` is now `s.date().lessThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.lessThanOrEqual` is now `s.date().lessThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.notEqual` is now `s.date().notEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date.valid` is now `s.date().valid()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.date` is now `s.date()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.enum(1, 2, 3)` is now `s.enum([1, 2, 3])` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.float32Array` is now `s.float32Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.float64Array` is now `s.float64Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.int16Array` is now `s.int16Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.int32Array` is now `s.int32Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.int8Array` is now `s.int8Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.never` is now `s.never()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.null` is now `s.null()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.nullable` is now `s.nullable()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.nullish` is now `s.nullish()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.nullish` is now `s.nullish()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.abs` is now `s.number().abs()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.ceil` is now `s.number().ceil()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.divisibleBy` is now `s.number().divisibleBy()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.equal` is now `s.number().equal()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.finite` is now `s.number().finite()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.floor` is now `s.number().floor()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.fround` is now `s.number().fround()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.greaterThan` is now `s.number().greaterThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.greaterThanOrEqual` is now `s.number().greaterThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.int` is now `s.number().int()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.lessThan` is now `s.number().lessThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.lessThanOrEqual` is now `s.number().lessThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.negative` is now `s.number().negative()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.notEqual` is now `s.number().notEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.positive` is now `s.number().positive()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.round` is now `s.number().round()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.safeInt` is now `s.number().safeInt()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.sign` is now `s.number().sign()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number.trunc` is now `s.number().trunc()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.number` is now `s.number()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.object.ignore` is now `s.object().ignore()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.object.partial` is now `s.object().partial()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.object.passthrough` is now `s.object().passthrough()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.object.required` is now `s.object().required()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.object.strict` is now `s.object().strict()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.optional` is now `s.optional()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.required(...)` now gets a second parameter to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.set` is now `s.set()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string.date` is now `s.string().date()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string.email` is now `s.string().email()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string.ipv4` is now `s.string().ipv4()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string.ipv6` is now `s.string().ipv6()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().ip` is now `s.string().ip()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().lengthEqual` is now `s.string().lengthEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().lengthGreaterThan` is now `s.string().lengthGreaterThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().lengthGreaterThanOrEqual` is now `s.string().lengthGreaterThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().lengthLessThan` is now `s.string().lengthLessThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().lengthLessThanOrEqual` is now `s.string().lengthLessThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().lengthNotEqual` is now `s.string().lengthNotEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().phone` is now `s.string().phone()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().regex` is now `s.string().regex()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string().url` is now `s.string().url()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.string` is now `s.string()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.tuple(1, 2, 3)` is now `s.tuple([1, 2, 3])` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthEqual` is now `s.typedArray(T).byteLengthEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthGreaterThan` is now `s.typedArray(T).byteLengthGreaterThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthGreaterThanOrEqual` is now `s.typedArray(T).byteLengthGreaterThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthLessThan` is now `s.typedArray(T).byteLengthLessThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthLessThanOrEqual` is now `s.typedArray(T).byteLengthLessThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthNotEqual` is now `s.typedArray(T).byteLengthNotEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthRange` is now `s.typedArray(T).byteLengthRange()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthRangeExclusive` is now `s.typedArray(T).byteLengthRangeExclusive()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthRangeInclusive` is now `s.typedArray(T).byteLengthRangeInclusive()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthEqual` is now `s.typedArray(T).lengthEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthGreaterThan` is now `s.typedArray(T).lengthGreaterThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthGreaterThanOrEqual` is now `s.typedArray(T).lengthGreaterThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthLessThan` is now `s.typedArray(T).lengthLessThan()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthLessThanOrEqual` is now `s.typedArray(T).lengthLessThanOrEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthNotEqual` is now `s.typedArray(T).lengthNotEqual()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthRange` is now `s.typedArray(T).lengthRange()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthRangeExclusive` is now `s.typedArray(T).lengthRangeExclusive()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthRangeInclusive` is now `s.typedArray(T).lengthRangeInclusive()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.uint16Array` is now `s.uint16Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.uint32Array` is now `s.uint32Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.uint8Array` is now `s.uint8Array()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.uint8ClampedArray` is now `s.uint8ClampedArray()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.undefined` is now `s.undefined()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.union(1, 2, 3).required` is now `s.union(1, 2, 3).required()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `s.union(1, 2, 3)` is now `s.union([1, 2, 3])` to allow for custom options as second argument.
- ๐ฅ **BREAKING CHANGE:** `s.unknown` is now `s.unknown()` to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `uniqueArray` is now a function (instead of a constant) to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `dateInvalid` is now a function (instead of a constant) to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `dateValid` is now a function (instead of a constant) to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `numberFinite` is now a function (instead of a constant) to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `numberInt` is now a function (instead of a constant) to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `numberNaN` is now a function (instead of a constant) to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `numberNotNaN` is now a function (instead of a constant) to allow for custom options as argument.
- ๐ฅ **BREAKING CHANGE:** `numberSafeInt` is now a function (instead of a constant) to allow for custom options as argument.
### [`v3.9.7`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#397---2024-03-31)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.6...v3.9.7)
#### ๐ Bug Fixes
- Allow engines.node >= 16 ([a4d8c8d](https://togithub.com/sapphiredev/shapeshift/commit/a4d8c8d70e414192b61d565f89e51b19a117c8c1))
### [`v3.9.6`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#396---2024-01-19)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.5...v3.9.6)
#### ๐ Bug Fixes
- Fixed commonjs typings export mapping ([#341](https://togithub.com/sapphiredev/shapeshift/issues/341)) ([a5518aa](https://togithub.com/sapphiredev/shapeshift/commit/a5518aa88350925ad03f612e49f695a296a0d3b3))
### [`v3.9.5`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#395---2023-12-15)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.4...v3.9.5)
#### ๐ Bug Fixes
- Properly publish all dist files ([8e925fa](https://togithub.com/sapphiredev/shapeshift/commit/8e925faff5a67ccca84c41473bf77c9e0a01ebc0))
### [`v3.9.4`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#394---2023-12-04)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.3...v3.9.4)
#### ๐ Bug Fixes
- Properly split CJS and ESM ([9bb1ff9](https://togithub.com/sapphiredev/shapeshift/commit/9bb1ff95f2852e765a27c7a839ff5145ee6e3a01))
#### ๐งช Testing
- Update path to global file ([d03b19f](https://togithub.com/sapphiredev/shapeshift/commit/d03b19f20507690869fe6b8f59a2400d95bd02be))
### [`v3.9.3`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#393---2023-10-13)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.2...v3.9.3)
#### ๐ Refactor
- Change email regex ([#306](https://togithub.com/sapphiredev/shapeshift/issues/306)) ([c5d49cf](https://togithub.com/sapphiredev/shapeshift/commit/c5d49cf32931aff24ab74ba87ee8d6d35f7231af))
### [`v3.9.2`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#392---2023-06-04)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.1...v3.9.2)
#### ๐ Bug Fixes
- **arrayvalidator:** Fixed runaway type instantiation with TypeScript >=5.1 ([#275](https://togithub.com/sapphiredev/shapeshift/issues/275)) ([f59d901](https://togithub.com/sapphiredev/shapeshift/commit/f59d90112181e6625230c28e6a4f0f065ced6344))
### [`v3.9.1`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#391---2023-06-02)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.0...v3.9.1)
#### ๐ Bug Fixes
- **types:** Move the `types` condition to the front ([#273](https://togithub.com/sapphiredev/shapeshift/issues/273)) ([5a3e202](https://togithub.com/sapphiredev/shapeshift/commit/5a3e202e9ceafb3d330a568e93c060dd5aac1dde))
### [`v3.9.0`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#390---2023-05-09)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.8.2...v3.9.0)
#### ๐ Bug Fixes
- Resolve minor grammar mistake ([#260](https://togithub.com/sapphiredev/shapeshift/issues/260)) ([62df609](https://togithub.com/sapphiredev/shapeshift/commit/62df6094845ffa118aa93ea3c5f47f81f1c5d99f))
#### ๐ Features
- Add BaseValidator.describe ([#267](https://togithub.com/sapphiredev/shapeshift/issues/267)) ([d9e1a2d](https://togithub.com/sapphiredev/shapeshift/commit/d9e1a2d2f3c5e6378f0025becf8497138ee6d97c))
### [`v3.8.2`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#382---2023-04-02)
[Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.8.1...v3.8.2)
#### ๐ Bug Fixes
- \***:** TypeScript 5.x compatibility ([#253](https://togithub.com/sapphiredev/shapeshift/issues/253)) ([eba2a88](https://togithub.com/sapphiredev/shapeshift/commit/eba2a88b91fb6631f431313753299ec7a70cf6ce))
- Remove `node:` prefix ([#249](https://togithub.com/sapphiredev/shapeshift/issues/249)) ([af766b5](https://togithub.com/sapphiredev/shapeshift/commit/af766b504c1013f3cd24f7bf803ac9ff7442a8d7))
Configuration
๐ Schedule: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).
๐ฆ Automerge: Disabled by config. Please merge this manually once you are satisfied.
โป Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
๐ Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^3.6.0
->^4.0.0
Release Notes
sapphiredev/shapeshift (@sapphire/shapeshift)
### [`v4.0.0`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#400---2024-05-20) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.7...v4.0.0) #### ๐ Features - \***:** Add custom message options to all shapes, validators and constraints ([#231](https://togithub.com/sapphiredev/shapeshift/issues/231)) ([44a5cea](https://togithub.com/sapphiredev/shapeshift/commit/44a5cea211ebe409316d3d9e83afb01051a14498)) - ๐ฅ **BREAKING CHANGE:** Most shapes and validators that were previously getters are now functions to allow for custom options. The following list should show all of the changes, but if we have forgot any and you get an error saying something should be a function where you have provided a constant it is safe to assume you simply need to add `()` to your code for it to work again. - ๐ฅ **BREAKING CHANGE:** `PickDefined` utility type has been removed. - ๐ฅ **BREAKING CHANGE:** `PickUndefinedMakeOptional` utility type has been removed. - ๐ฅ **BREAKING CHANGE:** `NonNullObject` utility type has been removed. - ๐ฅ **BREAKING CHANGE:** `s.any` is now `s.any()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthEqual` is now `s.array(T).lengthEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthGreaterThan` is now `s.array(T).lengthGreaterThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthGreaterThanOrEqual` is now `s.array(T).lengthGreaterThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthLessThan` is now `s.array(T).lengthLessThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthLessThanOrEqual` is now `s.array(T).lengthLessThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthNotEqual` is now `s.array(T).lengthNotEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthRange` is now `s.array(T).lengthRange()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthRangeExclusive` is now `s.array(T).lengthRangeExclusive()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).lengthRangeInclusive` is now `s.array(T).lengthRangeInclusive()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array(T).unique` is now `s.array(T).unique()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.array` is now `s.array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint.divisibleBy` is now `s.bigint().divisibleBy()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint.equal` is now `s.bigint().equal()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint.greaterThan` is now `s.bigint().greaterThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint.greaterThanOrEqual` is now `s.bigint().greaterThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint.lessThan` is now `s.bigint().lessThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint.lessThanOrEqual` is now `s.bigint().lessThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint.notEqual` is now `s.bigint().notEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint().abs` is now `s.bigint().abs()` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint().negative` is now `s.bigint().negative()` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint().positive` is now `s.bigint().positive()` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.bigint` is now `s.bigint()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigInt64Array` is now `s.bigInt64Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.bigUint64Array` is now `s.bigUint64Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.boolean.false` is now `s.boolean().false()` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.boolean.true` is now `s.boolean().true()` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.boolean` is now `s.boolean()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.default(...)` now gets a second parameter to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.default(...).default(...)` now gets a second parameter to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.equal` is now `s.date().equal()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.greaterThan` is now `s.date().greaterThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.greaterThanOrEqual` is now `s.date().greaterThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.invalid` is now `s.date().invalid()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.lessThan` is now `s.date().lessThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.lessThanOrEqual` is now `s.date().lessThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.notEqual` is now `s.date().notEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date.valid` is now `s.date().valid()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.date` is now `s.date()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.enum(1, 2, 3)` is now `s.enum([1, 2, 3])` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.float32Array` is now `s.float32Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.float64Array` is now `s.float64Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.int16Array` is now `s.int16Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.int32Array` is now `s.int32Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.int8Array` is now `s.int8Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.never` is now `s.never()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.null` is now `s.null()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.nullable` is now `s.nullable()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.nullish` is now `s.nullish()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.nullish` is now `s.nullish()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.abs` is now `s.number().abs()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.ceil` is now `s.number().ceil()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.divisibleBy` is now `s.number().divisibleBy()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.equal` is now `s.number().equal()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.finite` is now `s.number().finite()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.floor` is now `s.number().floor()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.fround` is now `s.number().fround()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.greaterThan` is now `s.number().greaterThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.greaterThanOrEqual` is now `s.number().greaterThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.int` is now `s.number().int()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.lessThan` is now `s.number().lessThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.lessThanOrEqual` is now `s.number().lessThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.negative` is now `s.number().negative()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.notEqual` is now `s.number().notEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.positive` is now `s.number().positive()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.round` is now `s.number().round()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.safeInt` is now `s.number().safeInt()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.sign` is now `s.number().sign()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number.trunc` is now `s.number().trunc()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.number` is now `s.number()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.object.ignore` is now `s.object().ignore()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.object.partial` is now `s.object().partial()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.object.passthrough` is now `s.object().passthrough()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.object.required` is now `s.object().required()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.object.strict` is now `s.object().strict()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.optional` is now `s.optional()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.required(...)` now gets a second parameter to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.set` is now `s.set()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string.date` is now `s.string().date()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string.email` is now `s.string().email()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string.ipv4` is now `s.string().ipv4()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string.ipv6` is now `s.string().ipv6()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().ip` is now `s.string().ip()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().lengthEqual` is now `s.string().lengthEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().lengthGreaterThan` is now `s.string().lengthGreaterThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().lengthGreaterThanOrEqual` is now `s.string().lengthGreaterThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().lengthLessThan` is now `s.string().lengthLessThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().lengthLessThanOrEqual` is now `s.string().lengthLessThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().lengthNotEqual` is now `s.string().lengthNotEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().phone` is now `s.string().phone()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().regex` is now `s.string().regex()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string().url` is now `s.string().url()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.string` is now `s.string()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.tuple(1, 2, 3)` is now `s.tuple([1, 2, 3])` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthEqual` is now `s.typedArray(T).byteLengthEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthGreaterThan` is now `s.typedArray(T).byteLengthGreaterThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthGreaterThanOrEqual` is now `s.typedArray(T).byteLengthGreaterThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthLessThan` is now `s.typedArray(T).byteLengthLessThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthLessThanOrEqual` is now `s.typedArray(T).byteLengthLessThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthNotEqual` is now `s.typedArray(T).byteLengthNotEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthRange` is now `s.typedArray(T).byteLengthRange()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthRangeExclusive` is now `s.typedArray(T).byteLengthRangeExclusive()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).byteLengthRangeInclusive` is now `s.typedArray(T).byteLengthRangeInclusive()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthEqual` is now `s.typedArray(T).lengthEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthGreaterThan` is now `s.typedArray(T).lengthGreaterThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthGreaterThanOrEqual` is now `s.typedArray(T).lengthGreaterThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthLessThan` is now `s.typedArray(T).lengthLessThan()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthLessThanOrEqual` is now `s.typedArray(T).lengthLessThanOrEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthNotEqual` is now `s.typedArray(T).lengthNotEqual()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthRange` is now `s.typedArray(T).lengthRange()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthRangeExclusive` is now `s.typedArray(T).lengthRangeExclusive()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.typedArray(T).lengthRangeInclusive` is now `s.typedArray(T).lengthRangeInclusive()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.uint16Array` is now `s.uint16Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.uint32Array` is now `s.uint32Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.uint8Array` is now `s.uint8Array()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.uint8ClampedArray` is now `s.uint8ClampedArray()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.undefined` is now `s.undefined()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.union(1, 2, 3).required` is now `s.union(1, 2, 3).required()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `s.union(1, 2, 3)` is now `s.union([1, 2, 3])` to allow for custom options as second argument. - ๐ฅ **BREAKING CHANGE:** `s.unknown` is now `s.unknown()` to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `uniqueArray` is now a function (instead of a constant) to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `dateInvalid` is now a function (instead of a constant) to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `dateValid` is now a function (instead of a constant) to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `numberFinite` is now a function (instead of a constant) to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `numberInt` is now a function (instead of a constant) to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `numberNaN` is now a function (instead of a constant) to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `numberNotNaN` is now a function (instead of a constant) to allow for custom options as argument. - ๐ฅ **BREAKING CHANGE:** `numberSafeInt` is now a function (instead of a constant) to allow for custom options as argument. ### [`v3.9.7`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#397---2024-03-31) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.6...v3.9.7) #### ๐ Bug Fixes - Allow engines.node >= 16 ([a4d8c8d](https://togithub.com/sapphiredev/shapeshift/commit/a4d8c8d70e414192b61d565f89e51b19a117c8c1)) ### [`v3.9.6`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#396---2024-01-19) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.5...v3.9.6) #### ๐ Bug Fixes - Fixed commonjs typings export mapping ([#341](https://togithub.com/sapphiredev/shapeshift/issues/341)) ([a5518aa](https://togithub.com/sapphiredev/shapeshift/commit/a5518aa88350925ad03f612e49f695a296a0d3b3)) ### [`v3.9.5`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#395---2023-12-15) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.4...v3.9.5) #### ๐ Bug Fixes - Properly publish all dist files ([8e925fa](https://togithub.com/sapphiredev/shapeshift/commit/8e925faff5a67ccca84c41473bf77c9e0a01ebc0)) ### [`v3.9.4`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#394---2023-12-04) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.3...v3.9.4) #### ๐ Bug Fixes - Properly split CJS and ESM ([9bb1ff9](https://togithub.com/sapphiredev/shapeshift/commit/9bb1ff95f2852e765a27c7a839ff5145ee6e3a01)) #### ๐งช Testing - Update path to global file ([d03b19f](https://togithub.com/sapphiredev/shapeshift/commit/d03b19f20507690869fe6b8f59a2400d95bd02be)) ### [`v3.9.3`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#393---2023-10-13) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.2...v3.9.3) #### ๐ Refactor - Change email regex ([#306](https://togithub.com/sapphiredev/shapeshift/issues/306)) ([c5d49cf](https://togithub.com/sapphiredev/shapeshift/commit/c5d49cf32931aff24ab74ba87ee8d6d35f7231af)) ### [`v3.9.2`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#392---2023-06-04) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.1...v3.9.2) #### ๐ Bug Fixes - **arrayvalidator:** Fixed runaway type instantiation with TypeScript >=5.1 ([#275](https://togithub.com/sapphiredev/shapeshift/issues/275)) ([f59d901](https://togithub.com/sapphiredev/shapeshift/commit/f59d90112181e6625230c28e6a4f0f065ced6344)) ### [`v3.9.1`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#391---2023-06-02) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.9.0...v3.9.1) #### ๐ Bug Fixes - **types:** Move the `types` condition to the front ([#273](https://togithub.com/sapphiredev/shapeshift/issues/273)) ([5a3e202](https://togithub.com/sapphiredev/shapeshift/commit/5a3e202e9ceafb3d330a568e93c060dd5aac1dde)) ### [`v3.9.0`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#390---2023-05-09) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.8.2...v3.9.0) #### ๐ Bug Fixes - Resolve minor grammar mistake ([#260](https://togithub.com/sapphiredev/shapeshift/issues/260)) ([62df609](https://togithub.com/sapphiredev/shapeshift/commit/62df6094845ffa118aa93ea3c5f47f81f1c5d99f)) #### ๐ Features - Add BaseValidator.describe ([#267](https://togithub.com/sapphiredev/shapeshift/issues/267)) ([d9e1a2d](https://togithub.com/sapphiredev/shapeshift/commit/d9e1a2d2f3c5e6378f0025becf8497138ee6d97c)) ### [`v3.8.2`](https://togithub.com/sapphiredev/shapeshift/blob/HEAD/CHANGELOG.md#382---2023-04-02) [Compare Source](https://togithub.com/sapphiredev/shapeshift/compare/v3.8.1...v3.8.2) #### ๐ Bug Fixes - \***:** TypeScript 5.x compatibility ([#253](https://togithub.com/sapphiredev/shapeshift/issues/253)) ([eba2a88](https://togithub.com/sapphiredev/shapeshift/commit/eba2a88b91fb6631f431313753299ec7a70cf6ce)) - Remove `node:` prefix ([#249](https://togithub.com/sapphiredev/shapeshift/issues/249)) ([af766b5](https://togithub.com/sapphiredev/shapeshift/commit/af766b504c1013f3cd24f7bf803ac9ff7442a8d7))Configuration
๐ Schedule: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).
๐ฆ Automerge: Disabled by config. Please merge this manually once you are satisfied.
โป Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
๐ Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.