Skip to content

Latest commit

 

History

History
600 lines (383 loc) · 24.3 KB

CHANGELOG.md

File metadata and controls

600 lines (383 loc) · 24.3 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.

9.4.35 (2024-06-21)

♻️ Refactoring

  • split up internal normalizeTree() (1fbca7b)
  • enforce uniform naming convention of internal functions (56992b2)

9.4.14 (2024-02-16)

♻️ Refactoring

9.4.0 (2023-12-11)

🚀 Features

  • update setAttrib(), more alignment w/ rdom logic (639ca71)

9.3.27 (2023-11-09)

♻️ Refactoring

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

9.3.0 (2023-02-27)

🚀 Features

  • update setAttrib() (61aa627)
    • add IDeref support for individual attrib values (i.e. via deref() wrappers)
    • update attribute removal/deletion logic

9.2.0 (2022-12-16)

🚀 Features

  • fix #358 add "completed" project status, update pkgs/readmes (d35fa52)

9.1.6 (2022-04-07)

♻️ Refactoring

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

9.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.

9.0.8 (2021-11-10)

♻️ Refactoring

  • update all countdown loops (a5f374b)

9.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)

9.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
  • minor pkg restructure (61a6592)

8.2.14 (2020-12-22)

♻️ Refactoring

  • update DiffMode handling (b8f7d5c)

8.2.13 (2020-12-07)

♻️ Refactoring

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

8.2.10 (2020-09-22)

♻️ Refactoring

  • simplify normalizeElement() (b310c61)
  • update normalizeTree() (cda40f1)
    • extract normalizeChildren()

8.2.9 (2020-09-13)

♻️ Refactoring

8.2.0 (2020-07-02)

🚀 Features

  • update deps, update xmlns import (99fbae7)
  • add RDFa prefix attrib support, update xmlns imports (f0e7460)

8.1.0 (2020-06-28)

🚀 Features

  • add support class attrib object vals (074985a)
    • update normalizeElement() class merge logic
  • add support for event listener strings (db8d350)

8.0.18 (2020-04-06)

⏱ Performance improvements

  • update event attrib checks (ab54d3c)
    • replace .indexOf("on") with array-style accessor checks
    • benchmarking shows ~30% improvement

8.0.11 (2020-02-25)

♻️ Refactoring

  • update imports, internal restruct (9f31a03)

8.0.7 (2019-11-09)

🩹 Bug fixes

  • fix #72, update __skip diff handling & HDOMImplementation (0071df3)
    • when a previously skipped element is re-enabled, replace entire sub-tree, but do NOT call lifecycle init() methods
    • add init arg/flag to HDOMImplementation.createTree() / replaceChild()
    • update DEFAULT_IMPL
    • update normalizeElement()

8.0.6 (2019-09-23)

🩹 Bug fixes

  • fix #133 boolean attrib handling, add more element properties (c4bf94f)

8.0.4 (2019-08-21)

♻️ Refactoring

  • refactor/simplify diff & dom impls (20de716)
    • extract diffDeleted()/diffAdded() from diffTree()
    • extract incOffsets()/decOffsets() from diffTree()
    • update diffAttributes()
    • extract maybeInitElement() from createTree()/hydrateTree()
    • extract addChild(), update createElement/createTextElement()
    • update various conditionals
  • update to use new hiccup regex names (0236ff6)

8.0.0 (2019-07-07)

🛑 Breaking changes

  • address TS strictNullChecks flag (d83600a)
  • BREAKING CHANGE: all HDOMImplementation methods now mandatory, update return types

🚀 Features

  • enable TS strict compiler flags (refactor) (7f093b9)
    • update return types for HDOMImplementation methods

7.2.6 (2019-04-24)

♻️ Refactoring

  • replace DEBUG w/ LOGGER (a37252a)

7.2.5 (2019-04-17)

🩹 Bug fixes

  • update removeAttribs (b17fb17)
    • check for attribute first, else treat as element property

7.2.4 (2019-04-11)

⏱ Performance improvements

  • minor update diffTree() (f2efaa5)
    • re-order diff state checks to prioritize unchanges results

7.2.3 (2019-04-05)

🩹 Bug fixes

  • off-by-one error when updating child offsets after removal (beef4e9)

7.2.0 (2019-03-18)

🚀 Features

  • support more input el types in updateValueAttrib() (8813344)

