├── .aiderignore
├── kanban
├── backlog
│ ├── _._
│ └── scratch
│ │ ├── overview.md
│ │ ├── rejected.md
│ │ ├── todo.md
│ │ └── done.md
├── done
│ └── _._
└── to-do
│ └── -.-
├── .github
├── pull_request_template.md
└── dependabot.yml
├── documentation
├── contributing
│ └── overview.md
├── index.md
├── dev-ops
│ └── toc.yml
├── features
│ ├── toc.yml
│ └── features.md
├── topics
│ ├── routing.md
│ ├── toc.yml
│ └── enable-javascript-interop.md
├── model
│ └── main.png
├── images
│ ├── redux-dev-tools.png
│ └── redux-route-state.png
├── .gitignore
├── tutorial
│ └── default-template-screen-shot.png
├── partials
│ ├── give-a-star.md
│ ├── releases.md
│ ├── license.md
│ ├── contact.md
│ ├── contributing.md
│ ├── getting-started.md
│ ├── acknowledgements.md
│ └── installation.md
├── toc.yml
├── migrations
│ ├── migration6-7.md
│ ├── migration7-8.md
│ ├── migration8-9.md
│ ├── migration9-10.md
│ ├── migration4-5.md
│ ├── toc.yml
│ └── migration1-2.md
├── release-notes
│ ├── release7.0.0.md
│ ├── release10.0.0.md
│ ├── toc.yml
│ ├── release3.0.0.md
│ ├── release9.0.0.md
│ ├── release1.0.0.md
│ ├── release2.0.0.md
│ └── release6.0.0.md
└── blips
│ ├── 2024-02-time-warp-state-11-release.md
│ ├── 2024-02-routing-sample.md
│ ├── 2024-02-action-tracking-sample.md
│ ├── 2024-02-redux-dev-tools-sample.md
│ └── 2024-02-state-action-handler-sample.md
├── source
├── timewarp-state
│ ├── wwwroot
│ │ ├── types
│ │ │ ├── redux-dev-tools-types.d.ts
│ │ │ ├── constants.d.ts
│ │ │ ├── timewarp-state.d.ts
│ │ │ ├── logger.d.ts
│ │ │ ├── timewarp.state.lib.module.d.ts
│ │ │ └── redux-dev-tools.d.ts
│ │ ├── js
│ │ │ ├── redux-dev-tools-types.js
│ │ │ ├── redux-dev-tools-types.js.map
│ │ │ ├── constants.js.map
│ │ │ ├── constants.js
│ │ │ ├── timewarp-state.js.map
│ │ │ ├── logger.js.map
│ │ │ ├── timewarp-state.js
│ │ │ └── logger.js
│ │ └── typescript
│ │ │ ├── dot-net-reference.d.ts
│ │ │ └── constants.ts
│ ├── base
│ │ ├── action.cs
│ │ └── action-handler.cs
│ ├── features
│ │ ├── persistence
│ │ │ ├── persistent-state-method.cs
│ │ │ ├── abstractions
│ │ │ │ └── i-persistence-service.cs
│ │ │ └── attributes
│ │ │ │ └── persistent-state-attribute.cs
│ │ ├── redux-dev-tools
│ │ │ ├── requests
│ │ │ │ ├── i-redux-request.cs
│ │ │ │ ├── start
│ │ │ │ │ ├── start-request.cs
│ │ │ │ │ └── start-handler.cs
│ │ │ │ └── commit
│ │ │ │ │ └── commit-request.cs
│ │ │ ├── redux-action.cs
│ │ │ └── dispatch-request.cs
│ │ ├── render-subscriptions
│ │ │ ├── non-nested-class-exception.cs
│ │ │ └── render-subscription-context.md
│ │ ├── pipeline
│ │ │ ├── invalid-clone-exception.cs
│ │ │ └── exception-notification.cs
│ │ └── components
│ │ │ ├── ReduxDevTools.razor
│ │ │ └── components
│ │ │ └── TimeWarpJavaScriptInterop.razor
│ ├── store
│ │ ├── state-initialized-notification.cs
│ │ └── i-store.cs
│ ├── global-suppressions.cs
│ ├── assembly-marker.cs
│ ├── components
│ │ └── timewarp-state-component.render-reasons.cs
│ ├── extensions
│ │ ├── method-info-extensions.cs
│ │ └── type-extensions.cs
│ └── state
│ │ └── i-state.cs
├── timewarp-state-plus
│ ├── _imports.razor
│ ├── features
│ │ ├── timers
│ │ │ ├── timer-config.cs
│ │ │ ├── multi-timer-options.cs
│ │ │ ├── timer-elapsed-notification.cs
│ │ │ ├── multi-timer-post-processor.cs
│ │ │ └── timer-state
│ │ │ │ └── timer-state.reset-timers-on-activity.cs
│ │ ├── action-tracking
│ │ │ ├── pipeline
│ │ │ │ └── track-action-attribute.cs
│ │ │ └── action-tracking-state
│ │ │ │ ├── action-tracking-state.debug.cs
│ │ │ │ └── action-tracking-state.start-processing.cs
│ │ ├── feature-flags
│ │ │ └── feature-flag-state
│ │ │ │ └── feature-flag-state.cs
│ │ └── theme
│ │ │ └── theme-state
│ │ │ ├── theme-state.cs
│ │ │ └── theme-state.update.cs
│ ├── state
│ │ └── i-timewarp-cacheable-state.cs
│ ├── assembly-marker.cs
│ └── global-usings.cs
├── timewarp-state-analyzer
│ ├── AnalyzerReleases.Shipped.md
│ ├── global-usings.cs
│ ├── timewarp-state-analyzer.csproj
│ └── AnalyzerReleases.Unshipped.md
├── timewarp-state-source-generator
│ ├── global-usings.cs
│ └── timewarp-state-source-generator.csproj
└── timewarp-state-policies
│ ├── global-usings.cs
│ ├── have-json-constructor.cs
│ ├── have-injectable-constructor.cs
│ └── be-nested-in-state-custom-rule.cs
├── tests
├── test-app
│ ├── test-app-server
│ │ ├── global-usings.cs
│ │ ├── wwwroot
│ │ │ └── favicon.png
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── components
│ │ │ ├── Routes.razor
│ │ │ ├── App.razor
│ │ │ ├── layout
│ │ │ │ └── MainLayout.razor
│ │ │ └── _imports.razor
│ │ ├── test-app-server.csproj
│ │ └── Properties
│ │ │ └── launchSettings.json
│ ├── test-app-contracts
│ │ ├── global-usings.cs
│ │ ├── features
│ │ │ ├── exception-handling
│ │ │ │ └── throw-server-side-exception
│ │ │ │ │ ├── throw-server-side-exception-response.cs
│ │ │ │ │ └── throw-server-side-exception-request.cs
│ │ │ └── weather-forecast
│ │ │ │ └── queries
│ │ │ │ └── get-weather-forecasts.cs
│ │ └── test-app-contracts.csproj
│ └── test-app-client
│ │ ├── features
│ │ ├── color
│ │ │ ├── actions
│ │ │ │ └── color-state.update.cs
│ │ │ ├── color-state.cs
│ │ │ └── color-state.debug.cs
│ │ ├── event-stream
│ │ │ ├── event-stream-state.debug.cs
│ │ │ ├── event-stream-state.cs
│ │ │ ├── components
│ │ │ │ └── EventStream.razor
│ │ │ └── actions
│ │ │ │ └── add-event
│ │ │ │ └── event-stream-state.add-event-action.cs
│ │ ├── counter
│ │ │ ├── components
│ │ │ │ ├── counter.razor.cs
│ │ │ │ └── Counter.razor
│ │ │ ├── actions
│ │ │ │ ├── non-nested-action
│ │ │ │ │ ├── non-nested-action.cs
│ │ │ │ │ └── non-nested-handler.cs
│ │ │ │ ├── improper-nested-action
│ │ │ │ │ ├── improper-nested-action.cs
│ │ │ │ │ └── improper-nested-handler.cs
│ │ │ │ ├── counter-state.increment-counter.cs
│ │ │ │ └── counter-state.throw-exception.cs
│ │ │ ├── counter-state.cs
│ │ │ ├── notification
│ │ │ │ ├── pre-increment-count-notification-handler.cs
│ │ │ │ └── increment-count-notification-handler.cs
│ │ │ └── counter-state.debug.cs
│ │ ├── base
│ │ │ ├── components
│ │ │ │ └── ResetButton.razor
│ │ │ └── base-action-handler.cs
│ │ ├── application
│ │ │ ├── application-state
│ │ │ │ ├── application-state.cs
│ │ │ │ ├── application-state.reset-store.cs
│ │ │ │ └── application-state.debug.cs
│ │ │ └── notification
│ │ │ │ └── application-state.exception-notification-handler.cs
│ │ ├── blue
│ │ │ ├── blue-state.cs
│ │ │ └── actions
│ │ │ │ └── blue-state.increment-count.cs
│ │ ├── purple
│ │ │ ├── purple-state.cs
│ │ │ ├── components
│ │ │ │ └── PurpleCounter.razor
│ │ │ └── actions
│ │ │ │ └── purple-state.increment-count.cs
│ │ ├── weather-forecast
│ │ │ └── weather-forecast-state.cs
│ │ ├── clone-test
│ │ │ ├── cloneable-state.cs
│ │ │ ├── clone-test-state.debug.cs
│ │ │ └── actions
│ │ │ │ └── cloneable-state.clone-test.cs
│ │ └── cacheable-weather
│ │ │ └── cacheable-weather-state.cs
│ │ ├── wwwroot
│ │ ├── appsettings.Development.json
│ │ └── appsettings.json
│ │ ├── generated
│ │ ├── timewarp-source-generators
│ │ │ └── TimeWarp.SourceGenerators.HelloWorldGenerator
│ │ │ │ └── HelloWorld.g.cs
│ │ ├── TimeWarp.State.SourceGenerator
│ │ │ └── TimeWarp.State.SourceGenerator.ActionSetMethodSourceGenerator
│ │ │ │ ├── Test.App.Client.Features.Blue.BlueState.IncrementCountActionSet_Method.g.cs
│ │ │ │ ├── Test.App.Client.Features.CloneTest.CloneableState.CloneTestActionSet_Method.g.cs
│ │ │ │ ├── Test.App.Client.Features.Purple.PurpleState.IncrementCountActionSet_Method.g.cs
│ │ │ │ ├── Test.App.Client.Features.Application.ApplicationState.ResetStoreActionSet_Method.g.cs
│ │ │ │ ├── Test.App.Client.Features.Counter.CounterState.IncrementCountActionSet_Method.g.cs
│ │ │ │ ├── Test.App.Client.Features.Application.ApplicationState.TwoSecondTaskActionSet_Method.g.cs
│ │ │ │ ├── Test.App.Client.Features.Counter.CounterState.ThrowExceptionActionSet_Method.g.cs
│ │ │ │ └── Test.App.Client.Features.EventStream.EventStreamState.AddEventActionSet_Method.g.cs
│ │ └── timewarp-state-source-generator
│ │ │ └── TimeWarp.State.SourceGenerator.ActionSetMethodSourceGenerator
│ │ │ ├── Test.App.Client.Features.Blue.BlueState.IncrementCountActionSet_Method.g.cs
│ │ │ ├── Test.App.Client.Features.CloneTest.CloneableState.CloneTestActionSet_Method.g.cs
│ │ │ ├── Test.App.Client.Features.Purple.PurpleState.IncrementCountActionSet_Method.g.cs
│ │ │ ├── Test.App.Client.Features.Counter.CounterState.IncrementCountActionSet_Method.g.cs
│ │ │ ├── Test.App.Client.Features.Application.ApplicationState.ResetStoreActionSet_Method.g.cs
│ │ │ ├── Test.App.Client.Features.Application.ApplicationState.TwoSecondTaskActionSet_Method.g.cs
│ │ │ ├── Test.App.Client.Features.Counter.CounterState.ThrowExceptionActionSet_Method.g.cs
│ │ │ └── Test.App.Client.Features.EventStream.EventStreamState.AddEventActionSet_Method.g.cs
│ │ ├── test-objects
│ │ ├── test-enum.cs
│ │ ├── i-test-interface.cs
│ │ ├── custom-collection-object.cs
│ │ ├── multi-dimensional2d-array-object.cs
│ │ └── multi-dimensional3d-array-object.cs
│ │ ├── pipeline
│ │ ├── notification-pre-processor
│ │ │ ├── pre-pipeline-notification.cs
│ │ │ └── pre-pipeline-notification-request-pre-processor.cs
│ │ └── notification-post-processor
│ │ │ ├── post-pipeline-notification.cs
│ │ │ └── post-pipeline-notification-request-post-processor.cs
│ │ ├── assembly-marker.cs
│ │ ├── _imports.razor
│ │ └── components
│ │ └── CustomInput.razor
├── timewarp-state-tests
│ ├── testing-convention.cs
│ ├── global-usings.cs
│ ├── timewarp-state-tests.csproj
│ └── convention-tests.cs
├── timewarp-state-plus-tests
│ ├── testing-convention.cs
│ ├── global-usings.cs
│ ├── convention-tests.cs
│ ├── timewarp-state-plus-tests.csproj
│ └── architecture-tests.cs
├── test-app-architecture-tests
│ ├── testing-convention.cs
│ ├── global-usings.cs
│ ├── convention-tests.cs
│ ├── test-app-architecture-tests.csproj
│ └── architecture-tests.cs
├── test-app-end-to-end-tests
│ ├── AssemblyInfo.cs
│ ├── global-usings.cs
│ ├── render-modes.cs
│ ├── configured-render-modes.cs
│ ├── configuration.cs
│ ├── playwright-settings
│ │ ├── webkit.runsettings
│ │ ├── chrome.runsettings
│ │ ├── firefox.runsettings
│ │ └── edge.runsettings
│ ├── test-app-end-to-end-tests.csproj
│ ├── sample-test.cs
│ └── home-page-test.cs
├── timewarp-state-analyzer-tests
│ ├── testing-convention.cs
│ ├── global-usings.cs
│ ├── .editorconfig
│ └── timewarp-state-analyzer-tests.csproj
└── client-integration-tests
│ ├── infrastructure
│ ├── client-host.cs
│ └── client-host-builder.cs
│ ├── clone
│ ├── test-state.cs
│ └── test-state-clone-tests.cs
│ ├── global-usings.cs
│ ├── convention-tests.cs
│ ├── features
│ ├── counter
│ │ └── counter-state-clone-tests.cs
│ └── application
│ │ └── application-state-clone-tests.cs
│ └── client-integration-tests.csproj
├── .ai
├── 03-environment.md
├── other
│ ├── create-prompt.md
│ ├── tools.md
│ ├── blog.md
│ ├── shell-commands.md
│ └── project-structure.md
├── 00-confirmation.md
├── 05-dotnet-conventions.md
├── 01-user.md
├── 02-development-process.md
└── Index.md
├── assets
└── logo.png
├── aider.instructions.md
├── global.json
├── scripts
├── overview.md
└── fix-analyzer-debug.reg
├── samples
├── 01-redux-dev-tools
│ ├── images
│ │ ├── redux-dev-tools.png
│ │ ├── redux-route-state.png
│ │ ├── blazor-wasm-hosted-screen-shot.jpeg
│ │ └── blazor-wasm-hosted-screen-shot.png
│ └── wasm
│ │ └── sample-01-wasm
│ │ ├── wwwroot
│ │ ├── favicon.png
│ │ ├── icon-192.png
│ │ └── sample-data
│ │ │ └── weather.json
│ │ ├── pages
│ │ ├── Home.razor
│ │ └── Counter.razor
│ │ ├── features
│ │ └── counter
│ │ │ └── counter-state.cs
│ │ ├── global-usings.cs
│ │ ├── layout
│ │ └── MainLayout.razor
│ │ ├── _imports.razor
│ │ ├── sample-01-wasm.csproj
│ │ ├── program.cs
│ │ └── App.razor
├── 03-routing
│ └── wasm
│ │ └── sample-03-wasm
│ │ ├── wwwroot
│ │ ├── favicon.png
│ │ ├── icon-192.png
│ │ └── sample-data
│ │ │ └── weather.json
│ │ ├── pages
│ │ ├── Home.razor
│ │ └── Counter.razor
│ │ ├── features
│ │ └── counter
│ │ │ ├── counter-state.cs
│ │ │ └── counter-state.increment-count.cs
│ │ ├── global-usings.cs
│ │ ├── layout
│ │ └── MainLayout.razor
│ │ ├── _imports.razor
│ │ ├── App.razor
│ │ ├── program.cs
│ │ └── sample-03-wasm.csproj
├── 02-action-tracking
│ └── wasm
│ │ └── sample-02-wasm
│ │ ├── wwwroot
│ │ ├── favicon.png
│ │ ├── icon-192.png
│ │ └── sample-data
│ │ │ └── weather.json
│ │ ├── pages
│ │ ├── Home.razor
│ │ └── Counter.razor
│ │ ├── features
│ │ └── demo
│ │ │ ├── demo-state.cs
│ │ │ ├── demo-state.five-second-action.cs
│ │ │ └── demo-state.two-second-action.cs
│ │ ├── global-usings.cs
│ │ ├── _imports.razor
│ │ ├── layout
│ │ └── MainLayout.razor
│ │ ├── App.razor
│ │ └── sample-02-wasm.csproj
└── 00-state-action-handler
│ ├── wasm
│ └── sample-00-wasm
│ │ ├── wwwroot
│ │ ├── favicon.png
│ │ ├── icon-192.png
│ │ └── sample-data
│ │ │ └── weather.json
│ │ ├── pages
│ │ ├── Home.razor
│ │ └── Counter.razor
│ │ ├── global-usings.cs
│ │ ├── features
│ │ └── counter
│ │ │ └── counter-state.cs
│ │ ├── _imports.razor
│ │ ├── program.cs
│ │ ├── layout
│ │ └── MainLayout.razor
│ │ ├── sample-00-wasm.csproj
│ │ └── App.razor
│ ├── server
│ └── sample-00-server
│ │ ├── wwwroot
│ │ └── favicon.png
│ │ ├── appsettings.Development.json
│ │ ├── components
│ │ ├── pages
│ │ │ ├── Home.razor
│ │ │ └── Counter.razor
│ │ ├── Routes.razor
│ │ ├── _imports.razor
│ │ ├── App.razor
│ │ └── layout
│ │ │ └── MainLayout.razor
│ │ ├── appsettings.json
│ │ ├── global-usings.cs
│ │ ├── features
│ │ └── counter
│ │ │ └── counter-state.cs
│ │ └── sample-00-server.csproj
│ └── auto
│ └── sample-00-auto
│ ├── sample-00-auto
│ ├── wwwroot
│ │ └── favicon.png
│ ├── appsettings.Development.json
│ ├── components
│ │ ├── pages
│ │ │ └── Home.razor
│ │ ├── Routes.razor
│ │ ├── _imports.razor
│ │ ├── App.razor
│ │ └── layout
│ │ │ └── MainLayout.razor
│ ├── appsettings.json
│ ├── global-usings.cs
│ └── sample-00-auto.csproj
│ └── sample-00-auto-client
│ ├── wwwroot
│ ├── appsettings.json
│ └── appsettings.Development.json
│ ├── global-usings.cs
│ ├── features
│ └── counter
│ │ └── counter-state.cs
│ ├── _imports.razor
│ ├── program.cs
│ ├── sample-00-auto-client.csproj
│ └── pages
│ └── Counter.razor
├── .devcontainer
└── devcontainer.json
├── nuget.config
├── Directory.Build.targets
└── .mailmap
/.aiderignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kanban/backlog/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kanban/done/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kanban/to-do/-.-:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/documentation/contributing/overview.md:
--------------------------------------------------------------------------------
1 | # Contributing Overview
--------------------------------------------------------------------------------
/documentation/index.md:
--------------------------------------------------------------------------------
1 | [!include[Overview](Overview.md)]
2 |
--------------------------------------------------------------------------------
/source/timewarp-state/wwwroot/types/redux-dev-tools-types.d.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kanban/backlog/scratch/overview.md:
--------------------------------------------------------------------------------
1 | # Scratch pad for Kanban board stuff.
2 |
--------------------------------------------------------------------------------
/tests/test-app/test-app-server/global-usings.cs:
--------------------------------------------------------------------------------
1 | global using TimeWarp.State;
2 |
--------------------------------------------------------------------------------
/.ai/03-environment.md:
--------------------------------------------------------------------------------
1 | ENVIRONMENT:
2 |
3 | COMMAND SHELL:
4 | - Format commands for pwsh
5 |
--------------------------------------------------------------------------------
/documentation/dev-ops/toc.yml:
--------------------------------------------------------------------------------
1 | # auto-generated
2 | - name: Dev Ops
3 | href: DevOps.md
4 |
--------------------------------------------------------------------------------
/source/timewarp-state-plus/_imports.razor:
--------------------------------------------------------------------------------
1 | @using Microsoft.AspNetCore.Components.Web
2 |
--------------------------------------------------------------------------------
/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/assets/logo.png
--------------------------------------------------------------------------------
/documentation/features/toc.yml:
--------------------------------------------------------------------------------
1 | - name: Features Overview
2 | topicUid: TimeWarp.State:Features.md
3 |
--------------------------------------------------------------------------------
/documentation/topics/routing.md:
--------------------------------------------------------------------------------
1 | ---
2 | uid: TimeWarp.State:Routing.md
3 | title: Enable Routing
4 | ---
5 |
--------------------------------------------------------------------------------
/source/timewarp-state/wwwroot/js/redux-dev-tools-types.js:
--------------------------------------------------------------------------------
1 | //# sourceMappingURL=redux-dev-tools-types.js.map
--------------------------------------------------------------------------------
/documentation/topics/toc.yml:
--------------------------------------------------------------------------------
1 | - name: Add Redux Dev Tools
2 | topicUid: TimeWarpState:AddReduxDevTools.md
3 |
--------------------------------------------------------------------------------
/source/timewarp-state/base/action.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.State;
2 |
3 | public interface IAction : IRequest { }
4 |
5 |
--------------------------------------------------------------------------------
/aider.instructions.md:
--------------------------------------------------------------------------------
1 | - line_endings: lf
2 | - do not apologize
3 |
4 | # CSharp
5 | - use explicit types where not obvious
6 |
--------------------------------------------------------------------------------
/documentation/model/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/documentation/model/main.png
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "9.0.203",
4 | "rollForward": "latestMajor",
5 | "allowPrerelease": true
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/scripts/overview.md:
--------------------------------------------------------------------------------
1 | # How to debug analyzer
2 |
3 | https://peterlesliemorris.com/debugging-my-published-rolsyn-source-generator-nuget-package/
--------------------------------------------------------------------------------
/.ai/other/create-prompt.md:
--------------------------------------------------------------------------------
1 | Read this document in full and then generate a prompt with specific instructions to complete this task for a coding LLM to use
--------------------------------------------------------------------------------
/documentation/images/redux-dev-tools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/documentation/images/redux-dev-tools.png
--------------------------------------------------------------------------------
/documentation/topics/enable-javascript-interop.md:
--------------------------------------------------------------------------------
1 | ---
2 | uid: TimeWarp.State:EnableJavascriptInterop.md
3 | title: Enable Javascript Interop
4 | ---
5 |
--------------------------------------------------------------------------------
/documentation/images/redux-route-state.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/documentation/images/redux-route-state.png
--------------------------------------------------------------------------------
/tests/timewarp-state-tests/testing-convention.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.State.Tests;
2 |
3 | class TestingConvention : TimeWarp.Fixie.TestingConvention { }
4 |
--------------------------------------------------------------------------------
/tests/timewarp-state-plus-tests/testing-convention.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.State.Tests;
2 |
3 | class TestingConvention : TimeWarp.Fixie.TestingConvention { }
4 |
--------------------------------------------------------------------------------
/tests/test-app-architecture-tests/testing-convention.cs:
--------------------------------------------------------------------------------
1 | namespace Test.App.Architecture.Tests;
2 |
3 | class TestingConvention : TimeWarp.Fixie.TestingConvention { }
4 |
--------------------------------------------------------------------------------
/tests/test-app/test-app-server/wwwroot/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/tests/test-app/test-app-server/wwwroot/favicon.png
--------------------------------------------------------------------------------
/documentation/.gitignore:
--------------------------------------------------------------------------------
1 | ###############
2 | # folder #
3 | ###############
4 | /**/DROP/
5 | /**/TEMP/
6 | /**/packages/
7 | /**/bin/
8 | /**/obj/
9 | _site
10 |
--------------------------------------------------------------------------------
/samples/01-redux-dev-tools/images/redux-dev-tools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/01-redux-dev-tools/images/redux-dev-tools.png
--------------------------------------------------------------------------------
/tests/test-app-end-to-end-tests/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.TestTools.UnitTesting;
2 |
3 | [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
4 |
--------------------------------------------------------------------------------
/tests/timewarp-state-analyzer-tests/testing-convention.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.State.Analyzer.Tests;
2 |
3 | class TestingConvention : TimeWarp.Fixie.TestingConvention { }
4 |
--------------------------------------------------------------------------------
/documentation/tutorial/default-template-screen-shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/documentation/tutorial/default-template-screen-shot.png
--------------------------------------------------------------------------------
/samples/01-redux-dev-tools/images/redux-route-state.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/01-redux-dev-tools/images/redux-route-state.png
--------------------------------------------------------------------------------
/tests/test-app/test-app-contracts/global-usings.cs:
--------------------------------------------------------------------------------
1 | global using TimeWarp.Mediator;
2 | global using System.Collections.Generic;
3 | global using System.Text.Json.Serialization;
4 |
--------------------------------------------------------------------------------
/samples/03-routing/wasm/sample-03-wasm/wwwroot/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/03-routing/wasm/sample-03-wasm/wwwroot/favicon.png
--------------------------------------------------------------------------------
/samples/03-routing/wasm/sample-03-wasm/wwwroot/icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/03-routing/wasm/sample-03-wasm/wwwroot/icon-192.png
--------------------------------------------------------------------------------
/.devcontainer/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "image": "mcr.microsoft.com/devcontainers/universal:2",
3 | "features": {
4 | "ghcr.io/devcontainers/features/powershell:1": {}
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/tests/test-app/test-app-client/features/color/actions/color-state.update.cs:
--------------------------------------------------------------------------------
1 | namespace Test.App.Client.Features.Counter.Actions;
2 |
3 | public class UpdateColorState
4 | {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/samples/01-redux-dev-tools/wasm/sample-01-wasm/wwwroot/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/01-redux-dev-tools/wasm/sample-01-wasm/wwwroot/favicon.png
--------------------------------------------------------------------------------
/samples/02-action-tracking/wasm/sample-02-wasm/wwwroot/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/02-action-tracking/wasm/sample-02-wasm/wwwroot/favicon.png
--------------------------------------------------------------------------------
/source/timewarp-state/wwwroot/js/redux-dev-tools-types.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"redux-dev-tools-types.js","sourceRoot":"","sources":["../typescript/redux-dev-tools-types.ts"],"names":[],"mappings":""}
--------------------------------------------------------------------------------
/samples/01-redux-dev-tools/images/blazor-wasm-hosted-screen-shot.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/01-redux-dev-tools/images/blazor-wasm-hosted-screen-shot.jpeg
--------------------------------------------------------------------------------
/samples/01-redux-dev-tools/images/blazor-wasm-hosted-screen-shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/01-redux-dev-tools/images/blazor-wasm-hosted-screen-shot.png
--------------------------------------------------------------------------------
/samples/01-redux-dev-tools/wasm/sample-01-wasm/wwwroot/icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/01-redux-dev-tools/wasm/sample-01-wasm/wwwroot/icon-192.png
--------------------------------------------------------------------------------
/samples/02-action-tracking/wasm/sample-02-wasm/wwwroot/icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/02-action-tracking/wasm/sample-02-wasm/wwwroot/icon-192.png
--------------------------------------------------------------------------------
/tests/test-app/test-app-server/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Warning",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/wasm/sample-00-wasm/wwwroot/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/00-state-action-handler/wasm/sample-00-wasm/wwwroot/favicon.png
--------------------------------------------------------------------------------
/tests/test-app/test-app-client/wwwroot/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/documentation/partials/give-a-star.md:
--------------------------------------------------------------------------------
1 | ---
2 | uid: TimeWarp.State.GiveAStar.md
3 | title: Give a Star
4 | ---
5 |
6 | ## Give a Star! :star:
7 |
8 | If you find this project useful, please give it a star. Thanks!
9 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/wasm/sample-00-wasm/wwwroot/icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/00-state-action-handler/wasm/sample-00-wasm/wwwroot/icon-192.png
--------------------------------------------------------------------------------
/samples/03-routing/wasm/sample-03-wasm/pages/Home.razor:
--------------------------------------------------------------------------------
1 | @namespace Sample03Wasm.Pages
2 | @page "/"
3 |
4 | Home
5 |
6 |
Hello, world!
7 |
8 | Welcome to your new app.
9 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/server/sample-00-server/wwwroot/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/00-state-action-handler/server/sample-00-server/wwwroot/favicon.png
--------------------------------------------------------------------------------
/samples/01-redux-dev-tools/wasm/sample-01-wasm/pages/Home.razor:
--------------------------------------------------------------------------------
1 | @namespace Sample01Wasm.Pages
2 | @page "/"
3 |
4 | Home
5 |
6 | Hello, world!
7 |
8 | Welcome to your new app.
9 |
--------------------------------------------------------------------------------
/samples/02-action-tracking/wasm/sample-02-wasm/pages/Home.razor:
--------------------------------------------------------------------------------
1 | @namespace Sample02Wasm.Pages
2 | @page "/"
3 |
4 | Home
5 |
6 | Hello, world!
7 |
8 | Welcome to your new app.
9 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/wasm/sample-00-wasm/pages/Home.razor:
--------------------------------------------------------------------------------
1 | @namespace Sample00Wasm.Pages
2 | @page "/"
3 |
4 | Home
5 |
6 | Hello, world!
7 |
8 | Welcome to your new app.
9 |
--------------------------------------------------------------------------------
/source/timewarp-state-analyzer/AnalyzerReleases.Shipped.md:
--------------------------------------------------------------------------------
1 | ; Shipped analyzer releases
2 | ; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md
3 |
4 |
--------------------------------------------------------------------------------
/source/timewarp-state-source-generator/global-usings.cs:
--------------------------------------------------------------------------------
1 | global using Microsoft.CodeAnalysis;
2 | global using Microsoft.CodeAnalysis.CSharp.Syntax;
3 | global using Microsoft.CodeAnalysis.Text;
4 | global using System.Text;
5 |
--------------------------------------------------------------------------------
/tests/test-app/test-app-client/wwwroot/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Debug",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | },
8 | "UseHttp": true
9 | }
10 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/auto/sample-00-auto/sample-00-auto/wwwroot/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/HEAD/samples/00-state-action-handler/auto/sample-00-auto/sample-00-auto/wwwroot/favicon.png
--------------------------------------------------------------------------------
/samples/00-state-action-handler/server/sample-00-server/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/samples/02-action-tracking/wasm/sample-02-wasm/features/demo/demo-state.cs:
--------------------------------------------------------------------------------
1 | namespace Sample02Wasm.Features.Demo;
2 |
3 | internal sealed partial class DemoState : State
4 | {
5 | public override void Initialize() { }
6 | }
7 |
--------------------------------------------------------------------------------
/tests/test-app/test-app-contracts/features/exception-handling/throw-server-side-exception/throw-server-side-exception-response.cs:
--------------------------------------------------------------------------------
1 | namespace Test.App.Contracts.Features.ExceptionHandlings;
2 |
3 | public class ThrowServerSideExceptionResponse;
4 |
--------------------------------------------------------------------------------
/documentation/toc.yml:
--------------------------------------------------------------------------------
1 | # auto-generated
2 | - name: Overview
3 | topicUid: TimeWarpState:Overview.md
4 | - name: Topics
5 | href: Topics/
6 | - name: Release Notes
7 | href: ReleaseNotes/
8 | - name: Migrations
9 | href: Migrations/
10 |
--------------------------------------------------------------------------------
/source/timewarp-state/features/persistence/persistent-state-method.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.Features.Persistence;
2 |
3 | public enum PersistentStateMethod
4 | {
5 | PreRender,
6 | Server,
7 | SessionStorage,
8 | LocalStorage
9 | }
10 |
--------------------------------------------------------------------------------
/tests/test-app-end-to-end-tests/global-usings.cs:
--------------------------------------------------------------------------------
1 | global using Shouldly;
2 | global using Microsoft.Playwright;
3 | global using Microsoft.Playwright.MSTest;
4 | global using System.Text.RegularExpressions;
5 | global using Test.App.EndToEnd.Tests;
6 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/auto/sample-00-auto/sample-00-auto-client/wwwroot/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/auto/sample-00-auto/sample-00-auto/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/server/sample-00-server/components/pages/Home.razor:
--------------------------------------------------------------------------------
1 | @namespace Sample00Server.Components.Pages
2 | @page "/"
3 |
4 | Home
5 |
6 | Hello, world!
7 |
8 | Welcome to your new app.
9 |
--------------------------------------------------------------------------------
/source/timewarp-state-plus/features/timers/timer-config.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.State.Plus.Features.Timers;
2 |
3 | public class TimerConfig
4 | {
5 | public double Duration { get; set; }
6 | public bool ResetOnActivity { get; init; } = true;
7 | }
8 |
--------------------------------------------------------------------------------
/source/timewarp-state-plus/features/action-tracking/pipeline/track-action-attribute.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.Features.ActionTracking;
2 |
3 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
4 | public class TrackActionAttribute : Attribute { }
5 |
--------------------------------------------------------------------------------
/source/timewarp-state/store/state-initialized-notification.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.State;
2 |
3 | public class StateInitializedNotification
4 | (
5 | Type stateType
6 | ) : INotification
7 | {
8 | public Type StateType { get; } = stateType;
9 | }
10 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/auto/sample-00-auto/sample-00-auto/components/pages/Home.razor:
--------------------------------------------------------------------------------
1 | @namespace Sample00Auto.Components.Pages
2 | @page "/"
3 |
4 | Home
5 |
6 | Hello, world!
7 |
8 | Welcome to your new app.
9 |
--------------------------------------------------------------------------------
/documentation/migrations/migration6-7.md:
--------------------------------------------------------------------------------
1 | ---
2 | uid: BlazorState:Migration6-7.md
3 | title: Migrate From 6.X to 7.X
4 | ---
5 |
6 | # Migration
7 |
8 | ## From 6.x to 7.x
9 |
10 | ### Update to dotnet 7
11 |
12 | Only change is updating to dotnet 7 is required
--------------------------------------------------------------------------------
/samples/00-state-action-handler/auto/sample-00-auto/sample-00-auto-client/wwwroot/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/samples/00-state-action-handler/server/sample-00-server/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | },
8 | "AllowedHosts": "*"
9 | }
10 |
--------------------------------------------------------------------------------
/source/timewarp-state-analyzer/global-usings.cs:
--------------------------------------------------------------------------------
1 | global using Microsoft.CodeAnalysis;
2 | global using Microsoft.CodeAnalysis.CSharp.Syntax;
3 | global using Microsoft.CodeAnalysis.Diagnostics;
4 | global using System.Collections.Immutable;
5 | global using System.Linq;
6 |
--------------------------------------------------------------------------------
/source/timewarp-state-plus/state/i-timewarp-cacheable-state.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.State.Plus.State;
2 |
3 | public interface ITimeWarpCacheableState
4 | {
5 | string? CacheKey { get; }
6 | DateTime? TimeStamp { get; }
7 | TimeSpan CacheDuration { get;}
8 | }
9 |
--------------------------------------------------------------------------------
/source/timewarp-state/features/redux-dev-tools/requests/i-redux-request.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.Features.ReduxDevTools;
2 |
3 | ///
4 | /// Marker Interface to allow for filtering of Devtools Requests
5 | ///
6 | internal interface IReduxRequest { }
7 |
--------------------------------------------------------------------------------
/source/timewarp-state/features/persistence/abstractions/i-persistence-service.cs:
--------------------------------------------------------------------------------
1 | namespace TimeWarp.Features.Persistence;
2 |
3 | public interface IPersistenceService
4 | {
5 | Task