@cosmicdrift/kumiko-dev-server 0.167.0 → 0.168.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/src/create-kumiko-server.ts +13 -9
- package/src/run-dev-app.ts +6 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-dev-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.168.0",
|
|
4
4
|
"description": "Dev-tooling for Kumiko apps: local dev-server bootstrap (runDevApp), scaffolding, codegen. Not shipped into production node_modules — see @cosmicdrift/kumiko-server-runtime for the prod boot path.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"kumiko-schema-check": "./bin/kumiko-schema-check.ts"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@cosmicdrift/kumiko-bundled-features": "0.
|
|
58
|
-
"@cosmicdrift/kumiko-framework": "0.
|
|
59
|
-
"@cosmicdrift/kumiko-server-runtime": "0.
|
|
57
|
+
"@cosmicdrift/kumiko-bundled-features": "0.168.0",
|
|
58
|
+
"@cosmicdrift/kumiko-framework": "0.168.0",
|
|
59
|
+
"@cosmicdrift/kumiko-server-runtime": "0.168.0",
|
|
60
60
|
"ts-morph": "^28.0.0"
|
|
61
61
|
},
|
|
62
62
|
"publishConfig": {
|
|
@@ -686,19 +686,14 @@ export async function createKumikoServer(
|
|
|
686
686
|
await createEventsTable(stack.db);
|
|
687
687
|
await pushEntityProjectionTables(stack, stack.registry);
|
|
688
688
|
|
|
689
|
-
// Hook für Caller-spezifische Tables + Seed. Läuft nach den Entity-
|
|
690
|
-
// Tabellen damit das Sample auf `stack.db` / `stack.dispatcher`
|
|
691
|
-
// zugreifen kann, und VOR dem Server-Start damit der erste HTTP-Request
|
|
692
|
-
// bereits gegen einen gefüllten State läuft. Idempotenz ist Caller-
|
|
693
|
-
// Verantwortung (persistent-DB-Modus läuft es bei jedem Boot).
|
|
694
|
-
if (options.onAfterSetup !== undefined) {
|
|
695
|
-
await options.onAfterSetup(stack);
|
|
696
|
-
}
|
|
697
|
-
|
|
698
689
|
// App-eigene HTTP-Routes ans Hono-app hängen — symmetrisch zur
|
|
699
690
|
// gleichnamigen Option in runProdApp. Wird vor dem dev-fallback
|
|
700
691
|
// (HTML/JS/CSS-Serving via handleFetch unten) registriert, damit
|
|
701
692
|
// explizite Routen wie /feed.xml den Asset-Pfad schlagen.
|
|
693
|
+
//
|
|
694
|
+
// Muss VOR dem Seed laufen: ein Seed, der über stack.http dispatcht,
|
|
695
|
+
// baut Honos Matcher — danach wirft jedes weitere app.get() mit
|
|
696
|
+
// "Can not add a route since the matcher is already built".
|
|
702
697
|
if (options.extraRoutes !== undefined) {
|
|
703
698
|
options.extraRoutes(stack.app, {
|
|
704
699
|
db: stack.db,
|
|
@@ -710,6 +705,15 @@ export async function createKumikoServer(
|
|
|
710
705
|
});
|
|
711
706
|
}
|
|
712
707
|
|
|
708
|
+
// Hook für Caller-spezifische Tables + Seed. Läuft nach den Entity-
|
|
709
|
+
// Tabellen damit das Sample auf `stack.db` / `stack.dispatcher`
|
|
710
|
+
// zugreifen kann, und VOR dem Server-Start damit der erste HTTP-Request
|
|
711
|
+
// bereits gegen einen gefüllten State läuft. Idempotenz ist Caller-
|
|
712
|
+
// Verantwortung (persistent-DB-Modus läuft es bei jedem Boot).
|
|
713
|
+
if (options.onAfterSetup !== undefined) {
|
|
714
|
+
await options.onAfterSetup(stack);
|
|
715
|
+
}
|
|
716
|
+
|
|
713
717
|
// setupTestStack konfiguriert den eventDispatcher, startet ihn aber
|
|
714
718
|
// NICHT — Integration-Tests drain'en deterministisch via runOnce().
|
|
715
719
|
// Ein Dev-Server will das laufende Polling, damit SSE-Broadcasts
|
package/src/run-dev-app.ts
CHANGED
|
@@ -91,6 +91,7 @@ import { renderWelcomeBanner } from "./welcome-banner";
|
|
|
91
91
|
// @cosmicdrift/kumiko-server-runtime (single source of truth) — hier nur
|
|
92
92
|
// durchgereicht.
|
|
93
93
|
export type {
|
|
94
|
+
AccountLockoutSetup,
|
|
94
95
|
AccountUnlockSetup,
|
|
95
96
|
AuthMailOptions,
|
|
96
97
|
EmailVerificationSetup,
|
|
@@ -100,6 +101,7 @@ export type {
|
|
|
100
101
|
} from "@cosmicdrift/kumiko-server-runtime/run-prod-app";
|
|
101
102
|
|
|
102
103
|
import type {
|
|
104
|
+
AccountLockoutSetup,
|
|
103
105
|
AccountUnlockSetup,
|
|
104
106
|
AuthMailOptions,
|
|
105
107
|
EmailVerificationSetup,
|
|
@@ -140,6 +142,10 @@ export type RunDevAppAuthOptions = {
|
|
|
140
142
|
readonly invite?: InviteSetup;
|
|
141
143
|
/** Account-unlock flow (#1266). Symmetric to RunProdAppAuthOptions. */
|
|
142
144
|
readonly accountUnlock?: AccountUnlockSetup;
|
|
145
|
+
/** Brute-force guard on the login handler (maxFailedAttempts,
|
|
146
|
+
* lockoutDurationMinutes). Mounts no routes. Symmetric to
|
|
147
|
+
* RunProdAppAuthOptions.accountLockout (kumiko-framework#1627). */
|
|
148
|
+
readonly accountLockout?: AccountLockoutSetup;
|
|
143
149
|
/** Domain attribute for both auth cookies (see
|
|
144
150
|
* AuthRoutesConfig.cookieDomain). Symmetric to RunProdAppAuthOptions. */
|
|
145
151
|
readonly cookieDomain?: string;
|