Skip to content

Latest commit

 

History

History
295 lines (209 loc) · 10.5 KB

changelog.md

File metadata and controls

295 lines (209 loc) · 10.5 KB

Changelog

[0.23.1]

  • Add Type.Assert utility for strict type assertions.

[0.23.0]

  • Add support for TypeScript v5.4.2.
  • Improve performance for division-based operations.
  • Add DigitList._$signedAdd, for efficient signed addition using digit lists.
  • [Breaking] Improve List.Range edge case semantics.
  • Add additional JSDoc annotations for some modules. (Union, Type, Kind)
  • Add String.Capitalize utility for capitalizing the first letter of a string.
  • Add various conditional 'variadic' utilities:
    • Add Conditional.EqualsAll for checking if every type in a list is equal.
    • Add Conditional.ExtendsAll for performing composite subtype checks.
  • Add Union.FromList for constructing a union from a list of types.
  • Add list utilities:
    • Add List.At, List.Accumulate, List.Iterate, List.Zip.
    • Add List.Range, for generating ranges of numbers.
  • Add various number utilities:
    • Add Number.Negate for integer negation.
    • Add Number.Max and Number.Min for binary max/min operations.
    • Add Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER constants.
  • Add NaturalNumber.SubtractBy for argument-swapped subtraction.
  • [Breaking] Improve List.Slice, List.Splice, and List.Unshift interfaces.
  • Add support for negative start indices in List.Splice.
  • Improve ability to compose type-level functions
    • Add $N operator for uncurried type-level function application.
    • Add Kind.Curry and Kind.Uncurry to support argument lifting.
  • Add various natural number operations:
    • Add NaturalNumber.ModuloBy with swapped arguments.
    • Add NaturalNumber.IsLessThan.
  • Add Combinator.Collate for theoretical / pedagogical purposes.
  • Add NaturalNumberTheory.Factorial.
  • Add NaturalNumberTheory.FizzBuzz and NaturalNumberTheory.FizzBuzzSequence.
  • Add DigitList.FromString for parsing digit lists from strings.
  • Add Number.Compare for type-level numeric comparison.
  • Add various advanced List methods.
    • Add Concat, Repeat, ShiftN, PopN, Slice, Splice, Flatten
    • Add FlattenN, DigitList.ToNumber
  • [Breaking] Rename prior List.Slice utility to List.ShiftN.
  • Make String.Join more composable with other list types.
  • Improve NaturalNumber.Multiply and Combinator.FixSequence performance.
  • Add Kind.Reify for reifying a higher-order type to a value-level type.
  • Add Type.Infer for inferring a narrow type in a parameter context.
  • [Breaking] Complete overhaul of all modules, more consistent $ usage.
  • Add NaturalNumber.Compare for comparing natural numbers.
  • Add various numeric comparison types.
    • Add DigitList.Compare for comparing digit list magnitude.
    • Add Digit.Compare for comparing single-digit magnitude.
  • Add various parser combinators.
    • Add Parser.Many1 for parsing one or more elements.
    • Add Parser.Optional for parsing an optional element.
  • Introduce Stress module for common stress-testing types.
  • Introduce various other Parser combinators.
    • Add Parser.Run for state management.
    • Add Parser.Map for mapping over the result of a parser.
    • Add Parser.Letter and Parser.Letters for parsing letters.
    • Add Parser.ObjectSequence for better result extraction.
  • Add Object.Emplace and Object.Merge methods.
  • Increase performance of various string and list utilities.
  • Introduce Parser module for parser combinators.
    • Add Parser.String for parsing string literals.
    • Add Parser.Choice for parsing alternatives.
    • Add Parser.Sequence for parsing sequences.
  • Add List.Slice<N> method, to remove the first N elements from a list.
  • Add String.Slice method.
  • Fix division bug that led to rare incorrect results for NaturalNumber.Divide.
  • Introduce NaturalNumberTheory module for abstract natural number theory.
    • Add NaturalNumberTheory.Collatz
    • Add NaturalNumberTheory.CollatzSequence for generating hailstorm numbers.
  • Add Combinator.FixSequence for fixed-point iteration of a sequence.
  • Add NaturalNumber.DivideBy, for argument swapping of NaturalNumber.Divide.
  • Fix String.Join bug that did not properly handle one-tuple elements.
  • Add List.Length method.
  • Add List.Times method, which constructs the tuple from 0 to N - 1.
  • Add NaturalNumber.Divide and NaturalNumber.Modulo methods.
  • Add NaturalNumber.IsEven and NaturalNumber.IsOdd methods.
  • Add various digit-list level division methods.
  • Add NaturalNumber.Multiply method.
  • [Breaking] Change return type of natural arithmetic to numbers instead of strings.
  • Add NaturalNumber.Increment and NaturalNumber.Decrement methods.
  • Add NaturalNumber.Subtract method.
  • Add List.Reduce method.
  • Add Number, NaturalNumber, Digit, and DigitList modules.
  • Add Type.IsNever method.
  • Add Union.Length method.
  • [Breaking] Switch default package export from '$' to entire module.
  • [Breaking] Remove deprecated Conditional.SubtypeOf in favor of Conditional.Extends.
  • [Breaking] Remove Kind namespace-class merging in favor of Kind.Kind.
  • Add support for deep subpath imports.
    • e.g. import { StartsWith } from "hkt-toolbelt/string/starts-with"
  • Add String.ToUpper and String.ToLower methods.
  • Add Object.MapKeys and Object.MapValues methods.
  • Add Conditional.If hk-type for type-level control flow.
  • Add String.IsString hk-level predicate.
  • Add Type, Union, and Object core components.
  • Fix a type resolution issue for Conditional.Extends hk-type.
  • Strengthen hk-level type check for Combinator.ApplySelf hk-type.
  • Optimize string and list utilities via tail-call optimization.
  • Introduce Conditional.Extends utility type.
  • Deprecate alias Conditional.SubtypeOf in favor of Conditional.Extends.
  • Add String.Tail, String.Init, and String.Reverse hk-types.
  • Optimize string splitting routine in String.IsTemplate using tail-call optimization.
  • Add String.First and String.Last kinds.
  • Publish updated npm readme.
  • Add String.Join, String.Split, and String.IsTemplate kinds.
  • Add List.IsVariadic kind.
  • Fix bug with Test.Expect in checking equality between two never types.
  • Publish improved docs on npm.
  • Allow alternative subpath imports, e.g. hkt-toolbelt/string.
  • Fix internal import paths and build process for package types.
  • Add shorthand $$ pipe-application operator.
  • Add Boolean.Or for || HKT-level operator.
  • Add Combinator.Self and Combinator.ApplySelf combinators.
  • Add Kind.Pipe left-to-right composition.
  • Add List.First, List.Some, List.Reverse tuple utilities.
  • Improve Test.Expect error messages to use ᛰ for strict type equality.
  • Add String.Append and String.Prepend types.
  • Improve Test.Expect behavior and error messages.
  • Rename Kind.Input to Kind.InputOf and Kind.Output to Kind.OutputOf.
  • Add HKT-level composability check for Kind.Compose.
  • First experimental release.
  • Introduce Boolean, Cast, Conditional, Function, Kind, List, String, and Test core components.