@cosmicdrift/kumiko-server-runtime 0.219.0 → 0.220.1

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-server-runtime",
3
- "version": "0.219.0",
3
+ "version": "0.220.1",
4
4
  "description": "Production server-boot runtime for Kumiko apps: connections, schema-drift-gate, seeds, lifecycle, graceful shutdown. Symmetric to kumiko-dev-server's runDevApp, without dev/scaffold/codegen tooling.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -80,8 +80,8 @@
80
80
  }
81
81
  },
82
82
  "dependencies": {
83
- "@cosmicdrift/kumiko-bundled-features": "0.219.0",
84
- "@cosmicdrift/kumiko-framework": "0.219.0",
83
+ "@cosmicdrift/kumiko-bundled-features": "0.220.1",
84
+ "@cosmicdrift/kumiko-framework": "0.220.1",
85
85
  "temporal-polyfill": "^0.3.2"
86
86
  },
87
87
  "publishConfig": {
@@ -492,6 +492,9 @@ export type RunProdAppOptions = {
492
492
  * `({db, redis, registry}) => Record<string, unknown>` — gleiches
493
493
  * Pattern wie `anonymousAccess`. Eine App die einen dieser Keys selbst
494
494
  * setzt (z.B. eigener configResolver) überschreibt den Default. */
495
+ /** Boot default locale (BCP-47) for ctx.locale when the request carries
496
+ * no locale signal. Merged into AppContext before extraContext (app wins). */
497
+ readonly defaultLocale?: string;
495
498
  readonly extraContext?: ExtraContextOption;
496
499
  /** MasterKeyProvider für die auto-verdrahtete `ctx.secrets`. Default:
497
500
  * `createEnvMasterKeyProvider` (KEK aus `KUMIKO_SECRETS_MASTER_KEY_V<n>`).
@@ -927,10 +930,10 @@ export async function runProdApp(options: RunProdAppOptions): Promise<ProdAppHan
927
930
  crypto: bootCrypto,
928
931
  ...(options.kms && { kms: options.kms }),
929
932
  });
930
- const extraContext = addConfigAccessorFactory(
931
- { ...autoExtraContext, ...resolvedExtraContext },
932
- registry,
933
- );
933
+ const extraContext = {
934
+ ...addConfigAccessorFactory({ ...autoExtraContext, ...resolvedExtraContext }, registry),
935
+ ...(options.defaultLocale !== undefined && { defaultLocale: options.defaultLocale }),
936
+ };
934
937
  // @cast-boundary engine-bridge — searchAdapter is an optional context-extension
935
938
  // (SharedContextFields.searchAdapter), invisible to extraContext's loose
936
939
  // Record<string, unknown>-based typing. Presence check only, no need to