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 #2157
- docs: announce version 17 by @profanis in #2065
- docs: note the minimum angular version in release notes by @profanis in #2159
- feat(store): improve action decorator types by @ConnorUllmann in #2158
- docs: use the new logo by @profanis in #2163
- docs: schematics as separate page by @profanis in #2164
- refactor: enhance schematics behavior for monorepos by @dmitry-stepanenko in #2165
- docs: update contributors/sponsors by @emmanuel-ferdman in #2160
- build: add angular 18 support by @markwhitfeld in #2168
- chore: update CHANGELOG.md with missing items by @markwhitfeld in #2169
- docs: update waiting for app stability recipe for Angular 18 by @arturovt in #2170
- updated release article by @joaqcid in #2171
- chore: release v18.0.0 by @markwhitfeld in #2172
New Contributors
- @benoitnesme made their first contribution in #2059
- @linhub15 made their first contribution in #2070
- @TheKingDave made their first contribution in #2064
- @OanaSurdea made their first contribution in #2077
- @jpraetorius made their first contribution in #2079
- @ConnorUllmann made their first contribution in #2042
- @emmanuel-ferdman made their first contribution in #2160
Full Changelog: v3.8.2...v18.0.0