Skip to content

Latest commit

 

History

History
278 lines (181 loc) · 11.6 KB

CHANGELOG.md

File metadata and controls

278 lines (181 loc) · 11.6 KB

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.

4.1.0 (2024-07-02)

🚀 Features

  • update HTMLRouter initial & default route handling (8ea075e)
    • avoid duplicate dispatch (and breaking back button) for missing routes
    • new behavior: HTMLRouter dispatches default route redirect, but does not push it to history
    • update initial route handling to use replaceState() instead of pushState()

4.0.11 (2024-06-21)

♻️ Refactoring

  • enforce uniform naming convention of internal functions (56992b2)

4.0.8 (2024-04-20)

♻️ Refactoring

4.0.1 (2024-03-13)

♻️ Refactoring

  • update/simplify AugmentedRoute handling (37ae88b)

4.0.0 (2024-03-13)

🛑 Breaking changes

  • trie-based route matching & wildcard support (f1ab427)
  • BREAKING CHANGES: update types, args, rename option fields
    • add Trie data structure for route storage & matching
    • add support for + wildcards to match arbitrary length routes
    • update BasicRouter.route() & replace .matchRoutes() with new impl
    • add AugmentedRoute interface & pre-process routes to compute wildcard indices for faster matching (along with using the trie)
    • update Route.match to be initially specified as string
    • update RouteMatch to include .rest args (if any)
    • add optional RouteMatch.redirect flag
    • REMOVE Route.title & RouteMatch.title (obsolete since only used by HTMLRouter, but usage unsupported by browsers now (history.pushState() doesn't support title anymore)
    • RENAME RouterConfig => RouterOpts (align naming convention)
    • RENAME RouterOpts.defaultRouteID => RouterOpts.default
    • RENAME RouterOpts.initialRouteID => RouterOpts.initial
    • RENAME RouterOpts.removeTrailingSlash => RouterOpts.trim
    • REMOVE obsolete defMatch() helper
    • add/update tests
  • rename BasicRouter => Router (4d14aab)
  • BREAKING CHANGE: rename BasicRouter => Router
    • update all refs

🚀 Features

  • update RouteAuthenticator and .route() args (f009afb)
    • add support for optional arbitrary user context object passed to .route() and global auth handler
    • update optional args for HTMLRouter.route()/.routeTo()
  • update/improve wildcard priority handling (59c2557)
    • implement wildcard fallback logic in Trie.get()
    • add docs
    • add tests

3.4.0 (2024-03-10)

🚀 Features

🩹 Bug fixes

  • rebuild index in updateRoutes() (deb494e)

3.3.0 (2024-03-09)

🚀 Features

  • sort & validate routes, add tests (9243c01)

3.2.39 (2023-11-09)

♻️ Refactoring

  • update all tests (packages A-S) (e3085e4)

3.2.30 (2023-08-04)

♻️ Refactoring

3.2.14 (2022-11-28)

♻️ Refactoring

  • update INotify.notify() signature (066bae5)

3.2.0 (2022-06-17)

🚀 Features

  • add trailing slash option, optimize routeForID() (c003dc2)
    • update BasicRouter default config init
    • pre-build routeIndex in ctor
    • optimize routeForID() to use new routeIndex
  • update format(), hash/prefix handling (724b3ad)
    • update HTMLRouter default prefix to "#/" if useFragment is true
    • remove obsolete HTMLRouter.format() (now the same as BasicRouter)
    • update BasicRouter.format() to throw error for missing route param value

3.1.5 (2022-04-07)

♻️ Refactoring

  • replace deprecated .substr() w/ .substring() (0710509)

3.1.0 (2021-11-17)

🚀 Features

  • Using workspaces for local tools (bf7a404) Improving the overall build ergonomics
    • introduced a tools workspaces
    • imported it in all needed packages/examples
    • inclusive project root

♻️ Refactoring

  • testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.

3.0.1 (2021-10-13)

♻️ Refactoring

  • update imports in all pkgs (5fa2b6f)
    • add .js suffix for all relative imports
  • update imports in all tests/pkgs (effd591)

3.0.0 (2021-10-12)

🛑 Breaking changes

  • major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
  • BREAKING CHANGE: discontinue CommonJS & UMD versions
    • only ESM modules will be published from now on
    • CJS obsolete due to ESM support in recent versions of node:
      • i.e. launch NodeJS via:
      • node --experimental-specifier-resolution=node --experimental-repl-await
      • in the node REPL use await import(...) instead of require()
    • UMD obsolete due to widespread browser support for ESM Also:
    • normalize/restructure/reorg all package.json files
    • cleanup all build scripts, remove obsolete
    • switch from mocha to @thi.ng/testament for all tests

♻️ Refactoring

  • update all tests in all pkgs (8b582bc)
  • update imports (138571a)
  • update deps & imports in various pkgs (e1cf29e)
    • largely related to recent updates/restructuring of these packages:
      • api
      • defmulti
      • errors
      • logger

2.0.54 (2021-09-03)

♻️ Refactoring

2.0.36 (2020-12-07)

♻️ Refactoring

  • update type-only imports in various tests/pkgs (3fd9c24)

2.0.33 (2020-09-22)

♻️ Refactoring

2.0.31 (2020-09-13)

♻️ Refactoring

2.0.10 (2020-02-25)

♻️ Refactoring

  • update imports, internal restruct (bb2d60e)

2.0.0 (2019-07-07)

🛑 Breaking changes

  • address TS strictNullChecks, update types, add checks (c7ff9a4)
  • BREAKING CHANGE: Route & RouteMatch IDs MUST be strings now
    • update config fields from PropertyKey => string
    • add initial & default route checks in ctor

🚀 Features

  • enable TS strict compiler flags (refactor) (d3ecae3)

1.0.5 (2019-03-10)

♻️ Refactoring

1.0.0 (2019-01-21)

🛑 Breaking changes

  • update package build scripts & outputs, imports in ~50 packages (b54b703)
  • BREAKING CHANGE: enabled multi-outputs (ES6 modules, CJS, UMD)
    • build scripts now first build ES6 modules in package root, then call scripts/bundle-module to build minified CJS & UMD bundles in /lib
    • all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols.

0.1.28 (2018-11-13)

♻️ Refactoring

  • update Route, RouteMatch & minor optimizations (1d085bf)

0.1.20 (2018-08-01)

♻️ Refactoring

  • TS3.0 PropertyKey handling (2ecd538)

0.1.11 (2018-05-10)

♻️ Refactoring

0.1.1 (2018-03-21)

♻️ Refactoring

0.1.0 (2018-03-11)

🚀 Features

  • re-import router package (MBP2010), minor refactor & fixes (07b4e06)