7.1.0 (2019-02-10)

🚀 Features

  • add scrollTop/Left property support in setAttrib() (895da65)

🩹 Bug fixes

  • fix #72, update normalizeElement() (3ed4ea1)
    • ensure empty elements with __skip attrib always have at least 1 child

7.0.0 (2019-01-21)

🛑 Breaking changes

  • update package scripts, outputs, imports in remaining packages (f912a84)
  • BREAKING CHANGE: enable 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

6.1.0 (2018-12-21)

🚀 Features

  • add support for event listener options, update readme (6618c22)

6.0.4 (2018-12-21)

🩹 Bug fixes

6.0.2 (2018-12-16)

🩹 Bug fixes

  • life cycle init / release handling (6d85c62)
    • createTree() init handling: call AFTER all children have been created
    • releaseTree(): bind release() calls to component (not tag wrapper)
    • update docs / readme

6.0.0 (2018-12-13)

🛑 Breaking changes

  • extend & simplify HDOMImplementation, update DEFAULT_IMPL (6f2e8ee)
  • BREAKING CHANGE: extend & simplify HDOMImplementation
    • update args for HDOMImplementation methods
    • add createElement(), createTextElement() & getElementById() methods to HDOMImplementation
    • rename createDOM() => createTree(), make generic
    • rename hydrateDOM() => hydrateTree(), make generic
    • update / fix diffTree() __impl attrib handling: only delegate if __impl != current impl
    • update resolveRoot() to require impl arg & delegate

🚀 Features

  • add initial __skip ctrl attrib handling in diffTree() (a4e6736)

♻️ Refactoring

  • update createTextElement() sig, update docstrings (fe9a312)

5.2.1 (2018-12-08)

♻️ Refactoring

5.2.0 (2018-11-07)

🚀 Features

  • update auto-deref ctx behavior (3016116)
    • add autoDerefKeys option
    • update docs
    • update tests

5.1.0 (2018-11-06)

🚀 Features

  • add support for dynamic user context vals (6a3a873)
    • update start() & renderOnce()
    • reformat all sub-modules
    • update docs & tests

5.0.3 (2018-09-24)

🩹 Bug fixes

5.0.1 (2018-09-23)

♻️ Refactoring

  • minor refactoring, fix/update docs (4a2f79b)
    • extract resolveRoot() helper fn
    • update start(), renderOnce()
    • update various doc strings

5.0.0 (2018-09-22)

🚀 Features

⏱ Performance improvements

♻️ Refactoring

  • allow HDOMOpts extensions (6d6fae3)

5.0.0-alpha (2018-09-16)

🛑 Breaking changes

  • reorg & extend HDOMImplementation (1ac245f)
    • add normalizeTree, hydrateTree & diffTree to HDOMImplementation
    • add HDOMBehaviorAttribs
    • update ComponentAttribs
    • remove normalize option from HDOMOpts (use __normalize attrib instead)
    • update DEFAULT_IMPL, move to default.ts
    • fix embedded fn handling in createDOM() & hydrateDOM() (inject user context)
    • add __impl support in hydrateDOM()
    • add opt impl arg for start()
  • BREAKING CHANGES: new names & call signatures for:
    • normalizeTree
    • diffElement => diffTree
    • createDOM
    • hydrateDOM
    • replaceChild

🚀 Features

  • update normalizeTree, add to HDOMImplementation (59bb19c)
    • update normalizeTree() to check for & use branch-local impl if present
    • add existing normalizeTree to DEFAULT_IMPL
    • update HDOMImplementation interface
  • add .toHiccup() interface support (54ba0ce)
    • add .toHiccup() type check in normalizeTree() and call w/ user context

🩹 Bug fixes

  • minor fix (hydrateDOM) (e4f780c)
  • exclude hdom control attribs in setAttrib() (0592063)
  • delegate diffTree() to branch impl (6c33901)

⏱ Performance improvements

  • add opt __release attrib to disable releaseDeep() (2e3fb66)
  • update diffTree(), inline node type checks (382c45c)
    • add child tracking index table template for diffTree()
    • bail out early if edit distance = 2 and only attribs changed
    • update checks in normalizeTree(), normalizeElement(), createDOM(), hydrateDOM(), setAttrib()
    • rename releaseDeep() => releaseTree()

