Skip to content

Releases: nchevsky/bitumen

v3.1.0: Adjust peer dependencies; convert Babel configuration to ESM

19 Sep 21:35
Compare
Choose a tag to compare

🌎 External changes

  • Add optional peer dependencies @vitest/coverage-istanbul, core-js, and vitest.
  • Mark as optional formerly required peer dependencies @babel/core, @babel/plugin-syntax-import-attributes, @babel/preset-env, and @babel/preset-typescript.
  • Drop orphaned peer dependency @babel/eslint-parser.

🏠 Internal changes

  • Convert Babel configuration from CommonJS to ESM and delete the internal proxy file in favor of babel.extends in package.json.
  • Upgrade dependencies.

v3.0.0: Add Vitest configuration; drop Jest; update lint rules, dependencies

12 Sep 22:07
Compare
Choose a tag to compare

⚠️ BREAKING CHANGES

  • Bump minimum versions of peer dependencies:
    • @typescript-eslint/eslint-plugin: 7.2 → 7.16
    • eslint-import-resolver-typescript: 3.6.1 → 3.6.2
    • eslint-plugin-ieslint-plugin-import-x: 2.29.1 → 4.2.1
    • eslint-plugin-react: None → 7.35 (optional)
    • eslint-plugin-react-hooks: None → any (optional)
    • typescript: 5.2 → 5.5
  • configuration:
    • babel: Remove Jest hacks (stripping file extensions from imports and transpiling ESM → CommonJS).
    • eslint:
      • Drop resolver eslint-import-resolver-babel-module.
      • Migrate import/* rules to import-x/*.
    • javascript: Remove in favor of typescript superset.
  • types:
    • Remove support for jest.MockedFunction from utility type ReplaceReturnType.

🌎 External changes

  • collections
    • SortedSet: Implement new ES6 methods difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union().
  • configuration:
    • Add vitest export with Vitest configuration.
    • eslint:
      • Enable @typescript-eslint rules:
        • …/no-empty-object-type,
        • …/no-unnecessary-parameter-property-assignment,
        • …/no-unnecessary-type-parameters,
        • …/no-unsafe-function-type,
        • …/no-wrapper-object-types, and
        • …/use-unknown-in-catch-callback-variable.
      • Remove no-new rule exemption for tests.
    • eslint-react:
      • Enable rules react/jsx-closing-tag-location (with option line-aligned) and react/jsx-props-no-spread-multi.
      • Remove react/forbid-foreign-prop-types rule exemption for mocks and tests.
    • typescript: Change option include to '${configDir}/src' (from '/src'), eliminating the need to locally override the path in every downstream project.
  • utils:
    • Deprecate ExternallyControlledPromise in favor of ES2024's new Promise.withResolvers().

🏠 Internal changes

  • Abandon Jest in favor of Vitest.
  • Add to devDependencies packages that were previously only declared as peerDependencies.
  • Upgrade dependencies.

v2.3.0: Improve `utils/clone()`; add lint rules; relax TS peer dependency

14 Mar 22:52
Compare
Choose a tag to compare

⚠️ POTENTIALLY DISRUPTIVE CHANGES

  • Enable lint rules @typescript-eslint/prefer-find, @typescript-eslint/prefer-string-starts-ends-with, react/checked-requires-onchange-or-readonly.

🌎 External changes

  • Improve utils/clone() by:
    • allowing property descriptors to change the types of existing properties, and
    • enhancing the return type to include new properties and reflect changes to existing properties.
  • Relax typescript peer dependency semver to >= 5.2.

🏠 Internal changes

  • Upgrade dependencies.

v2.2.0: Enhance `SortedSet` with support for number and string elements

26 Jan 02:35
Compare
Choose a tag to compare

⚠️ POTENTIALLY DISRUPTIVE CHANGES

  • Upgrade @typescript-eslint/eslint-plugin from v6.18.0 to v6.19.1, which enables new lint rules in configuration strict-type-checked:
    • @typescript-eslint/no-array-delete
    • @typescript-eslint/prefer-promise-reject-errors

🌎 External changes

  • Enhance SortedSet to natively support number and string elements without having to wrap them in Comparable objects.

🏠 Internal changes

  • Improve unit tests for utils/ExternallyControlledPromise.

🧹 Chores

  • Upgrade dependencies.

v2.1.0: Adjust lint rules, Babel configuration; upgrade dependencies

08 Jan 18:03
Compare
Choose a tag to compare

⚠️ POTENTIALLY DISRUPTIVE CHANGES

  • Turn on lint rules @typescript-eslint/no-unsafe-unary-minus and @typescript-eslint/switch-exhaustiveness-check.
  • Enable compiler option noUncheckedIndexedAccess in TypeScript and JavaScript configurations.

🌎 External changes

  • Drop Babel plugin replace-import-extension in non-Jest environments now that @babel/preset-typescript's rewriteImportExtensions option handles .tsx extensions.

🧹 Chores

  • Upgrade dependencies.

v2.0.0: Upgrade to TypeScript 5.2, `typescript-eslint` v6; improve types

03 Oct 17:12
Compare
Choose a tag to compare

⚠️ BREAKING CHANGES

  • Upgrade to TypeScript 5.2, make it an optional peer dependency, and adjust configuration:
    • allowJs: off → on
    • checkJs: off → on
    • emitDeclarationOnly: off → on
    • module: "ESNext" → "NodeNext"
    • moduleResolution: "NodeNext" → 🗑️
    • strictNullChecks: off → on
  • Upgrade peer dependency typescript-eslint to v6 and base the rule set on new presets strict-type-checked and stylistic-type-checked, with the following net changes:
    • Added: …/adjacent-overload-signatures, …/await-thenable, …/ban-ts-comment, …/ban-types, …/no-array-constructor, …/no-confusing-void-expression, …/no-extra-non-null-assertion, …/no-floating-promises, …/no-for-in-array, …/no-implied-eval, …/no-misused-new, …/no-misused-promises, …/no-namespace, …/no-non-null-asserted-optional-chain, …/no-object-constructor, …/no-redundant-type-constituents, …/no-this-alias, …/no-unnecessary-type-assertion, …/no-unnecessary-type-constraint, …/no-unsafe-argument, …/no-unsafe-assignment, …/no-unsafe-call, …/no-unsafe-member-access, …/no-unsafe-return, …/no-useless-empty-export, …/no-var-requires, …/parameter-properties, …/prefer-as-const, …/require-await, …/restrict-plus-operands, …/restrict-template-expressions, …/triple-slash-reference, …/unbound-method.
    • Removed: …/no-duplicate-imports (deprecated), …/no-new-object (deprecated).
  • Rename type Constructor to AbstractConstructor and reintroduce Constructor as non-abstract.

🌎 External changes

  • Turn on TypeScript option allowImportingTsExtensions along with @babel/preset-typescript option rewriteImportExtensions, enabling the use of TypeScript file extensions in imports and exports.
  • Change typescript-eslint option parserOptions.project to true (from "./tsconfig.json") for improved monorepo support.
  • Implement Rollup support for array exports in package.json.
  • Add real typings to Babel, ESLint, and Rollup configurations.

🏠 Internal changes

  • Change all TypeScript exports and imports to .ts file extensions.

🧹 Chores

  • Upgrade dependencies.
  • Clean lint.

v1.2.0: Add `clone()`, `nestInto()`; adjust lint rules

09 Aug 21:44
Compare
Choose a tag to compare

🌎 External changes

  • Introduce new utility functions:
    • clone(): Duplicates a given object based on its prototype, optionally injecting new and/or modifying existing properties while preserving getters, setters, and other special members.
    • nestInto(): Nests a given series of keys into an object.
  • Adjust lint rules:
    • Drop exemption of Jest mocks from import/export.
    • Drop exemption of TypeScript from react/jsx-props-no-spreading.
    • Turn off react/jsx-props-no-spreading.

🧹 Chores

  • Upgrade dependencies.

v1.1.0: Adjust lint rules; upgrade to TypeScript 5.1

12 Jul 23:36
Compare
Choose a tag to compare

🌎 External changes

  • Exempt Jest mocks and tests from lint rules react/forbid-foreign-prop-types, react/jsx-props-no-spreading.
  • Exempt Jest mocks from lint rules import/export, import/prefer-default-export.
  • Exempt CommonJS Jest mocks from lint rule import/no-unused-modules, as it only supports ESM.
  • Relax lint rule react/no-unstable-nested-components by adding exception allowAsProps.
  • Fix globs for Jest lint rules to include files in subdirectories of __mocks__ and __tests__.
  • Narrow the return type of guard isObject() to be non-nullable.
  • Upgrade to TypeScript 5.1.

🏠 Internal changes

  • Implement minimum unit test coverage thresholds.

🧹 Chores

  • Upgrade dependencies.

v1.0.0: Add JS/TS configuration exports; switch Babel plugins

12 Jun 16:12
Compare
Choose a tag to compare

⚠️ BREAKING CHANGES (if using lint rules)

  • Transition from deprecated @babel/plugin-syntax-import-assertions to the new @babel/plugin-syntax-import-attributes and enable option deprecatedAssertSyntax for backward compatibility with import assertions. Since this is a peer dependency, consumers must switch plugins to match.

🌎 External changes

  • Export JavaScript configuration as configuration/javascript.
  • Export TypeScript configuration as configuration/typescript now that microsoft/TypeScript#48665 has been fixed.
  • Update README with instructions on how to consume Babel, ESLint, JavaScript, rollup.js, and TypeScript configurations.

🏠 Internal changes

  • Clean up package.json scripts and remove engines field.

🧹 Chores

  • Upgrade dependencies.

v0.11.0: Add types `ExcludeFromReturnType`, `ReplaceReturnType`; adjust lint rules

05 Jun 14:31
Compare
Choose a tag to compare

🌎 External changes

  • Add utility types ExcludeFromReturnType, ReplaceReturnType to facilitate the manipulation of functions' return types.
  • Relax lint rule react/jsx-no-bind to allow allow function declarations.