gitextract_eb1k2nce/ ├── .agents/ │ └── skills/ │ └── writing-docs/ │ └── SKILL.md ├── .devcontainer/ │ ├── devcontainer.json │ └── welcome-message.txt ├── .dockerignore ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.yml │ │ ├── config.yml │ │ ├── documentation-report.yml │ │ └── feature-request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── ci.yml │ ├── main.yml │ └── release.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .node-version ├── .nxignore ├── .prettierignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MIGRATION.md ├── README.md ├── build/ │ ├── config.ts │ ├── copy-schematics-core.ts │ ├── deploy-build.ts │ ├── example-app-server.js │ ├── generate-eslint-plugin.ts │ ├── publish-latest.ts │ ├── publish-next.ts │ ├── publish-release.ts │ ├── stackblitz.ts │ ├── tasks.ts │ ├── update-version-numbers.ts │ └── util.ts ├── eslint.config.mjs ├── jest.config.ts ├── jest.preset.js ├── modules/ │ ├── README.md │ ├── component/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 15_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 16_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── public_api.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── core/ │ │ │ │ ├── potential-observable.spec.ts │ │ │ │ ├── render-event/ │ │ │ │ │ ├── handlers.spec.ts │ │ │ │ │ └── manager.spec.ts │ │ │ │ ├── render-scheduler.spec.ts │ │ │ │ ├── tick-scheduler.spec.ts │ │ │ │ └── zone-helpers.spec.ts │ │ │ ├── fixtures/ │ │ │ │ ├── fixtures.ts │ │ │ │ ├── mock-event-emitter.ts │ │ │ │ └── mock-noop-ng-zone.ts │ │ │ ├── helpers.ts │ │ │ ├── let/ │ │ │ │ └── let.directive.spec.ts │ │ │ ├── push/ │ │ │ │ └── push.pipe.spec.ts │ │ │ └── types/ │ │ │ ├── let.directive.types.spec.ts │ │ │ ├── push.pipe.types.spec.ts │ │ │ └── utils.ts │ │ ├── src/ │ │ │ ├── core/ │ │ │ │ ├── potential-observable.ts │ │ │ │ ├── render-event/ │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ └── models.ts │ │ │ │ ├── render-scheduler.ts │ │ │ │ ├── tick-scheduler.ts │ │ │ │ └── zone-helpers.ts │ │ │ ├── index.ts │ │ │ ├── let/ │ │ │ │ └── let.directive.ts │ │ │ └── push/ │ │ │ └── push.pipe.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ ├── component-store/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 18_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── public_api.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── component-store.spec.ts │ │ │ ├── integration.spec.ts │ │ │ ├── integration_signals.spec.ts │ │ │ └── types/ │ │ │ ├── component-store.types.spec.ts │ │ │ ├── regression.types.spec.ts │ │ │ └── utils.ts │ │ ├── src/ │ │ │ ├── component-store.ts │ │ │ ├── debounce-sync.ts │ │ │ ├── index.ts │ │ │ └── lifecycle_hooks.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ ├── data/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── public_api.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── __snapshots__/ │ │ │ │ └── index.spec.ts.snap │ │ │ ├── files/ │ │ │ │ └── entity-metadata.ts.template │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── actions/ │ │ │ │ ├── entity-action-factory.spec.ts │ │ │ │ ├── entity-action-guard.spec.ts │ │ │ │ ├── entity-action-operators.spec.ts │ │ │ │ └── entity-cache-changes-set.spec.ts │ │ │ ├── dataservices/ │ │ │ │ ├── data-service-error.spec.ts │ │ │ │ ├── default-data.service.spec.ts │ │ │ │ └── entity-data.service.spec.ts │ │ │ ├── dispatchers/ │ │ │ │ └── entity-dispatcher.spec.ts │ │ │ ├── effects/ │ │ │ │ ├── entity-cache-effects.spec.ts │ │ │ │ ├── entity-effects.marbles.spec.ts │ │ │ │ └── entity-effects.spec.ts │ │ │ ├── entity-data.module.spec.ts │ │ │ ├── entity-metadata/ │ │ │ │ ├── entity-definition.service.spec.ts │ │ │ │ ├── entity-definition.spec.ts │ │ │ │ └── entity-filters.spec.ts │ │ │ ├── entity-services/ │ │ │ │ ├── entity-collection-service.spec.ts │ │ │ │ └── entity-services.spec.ts │ │ │ ├── reducers/ │ │ │ │ ├── entity-cache-reducer.spec.ts │ │ │ │ ├── entity-change-tracker-base.spec.ts │ │ │ │ ├── entity-collection-creator.spec.ts │ │ │ │ ├── entity-collection-reducer-registry.spec.ts │ │ │ │ └── entity-collection-reducer.spec.ts │ │ │ ├── selectors/ │ │ │ │ ├── entity-selectors$.spec.ts │ │ │ │ ├── entity-selectors.spec.ts │ │ │ │ └── related-entity-selectors.spec.ts │ │ │ └── utils/ │ │ │ ├── default-pluralizer.spec.ts │ │ │ └── utils.spec.ts │ │ ├── src/ │ │ │ ├── actions/ │ │ │ │ ├── entity-action-factory.ts │ │ │ │ ├── entity-action-guard.ts │ │ │ │ ├── entity-action-operators.ts │ │ │ │ ├── entity-action.ts │ │ │ │ ├── entity-cache-action.ts │ │ │ │ ├── entity-cache-change-set.ts │ │ │ │ ├── entity-op.ts │ │ │ │ ├── merge-strategy.ts │ │ │ │ └── update-response-data.ts │ │ │ ├── dataservices/ │ │ │ │ ├── data-service-error.ts │ │ │ │ ├── default-data-service-config.ts │ │ │ │ ├── default-data.service.ts │ │ │ │ ├── entity-cache-data.service.ts │ │ │ │ ├── entity-data.service.ts │ │ │ │ ├── http-url-generator.ts │ │ │ │ ├── interfaces.ts │ │ │ │ └── persistence-result-handler.service.ts │ │ │ ├── dispatchers/ │ │ │ │ ├── entity-cache-dispatcher.ts │ │ │ │ ├── entity-commands.ts │ │ │ │ ├── entity-dispatcher-base.ts │ │ │ │ ├── entity-dispatcher-default-options.ts │ │ │ │ ├── entity-dispatcher-factory.ts │ │ │ │ └── entity-dispatcher.ts │ │ │ ├── effects/ │ │ │ │ ├── entity-cache-effects.ts │ │ │ │ ├── entity-effects-scheduler.ts │ │ │ │ └── entity-effects.ts │ │ │ ├── entity-data-config.ts │ │ │ ├── entity-data-without-effects.module.ts │ │ │ ├── entity-data.module.ts │ │ │ ├── entity-metadata/ │ │ │ │ ├── entity-definition.service.ts │ │ │ │ ├── entity-definition.ts │ │ │ │ ├── entity-filters.ts │ │ │ │ └── entity-metadata.ts │ │ │ ├── entity-services/ │ │ │ │ ├── entity-collection-service-base.ts │ │ │ │ ├── entity-collection-service-elements-factory.ts │ │ │ │ ├── entity-collection-service-factory.ts │ │ │ │ ├── entity-collection-service.ts │ │ │ │ ├── entity-services-base.ts │ │ │ │ ├── entity-services-elements.ts │ │ │ │ └── entity-services.ts │ │ │ ├── index.ts │ │ │ ├── provide-entity-data.ts │ │ │ ├── reducers/ │ │ │ │ ├── constants.ts │ │ │ │ ├── entity-cache-reducer.ts │ │ │ │ ├── entity-cache.ts │ │ │ │ ├── entity-change-tracker-base.ts │ │ │ │ ├── entity-change-tracker.ts │ │ │ │ ├── entity-collection-creator.ts │ │ │ │ ├── entity-collection-reducer-methods.ts │ │ │ │ ├── entity-collection-reducer-registry.ts │ │ │ │ ├── entity-collection-reducer.ts │ │ │ │ └── entity-collection.ts │ │ │ ├── selectors/ │ │ │ │ ├── entity-cache-selector.ts │ │ │ │ ├── entity-selectors$.ts │ │ │ │ └── entity-selectors.ts │ │ │ └── utils/ │ │ │ ├── correlation-id-generator.ts │ │ │ ├── default-logger.ts │ │ │ ├── default-pluralizer.ts │ │ │ ├── guid-fns.ts │ │ │ ├── interfaces.ts │ │ │ └── utilities.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ ├── effects/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 13_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 15_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 18_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 6_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 9_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── public_api.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── __snapshots__/ │ │ │ │ └── index.spec.ts.snap │ │ │ ├── files/ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ ├── __name@dasherize__.effects.spec.ts.template │ │ │ │ └── __name@dasherize__.effects.ts.template │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── actions.spec.ts │ │ │ ├── effect_creator.spec.ts │ │ │ ├── effect_sources.spec.ts │ │ │ ├── effects_error_handler.spec.ts │ │ │ ├── effects_feature_module.spec.ts │ │ │ ├── effects_metadata.spec.ts │ │ │ ├── effects_resolver.spec.ts │ │ │ ├── effects_root_module.spec.ts │ │ │ ├── integration.spec.ts │ │ │ ├── provide_effects.spec.ts │ │ │ ├── types/ │ │ │ │ ├── effect_creator.spec.ts │ │ │ │ ├── effects_module.spec.ts │ │ │ │ ├── of_type.spec.ts │ │ │ │ ├── provide_effects.spec.ts │ │ │ │ └── utils.ts │ │ │ └── utils.spec.ts │ │ ├── src/ │ │ │ ├── actions.ts │ │ │ ├── effect_creator.ts │ │ │ ├── effect_notification.ts │ │ │ ├── effect_sources.ts │ │ │ ├── effects_actions.ts │ │ │ ├── effects_error_handler.ts │ │ │ ├── effects_feature_module.ts │ │ │ ├── effects_metadata.ts │ │ │ ├── effects_module.ts │ │ │ ├── effects_resolver.ts │ │ │ ├── effects_root_module.ts │ │ │ ├── effects_runner.ts │ │ │ ├── index.ts │ │ │ ├── lifecycle_hooks.ts │ │ │ ├── models.ts │ │ │ ├── provide_effects.ts │ │ │ ├── tokens.ts │ │ │ └── utils.ts │ │ ├── test-setup.ts │ │ ├── testing/ │ │ │ ├── index.ts │ │ │ ├── ng-package.json │ │ │ ├── spec/ │ │ │ │ └── mock_actions.spec.ts │ │ │ ├── src/ │ │ │ │ ├── public_api.ts │ │ │ │ └── testing.ts │ │ │ ├── tsconfig.build.json │ │ │ └── tsconfig.spec.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vitest.config.ts │ ├── entity/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 6_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── public_api.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── entity_state.spec.ts │ │ │ ├── fixtures/ │ │ │ │ └── book.ts │ │ │ ├── sorted_state_adapter.spec.ts │ │ │ ├── state_selectors.spec.ts │ │ │ ├── types/ │ │ │ │ ├── entity_selectors.types.spec.ts │ │ │ │ ├── entity_state.types.spec.ts │ │ │ │ └── utils.ts │ │ │ ├── unsorted_state_adapter.spec.ts │ │ │ └── utils.spec.ts │ │ ├── src/ │ │ │ ├── create_adapter.ts │ │ │ ├── entity_state.ts │ │ │ ├── index.ts │ │ │ ├── models.ts │ │ │ ├── sorted_state_adapter.ts │ │ │ ├── state_adapter.ts │ │ │ ├── state_selectors.ts │ │ │ ├── unsorted_state_adapter.ts │ │ │ └── utils.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ ├── eslint-plugin/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── migrations/ │ │ │ └── migration.json │ │ ├── package.json │ │ ├── project.json │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── scripts/ │ │ │ ├── generate-config.ts │ │ │ ├── generate-docs.ts │ │ │ └── generate-overview.ts │ │ ├── spec/ │ │ │ ├── exported-rules.spec.ts │ │ │ ├── fixtures/ │ │ │ │ └── tsconfig.json │ │ │ ├── rules/ │ │ │ │ ├── component-store/ │ │ │ │ │ ├── avoid-combining-component-store-selectors.spec.ts │ │ │ │ │ ├── avoid-mapping-component-store-selectors.spec.ts │ │ │ │ │ ├── require-super-ondestroy.spec.ts │ │ │ │ │ └── updater-explicit-return-type.spec.ts │ │ │ │ ├── effects/ │ │ │ │ │ ├── avoid-cyclic-effects.spec.ts │ │ │ │ │ ├── no-dispatch-in-effects.spec.ts │ │ │ │ │ ├── no-effects-in-providers.spec.ts │ │ │ │ │ ├── no-multiple-actions-in-effects.spec.ts │ │ │ │ │ ├── prefer-effect-callback-in-block-statement.spec.ts │ │ │ │ │ └── use-effects-lifecycle-interface.spec.ts │ │ │ │ ├── operators/ │ │ │ │ │ └── prefer-concat-latest-from.spec.ts │ │ │ │ ├── signals/ │ │ │ │ │ ├── enforce-type-call.spec.ts │ │ │ │ │ ├── prefer-protected-state.spec.ts │ │ │ │ │ ├── signal-state-no-arrays-at-root-level.spec.ts │ │ │ │ │ ├── signal-store-feature-should-use-generic-type.spec.ts │ │ │ │ │ └── with-state-no-arrays-at-root-level.spec.ts │ │ │ │ └── store/ │ │ │ │ ├── avoid-combining-selectors.spec.ts │ │ │ │ ├── avoid-dispatching-multiple-actions-sequentially.spec.ts │ │ │ │ ├── avoid-duplicate-actions-in-reducer.spec.ts │ │ │ │ ├── avoid-mapping-selectors.spec.ts │ │ │ │ ├── good-action-hygiene.spec.ts │ │ │ │ ├── no-multiple-global-stores.spec.ts │ │ │ │ ├── no-reducer-in-key-names.spec.ts │ │ │ │ ├── no-store-subscription.spec.ts │ │ │ │ ├── no-typed-global-store.spec.ts │ │ │ │ ├── on-function-explicit-return-type.spec.ts │ │ │ │ ├── prefer-action-creator-in-dispatch.spec.ts │ │ │ │ ├── prefer-action-creator-in-of-type.spec.ts │ │ │ │ ├── prefer-action-creator.spec.ts │ │ │ │ ├── prefer-inline-action-props.spec.ts │ │ │ │ ├── prefer-one-generic-in-create-for-feature-selector.spec.ts │ │ │ │ ├── prefer-selector-in-select.spec.ts │ │ │ │ ├── prefix-selectors-with-select.spec.ts │ │ │ │ ├── select-style.spec.ts │ │ │ │ └── use-consistent-global-store-name.spec.ts │ │ │ ├── schematics/ │ │ │ │ └── ng-add.spec.ts │ │ │ └── utils/ │ │ │ ├── from-fixture.spec.ts │ │ │ ├── from-fixture.ts │ │ │ ├── index.ts │ │ │ └── rule-tester.ts │ │ ├── src/ │ │ │ ├── configs/ │ │ │ │ ├── all-type-checked.json │ │ │ │ ├── all-type-checked.ts │ │ │ │ ├── all.json │ │ │ │ ├── all.ts │ │ │ │ ├── component-store.json │ │ │ │ ├── component-store.ts │ │ │ │ ├── effects-type-checked.json │ │ │ │ ├── effects-type-checked.ts │ │ │ │ ├── effects.json │ │ │ │ ├── effects.ts │ │ │ │ ├── operators.json │ │ │ │ ├── operators.ts │ │ │ │ ├── signals-type-checked.json │ │ │ │ ├── signals-type-checked.ts │ │ │ │ ├── signals.json │ │ │ │ ├── signals.ts │ │ │ │ ├── store.json │ │ │ │ └── store.ts │ │ │ ├── index.ts │ │ │ ├── rule-creator.ts │ │ │ ├── rules/ │ │ │ │ ├── component-store/ │ │ │ │ │ ├── avoid-combining-component-store-selectors.ts │ │ │ │ │ ├── avoid-mapping-component-store-selectors.ts │ │ │ │ │ ├── require-super-ondestroy.ts │ │ │ │ │ └── updater-explicit-return-type.ts │ │ │ │ ├── effects/ │ │ │ │ │ ├── avoid-cyclic-effects.ts │ │ │ │ │ ├── no-dispatch-in-effects.ts │ │ │ │ │ ├── no-effects-in-providers.ts │ │ │ │ │ ├── no-multiple-actions-in-effects.ts │ │ │ │ │ ├── prefer-action-creator-in-of-type.ts │ │ │ │ │ ├── prefer-effect-callback-in-block-statement.ts │ │ │ │ │ └── use-effects-lifecycle-interface.ts │ │ │ │ ├── index.ts │ │ │ │ ├── operators/ │ │ │ │ │ └── prefer-concat-latest-from.ts │ │ │ │ ├── signals/ │ │ │ │ │ ├── enforce-type-call.ts │ │ │ │ │ ├── prefer-protected-state.ts │ │ │ │ │ ├── signal-state-no-arrays-at-root-level.ts │ │ │ │ │ ├── signal-store-feature-should-use-generic-type.ts │ │ │ │ │ └── with-state-no-arrays-at-root-level.ts │ │ │ │ └── store/ │ │ │ │ ├── avoid-combining-selectors.ts │ │ │ │ ├── avoid-dispatching-multiple-actions-sequentially.ts │ │ │ │ ├── avoid-duplicate-actions-in-reducer.ts │ │ │ │ ├── avoid-mapping-selectors.ts │ │ │ │ ├── good-action-hygiene.ts │ │ │ │ ├── no-multiple-global-stores.ts │ │ │ │ ├── no-reducer-in-key-names.ts │ │ │ │ ├── no-store-subscription.ts │ │ │ │ ├── no-typed-global-store.ts │ │ │ │ ├── on-function-explicit-return-type.ts │ │ │ │ ├── prefer-action-creator-in-dispatch.ts │ │ │ │ ├── prefer-action-creator.ts │ │ │ │ ├── prefer-inline-action-props.ts │ │ │ │ ├── prefer-one-generic-in-create-for-feature-selector.ts │ │ │ │ ├── prefer-selector-in-select.ts │ │ │ │ ├── prefix-selectors-with-select.ts │ │ │ │ ├── select-style.ts │ │ │ │ └── use-consistent-global-store-name.ts │ │ │ └── utils/ │ │ │ ├── helper-functions/ │ │ │ │ ├── folder.ts │ │ │ │ ├── guards.ts │ │ │ │ ├── index.ts │ │ │ │ ├── ngrx-modules.ts │ │ │ │ ├── rules.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ └── selectors/ │ │ │ └── index.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ ├── v9/ │ │ │ ├── index.ts │ │ │ ├── tsconfig.build.json │ │ │ └── tsconfig.spec.json │ │ └── vite.config.mts │ ├── license-banner.txt │ ├── operators/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 20_0_0-rc_0-tap-response/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── concat_latest_from.spec.ts │ │ │ ├── map-response.spec.ts │ │ │ ├── tap-response.spec.ts │ │ │ └── types/ │ │ │ ├── tap-response.types.spec.ts │ │ │ └── utils.ts │ │ ├── src/ │ │ │ ├── concat_latest_from.ts │ │ │ ├── index.ts │ │ │ ├── map-response.ts │ │ │ └── tap-response.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ ├── router-store/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── data-persistence/ │ │ │ ├── index.ts │ │ │ ├── ng-package.json │ │ │ ├── src/ │ │ │ │ ├── operators.ts │ │ │ │ └── public_api.ts │ │ │ └── tsconfig.build.json │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 14_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 15_2_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 6_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 8_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 9_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── public_api.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── __snapshots__/ │ │ │ │ └── index.spec.ts.snap │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── integration.spec.ts │ │ │ ├── router_selectors.spec.ts │ │ │ ├── router_store_module.spec.ts │ │ │ ├── serializers.spec.ts │ │ │ ├── types/ │ │ │ │ ├── router_selectors.types.spec.ts │ │ │ │ └── utils.ts │ │ │ └── utils.ts │ │ ├── src/ │ │ │ ├── actions.ts │ │ │ ├── index.ts │ │ │ ├── models.ts │ │ │ ├── provide_router_store.ts │ │ │ ├── reducer.ts │ │ │ ├── router_selectors.ts │ │ │ ├── router_store_config.ts │ │ │ ├── router_store_module.ts │ │ │ ├── serializers/ │ │ │ │ ├── base.ts │ │ │ │ ├── full_serializer.ts │ │ │ │ └── minimal_serializer.ts │ │ │ └── store_router_connecting.service.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ ├── vite.config.mts │ │ └── webpack.e2e.config.js │ ├── schematics/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── collection.json │ │ ├── eslint.config.mjs │ │ ├── jest.config.ts │ │ ├── migrations/ │ │ │ ├── 6_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── package.json │ │ ├── project.json │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── src/ │ │ │ ├── action/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ └── __name@dasherize__.actions.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── cli.spec.ts │ │ │ ├── component-store/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ ├── __name@dasherize__.store.spec.ts.template │ │ │ │ │ └── __name@dasherize__.store.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── container/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ └── __name@dasherize__-component.spec.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── integration-files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ └── __name@dasherize__-component.spec.ts.template │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── data/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ ├── __name@dasherize__.service.spec.ts.template │ │ │ │ │ ├── __name@dasherize__.service.ts.template │ │ │ │ │ └── __name@dasherize__.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── effect/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ ├── __name@dasherize__.effects.spec.ts.template │ │ │ │ │ └── __name@dasherize__.effects.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── entity/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ ├── __name@dasherize@group-actions__.actions.ts.template │ │ │ │ │ ├── __name@dasherize@group-models__.model.ts.template │ │ │ │ │ ├── __name@dasherize@group-reducers__.reducer.spec.ts.template │ │ │ │ │ └── __name@dasherize@group-reducers__.reducer.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── feature/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── index.ts │ │ │ ├── ng-add/ │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── ngrx-push-migration/ │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── reducer/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ ├── __name@dasherize__.reducer.spec.ts.template │ │ │ │ │ └── __name@dasherize__.reducer.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ ├── selector/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ ├── files/ │ │ │ │ │ └── __name@dasherize@if-flat__/ │ │ │ │ │ ├── __name@dasherize__.selectors.spec.ts.template │ │ │ │ │ └── __name@dasherize__.selectors.ts.template │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.json │ │ │ │ └── schema.ts │ │ │ └── store/ │ │ │ ├── __snapshots__/ │ │ │ │ └── index.spec.ts.snap │ │ │ ├── files/ │ │ │ │ └── __statePath__/ │ │ │ │ └── index.ts.template │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ └── tsconfig.spec.json │ ├── schematics-core/ │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── project.json │ │ ├── testing/ │ │ │ ├── create-app-module.ts │ │ │ ├── create-package.ts │ │ │ ├── create-reducers.ts │ │ │ ├── create-workspace.ts │ │ │ ├── index.ts │ │ │ └── update.ts │ │ ├── tsconfig.lib.json │ │ └── utility/ │ │ ├── ast-utils.ts │ │ ├── change.ts │ │ ├── config.ts │ │ ├── find-component.ts │ │ ├── find-module.ts │ │ ├── json-utilts.ts │ │ ├── libs-version.ts │ │ ├── ngrx-utils.ts │ │ ├── package.ts │ │ ├── parse-name.ts │ │ ├── project.ts │ │ ├── standalone.ts │ │ ├── strings.ts │ │ ├── update.ts │ │ └── visitors.ts │ ├── signals/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── entities/ │ │ │ ├── index.ts │ │ │ ├── ng-package.json │ │ │ ├── spec/ │ │ │ │ ├── helpers.ts │ │ │ │ ├── mocks.ts │ │ │ │ ├── types/ │ │ │ │ │ ├── entity-config.types.spec.ts │ │ │ │ │ ├── helpers.ts │ │ │ │ │ └── with-entities.types.spec.ts │ │ │ │ ├── updaters/ │ │ │ │ │ ├── add-entities.spec.ts │ │ │ │ │ ├── add-entity.spec.ts │ │ │ │ │ ├── prepend-entities.spec.ts │ │ │ │ │ ├── prepend-entity.spec.ts │ │ │ │ │ ├── remove-all-entities.spec.ts │ │ │ │ │ ├── remove-entities.spec.ts │ │ │ │ │ ├── remove-entity.spec.ts │ │ │ │ │ ├── set-all-entities.spec.ts │ │ │ │ │ ├── set-entities.spec.ts │ │ │ │ │ ├── set-entity.spec.ts │ │ │ │ │ ├── update-all-entities.spec.ts │ │ │ │ │ ├── update-entities.spec.ts │ │ │ │ │ ├── update-entity.spec.ts │ │ │ │ │ ├── upsert-entities.spec.ts │ │ │ │ │ └── upsert-entity.spec.ts │ │ │ │ └── with-entities.spec.ts │ │ │ └── src/ │ │ │ ├── entity-config.ts │ │ │ ├── helpers.ts │ │ │ ├── index.ts │ │ │ ├── models.ts │ │ │ ├── updaters/ │ │ │ │ ├── add-entities.ts │ │ │ │ ├── add-entity.ts │ │ │ │ ├── prepend-entities.ts │ │ │ │ ├── prepend-entity.ts │ │ │ │ ├── remove-all-entities.ts │ │ │ │ ├── remove-entities.ts │ │ │ │ ├── remove-entity.ts │ │ │ │ ├── set-all-entities.ts │ │ │ │ ├── set-entities.ts │ │ │ │ ├── set-entity.ts │ │ │ │ ├── update-all-entities.ts │ │ │ │ ├── update-entities.ts │ │ │ │ ├── update-entity.ts │ │ │ │ ├── upsert-entities.ts │ │ │ │ └── upsert-entity.ts │ │ │ └── with-entities.ts │ │ ├── eslint.config.mjs │ │ ├── events/ │ │ │ ├── index.ts │ │ │ ├── ng-package.json │ │ │ ├── spec/ │ │ │ │ ├── dispatcher.spec.ts │ │ │ │ ├── event-creator-group.spec.ts │ │ │ │ ├── event-creator.spec.ts │ │ │ │ ├── events-service.spec.ts │ │ │ │ ├── inject-dispatch.spec.ts │ │ │ │ ├── integration.spec.ts │ │ │ │ ├── with-event-handlers.spec.ts │ │ │ │ └── with-reducer.spec.ts │ │ │ └── src/ │ │ │ ├── case-reducer.ts │ │ │ ├── dispatcher.ts │ │ │ ├── event-creator-group.ts │ │ │ ├── event-creator.ts │ │ │ ├── event-instance.ts │ │ │ ├── event-scope.ts │ │ │ ├── events-service.ts │ │ │ ├── index.ts │ │ │ ├── inject-dispatch.ts │ │ │ ├── with-event-handlers.ts │ │ │ └── with-reducer.ts │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 18_0_0-rc_3-protected-state/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 18_0_0-rc_3-writablestatesource/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 19_0_0-rc_0-props/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 21_0_0-beta_0-rename-withEffects-to-withEventHandlers/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── rxjs-interop/ │ │ │ ├── index.ts │ │ │ ├── ng-package.json │ │ │ ├── spec/ │ │ │ │ └── rx-method.spec.ts │ │ │ └── src/ │ │ │ ├── index.ts │ │ │ └── rx-method.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── deep-computed.spec.ts │ │ │ ├── deep-signal.spec.ts │ │ │ ├── helpers.ts │ │ │ ├── signal-method.spec.ts │ │ │ ├── signal-state.spec.ts │ │ │ ├── signal-store-feature.spec.ts │ │ │ ├── signal-store.spec.ts │ │ │ ├── state-source.spec.ts │ │ │ ├── types/ │ │ │ │ ├── helpers.ts │ │ │ │ ├── patch-state.types.spec.ts │ │ │ │ ├── signal-state.types.spec.ts │ │ │ │ ├── signal-store.types.spec.ts │ │ │ │ ├── with-computed.types.spec.ts │ │ │ │ └── with-linked-state.types.spec.ts │ │ │ ├── with-computed.spec.ts │ │ │ ├── with-feature.spec.ts │ │ │ ├── with-hooks.spec.ts │ │ │ ├── with-linked-state.spec.ts │ │ │ ├── with-methods.spec.ts │ │ │ ├── with-props.spec.ts │ │ │ └── with-state.spec.ts │ │ ├── src/ │ │ │ ├── deep-computed.ts │ │ │ ├── deep-signal.ts │ │ │ ├── index.ts │ │ │ ├── signal-method.ts │ │ │ ├── signal-state.ts │ │ │ ├── signal-store-assertions.ts │ │ │ ├── signal-store-feature.ts │ │ │ ├── signal-store-models.ts │ │ │ ├── signal-store.ts │ │ │ ├── state-source.ts │ │ │ ├── ts-helpers.ts │ │ │ ├── with-computed.ts │ │ │ ├── with-feature.ts │ │ │ ├── with-hooks.ts │ │ │ ├── with-linked-state.ts │ │ │ ├── with-methods.ts │ │ │ ├── with-props.ts │ │ │ └── with-state.ts │ │ ├── test-setup.ts │ │ ├── testing/ │ │ │ ├── index.ts │ │ │ ├── ng-package.json │ │ │ ├── spec/ │ │ │ │ ├── types/ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ └── uprotected.types.spec.ts │ │ │ │ └── unprotected.spec.ts │ │ │ └── src/ │ │ │ ├── index.ts │ │ │ └── unprotected.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ ├── store/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── migrations/ │ │ │ ├── 13_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 13_0_0-rc/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 15_2_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 16_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 18_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 6_0_0/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 8_0_0-beta/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── 8_0_0-rc/ │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ └── migration.json │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── project.json │ │ ├── public_api.ts │ │ ├── schematics/ │ │ │ ├── collection.json │ │ │ └── ng-add/ │ │ │ ├── files/ │ │ │ │ └── __statePath__/ │ │ │ │ └── index.ts.template │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── schema.json │ │ │ └── schema.ts │ │ ├── schematics-core/ │ │ │ ├── eslint.config.mjs │ │ │ ├── index.ts │ │ │ ├── tsconfig.lib.json │ │ │ └── utility/ │ │ │ ├── ast-utils.ts │ │ │ ├── change.ts │ │ │ ├── config.ts │ │ │ ├── find-component.ts │ │ │ ├── find-module.ts │ │ │ ├── json-utilts.ts │ │ │ ├── libs-version.ts │ │ │ ├── ngrx-utils.ts │ │ │ ├── package.ts │ │ │ ├── parse-name.ts │ │ │ ├── project.ts │ │ │ ├── standalone.ts │ │ │ ├── strings.ts │ │ │ ├── update.ts │ │ │ └── visitors.ts │ │ ├── spec/ │ │ │ ├── action_creator.spec.ts │ │ │ ├── action_group_creator.spec.ts │ │ │ ├── edge.spec.ts │ │ │ ├── feature_creator.spec.ts │ │ │ ├── fixtures/ │ │ │ │ ├── counter.ts │ │ │ │ ├── edge_todos.ts │ │ │ │ └── todos.ts │ │ │ ├── flags.spec.ts │ │ │ ├── helpers.spec.ts │ │ │ ├── integration.spec.ts │ │ │ ├── integration_signals.spec.ts │ │ │ ├── meta-reducers/ │ │ │ │ ├── immutability_reducer.spec.ts │ │ │ │ ├── inNgZoneAssert_reducer.spec.ts │ │ │ │ └── serialization_reducer.spec.ts │ │ │ ├── modules.spec.ts │ │ │ ├── ngc/ │ │ │ │ ├── main.ts │ │ │ │ └── tsconfig.ngc.json │ │ │ ├── reducer_creator.spec.ts │ │ │ ├── reducer_manager.spec.ts │ │ │ ├── runtime_checks.spec.ts │ │ │ ├── runtime_checks_meta_reducers.spec.ts │ │ │ ├── selector.spec.ts │ │ │ ├── state.spec.ts │ │ │ ├── store.spec.ts │ │ │ ├── store_pipes.spec.ts │ │ │ ├── types/ │ │ │ │ ├── action_creator.spec.ts │ │ │ │ ├── action_group_creator.spec.ts │ │ │ │ ├── feature_creator.spec.ts │ │ │ │ ├── reducer_creator.spec.ts │ │ │ │ ├── select.spec.ts │ │ │ │ ├── select_signal.spec.ts │ │ │ │ ├── selector.spec.ts │ │ │ │ ├── store.spec.ts │ │ │ │ ├── store_module.spec.ts │ │ │ │ └── utils.ts │ │ │ └── utils.spec.ts │ │ ├── src/ │ │ │ ├── action_creator.ts │ │ │ ├── action_group_creator.ts │ │ │ ├── actions_subject.ts │ │ │ ├── feature_creator.ts │ │ │ ├── flags.ts │ │ │ ├── globals.ts │ │ │ ├── helpers.ts │ │ │ ├── index.ts │ │ │ ├── meta-reducers/ │ │ │ │ ├── immutability_reducer.ts │ │ │ │ ├── inNgZoneAssert_reducer.ts │ │ │ │ ├── index.ts │ │ │ │ ├── serialization_reducer.ts │ │ │ │ └── utils.ts │ │ │ ├── models.ts │ │ │ ├── private_export.ts │ │ │ ├── provide_store.ts │ │ │ ├── reducer_creator.ts │ │ │ ├── reducer_manager.ts │ │ │ ├── runtime_checks.ts │ │ │ ├── scanned_actions_subject.ts │ │ │ ├── selector.ts │ │ │ ├── state.ts │ │ │ ├── store.ts │ │ │ ├── store_config.ts │ │ │ ├── store_module.ts │ │ │ ├── tokens.ts │ │ │ └── utils.ts │ │ ├── test-setup.ts │ │ ├── testing/ │ │ │ ├── index.ts │ │ │ ├── ng-package.json │ │ │ ├── spec/ │ │ │ │ └── mock_store.spec.ts │ │ │ ├── src/ │ │ │ │ ├── mock_reducer_manager.ts │ │ │ │ ├── mock_selector.ts │ │ │ │ ├── mock_state.ts │ │ │ │ ├── mock_store.ts │ │ │ │ ├── public_api.ts │ │ │ │ ├── testing.ts │ │ │ │ └── tokens.ts │ │ │ ├── tsconfig.build.json │ │ │ └── tsconfig.spec.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.schematics.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ └── store-devtools/ │ ├── CHANGELOG.md │ ├── README.md │ ├── eslint.config.mjs │ ├── index.ts │ ├── migrations/ │ │ ├── 17_0_0-beta/ │ │ │ ├── index.spec.ts │ │ │ └── index.ts │ │ ├── 6_0_0/ │ │ │ ├── index.spec.ts │ │ │ └── index.ts │ │ └── migration.json │ ├── ng-package.json │ ├── package.json │ ├── project.json │ ├── public_api.ts │ ├── schematics/ │ │ ├── collection.json │ │ └── ng-add/ │ │ ├── __snapshots__/ │ │ │ └── index.spec.ts.snap │ │ ├── index.spec.ts │ │ ├── index.ts │ │ ├── schema.json │ │ └── schema.ts │ ├── schematics-core/ │ │ ├── eslint.config.mjs │ │ ├── index.ts │ │ ├── tsconfig.lib.json │ │ └── utility/ │ │ ├── ast-utils.ts │ │ ├── change.ts │ │ ├── config.ts │ │ ├── find-component.ts │ │ ├── find-module.ts │ │ ├── json-utilts.ts │ │ ├── libs-version.ts │ │ ├── ngrx-utils.ts │ │ ├── package.ts │ │ ├── parse-name.ts │ │ ├── project.ts │ │ ├── standalone.ts │ │ ├── strings.ts │ │ ├── update.ts │ │ └── visitors.ts │ ├── spec/ │ │ ├── config.spec.ts │ │ ├── extension.spec.ts │ │ ├── integration.spec.ts │ │ └── store.spec.ts │ ├── src/ │ │ ├── actions.ts │ │ ├── config.ts │ │ ├── devtools-dispatcher.ts │ │ ├── devtools.ts │ │ ├── extension.ts │ │ ├── index.ts │ │ ├── instrument.ts │ │ ├── provide-store-devtools.ts │ │ ├── reducer.ts │ │ ├── utils.ts │ │ └── zone-config.ts │ ├── test-setup.ts │ ├── tsconfig.build.json │ ├── tsconfig.schematics.json │ ├── tsconfig.spec.json │ └── vite.config.mts ├── nx.json ├── package.json ├── prettier.config.js ├── projects/ │ ├── example-app/ │ │ ├── README.md │ │ ├── eslint.config.mjs │ │ ├── project.json │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app-routing.module.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── auth/ │ │ │ │ │ ├── actions/ │ │ │ │ │ │ ├── auth-api.actions.ts │ │ │ │ │ │ ├── auth.actions.ts │ │ │ │ │ │ └── login-page.actions.ts │ │ │ │ │ ├── auth-routing.module.ts │ │ │ │ │ ├── auth.module.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ │ ├── login-form.component.spec.ts.snap │ │ │ │ │ │ │ └── logout-confirmation-dialog.component.spec.ts.snap │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── login-form.component.spec.ts │ │ │ │ │ │ ├── login-form.component.ts │ │ │ │ │ │ ├── logout-confirmation-dialog.component.spec.ts │ │ │ │ │ │ └── logout-confirmation-dialog.component.ts │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ │ └── login-page.component.spec.ts.snap │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── login-page.component.spec.ts │ │ │ │ │ │ └── login-page.component.ts │ │ │ │ │ ├── effects/ │ │ │ │ │ │ ├── auth.effects.spec.ts │ │ │ │ │ │ ├── auth.effects.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── user.ts │ │ │ │ │ ├── reducers/ │ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ │ ├── auth.reducer.spec.ts.snap │ │ │ │ │ │ │ └── login-page.reducer.spec.ts.snap │ │ │ │ │ │ ├── auth.reducer.spec.ts │ │ │ │ │ │ ├── auth.reducer.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── login-page.reducer.spec.ts │ │ │ │ │ │ └── login-page.reducer.ts │ │ │ │ │ └── services/ │ │ │ │ │ ├── auth-guard.service.spec.ts │ │ │ │ │ ├── auth-guard.service.ts │ │ │ │ │ ├── auth.service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── books/ │ │ │ │ │ ├── actions/ │ │ │ │ │ │ ├── book.actions.ts │ │ │ │ │ │ ├── books-api.actions.ts │ │ │ │ │ │ ├── collection-api.actions.ts │ │ │ │ │ │ ├── collection-page.actions.ts │ │ │ │ │ │ ├── find-book-page.actions.ts │ │ │ │ │ │ ├── selected-book-page.actions.ts │ │ │ │ │ │ └── view-book-page.actions.ts │ │ │ │ │ ├── books-routing.module.ts │ │ │ │ │ ├── books.module.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── book-authors.component.ts │ │ │ │ │ │ ├── book-detail.component.ts │ │ │ │ │ │ ├── book-preview-list.component.ts │ │ │ │ │ │ ├── book-preview.component.ts │ │ │ │ │ │ ├── book-search.component.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ │ ├── collection-page.component.spec.ts.snap │ │ │ │ │ │ │ ├── find-book-page.component.spec.ts.snap │ │ │ │ │ │ │ ├── selected-book-page.component.spec.ts.snap │ │ │ │ │ │ │ └── view-book-page.component.spec.ts.snap │ │ │ │ │ │ ├── collection-page.component.spec.ts │ │ │ │ │ │ ├── collection-page.component.ts │ │ │ │ │ │ ├── find-book-page.component.spec.ts │ │ │ │ │ │ ├── find-book-page.component.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── selected-book-page.component.spec.ts │ │ │ │ │ │ ├── selected-book-page.component.ts │ │ │ │ │ │ ├── view-book-page.component.spec.ts │ │ │ │ │ │ └── view-book-page.component.ts │ │ │ │ │ ├── effects/ │ │ │ │ │ │ ├── book.effects.spec.ts │ │ │ │ │ │ ├── book.effects.ts │ │ │ │ │ │ ├── collection.effects.spec.ts │ │ │ │ │ │ ├── collection.effects.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── guards/ │ │ │ │ │ │ ├── book-exists.guard.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── book.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── reducers/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── books.reducer.spec.ts.snap │ │ │ │ │ ├── books.reducer.spec.ts │ │ │ │ │ ├── books.reducer.ts │ │ │ │ │ ├── collection.reducer.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── search.reducer.ts │ │ │ │ ├── core/ │ │ │ │ │ ├── actions/ │ │ │ │ │ │ ├── layout.actions.ts │ │ │ │ │ │ └── user.actions.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── layout.component.ts │ │ │ │ │ │ ├── nav-item.component.ts │ │ │ │ │ │ ├── sidenav.component.ts │ │ │ │ │ │ └── toolbar.component.ts │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── not-found-page.component.ts │ │ │ │ │ ├── core.module.ts │ │ │ │ │ ├── effects/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── router.effects.spec.ts │ │ │ │ │ │ ├── router.effects.ts │ │ │ │ │ │ ├── user.effects.spec.ts │ │ │ │ │ │ └── user.effects.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── reducers/ │ │ │ │ │ │ └── layout.reducer.ts │ │ │ │ │ └── services/ │ │ │ │ │ ├── book-storage.service.spec.ts │ │ │ │ │ ├── book-storage.service.ts │ │ │ │ │ ├── google-books.service.spec.ts │ │ │ │ │ ├── google-books.service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── material/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── material.module.ts │ │ │ │ ├── reducers/ │ │ │ │ │ └── index.ts │ │ │ │ └── shared/ │ │ │ │ └── pipes/ │ │ │ │ ├── add-commas.pipe.spec.ts │ │ │ │ ├── add-commas.pipe.ts │ │ │ │ ├── ellipsis.pipe.spec.ts │ │ │ │ ├── ellipsis.pipe.ts │ │ │ │ └── index.ts │ │ │ ├── assets/ │ │ │ │ ├── .gitkeep │ │ │ │ └── .npmignore │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.css │ │ │ └── test-setup.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.spec.json │ │ └── vite.config.mts │ ├── example-app-e2e/ │ │ ├── cypress.config.ts │ │ ├── eslint.config.mjs │ │ ├── project.json │ │ ├── src/ │ │ │ ├── integration/ │ │ │ │ └── round-trip.cy.ts │ │ │ └── support/ │ │ │ ├── commands.ts │ │ │ └── e2e.ts │ │ └── tsconfig.json │ ├── standalone-app/ │ │ ├── eslint.config.mjs │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.component.spec.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── app.effects.ts │ │ │ │ ├── lazy/ │ │ │ │ │ ├── feature.component.ts │ │ │ │ │ ├── feature.routes.ts │ │ │ │ │ └── feature.state.ts │ │ │ │ └── test.pipe.ts │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.css │ │ │ └── test-setup.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.editor.json │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── standalone-app-e2e/ │ │ ├── cypress.config.ts │ │ ├── eslint.config.mjs │ │ ├── project.json │ │ ├── src/ │ │ │ ├── integration/ │ │ │ │ └── app.cy.ts │ │ │ └── support/ │ │ │ ├── app.po.ts │ │ │ └── e2e.ts │ │ └── tsconfig.json │ └── www/ │ ├── eslint.config.mjs │ ├── firebase.json │ ├── index.html │ ├── package.json │ ├── project.json │ ├── public/ │ │ ├── .gitkeep │ │ ├── _redirects │ │ ├── browserconfig.xml │ │ ├── images/ │ │ │ └── guide/ │ │ │ └── store/ │ │ │ └── state-management-lifecycle.psd │ │ └── site.webmanifest │ ├── src/ │ │ ├── _code_theme.scss │ │ ├── _theme.scss │ │ ├── app/ │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.config.browser.ts │ │ │ ├── app.config.server.ts │ │ │ ├── app.config.ts │ │ │ ├── components/ │ │ │ │ ├── banner-animation.component.ts │ │ │ │ ├── contributor-card.component.ts │ │ │ │ ├── contributor-list.component.ts │ │ │ │ ├── contributor-navigation.component.ts │ │ │ │ ├── docs/ │ │ │ │ │ ├── alert.component.ts │ │ │ │ │ ├── code-example.component.ts │ │ │ │ │ ├── code-highlight.pipe.ts │ │ │ │ │ ├── code-tabs.component.ts │ │ │ │ │ ├── deprecated-chip.component.ts │ │ │ │ │ ├── inline-markdown.pipe.ts │ │ │ │ │ ├── install-instructions.component.ts │ │ │ │ │ ├── markdown-article.component.ts │ │ │ │ │ ├── markdown-symbol-link.component.ts │ │ │ │ │ ├── markdown.pipe.ts │ │ │ │ │ ├── stackblitz.component.ts │ │ │ │ │ ├── symbol-api.component.ts │ │ │ │ │ ├── symbol-chip.component.ts │ │ │ │ │ ├── symbol-code-link.component.ts │ │ │ │ │ ├── symbol-excerpt-group.component.ts │ │ │ │ │ ├── symbol-excerpt.component.ts │ │ │ │ │ ├── symbol-header.component.ts │ │ │ │ │ ├── symbol-link.component.ts │ │ │ │ │ ├── symbol-methods.component.ts │ │ │ │ │ ├── symbol-params.component.ts │ │ │ │ │ ├── symbol-popover.component.ts │ │ │ │ │ ├── symbol-returns.component.ts │ │ │ │ │ ├── symbol-summary.component.ts │ │ │ │ │ ├── symbol-type-params.component.ts │ │ │ │ │ ├── symbol-usage-notes.component.ts │ │ │ │ │ └── symbol.component.ts │ │ │ │ ├── footer.component.ts │ │ │ │ ├── guide-footer.component.ts │ │ │ │ ├── guide-link.component.ts │ │ │ │ ├── guide-section.component.ts │ │ │ │ ├── menu.component.ts │ │ │ │ ├── styled-box.component.ts │ │ │ │ ├── theme-toggle.component.ts │ │ │ │ ├── top-banner.component.ts │ │ │ │ └── version-navigation.component.ts │ │ │ ├── data/ │ │ │ │ ├── contributors.json │ │ │ │ └── versionInfo.json │ │ │ ├── examples/ │ │ │ │ ├── __base/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── _theme.scss │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.config.ts │ │ │ │ │ │ ├── main.ts │ │ │ │ │ │ └── styles.scss │ │ │ │ │ ├── stackblitz-empty.yml │ │ │ │ │ ├── stackblitz.yml │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── vite.config.js │ │ │ │ ├── component-store-paginator/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ ├── paginator.component.ts │ │ │ │ │ │ ├── paginator.html │ │ │ │ │ │ └── paginator.scss │ │ │ │ │ ├── index.html │ │ │ │ │ ├── main.ts │ │ │ │ │ └── styles.scss │ │ │ │ ├── component-store-paginator-service/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ ├── paginator.component.ts │ │ │ │ │ │ ├── paginator.html │ │ │ │ │ │ ├── paginator.scss │ │ │ │ │ │ └── paginator.store.ts │ │ │ │ │ ├── index.html │ │ │ │ │ ├── main.ts │ │ │ │ │ └── styles.scss │ │ │ │ ├── component-store-slide-toggle/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── app.component.css │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ ├── slide-toggle.component.ts │ │ │ │ │ │ ├── slide-toggle.html │ │ │ │ │ │ └── slide-toggle.scss │ │ │ │ │ ├── index.html │ │ │ │ │ └── main.ts │ │ │ │ ├── examples.service.ts │ │ │ │ ├── ngrx-start/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.config.ts │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ └── main.ts │ │ │ │ │ └── stackblitz.yml │ │ │ │ ├── router-store-selectors/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── app.component.css │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.config.ts │ │ │ │ │ │ ├── car/ │ │ │ │ │ │ │ ├── car.actions.ts │ │ │ │ │ │ │ ├── car.component.css │ │ │ │ │ │ │ ├── car.component.html │ │ │ │ │ │ │ ├── car.component.ts │ │ │ │ │ │ │ ├── car.reducer.ts │ │ │ │ │ │ │ └── car.selectors.ts │ │ │ │ │ │ └── router.selectors.ts │ │ │ │ │ ├── index.html │ │ │ │ │ └── main.ts │ │ │ │ ├── signals-01/ │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── app.component.ts │ │ │ │ │ └── stackblitz.yml │ │ │ │ ├── store/ │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.config.ts │ │ │ │ │ │ ├── counter.actions.ts │ │ │ │ │ │ ├── counter.reducer.ts │ │ │ │ │ │ └── my-counter/ │ │ │ │ │ │ ├── my-counter.component.todo.ts │ │ │ │ │ │ └── my-counter.component.ts │ │ │ │ │ └── stackblitz.yml │ │ │ │ ├── store-walkthrough/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── src/ │ │ │ │ │ │ ├── app.config.ts │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ ├── book-collection/ │ │ │ │ │ │ │ ├── book-collection.css │ │ │ │ │ │ │ └── book-collection.ts │ │ │ │ │ │ ├── book-list/ │ │ │ │ │ │ │ ├── book-list.css │ │ │ │ │ │ │ ├── book-list.ts │ │ │ │ │ │ │ ├── book.ts │ │ │ │ │ │ │ └── books-service.ts │ │ │ │ │ │ ├── main.ts │ │ │ │ │ │ └── state/ │ │ │ │ │ │ ├── app.state.ts │ │ │ │ │ │ ├── books.actions.ts │ │ │ │ │ │ ├── books.reducer.ts │ │ │ │ │ │ ├── books.selectors.ts │ │ │ │ │ │ └── collection.reducer.ts │ │ │ │ │ └── stackblitz.yml │ │ │ │ └── testing-store/ │ │ │ │ └── src/ │ │ │ │ ├── .browserslistrc │ │ │ │ ├── app/ │ │ │ │ │ ├── actions/ │ │ │ │ │ │ ├── auth.actions.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── app.component.html │ │ │ │ │ ├── app.component.spec.ts │ │ │ │ │ ├── app.component.ts │ │ │ │ │ ├── app.module.ts │ │ │ │ │ ├── book-collection/ │ │ │ │ │ │ ├── book-collection.component.css │ │ │ │ │ │ ├── book-collection.component.html │ │ │ │ │ │ └── book-collection.component.ts │ │ │ │ │ ├── book-list/ │ │ │ │ │ │ ├── book-list.component.css │ │ │ │ │ │ ├── book-list.component.html │ │ │ │ │ │ ├── book-list.component.ts │ │ │ │ │ │ ├── books.model.ts │ │ │ │ │ │ └── books.service.ts │ │ │ │ │ ├── integration.spec.ts │ │ │ │ │ ├── reducers/ │ │ │ │ │ │ ├── auth.reducer.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── state/ │ │ │ │ │ │ ├── app.state.ts │ │ │ │ │ │ ├── books.actions.ts │ │ │ │ │ │ ├── books.reducer.spec.ts │ │ │ │ │ │ ├── books.reducer.ts │ │ │ │ │ │ ├── books.selectors.spec.ts │ │ │ │ │ │ ├── books.selectors.ts │ │ │ │ │ │ ├── collection.reducer.spec.ts │ │ │ │ │ │ └── collection.reducer.ts │ │ │ │ │ ├── user-greeting.component.spec.ts │ │ │ │ │ └── user-greeting.component.ts │ │ │ │ ├── index.html │ │ │ │ ├── main-test.ts │ │ │ │ ├── main.ts │ │ │ │ └── styles.css │ │ │ ├── pages/ │ │ │ │ ├── (home).page.ts │ │ │ │ ├── about.page.ts │ │ │ │ ├── api/ │ │ │ │ │ ├── [package]/ │ │ │ │ │ │ ├── [subpackage]/ │ │ │ │ │ │ │ └── [symbol].page.ts │ │ │ │ │ │ └── [symbol].page.ts │ │ │ │ │ └── index.page.ts │ │ │ │ ├── guide/ │ │ │ │ │ ├── component/ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── let.md │ │ │ │ │ │ └── push.md │ │ │ │ │ ├── component-store/ │ │ │ │ │ │ ├── comparison.md │ │ │ │ │ │ ├── effect.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── initialization.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── lifecycle.md │ │ │ │ │ │ ├── read.md │ │ │ │ │ │ ├── usage.md │ │ │ │ │ │ └── write.md │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── architecture-overview.md │ │ │ │ │ │ ├── architecture.md │ │ │ │ │ │ ├── entity-actions.md │ │ │ │ │ │ ├── entity-change-tracker.md │ │ │ │ │ │ ├── entity-collection-service.md │ │ │ │ │ │ ├── entity-collection.md │ │ │ │ │ │ ├── entity-dataservice.md │ │ │ │ │ │ ├── entity-effects.md │ │ │ │ │ │ ├── entity-metadata.md │ │ │ │ │ │ ├── entity-reducer.md │ │ │ │ │ │ ├── entity-services.md │ │ │ │ │ │ ├── extension-points.md │ │ │ │ │ │ ├── faq.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── limitations.md │ │ │ │ │ │ └── save-entities.md │ │ │ │ │ ├── effects/ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── lifecycle.md │ │ │ │ │ │ ├── operators.md │ │ │ │ │ │ └── testing.md │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── adapter.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── interfaces.md │ │ │ │ │ │ └── recipes/ │ │ │ │ │ │ ├── additional-state-properties.md │ │ │ │ │ │ └── entity-adapter-with-feature-creator.md │ │ │ │ │ ├── eslint-plugin/ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ └── rules/ │ │ │ │ │ │ ├── avoid-combining-component-store-selectors.md │ │ │ │ │ │ ├── avoid-combining-selectors.md │ │ │ │ │ │ ├── avoid-cyclic-effects.md │ │ │ │ │ │ ├── avoid-dispatching-multiple-actions-sequentially.md │ │ │ │ │ │ ├── avoid-duplicate-actions-in-reducer.md │ │ │ │ │ │ ├── avoid-mapping-component-store-selectors.md │ │ │ │ │ │ ├── avoid-mapping-selectors.md │ │ │ │ │ │ ├── enforce-type-call.md │ │ │ │ │ │ ├── good-action-hygiene.md │ │ │ │ │ │ ├── no-dispatch-in-effects.md │ │ │ │ │ │ ├── no-effects-in-providers.md │ │ │ │ │ │ ├── no-multiple-actions-in-effects.md │ │ │ │ │ │ ├── no-multiple-global-stores.md │ │ │ │ │ │ ├── no-reducer-in-key-names.md │ │ │ │ │ │ ├── no-store-subscription.md │ │ │ │ │ │ ├── no-typed-global-store.md │ │ │ │ │ │ ├── on-function-explicit-return-type.md │ │ │ │ │ │ ├── prefer-action-creator-in-dispatch.md │ │ │ │ │ │ ├── prefer-action-creator-in-of-type.md │ │ │ │ │ │ ├── prefer-action-creator.md │ │ │ │ │ │ ├── prefer-concat-latest-from.md │ │ │ │ │ │ ├── prefer-effect-callback-in-block-statement.md │ │ │ │ │ │ ├── prefer-inline-action-props.md │ │ │ │ │ │ ├── prefer-one-generic-in-create-for-feature-selector.md │ │ │ │ │ │ ├── prefer-protected-state.md │ │ │ │ │ │ ├── prefer-selector-in-select.md │ │ │ │ │ │ ├── prefix-selectors-with-select.md │ │ │ │ │ │ ├── require-super-ondestroy.md │ │ │ │ │ │ ├── select-style.md │ │ │ │ │ │ ├── signal-state-no-arrays-at-root-level.md │ │ │ │ │ │ ├── signal-store-feature-should-use-generic-type.md │ │ │ │ │ │ ├── updater-explicit-return-type.md │ │ │ │ │ │ ├── use-consistent-global-store-name.md │ │ │ │ │ │ ├── use-effects-lifecycle-interface.md │ │ │ │ │ │ └── with-state-no-arrays-at-root-level.md │ │ │ │ │ ├── migration/ │ │ │ │ │ │ ├── v10.md │ │ │ │ │ │ ├── v11.md │ │ │ │ │ │ ├── v12.md │ │ │ │ │ │ ├── v13.md │ │ │ │ │ │ ├── v14.md │ │ │ │ │ │ ├── v15.md │ │ │ │ │ │ ├── v16.md │ │ │ │ │ │ ├── v17.md │ │ │ │ │ │ ├── v18.md │ │ │ │ │ │ ├── v19.md │ │ │ │ │ │ ├── v20.md │ │ │ │ │ │ ├── v21.md │ │ │ │ │ │ ├── v4.md │ │ │ │ │ │ ├── v7.md │ │ │ │ │ │ ├── v8.md │ │ │ │ │ │ └── v9.md │ │ │ │ │ ├── nightlies.md │ │ │ │ │ ├── operators/ │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ └── operators.md │ │ │ │ │ ├── router-store/ │ │ │ │ │ │ ├── actions.md │ │ │ │ │ │ ├── configuration.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ └── selectors.md │ │ │ │ │ ├── schematics/ │ │ │ │ │ │ ├── action.md │ │ │ │ │ │ ├── container.md │ │ │ │ │ │ ├── data.md │ │ │ │ │ │ ├── effect.md │ │ │ │ │ │ ├── entity.md │ │ │ │ │ │ ├── feature.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── reducer.md │ │ │ │ │ │ ├── selector.md │ │ │ │ │ │ └── store.md │ │ │ │ │ ├── signals/ │ │ │ │ │ │ ├── deep-computed.md │ │ │ │ │ │ ├── faq.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── rxjs-integration.md │ │ │ │ │ │ ├── signal-method.md │ │ │ │ │ │ ├── signal-state.md │ │ │ │ │ │ └── signal-store/ │ │ │ │ │ │ ├── custom-store-features.md │ │ │ │ │ │ ├── custom-store-properties.md │ │ │ │ │ │ ├── entity-management.md │ │ │ │ │ │ ├── events.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── lifecycle-hooks.md │ │ │ │ │ │ ├── linked-state.md │ │ │ │ │ │ ├── private-store-members.md │ │ │ │ │ │ ├── state-tracking.md │ │ │ │ │ │ └── testing.md │ │ │ │ │ ├── store/ │ │ │ │ │ │ ├── action-groups.md │ │ │ │ │ │ ├── actions.md │ │ │ │ │ │ ├── architecture.md │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ └── runtime-checks.md │ │ │ │ │ │ ├── feature-creators.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── install.md │ │ │ │ │ │ ├── metareducers.md │ │ │ │ │ │ ├── recipes/ │ │ │ │ │ │ │ ├── downgrade.md │ │ │ │ │ │ │ └── injecting.md │ │ │ │ │ │ ├── reducers.md │ │ │ │ │ │ ├── selectors.md │ │ │ │ │ │ ├── testing.md │ │ │ │ │ │ ├── walkthrough.md │ │ │ │ │ │ └── why.md │ │ │ │ │ └── store-devtools/ │ │ │ │ │ ├── config.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── install.md │ │ │ │ │ └── recipes/ │ │ │ │ │ └── exclude.md │ │ │ │ ├── guide.page.ts │ │ │ │ └── workshops.page.ts │ │ │ ├── reference/ │ │ │ │ └── reference.service.ts │ │ │ └── services/ │ │ │ ├── contributors.service.ts │ │ │ ├── guide-menu.service.ts │ │ │ ├── markdown.service.ts │ │ │ ├── theme.service.ts │ │ │ └── versionInfo.service.ts │ │ ├── main.server.ts │ │ ├── main.ts │ │ ├── shared/ │ │ │ ├── api-report.models.ts │ │ │ ├── index.ts │ │ │ └── ngrx-shiki-theme.ts │ │ ├── styles.scss │ │ ├── test-setup.ts │ │ ├── tools/ │ │ │ ├── api-extractor.json │ │ │ ├── extract-docs-content.ts │ │ │ ├── prepare-examples.ts │ │ │ └── vite-ngrx-stackblitz.plugin.ts │ │ └── vite-env.d.ts │ ├── tsconfig.app.json │ ├── tsconfig.editor.json │ ├── tsconfig.json │ ├── tsconfig.spec.json │ ├── tsconfig.tools.json │ └── vite.config.ts ├── setup-jest.ts ├── tsconfig.docs.json ├── tsconfig.json └── tsdoc-metadata.json