Skip to content

Releases: nevware21/tripwire

0.1.7

13 Feb 01:57
cbf4fc3

Choose a tag to compare

Bug Fixes

  • #273 Fix deepStrictEqual to perform deep value comparison
    • Changed deepStrictEqual to use deep value comparison instead of strict instance comparison
    • Now properly compares nested object values, arrays, and complex structures
    • Aligns behavior with Node.js assert.deepStrictEqual semantics
    • Maintains strict type checking while performing recursive value comparison

What's Changed

  • Add CODEOWNERS file for tripwire approvers by @nev21 in #265
  • Revise CODEOWNERS file for clarity by @nev21 in #266
  • Update CODEOWNERS to reflect new team by @nev21 in #267
  • docs: Update copilot instructions by @nev21 in #268
  • Add Node.js assert migration guide documenting deepStrictEqual behavioral difference by @Copilot in #270
  • Fix deepStrictEqual to perform deep value comparison by @Copilot in #273
  • fix(deepEqual): prevent null return breaking nested Promise/function comparisons by @nev21 in #275
  • [Release] Increase version to 0.1.7 by @Copilot in #274

Full Changelog: v0.1.6...v0.1.7

0.1.6

12 Feb 06:30
c9a9f55

Choose a tag to compare

Changelog

  • #262 feat: Add Mocha Assertion Compatibility for updating actual, expected values
    • Make assertion error properties mutable, preserving their original values in new orgValues property when changed
    • Support "silent" readonly of immutable properties to avoid unexpected exceptions
    • Enables better compatibility with Mocha and other test frameworks that modify assertion error properties
  • #260 build(deps-dev): Bump @microsoft/rush from 5.166.0 to 5.167.0 in the dev group
  • #258 Bump @nevware21/ts-utils to 0.12.6

Refactoring

  • Added lint-fix as part of the rebuild process for code quality

What's Changed

  • Bump @nevware21/ts-utils to 0.12.6 by @Copilot in #258
  • build(deps-dev): bump @microsoft/rush from 5.166.0 to 5.167.0 in the dev group by @dependabot[bot] in #260
  • #261 [Compat] Mocha Assertion Compatibility for updating actual, expected values by @nev21 in #262
  • Delete .github/workflows/pr-auto-approve.yml by @nev21 in #263
  • [Release] Increase version to 0.1.6 by @nev21 in #264

Full Changelog: v0.1.5...v0.1.6

0.1.5

31 Jan 07:29
fb9bbfc

Choose a tag to compare

Breaking Changes

  • #253 refactor: Centralized format manager with parent-child hierarchy

    • BREAKING: Formatter API completely restructured
    • assertConfig.format.formatters replaced with assertConfig.$ops.formatMgr
    • assertConfig.reset()assertConfig.$ops.reset()
    • assertConfig.clone()assertConfig.$ops.clone()
    • Import path changed: assert/configconfig/assertConfig
    • IFormatter, IRemovable moved from assert/interface/ to interface/
    • New formatter API methods: addFormatter(), removeFormatter(), getFormatters(), forEach(), reset()

    Migration:

    // Before
    assertConfig.format.formatters = [myFormatter];
    assertConfig.reset();
    
    // After
    assertConfig.$ops.addFormatter(myFormatter);
    assertConfig.$ops.reset();

