@cosmicdrift/kumiko-dev-server 0.368.0 → 0.369.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/dist/run-dev-app.d.ts +5 -0
- package/dist/run-dev-app.js +14 -2
- package/package.json +9 -9
package/dist/run-dev-app.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { TestStack } from "@cosmicdrift/kumiko-testing/stack";
|
|
|
9
9
|
import { type CreateKumikoServerOptions, type KumikoServerHandle } from "./create-kumiko-server.js";
|
|
10
10
|
export type { AccountLockoutSetup, AccountUnlockSetup, AuthMailOptions, EmailVerificationSetup, InviteSetup, PasswordResetSetup, SignupSetup, } from "@cosmicdrift/kumiko-server-runtime/run-prod-app";
|
|
11
11
|
import type { AccountLockoutSetup, AccountUnlockSetup, AuthMailOptions, EmailVerificationSetup, InviteSetup, PasswordResetSetup, SignupSetup } from "@cosmicdrift/kumiko-server-runtime/run-prod-app";
|
|
12
|
+
import { type UnsubscribeOption } from "@cosmicdrift/kumiko-server-runtime/run-prod-app";
|
|
12
13
|
export type RunDevAppAuthOptions = {
|
|
13
14
|
/** Admin user to seed at boot. Idempotent — re-runs in persistent-DB
|
|
14
15
|
* mode reuse the existing user. */
|
|
@@ -146,6 +147,10 @@ export type RunDevAppOptions = {
|
|
|
146
147
|
* Hono-app gehängt, läuft VOR dem static-asset-Pfad. Symmetrisch zur
|
|
147
148
|
* gleichnamigen Option in runProdApp. */
|
|
148
149
|
readonly extraRoutes?: CreateKumikoServerOptions["extraRoutes"];
|
|
150
|
+
/** Framework-managed unsubscribe links and routes, same contract as
|
|
151
|
+
* `RunProdAppOptions.unsubscribe`; the link base URL comes from `auth.mail.baseUrl`
|
|
152
|
+
* or `APP_BASE_URL` (dev has no `auth.publicOrigin`). */
|
|
153
|
+
readonly unsubscribe?: UnsubscribeOption;
|
|
149
154
|
/** Hook for app-wired co-running components — symmetric to
|
|
150
155
|
* runProdApp.wire (kumiko-framework#3050). */
|
|
151
156
|
readonly wire?: CreateKumikoServerOptions["wire"];
|
package/dist/run-dev-app.js
CHANGED
|
@@ -23,6 +23,7 @@ import { createInMemoryLoginRateLimiter, parseTrustedProxyHopsEnv, TRUSTED_PROXY
|
|
|
23
23
|
import { configureBlindIndexKey, configurePiiSubjectKms, } from "@cosmicdrift/kumiko-framework/crypto";
|
|
24
24
|
import { configureEntityFieldEncryption } from "@cosmicdrift/kumiko-framework/db";
|
|
25
25
|
import { collectWriteHandlerQns, createRegistry, FILE_STORAGE_PROVIDER_BOOT_SENTINEL, FILE_STORAGE_PROVIDER_ENV, findTierResolverUsage, requireTierResolverPlugin, validateAppCustomScreenWriteQns, validateBoot, } from "@cosmicdrift/kumiko-framework/engine";
|
|
26
|
+
import { createFallbackLogger } from "@cosmicdrift/kumiko-framework/logging";
|
|
26
27
|
import { warnIfNonUtcServerTimeZone } from "@cosmicdrift/kumiko-framework/time";
|
|
27
28
|
import { applyBootSeeds } from "@cosmicdrift/kumiko-server-runtime/boot/apply-boot-seeds";
|
|
28
29
|
import { resolveBootCrypto } from "@cosmicdrift/kumiko-server-runtime/boot/boot-crypto";
|
|
@@ -32,7 +33,7 @@ import { assertSessionBootInvariants } from "@cosmicdrift/kumiko-server-runtime/
|
|
|
32
33
|
import { createKumikoServer, logInfo, } from "./create-kumiko-server.js";
|
|
33
34
|
import { captureEphemeralDevPiiKms, resolveDevPiiKms } from "./resolve-dev-pii-kms.js";
|
|
34
35
|
import { renderWelcomeBanner } from "./welcome-banner.js";
|
|
35
|
-
import { addConfigAccessorFactory, buildBootExtraContext, loggerFromExtraContext, requireEnv, resolveAuthMail, } from "@cosmicdrift/kumiko-server-runtime/run-prod-app";
|
|
36
|
+
import { addConfigAccessorFactory, buildBootExtraContext, loggerFromExtraContext, requireEnv, resolveAuthMail, resolveUnsubscribeWiring, } from "@cosmicdrift/kumiko-server-runtime/run-prod-app";
|
|
36
37
|
export async function runDevApp(options) {
|
|
37
38
|
// Auto-mix Standard-Features im auth-mode via composeFeatures (single
|
|
38
39
|
// source of truth — auch runProdApp und der per-app drizzle-Schema-
|
|
@@ -46,6 +47,16 @@ export async function runDevApp(options) {
|
|
|
46
47
|
? resolveAuthMail(options.auth, requireEnv("JWT_SECRET", envSource, "runDevApp"), envSource)
|
|
47
48
|
: undefined;
|
|
48
49
|
const composeAuthOptions = buildComposeAuthOptions(effectiveAuth);
|
|
50
|
+
const { unsubscribeLinks, unsubscribeRoutes } = resolveUnsubscribeWiring({
|
|
51
|
+
unsubscribe: options.unsubscribe,
|
|
52
|
+
publicOrigin: undefined,
|
|
53
|
+
mailBaseUrl: effectiveAuth?.mail?.baseUrl,
|
|
54
|
+
envSource,
|
|
55
|
+
warn: (message) => createFallbackLogger("runDevApp").warn(message),
|
|
56
|
+
});
|
|
57
|
+
const extraRoutes = unsubscribeRoutes.length === 0
|
|
58
|
+
? options.extraRoutes
|
|
59
|
+
: [...(options.extraRoutes ?? []), ...unsubscribeRoutes];
|
|
49
60
|
const features = composeFeatures(options.features, {
|
|
50
61
|
includeBundled: !!effectiveAuth,
|
|
51
62
|
...(composeAuthOptions && { authOptions: composeAuthOptions }),
|
|
@@ -163,6 +174,7 @@ export async function runDevApp(options) {
|
|
|
163
174
|
redis: deps.redis,
|
|
164
175
|
crypto: bootCrypto,
|
|
165
176
|
...(bootLogger && { log: bootLogger }),
|
|
177
|
+
...(unsubscribeLinks && { unsubscribeLinks }),
|
|
166
178
|
});
|
|
167
179
|
return {
|
|
168
180
|
...boot,
|
|
@@ -239,7 +251,7 @@ export async function runDevApp(options) {
|
|
|
239
251
|
...(extraContext !== undefined && { extraContext }),
|
|
240
252
|
...(options.anonymousAccess !== undefined && { anonymousAccess: options.anonymousAccess }),
|
|
241
253
|
...(options.files !== undefined && { files: options.files }),
|
|
242
|
-
...(
|
|
254
|
+
...(extraRoutes !== undefined && { extraRoutes }),
|
|
243
255
|
...(options.wire !== undefined && { wire: options.wire }),
|
|
244
256
|
...(trustedProxyHops !== undefined && { trustedProxyHops }),
|
|
245
257
|
...(finalEffectiveFeatures !== undefined && {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-dev-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.369.0",
|
|
4
4
|
"description": "Dev-tooling for Kumiko apps: local dev-server bootstrap (runDevApp), scaffolding. Its compose-stacks/env-schema subpaths are consumed at prod boot too — see @cosmicdrift/kumiko-server-runtime for the prod runner itself.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -67,14 +67,14 @@
|
|
|
67
67
|
"kumiko-upgrade": "./bin/kumiko-upgrade.ts"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@cosmicdrift/kumiko-bundled-features": "0.
|
|
71
|
-
"@cosmicdrift/kumiko-framework": "0.
|
|
72
|
-
"@cosmicdrift/kumiko-headless": "0.
|
|
73
|
-
"@cosmicdrift/kumiko-renderer-mail-html": "0.
|
|
74
|
-
"@cosmicdrift/kumiko-renderer-web": "0.
|
|
75
|
-
"@cosmicdrift/kumiko-server-runtime": "0.
|
|
76
|
-
"@cosmicdrift/kumiko-testing": "0.
|
|
77
|
-
"@cosmicdrift/kumiko-types": "0.
|
|
70
|
+
"@cosmicdrift/kumiko-bundled-features": "0.369.0",
|
|
71
|
+
"@cosmicdrift/kumiko-framework": "0.369.0",
|
|
72
|
+
"@cosmicdrift/kumiko-headless": "0.369.0",
|
|
73
|
+
"@cosmicdrift/kumiko-renderer-mail-html": "0.369.0",
|
|
74
|
+
"@cosmicdrift/kumiko-renderer-web": "0.369.0",
|
|
75
|
+
"@cosmicdrift/kumiko-server-runtime": "0.369.0",
|
|
76
|
+
"@cosmicdrift/kumiko-testing": "0.369.0",
|
|
77
|
+
"@cosmicdrift/kumiko-types": "0.369.0",
|
|
78
78
|
"bun-types": "^1.3.13",
|
|
79
79
|
"ts-morph": "^28.0.0",
|
|
80
80
|
"zod": "^4.4.3"
|