♻️ Refactoring

  • trial run of custom equiv() impl for diffTree() (96beaf3)
  • use custom equiv also for diffAttributes() (bde18d5)
  • update custom equiv() (d9af2e5)
  • export diff related fns (ebfcf15)

4.0.5 (2018-09-10)

🚀 Features

  • add optional support for blocking normalize & diff (5cb4350)
    • add __normalize attrib to stop normalization of subtree
    • add __diff attrib to stop diffing of subtree
  • generalize diffElement() (#4) (525d90d)
    • add HDOMOps interface
    • add DEFAULT_OPS implementation
    • update diffElement() & diffAttributes() to delegate to ops
    • refactor diffElement() to be more legible
    • update createDOM(), add support for __ops node attrib to use custom ops for subtrees
    • add getChild(), replaceChild(), setContent()

♻️ Refactoring

  • rename HDOMOps => HDOMImplementation, add docs (cc73c76)
    • rename __ops attrib => __impl

4.0.3 (2018-09-01)

🩹 Bug fixes

4.0.0 (2018-08-31)

🛑 Breaking changes

  • add DOM hydration support (SSR), update start() (#39) (9f8010d)
    • add HDOMOpts interface
    • add hydrateDOM()
    • update start() to support hydration
    • re-use migrated NO_SPANS const from hiccup
    • switch all fn to arrow fns
  • BREAKING CHANGE: start() args now as options object

🚀 Features

  • update HDOMOpts & start() (5e74a9c)
    • add normalize option
    • simplify start()

♻️ Refactoring

  • minor update HDOMOpts & start() (d55d930)
    • rename parent option => root

3.0.33 (2018-08-24)

♻️ Refactoring

3.0.32 (2018-08-01)

♻️ Refactoring

3.0.28 (2018-07-10)

🩹 Bug fixes

  • always update "value" attrib last in diffAttributes() (126103b)
    • fixes issue when patching elements with changed min/max limits

3.0.23 (2018-05-15)

🩹 Bug fixes

  • delay init() lifecycle call to ensure children are available (2482b16)
    • update diffElement()

3.0.21 (2018-05-14)

🩹 Bug fixes

  • component obj lifecycle method thisArg handling (ade96f8)

3.0.16 (2018-05-10)

♻️ Refactoring

3.0.15 (2018-05-09)

🩹 Bug fixes

  • native boolean attrib handling (e.g. "checked") (68ea086)

3.0.14 (2018-05-01)

🩹 Bug fixes

  • boolean attrib reset/removal (a93cb98)

3.0.13 (2018-04-30)

⏱ Performance improvements

  • only build linear diff edit log (7a543a5)

3.0.12 (2018-04-29)

⏱ Performance improvements

  • update event handling in diffAttributes() (31ec3af)
    • avoid replacing element if changed event handlers
    • update removeAttribs()

3.0.1 (2018-04-09)

⏱ Performance improvements

  • intern imported checks, update normalizeTree(), add docs, fix tests (2a91e30)
    • avoid path copies in normalizeTree()
    • fix render life cycle return val handling (must be array for init/release to be called)

3.0.0 (2018-04-08)

🛑 Breaking changes

  • fix #13, add support for user context and pass to components (70cfe06)
    • add optional context arg for start()
    • update normalizeTree(), diffElement() to inject provided context for all component functions and objects w/ lifecycle methods
    • context is always injected as 1st arg to comp fns, with only exception of init lifecycle hook, where (for perf reasons) the created DOM element is passed as the first arg (context 2nd)
    • various minor optimizations
    • add doc strings
  • BREAKING CHANGE: component functions & lifecycle hooks now receive user context object as their first arg. All components accepting arguments must be updated, but can potentially be simplified at the same time.

2.3.0 (2018-03-21)

🚀 Features

2.2.0 (2018-03-14)

🚀 Features

  • add auto deref() support (0fe6c44)
    • top-level or child element objects with deref() impl will be automatically resolved

♻️ Refactoring

  • disable deref() for attrib objects (28b0b57)

2.1.0 (2018-03-05)

🚀 Features

  • add support for frame skipping, add docs (a200beb)

2.0.0 (2018-03-03)

🛑 Breaking changes

  • update readme (79e1b09)
  • BREAKING CHANGE: rename package hiccup-dom => hdom

♻️ Refactoring

  • rename package hiccup-dom => hdom (f1c5315)