Releases: ngxs/store
Releases Β· ngxs/store
v18.1.1
What's Changed
- fix(store): use
computed
inselectSignal
by @arturovt in #2201 - chore: release v18.1.1 by @markwhitfeld in #2203
Full Changelog: v18.1.0...v18.1.1
v18.1.0
What's Changed
- docs: update
options.md
to add a warning about environments by @arturovt in #2174 - docs: update unit-testing recipe by @arturovt in #2175
- build: upgrade workspace to Angular 18 by @arturovt in #2187
- docs(store): update the logo in store package by @profanis in #2185
- fix(schematics): remove local ng utils for schematics by @dmitry-stepanenko in #2184
- docs: update the logo in the main readme file by @profanis in #2188
- fix(store): decouple state signal updates from synchronous changes by @arturovt in #2189
- feat(store): add
withExperimentalNgxsPendingTasks
by @arturovt in #2186 - feat(store): debounce
selectSignal
by default by @arturovt in #2190 - docs: adjust details on injectContainerState by @markwhitfeld in #2195
- docs: improve error handling section in docs by @markwhitfeld in #2196
- docs: add explanation of deterministic vs non-deterministic errors by @markwhitfeld in #2197
- chore: release v18.1.0 by @markwhitfeld in #2198
Full Changelog: v18.0.0...v18.1.0
v18.0.0
What's Changed
- fix(router-plugin): expose
NGXS_ROUTER_PLUGIN_OPTIONS
privately by @arturovt in #2037 - fix(devtools-plugin): do not re-enter Angular zone when resetting state by @arturovt in #2038
- feat(store): add standalone features by @arturovt in #2044
- ci: get CircleCI running again by @arturovt in #2050
- feat: add schematics by @dmitry-stepanenko in #2032
- fix(storage-plugin): expose storage plugin internals privately through subpackage by @arturovt in #2052
- refactor(websocket-plugin): get rid off
rxjs/webSocket
and useWebSocket
directly by @arturovt in #2033 - refactor: use
ReplaySubject
for take until notifiers by @arturovt in #2055 - fix(store): expose keys which are used to store metadata privately by @arturovt in #2054
- chore: add v3.8 release notes by @Carniatto in #1980
- docs: update
action-handlers.md
by @arturovt in #2056 - docs: example code not compiling by @benoitnesme in #2059
- docs: introduce schematics by @profanis in #2057
- fix(store): show error when state initialization order is invalid by @arturovt in #2066
- fix(store): log feature states added before store is initialized by @arturovt in #2067
- chore:
tsconfig.spec.json
files should extend from roottsconfig.spec.json
by @arturovt in #2068 - docs: update store documentation by @profanis in #2069
- docs(form-plugin): npm package title and title of README mismatch by @linhub15 in #2070
- fix(store): patch operator must handle existing nulls by @TheKingDave in #2064
- docs(installation): add snippets for devtools-plugin by @OanaSurdea in #2077
- feat(store): add support for standalone APIs in schematics by @dmitry-stepanenko in #2060
- build: add angular 17 support by @jpraetorius in #2079
- docs: fix paths and provide defaults into schematics by @profanis in #2081
- feat(store): change the StateModule name into State by @profanis in #2082
- refactor: integration app serve targets by @Dyqmin in #2084
- fix(schematics): replace the deprecated api in the unit tests and add a missing decorator by @profanis in #2088
- feat: state, store and starter-kit schematics support a project option by @profanis in #2089
- fix(store): ensure features are initialized after root state by @arturovt in #2083
- fix(schematics): dasherize the state and store file name by @profanis in #2090
- fix(store): change
instanceof Promise
toisPromise
to allow any promisable object by @arturovt in #2093 - feat: upgrade workspace to Angular 17 by @arturovt in #2087
- chore: format files after upgrading to Nx 17 by @arturovt in #2096
- ci: upgrade Node version to
18.x
by @arturovt in #2095 - ci: remove
integration_ng15_tests
job by @arturovt in #2098 - ci: switch from
dtslint
to ESLint by @arturovt in #2103 - feat(storage-plugin): require explicit options when providing storage plugin by @arturovt in #2100
- feat(store): add
selectSignal
by @arturovt in #2097 - refactor: move metadata into internals by @arturovt in #2062
- perf(store): improve compliant prop getter by @arturovt in #2106
- feat(storage-plugin): allow providing feature states by @arturovt in #1994
- perf(store): select prop getter implementation only once by @arturovt in #2107
- fix(store):
dispatch
return observable should be<void>
by @arturovt in #2109 - fix(store): enable throwing errors from selectors by default by @arturovt in #2111
- fix(store):
ctx.getState
should returnDeepReadOnly<>
by @arturovt in #2110 - Revert "fix(store):
ctx.getState
should returnDeepReadOnly<>
" by @arturovt in #2113 - fix(store):
ofActionErrored
should returnActionCompletion
by @arturovt in #2112 - fix(store):
setState
andpatchState
should both return<void>
by @arturovt in #2114 - fix(websocket-plugin):
WebSocket
title casing should be consistent by @arturovt in #2115 - fix(store):
select,selectOnce,selectSnapshot
should only accept typed selector by @arturovt in #2116 - fix(store): do not inject container state by default by @arturovt in #2117
- fix(store): remove
defaultsState
config property by @arturovt in #2118 - fix(store): remove deprecated stuff by @arturovt in #2119
- docs: update
suppressErrors
examples by @arturovt in #2120 - docs(router-plugin): update to explain standalone API by @arturovt in #2121
- docs(logger-plugin): update to explain standalone API by @arturovt in #2123
- docs(devtools-plugin): update to explain standalone API by @arturovt in #2122
- docs(websocket-plugin): update to explain standalone API by @arturovt in #2124
- docs(form-plugin): update to explain standalone API by @arturovt in #2125
- docs(storage-plugin): update to explain standalone API by @arturovt in #2126
- docs: use new Angular features by @arturovt in #2127
- docs: update recipes by @arturovt in #2129
- docs: update
concepts/select.md
by @arturovt in #2128 - docs: update concepts, lazy loading guide and examples by @arturovt in #2130
- docs: update more examples by @arturovt in #2132
- build: flatten
.d.ts
files by @arturovt in #2131 - feat(store): expose
withNgxsDevelopmentOptions
standalone API by @arturovt in #2134 - refactor(store): deprecate
@Select
by @arturovt in #2135 - feat(storage-plugin): migrate to the property 'keys' by @profanis in #2108
- refactor(store): deprecate state
children
by @arturovt in #2136 - refactor(store): rely on
ngDevMode
to be always defined by @arturovt in #2138 - docs: improve the doc structure by @profanis in #2139
- feat(store): export selector util types privately by @arturovt in #2140
- feat(store): implement NGXS unhandled error handler by @arturovt in #2137
- docs: remove any Ivy mentions by @arturovt in #2142
- docs: section headings as uppercase by @profanis in #2144
- feat(signals): provide
@ngxs/signals
package with signals utilities by @arturovt in #2141 - chore(deps): update dependency express to v4.19.2 [security] by @renovate in #2145
- feat(store): add
dispatch
utility by @arturovt in #2143 - fix(store): remove
RequireAtLeastOneProperty
to make it simpler by @arturovt in #2147 - docs: introduce deprecation root pages by @profanis in #2146
- docs: add inject container state deprecation notice by @arturovt in #2148
- fix(store): created maps properties should be enumerable by @arturovt in #2150
- fix(store): update
ActionDef
new to returnany
by @arturovt in #2149 - fix(store): do not rely on private token when checking whether zone is enabled by @arturovt in #2151
- docs: explain
dispatch
utility by @arturovt in #2153 - docs: introduce an overview page on each section by @profanis in #2155
- feat(store): add preboot feature and recipe by @arturovt in #2156
- feat(store): improve selector decorator types (#1929) by @ConnorUllmann in #2042
- docs: update life cycle guide and examples by @arturovt in #2154
- chore: upgrade deps, update "wait for stable" test and simplify docs by @arturovt in https://github.com/ngxs/store/pull/...
v3.8.2
What's Changed
- build: add angular 17 support by @jpraetorius in #2079
- docs: update
options.md
by @arturovt in #2023 - refactor(store): remove
isAngularInTestMode
by @arturovt in #2024 - refactor(store): do not create new functions in each
@State
decorator by @arturovt in #2022 - refactor(store): do not create new functions per each new context by @arturovt in #2025
- perf(store): tree-shake selectors validation errors by @arturovt in #2020
- docs: fix upsertItem operator example by @nilzen in #2028
- fix(store): patch operator must handle existing nulls by @TheKingDave in #2064
- fix(devtools-plugin): do not re-enter Angular zone when resetting state by @arturovt in #2038
- fix(storage-plugin): access local and session storages globals only in browser by @arturovt in #2034
- fix(storage-plugin): require only
getItem
andsetItem
on engines by @arturovt in #2036 - ci: update node images and browser tools by @arturovt in #2039
- refactor(*): replace
get type()
withtype =
in actions by @arturovt in #2035
New Contributors
- @jpraetorius made their first contribution in #2079
- @TheKingDave made their first contribution in #2064
- @nilzen made their first contribution in #2028
Full Changelog: v3.8.1...v3.8.2
v3.8.1
What's Changed
- fix(store): check if state is injectable in JIT by @arturovt in #1988
- test(store): add unit tests to reproduce state value is not immediately set but queued up by @arturovt in #1990
- chore: migrate to nx by @dmitry-stepanenko in #1992
- fix(store): state stream should always return latest value even if update is queued up by @arturovt in #1995
- chore: upgrade Husky and commitlint by @arturovt in #1997
- chore(integration): update target dependencies for the integration project by @dmitry-stepanenko in #1998
- chore: enforce running tests sequentially on circleci by @dmitry-stepanenko in #2013
- chore: limit amount of workers on CI by @dmitry-stepanenko in #2014
- fix(store): ensure
StateFactory
does not connect actions multiple times by @arturovt in #2010 - refactor(store): singleton providers as
providedIn: root
by @arturovt in #2015 - build: add Angular 16 support by @markwhitfeld in #2008
- chore: run Cypress migration in workspace root by @arturovt in #2016
- refactor: simplify integration app and run Cypress SSR tests by @arturovt in #2017
- chore: release v3.8.1 by @markwhitfeld in #2018
New Contributors
- @dmitry-stepanenko made their first contribution in #1992
Full Changelog: v3.8.0...v3.8.1
v3.8.0
Note: In this release we are publishing in the new Ivy packaging format, and therefore have dropped support for Angular 11 and earlier.
What's Changed
- feat(store): strongly type ofAction* methods by @bbarry in #1808
- feat(store): expose ActionContext and ActionStatus by @arturovt in #1766
- feat(store): warn on unhandled actions by @arturovt in #1870
- feat(store): allow prodiving
warnOnUnhandledActions
as boolean by @arturovt in #1951 - feat(store): build packages in Ivy format by @arturovt in #1945
- feat(store): improve create selector types by @markwhitfeld in #1982
- feat(operators): improve publicly exposed types by @markwhitfeld in #1956
- feat(operators): improve type checking and intellisense for State Operators by @markwhitfeld in #1947
- feat(selector-utils): add advanced selector utils by @Carniatto in #1824
- perf(store): tree-shake patch errors by @arturovt in #1955
- fix(store): do not infer T from argument to patch by @david-shortman in #1806
- fix(store): get descriptor explicitly when considered as class prop by @arturovt in #1961
- fix(store): avoid delayed updates from state stream by @arturovt in #1981
- feat(storage-plugin): allow providing namespace for keys by @arturovt in #1841
- feat(storage-plugin): enable providing storage engine individually by @arturovt in #1935
- feat(router-plugin): provide more actions and navigation timing option by @arturovt in #1932
- feat(form-plugin): allow
ngxsFormDebounce
to be string by @arturovt in #1972 - feat(devtools-plugin): add trace options to
NgxsDevtoolsOptions
by @Dyqmin in #1968 - feat(devtools-plugin): add new options to the
NgxsDevtoolsOptions
interface by @oleksandr-codefresh in #1879 - chore(deps): update dependency express to v4.17.3 [security] by @renovate in #1949
- test(unit): update unit test setup, revise existing unit tests by @rfprod in #1846
- docs: update action-handlers.md by @maxaxehax in #1973
New Contributors
- @oleksandr-codefresh made their first contribution in #1879
- @Dyqmin made their first contribution in #1968
- @maxaxehax made their first contribution in #1973
- @david-shortman made their first contribution in #1806
- @bbarry made their first contribution in #1808
Full Changelog: v3.7.6...v3.8.0
v3.7.6
What's Changed
- fix(store): use
isObservable
to test whether actions return an observable by @arturovt in #1925 - fix(storage-plugin): do not skip deserialization for keys with dot notation by @arturovt in #1924
- fix(store): call
ngxsOnChanges
whenever state changes (even through plugins) by @arturovt in #1926 - fix(store): complete
Actions
stream once root view is removed by @arturovt in #1933 - fix(store): do not delegate errors to
ErrorHandler
if users catch them manually by @arturovt in #1927 - chore: add support for Angular 15 by @arturovt in #1938
- build: bump RxJS version to repair Cypress postinstall by @arturovt in #1934
- test(store): ensure
Actions
stream leave NGXS execution strategy and cause CDs by @arturovt in #1936 - perf(store): run CD once for all
Actions
subscribers by @arturovt in #1939
Full Changelog: v3.7.5...v3.7.6
v3.7.5
What's Changed
- ci(github): migrate ci from circleci to github by @rfprod in #1852
- ci(publish): check the repo owner before executing publish steps by @rfprod in #1864
- fix(store): do not try to decorate factory asynchronously by @arturovt in #1861
- ci(bundlemon): replace bundlesize with bundlemon by @rfprod in #1865
- fix(storage-plugin): provide more meaningful error message when the storage quota exceeds by @arturovt in #1863
- fix(store): do not check if the state class is injectable within the decorator since the
Ι΅prov
will not exist in JIT mode by @arturovt in #1867 - perf(store): tree-shake no type on the action error by @arturovt in #1858
- fix(store): revert select decorator changes and add deprecation note by @arturovt in #1871
- fix(devtools-plugin): enable time-traveling for navigation actions by @arturovt in #1868
- fix(store): give back control to
developmentMode
config property by @arturovt in #1878 - fix(store): do not use
refCount()
since it makes the stream cold by @arturovt in #1883 - ci: add process for accepting bundlemon differences by @markwhitfeld in #1886
- chore(store): improve
Select
deprecation message and add notice to the docs by @arturovt in #1888 - fix(storage-plugin): ensure the deserialization is not skipped for master key by @arturovt in #1887
- fix(store): remove
?
fromctx
parameter of lifecycle hooks since they are never undefined by @arturovt in #1889 - fix(form-plugin): prevent actions infinite loop with multiple
ngxsForm
directives by @arturovt in #1890 - test(router-plugin): silence navigation warnings by @arturovt in #1891
- docs(store): add "Typing Operators" section to
operators.md
by @arturovt in #1892 - ci: remove bundlemon approval step by @markwhitfeld in #1902
- chore(store): remove
@Select
deprecation notice [for patch release] by @arturovt in #1899 - fix(router-plugin): prevent router overriding valid navigation by @arturovt in #1907
- fix(store): avoid incorrectly ordered state observable events by @arturovt in #1908
New Contributors
Full Changelog: v3.7.4...v3.7.5
v3.7.4
What's Changed
- fix: add support for Angular 14 by @arturovt in #1850
- fix(store): do not re-use the global
Store
instance between different apps by @arturovt in #1740 - fix(store): do not run
Promise.then
within synchronous tests when decorating factory by @arturovt in #1753 - fix(store): allow
@Select()
decorated properties to be accessed within constructors by @arturovt in #1804 - fix(store): handle mixed async scenarios for action handlers by @markwhitfeld in #1762
- fix(store): cancel uncompleted should unsubscribe before next by @markwhitfeld in #1763
- fix(store): provide
NoopNgxsExecutionStrategy
explicitly when the zone is nooped by @arturovt in #1819 - fix(store): complete the state stream once the root view is removed by @arturovt in #1830
- fix(store): be more explicit when checking if Angular is in test mode by @arturovt in #1831 & #1832
- fix(store): lint issue from PR by @arturovt in #1847
- fix(router-plugin): cleanup subscriptions when the root view is destroyed by @arturovt in #1754
- fix(devtools-plugin): do not connect when
disabled
is truthy by @arturovt in #1761 - fix(websocket-plugin): cleanup subscriptions and close the connection when the root view is destroyed by @arturovt in #1755
- fix(storage-plugin): only restore state if key matches addedStates by @rhutchison in #1746
- fix(form-plugin): do not destructure primitive types by @arturovt in #1845
- perf(store): run change detection once for all selectors when asynchronous action has been completed by @arturovt in #1828
- perf(store): tree-shake
isAngularInTestMode()
by @arturovt in #1739 - perf(store): tree-shake
ConfigValidator
,HostEnvironment
andisAngularInTestMode
by @arturovt in #1741 - perf(store): tree-shake
deepFreeze
by @arturovt in #1821 - perf(store): tree-shake
SelectFactory
by @arturovt in #1744 - perf(store): tree-shake errors and warnings by @arturovt in #1732
- perf(storage-plugin): tree-shake console.* calls and expand message by @arturovt in #1727
- perf(router-plugin): tree-shake
isAngularInTestMode()
by @arturovt in #1738 - docs: replace controls prop with value by @destus90 in #1788
- docs: add svg logos by @adisreyaj in #1742
- docs: add ngxs-history-plugin in the README file by @profanis in #1759
- docs: snippets by @joaqcid in #1769
- docs: snippets by @joaqcid in #1770
- docs: update
StorageEngine
section by @peterblazejewicz in #1781 - docs: module federation recipe by @adrian-goe in #1789
- docs(state): fix link to immer by @do-nat in #1810
- docs(installation): remove unused
ZooState
by @benceHornyak in #1834 - test: add integration test with Angular 12 (Ivy) by @splincode in #1750
- test: handle async action scenarios by @joaqcid in #1663
- test(store): ensure that selectors are leaving NGXS execution strategy and cause CD by @arturovt in #1825
- chore: clean up action test to follow AAA syntax with setup function by @markwhitfeld in #1751
- chore(store): add initial version of new strongly typed createSelector by @markwhitfeld in #1823
- build: handle tagged build failure correctly by @markwhitfeld in #1779
- build: disallow failure dev build job by @splincode in #1778
- build: temporarily skip faulty integration test in circle ci by @markwhitfeld in #1780
- ci: bundlesize checks should run reliably by @markwhitfeld in #1812
New Contributors
- @adisreyaj made their first contribution in #1742
- @profanis made their first contribution in #1759
- @peterblazejewicz made their first contribution in #1781
- @destus90 made their first contribution in #1788
- @adrian-goe made their first contribution in #1789
- @do-nat made their first contribution in #1810
- @benceHornyak made their first contribution in #1834
Full Changelog: v3.7.3...v3.7.4
v3.7.3
What's Changed
- fix: Add official support for Angular 13 by @internalsystemerror in #1798
- docs(store): Add state operator link to state docs by @isochronous in #1783
- docs: updated the Redux URL by @estrellajm in #1785
- docs: added redux reference link by @estrellajm in #1786
- docs(state): fix typo by @Lafaa in #1791
New Contributors
- @isochronous made their first contribution in #1783
- @Lafaa made their first contribution in #1791
Full Changelog: v3.7.2...v3.7.3