New Features

  • #251 perf(core): Add lazy initialization for assert class functions
    • Improves startup performance by deferring creation of ~100 assertion functions until first use
    • Add expr and not properties to IAssertClassDef for cleaner definition parsing
  • #250 feat(core): Add optimized createNotAdapter for negation operations
    • New function wraps scope functions with "not" operation more efficiently than createExprAdapter("not", scopeFn)
    • Avoids expression parsing overhead by directly applying negation context
  • #249 feat(chai-shim): Enable ownInclude, deepOwnInclude, and Map/Set keys assertions
    • Implement own.include operation for checking own properties only
    • Add deep.own.include for deep equality comparison of own properties
    • Enable tests for include, deepInclude, keys operations with Map/Set collections
  • #248 feat: Add ifError assertion for Node.js error handling
    • Add assert.ifError() and expect().to.ifError() for Node.js-style callback error checking
    • Passes for falsy values, throws Error instances, fails for truthy non-Error values
  • #247 feat: Implement deep keys assertions with ArrayLikeOrSizedIterable support
    • Add hasAnyDeepKeys, hasAllDeepKeys, and their negations
    • Keys parameter accepts Arrays, Sets, Maps, or any iterable collection
  • #242 feat: Add isNumber and isBoolean assertion methods
  • #241 feat: Add change/increase/decrease assertions with generic type support
  • #240 feat: Implement oneOf assertion with ArrayLikeOrSizedIterable support
  • #239 feat: Add endsWith and subsequence member comparison functions
  • #238 feat: Add array member comparison assertions and deep equality support
  • #232 feat: Add operator comparison function with typeof support
  • #231 feat: Implement approximate equality assertions (closeTo/approximately)
  • #228 feat(assertions): Implement lengthOf/sizeOf assertions
  • #227 feat: Add nested property operations with Chai compatibility
  • #226 feat: Add property value checking assertions with negation support
  • #225 feat: Implement exists/notExists assertions
  • #224 feat: Implement instanceOf assertion for type checking
  • #223 feat: Add typeOf assertion support and enhance error handling
  • #219 feat: Add isFinite assertion for finite number validation
  • #218 feat: Add isNaN assertion support
  • #217 feat: Add numeric comparison operations (above/below/within)

Refactoring

  • #233 refactor(core): Reorganize MsgSource type to dedicated type folder

Documentation & Maintenance

  • #255 docs: Add migration guide for migrating from Chai to Tripwire
  • #254 chore(codecov): Add explicit slug property to upload
  • #243 chore: Update docs site
  • #230 docs(copyright): Update copyright headers for 2025 changes
  • #220 chore: Add Node.js 22 and 24 support, limit codecov to node 22
  • #235 build(deps-dev): Bump @microsoft/rush from 5.165.0 to 5.166.0

What's Changed

Full Changelog: v0.1.4...v0.1.5

0.1.4

04 Jan 04:23
712f445

Choose a tag to compare

Changelog

  • Fix TypeScript compilation errors in test files for stricter type checking
    • Fixed possibly undefined error.stack and error.props references with non-null assertions
    • Fixed null arguments in AssertionError constructors - use undefined instead
    • Fixed missing property initialization in test class constructors
    • Fixed missing required arguments in hasPropertyDescriptor test cases
    • All tests now compile cleanly with TypeScript ~5.2.2

What's Changed

  • Implementation improvements: by @nev21 in #215
  • [Release] Increase version to 0.1.4 by @nev21 in #216

Full Changelog: v0.1.3...v0.1.4

0.1.3

03 Jan 07:13
1aed70e

Choose a tag to compare

Changelog

  • #186 feat: Add finalize option for post-processing formatted output
    • Add new finalize and finalizeFn options to IFormatterOptions interface to control post-processing of formatted assertion error messages
    • When finalize: true is set without a custom finalizeFn, automatically uses escapeAnsi from @nevware21/chromacon to escape ANSI codes for display as literal characters
    • Finalization is applied once to the complete formatted output string in _formatValue() for consistent processing
    • Enables powerful use cases:
      • Escape ANSI codes for proper terminal display without interpreting color codes
      • Colorize escaped ANSI sequences (e.g., display in gray) for better readability
      • Convert output to HTML-safe format for web-based test runners and reports
      • Wrap or decorate formatted messages with custom styling or metadata
      • Apply any custom transformation to final assertion error output
    • Updated assertConfig defaults to include the new finalization options
    • Reduced karma worker log level from DEBUG to INFO for faster test startup times
  • #105 Add WeakSet and WeakMap checks
    • Add support for WeakMap and WeakSet in equality comparison operations using strict equality checks
    • Add isEmpty validation for WeakMap and WeakSet collections
    • Note: WeakMap and WeakSet do not expose a size property, so emptiness cannot be determined directly - the implementation handles these special cases appropriately
    • Enables proper testing of code using ES6 weak collections

