From 9efbe38c0c5c1c80f98d974d72cc6431b68fcd8f Mon Sep 17 00:00:00 2001 From: Relism Date: Fri, 17 Apr 2026 08:18:11 +0200 Subject: [PATCH] weeks of bullshit --- .idea/copilot.data.migration.agent.xml | 6 + .idea/copilot.data.migration.ask.xml | 6 + .idea/copilot.data.migration.edit.xml | 6 + .idea/encodings.xml | 2 + .idea/workspace.xml | 275 +++++++------- flash-extensions/flash-ext-jackson/README.md | 12 +- .../relism/ext/jackson/JacksonExtension.java | 20 +- .../java/dev/relism/ext/jackson/Json.java | 13 +- .../java/dev/relism/ext/limiter/Bucket.java | 2 + .../java/dev/relism/ext/limiter/Guard.java | 12 +- .../dev/relism/ext/limiter/LimitStrategy.java | 13 + .../relism/ext/limiter/LimiterExtension.java | 43 ++- .../relism/ext/limiter/RateLimitStrategy.java | 1 + .../strategy/SlidingWindowStrategy.java | 86 +++++ .../limiter/strategy/TokenBucketStrategy.java | 9 +- flash-extensions/flash-ext-oidc/README.md | 154 ++++++-- .../dev/relism/ext/oidc/OidcAuthPolicy.java | 98 +++++ .../java/dev/relism/ext/oidc/OidcConfig.java | 11 + .../dev/relism/ext/oidc/OidcExtension.java | 159 +++----- .../dev/relism/ext/oidc/OidcMiddleware.java | 298 +++++++++++++-- .../java/dev/relism/ext/oidc/OidcUser.java | 133 ++++++- .../dev/relism/ext/oidc/ScopesAllowed.java | 45 +++ .../relism/ext/oidc/OidcAuthPolicyTest.java | 94 +++++ .../ext/oidc/OidcMiddlewareAuthzTest.java | 72 ++++ .../relism/ext/oidc/OidcUserScopesTest.java | 47 +++ flash-extensions/flash-ext-openapi/README.md | 9 +- flash-extensions/flash-ext-openapi/pom.xml | 2 +- .../dev/relism/ext/openapi/ApiOperation.java | 2 +- .../dev/relism/ext/openapi/ApiResponse.java | 1 + .../dev/relism/ext/openapi/ArraySchema.java | 16 + .../relism/ext/openapi/OpenApiBuilder.java | 350 ++++++++++++++---- .../relism/ext/openapi/OpenApiExtension.java | 96 +++-- .../java/dev/relism/ext/openapi/Schema.java | 19 + .../relism/ext/openapi/SchemaProperty.java | 19 + .../routeviewer/RouteViewerDataHandler.java | 2 +- .../ext/routeviewer/RouteViewerExtension.java | 41 +- .../ext/routeviewer/RouteViewerHandler.java | 2 +- .../routeviewer/RouteViewerStaticHandler.java | 6 +- .../relism/ext/view/EngineCapabilities.java | 5 + .../ext/view/LegacyViewEngineAdapter.java | 38 ++ .../main/java/dev/relism/ext/view/Page.java | 12 + .../java/dev/relism/ext/view/Partial.java | 13 + .../dev/relism/ext/view/RenderOutput.java | 9 + .../java/dev/relism/ext/view/Renderer.java | 2 +- .../dev/relism/ext/view/ThymeleafEngine.java | 23 +- .../relism/ext/view/ViewEngineAdapter.java | 11 + .../dev/relism/ext/view/ViewEngineType.java | 10 +- .../dev/relism/ext/view/ViewExtension.java | 179 +++------ .../java/dev/relism/ext/view/ViewGlobals.java | 8 + .../java/dev/relism/ext/view/ViewHandler.java | 32 ++ .../java/dev/relism/ext/view/ViewKind.java | 6 + .../java/dev/relism/ext/view/ViewModel.java | 71 ++++ .../java/dev/relism/ext/view/ViewRuntime.java | 79 ++++ .../java/dev/relism/ext/view/ViewTarget.java | 7 + .../relism/ext/view/ViewTargetResolver.java | 62 ++++ .../dev/relism/ext/view/ViewModelTest.java | 56 +++ .../ext/view/ViewRuntimeGlobalsTest.java | 48 +++ .../ext/view/ViewTargetResolverTest.java | 95 +++++ .../flash-web-bundler/docs/README.md | 24 ++ .../flash-web-bundler/docs/asset-sources.md | 22 ++ .../flash-web-bundler/docs/configuration.md | 30 ++ .../flash-web-bundler/docs/dev-lifecycle.md | 16 + .../docs/frontend-selection.md | 12 + .../flash-web-bundler/docs/modes.md | 12 + .../docs/package-managers.md | 19 + .../flash-web-bundler/docs/performance.md | 13 + .../flash-web-bundler/docs/prod-serving.md | 17 + .../docs/routing-fallback.md | 10 + .../docs/security-policies.md | 11 + flash-extensions/flash-web-bundler/pom.xml | 37 ++ .../relism/ext/webbundler/AssetCatalog.java | 33 ++ .../dev/relism/ext/webbundler/AssetEntry.java | 11 + .../dev/relism/ext/webbundler/AssetIo.java | 93 +++++ .../ext/webbundler/AssetLoadRequest.java | 12 + .../relism/ext/webbundler/AssetMetadata.java | 16 + .../dev/relism/ext/webbundler/AssetPaths.java | 26 ++ .../relism/ext/webbundler/AssetsSource.java | 5 + .../relism/ext/webbundler/AssetsSources.java | 16 + .../webbundler/BasePathEnforcementMode.java | 6 + .../webbundler/ClasspathAssetManifest.java | 16 + .../ext/webbundler/ClasspathAssetsSource.java | 91 +++++ .../ext/webbundler/CommandOrchestrator.java | 187 ++++++++++ .../ext/webbundler/CommandSafetyMode.java | 7 + .../ext/webbundler/CommandSafetyPolicy.java | 27 ++ .../relism/ext/webbundler/CommandTokens.java | 14 + .../webbundler/FilesystemAssetsSource.java | 72 ++++ .../ext/webbundler/FrontendStrategy.java | 12 + .../relism/ext/webbundler/FrontendType.java | 5 + .../ext/webbundler/FrontendTypeResolver.java | 24 ++ .../relism/ext/webbundler/InstallCache.java | 57 +++ .../relism/ext/webbundler/InstallPolicy.java | 6 + .../relism/ext/webbundler/LoggingMode.java | 8 + .../dev/relism/ext/webbundler/MimeTypes.java | 30 ++ .../relism/ext/webbundler/ModeResolver.java | 19 + .../relism/ext/webbundler/OperationMode.java | 6 + .../relism/ext/webbundler/PackageManager.java | 24 ++ .../ext/webbundler/PackageManagerAdapter.java | 44 +++ .../ext/webbundler/RuntimeEnvironment.java | 6 + .../relism/ext/webbundler/RuntimeMode.java | 7 + .../ext/webbundler/SpaFallbackPolicy.java | 17 + .../webbundler/StaticAssetServingPolicy.java | 46 +++ .../ext/webbundler/ViteFrontendStrategy.java | 26 ++ .../dev/relism/ext/webbundler/WatchList.java | 43 +++ .../ext/webbundler/WebBundlerConfig.java | 210 +++++++++++ .../ext/webbundler/WebBundlerExtension.java | 163 ++++++++ .../ext/webbundler/WebBundlerRuntime.java | 29 ++ .../ext/webbundler/AssetsSourceTest.java | 39 ++ .../webbundler/CommandSafetyPolicyTest.java | 30 ++ .../ext/webbundler/InstallCacheTest.java | 29 ++ .../ext/webbundler/ModeResolverTest.java | 17 + .../webbundler/PackageManagerAdapterTest.java | 18 + .../ext/webbundler/WebBundlerConfigTest.java | 58 +++ .../WebBundlerExtensionDevGuardTest.java | 16 + .../WebBundlerExtensionIntegrationTest.java | 80 ++++ flash-extensions/pom.xml | 6 + flash/pom.xml | 1 + .../java/dev/relism/ChunkedInputStream.java | 17 +- flash/src/main/java/dev/relism/Flash.java | 36 +- .../src/main/java/dev/relism/HttpServer.java | 158 ++++---- .../main/java/dev/relism/ServerHandle.java | 11 +- .../relism/extension/AnnotationProcessor.java | 4 +- .../dev/relism/extension/ExtensionPhase.java | 32 ++ .../java/dev/relism/extension/FlashApp.java | 266 ++++++------- .../dev/relism/extension/FlashContext.java | 171 ++++++--- .../dev/relism/extension/FlashExtension.java | 78 +++- .../dev/relism/extension/FlashRegistrar.java | 115 ++++-- .../java/dev/relism/extension/FlashScope.java | 121 +----- .../dev/relism/extension/PackageScanner.java | 17 +- .../dev/relism/extension/RouteDefinition.java | 8 +- .../java/dev/relism/extension/RouteEvent.java | 4 +- .../java/dev/relism/models/HeaderMap.java | 24 +- .../java/dev/relism/models/PathParams.java | 9 + .../main/java/dev/relism/models/Request.java | 22 +- .../java/dev/relism/models/RequestBody.java | 17 +- .../dev/relism/models/RequestHandler.java | 13 +- .../main/java/dev/relism/models/Response.java | 29 +- .../java/dev/relism/models/SimpleHandler.java | 11 +- .../dev/relism/routing/AbstractRouter.java | 51 ++- .../main/java/dev/relism/routing/CONNECT.java | 16 + .../main/java/dev/relism/routing/DELETE.java | 16 + .../src/main/java/dev/relism/routing/GET.java | 16 + .../main/java/dev/relism/routing/HEAD.java | 16 + .../java/dev/relism/routing/Middleware.java | 15 +- .../main/java/dev/relism/routing/OPTIONS.java | 16 + .../main/java/dev/relism/routing/PATCH.java | 16 + .../main/java/dev/relism/routing/POST.java | 16 + .../main/java/dev/relism/routing/PURGE.java | 16 + .../src/main/java/dev/relism/routing/PUT.java | 16 + .../main/java/dev/relism/routing/Route.java | 14 +- .../java/dev/relism/routing/RouteHandle.java | 70 ---- .../main/java/dev/relism/routing/Routes.java | 34 ++ .../main/java/dev/relism/routing/TRACE.java | 16 + .../dev/relism/HttpServerConcurrencyTest.java | 4 +- .../test/java/dev/relism/HttpServerTest.java | 20 +- .../java/dev/relism/models/ResponseTest.java | 19 +- .../relism/routing/AbstractRouterTest.java | 3 +- pom.xml | 12 + 157 files changed, 5171 insertions(+), 1273 deletions(-) create mode 100644 .idea/copilot.data.migration.agent.xml create mode 100644 .idea/copilot.data.migration.ask.xml create mode 100644 .idea/copilot.data.migration.edit.xml create mode 100644 flash-extensions/flash-ext-limiter/src/main/java/dev/relism/ext/limiter/strategy/SlidingWindowStrategy.java create mode 100644 flash-extensions/flash-ext-oidc/src/main/java/dev/relism/ext/oidc/OidcAuthPolicy.java create mode 100644 flash-extensions/flash-ext-oidc/src/main/java/dev/relism/ext/oidc/ScopesAllowed.java create mode 100644 flash-extensions/flash-ext-oidc/src/test/java/dev/relism/ext/oidc/OidcAuthPolicyTest.java create mode 100644 flash-extensions/flash-ext-oidc/src/test/java/dev/relism/ext/oidc/OidcMiddlewareAuthzTest.java create mode 100644 flash-extensions/flash-ext-oidc/src/test/java/dev/relism/ext/oidc/OidcUserScopesTest.java create mode 100644 flash-extensions/flash-ext-openapi/src/main/java/dev/relism/ext/openapi/ArraySchema.java create mode 100644 flash-extensions/flash-ext-openapi/src/main/java/dev/relism/ext/openapi/Schema.java create mode 100644 flash-extensions/flash-ext-openapi/src/main/java/dev/relism/ext/openapi/SchemaProperty.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/EngineCapabilities.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/LegacyViewEngineAdapter.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/Page.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/Partial.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/RenderOutput.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewEngineAdapter.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewGlobals.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewHandler.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewKind.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewModel.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewRuntime.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewTarget.java create mode 100644 flash-extensions/flash-ext-view/src/main/java/dev/relism/ext/view/ViewTargetResolver.java create mode 100644 flash-extensions/flash-ext-view/src/test/java/dev/relism/ext/view/ViewModelTest.java create mode 100644 flash-extensions/flash-ext-view/src/test/java/dev/relism/ext/view/ViewRuntimeGlobalsTest.java create mode 100644 flash-extensions/flash-ext-view/src/test/java/dev/relism/ext/view/ViewTargetResolverTest.java create mode 100644 flash-extensions/flash-web-bundler/docs/README.md create mode 100644 flash-extensions/flash-web-bundler/docs/asset-sources.md create mode 100644 flash-extensions/flash-web-bundler/docs/configuration.md create mode 100644 flash-extensions/flash-web-bundler/docs/dev-lifecycle.md create mode 100644 flash-extensions/flash-web-bundler/docs/frontend-selection.md create mode 100644 flash-extensions/flash-web-bundler/docs/modes.md create mode 100644 flash-extensions/flash-web-bundler/docs/package-managers.md create mode 100644 flash-extensions/flash-web-bundler/docs/performance.md create mode 100644 flash-extensions/flash-web-bundler/docs/prod-serving.md create mode 100644 flash-extensions/flash-web-bundler/docs/routing-fallback.md create mode 100644 flash-extensions/flash-web-bundler/docs/security-policies.md create mode 100644 flash-extensions/flash-web-bundler/pom.xml create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetCatalog.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetEntry.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetIo.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetLoadRequest.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetMetadata.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetPaths.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetsSource.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/AssetsSources.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/BasePathEnforcementMode.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/ClasspathAssetManifest.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/ClasspathAssetsSource.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/CommandOrchestrator.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/CommandSafetyMode.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/CommandSafetyPolicy.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/CommandTokens.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/FilesystemAssetsSource.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/FrontendStrategy.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/FrontendType.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/FrontendTypeResolver.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/InstallCache.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/InstallPolicy.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/LoggingMode.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/MimeTypes.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/ModeResolver.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/OperationMode.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/PackageManager.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/PackageManagerAdapter.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/RuntimeEnvironment.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/RuntimeMode.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/SpaFallbackPolicy.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/StaticAssetServingPolicy.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/ViteFrontendStrategy.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/WatchList.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/WebBundlerConfig.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/WebBundlerExtension.java create mode 100644 flash-extensions/flash-web-bundler/src/main/java/dev/relism/ext/webbundler/WebBundlerRuntime.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/AssetsSourceTest.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/CommandSafetyPolicyTest.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/InstallCacheTest.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/ModeResolverTest.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/PackageManagerAdapterTest.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/WebBundlerConfigTest.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/WebBundlerExtensionDevGuardTest.java create mode 100644 flash-extensions/flash-web-bundler/src/test/java/dev/relism/ext/webbundler/WebBundlerExtensionIntegrationTest.java create mode 100644 flash/src/main/java/dev/relism/extension/ExtensionPhase.java create mode 100644 flash/src/main/java/dev/relism/routing/CONNECT.java create mode 100644 flash/src/main/java/dev/relism/routing/DELETE.java create mode 100644 flash/src/main/java/dev/relism/routing/GET.java create mode 100644 flash/src/main/java/dev/relism/routing/HEAD.java create mode 100644 flash/src/main/java/dev/relism/routing/OPTIONS.java create mode 100644 flash/src/main/java/dev/relism/routing/PATCH.java create mode 100644 flash/src/main/java/dev/relism/routing/POST.java create mode 100644 flash/src/main/java/dev/relism/routing/PURGE.java create mode 100644 flash/src/main/java/dev/relism/routing/PUT.java delete mode 100644 flash/src/main/java/dev/relism/routing/RouteHandle.java create mode 100644 flash/src/main/java/dev/relism/routing/Routes.java create mode 100644 flash/src/main/java/dev/relism/routing/TRACE.java diff --git a/.idea/copilot.data.migration.agent.xml b/.idea/copilot.data.migration.agent.xml new file mode 100644 index 0000000..4ea72a9 --- /dev/null +++ b/.idea/copilot.data.migration.agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/copilot.data.migration.ask.xml b/.idea/copilot.data.migration.ask.xml new file mode 100644 index 0000000..7ef04e2 --- /dev/null +++ b/.idea/copilot.data.migration.ask.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/copilot.data.migration.edit.xml b/.idea/copilot.data.migration.edit.xml new file mode 100644 index 0000000..8648f94 --- /dev/null +++ b/.idea/copilot.data.migration.edit.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 976757e..420c512 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -17,6 +17,8 @@ + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 29eb7ad..c3a99ac 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,76 +4,65 @@