What's Changed

  • Bump to typedoc ^0.28.2, Bump to typescript ~5.2.2 by @nev21 in #96
  • build(deps-dev): bump @microsoft/rush from 5.151.0 to 5.153.0 by @dependabot[bot] in #100
  • build(deps-dev): bump @microsoft/rush from 5.153.0 to 5.153.1 by @dependabot[bot] in #104
  • Add WeekSet and WeakMap checks by @nev21 in #105
  • bump @microsoft/rush from 5.153.1 to 5.153.2 by @nev21 in #112
  • build(deps-dev): bump @microsoft/rush from 5.153.2 to 5.155.0 by @dependabot[bot] in #121
  • build(deps-dev): bump @microsoft/rush from 5.155.0 to 5.155.1 by @dependabot[bot] in #127
  • build(deps-dev): bump @microsoft/rush from 5.155.1 to 5.157.0 by @dependabot[bot] in #129
  • build(deps-dev): bump @microsoft/rush from 5.157.0 to 5.158.1 by @dependabot[bot] in #142
  • build(deps): bump actions/setup-node from 4 to 5 by @dependabot[bot] in #146
  • build(deps-dev): bump @microsoft/rush from 5.158.1 to 5.162.0 by @dependabot[bot] in #161
  • build(deps): bump github/codeql-action from 3 to 4 by @dependabot[bot] in #157
  • build(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #134
  • build(deps): bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in #138
  • build(deps-dev): bump @types/sinon from 17.0.4 to 20.0.0 by @dependabot[bot] in #164
  • Update npm version in rush settings by @nev21 in #167
  • build(deps): bump actions/setup-node from 5 to 6 by @dependabot[bot] in #162
  • Add Copilot instructions for repository context by @Copilot in #166
  • build(deps-dev): bump @types/sinon from 20.0.0 to 21.0.0 by @dependabot[bot] in #169
  • Add Dependabot auto-merge workflow by @nev21 in #175
  • build(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #171
  • build(deps): bump peter-evans/rebase from 2 to 3 by @dependabot[bot] in #176
  • build(deps-dev): bump @microsoft/rush from 5.162.0 to 5.163.0 by @dependabot[bot] in #174
  • Update to use Chromacon for error messages by @nev21 in #177
  • Update dependabot actions by @nev21 in #178
  • Fix broken typedoc deployment by @nev21 in #179
  • Additional steps to try and fix typedoc deployment by @nev21 in #180
  • build(deps): bump peter-evans/rebase from 2 to 4 by @dependabot[bot] in #182
  • Enhance Rush version sync workflow by @nev21 in #184
  • Include common/scripts folder in sync process by @nev21 in #185
  • build(deps-dev): bump @microsoft/rush from 5.163.0 to 5.164.0 by @dependabot[bot] in #183
  • feat: Add finalize option for post-processing formatted output by @nev21 in #186
  • Remove git config for dependabot user by @nev21 in #193
  • Revert "Remove git config for dependabot user (#193)" by @nev21 in #194
  • Add dependabot-sync[bot] to auto-approve workflow actors by @Copilot in #202
  • Remove force rebase workflow by @nev21 in #203
  • Fix sync-rush-versions workflow permissions for Dependabot PRs by @Copilot in #204
  • Use official Dependabot bot account in sync-rush-versions workflow by @Copilot in #205
  • build(deps-dev): bump @microsoft/rush from 5.164.0 to 5.165.0 by @dependabot[bot] in #192
  • Update sync-rush-versions.yml by @nev21 in #206
  • Delete .github/workflows/sync-rush-versions.yml by @nev21 in #210
  • Update conditions for auto-approve job by @nev21 in #211
  • build(deps-dev): bump @types/node from 24.10.4 to 25.0.3 in /core by @dependabot[bot] in #201
  • build(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /core by @dependabot[bot] in #191
  • build(deps-dev): bump the rollup group across 1 directory with 5 updates by @dependabot[bot] in #213

New Contributors

  • @Copilot made their first contribution in #166

Full Changelog: v0.1.2...v0.1.3

0.1.2

01 Apr 06:25
932e114

Choose a tag to compare

Changelog

  • #16 Update to ts-utils 0.11.4
  • #17 typedoc: Update auto-deploy job
  • #18 Update and rename .github/workflows/dependabot.yml to .github/dependaboy.yml
  • #28 Bump @microsoft/rush from 5.130.2 to 5.140.1
  • #30 Update codeql actions
  • #24 build(deps-dev): bump @types/sinon from 10.0.20 to 17.0.3
  • #22 build(deps): bump actions/configure-pages from 4 to 5
  • #31 build(deps): bump codecov/codecov-action from 2 to 5
  • #32 Update to use ts-build-tools instead of local
  • #39 Create FUNDING.yml
  • #40 Update FUNDING.yml
  • #25 build(deps-dev): bump @types/eslint from 8.56.12 to 9.6.1
  • #55 bump @microsoft/rush from 5.140.1 to 5.147.1
  • #77 Add IncludesOp value checks and includeMembers for chai shim
    • Add includes value checks
    • Add includeMembers for chai shim
    • bump @microsoft/rush from 5.147.1 to 5.151.0

What's Changed

  • Update to ts-utils 0.11.4 by @nev21 in #16
  • typedoc: Update auto-deploy job by @nev21 in #17
  • Update and rename .github/workflows/dependabot.yml to .github/dependaboy.yml by @nev21 in #18
  • Bump @microsoft/rush from 5.130.2 to 5.140.1 by @nev21 in #28
  • Update codeql actions by @nev21 in #30
  • build(deps-dev): bump @types/sinon from 10.0.20 to 17.0.3 by @dependabot in #24
  • build(deps): bump actions/configure-pages from 4 to 5 by @dependabot in #22
  • build(deps): bump codecov/codecov-action from 2 to 5 by @dependabot in #31
  • Update to use ts-build-tools instead of local by @nev21 in #32
  • Create FUNDING.yml by @nev21 in #39
  • Update FUNDING.yml by @nev21 in #40
  • build(deps-dev): bump @types/eslint from 8.56.12 to 9.6.1 by @dependabot in #25
  • bump @microsoft/rush from 5.140.1 to 5.147.1 by @nev21 in #55
  • Add IncludesOp value checks and includeMembers for chai shim by @nev21 in #77
  • [Release] Increase version to 0.1.2 by @nev21 in #93

New Contributors

Full Changelog: v0.1.1...v0.1.2

0.1.1

21 Sep 04:46
e609c20

Choose a tag to compare

Changelog

#9 [Bug] Chai Shim for equals / notEquals is not the same
#8 Revert: Fix code scanning alert #1: Shell command built from environment values (#4)
#12 chore: Auto generate docs on push
#13 chore: Update Readme.md to include badges and link to typedoc
#14 Remove generated typedoc docs from repo

What's Changed

  • Revert: Fix code scanning alert #1: Shell command built from environment values (#4) by @nev21 in #8
  • chore: Auto generate docs on push by @nev21 in #12
  • chore: Update Readme.md to include badges and link to typedoc by @nev21 in #13
  • [Bug] Chai Shim for equals / notEquals is not the same #9 by @nev21 in #11
  • chore: Remove generated typedoc docs from repo by @nev21 in #14
  • [Release] Increase version to 0.1.1 by @nev21 in #15

Full Changelog: v0.1.0...v0.1.1

0.1.0

21 Sep 01:00
a6552ec

Choose a tag to compare

Changelog

  • #7 Extend default timeout for addAssertFunc tests
  • #5 Add code coverage settings
  • #4 Fix code scanning alert #1: Shell command built from environment values
  • #3 chore: Fixup docs readme links
  • #2 chore: Fix typedoc source reference and theme
  • #1 Initial Prototype

What's Changed

  • Initial Prototype by @nev21 in #1
  • chore: Fix typedoc source reference and theme by @nev21 in #2
  • chore: Fixup docs readme links by @nev21 in #3
  • Add code coverage settings by @nev21 in #5
  • Fix code scanning alert #1: Shell command built from environment values by @nev21 in #4
  • Extend default timeout for addAssertFunc tests by @nev21 in #7
  • [Release] Initial Release 0.1.0 by @nev21 in #6

Full Changelog: https://github.com/nevware21/tripwire/commits/v0.1.0