@objectstack/core 17.0.0-rc.0 → 17.0.0-rc.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/CHANGELOG.md +3047 -0
- package/dist/index.cjs +216 -95
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +222 -18
- package/dist/index.d.ts +222 -18
- package/dist/index.js +206 -91
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Logger, IServiceRegistry } from '@objectstack/spec/contracts';
|
|
2
|
-
export { IDataDriver, IDataEngine, IHttpRequest, IHttpResponse, IHttpServer, Logger, Middleware, RouteHandler } from '@objectstack/spec/contracts';
|
|
1
|
+
import { Logger, LifecycleEventName, IServiceRegistry } from '@objectstack/spec/contracts';
|
|
2
|
+
export { EngineSchemaRegistryView, IDataDriver, IDataEngine, IHttpRequest, IHttpResponse, IHttpServer, IObjectQLEngine, Logger, Middleware, RouteHandler } from '@objectstack/spec/contracts';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { LoggerConfig } from '@objectstack/spec/system';
|
|
5
5
|
import { ObjectLogger } from './logger.cjs';
|
|
@@ -9,6 +9,7 @@ import * as QA from '@objectstack/spec/qa';
|
|
|
9
9
|
import { KeyObject } from 'node:crypto';
|
|
10
10
|
import { PluginCapability, PluginPermissions as PluginPermissions$1, PluginPermissionSet, ResourceType, PermissionAction, PluginPermission, SandboxConfig, KernelSecurityScanResult, KernelSecurityVulnerability, PluginHealthCheck, PluginHealthStatus as PluginHealthStatus$1, PluginHealthReport, HotReloadConfig, VersionConstraint, DependencyConflict, SemanticVersion, CompatibilityLevel } from '@objectstack/spec/kernel';
|
|
11
11
|
import { AuthzPosture } from '@objectstack/spec/security';
|
|
12
|
+
export { nextUtcCalendarDay, utcInstantMs } from '@objectstack/spec/data';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Service Lifecycle Types
|
|
@@ -213,6 +214,12 @@ declare class ObjectKernel {
|
|
|
213
214
|
private startedPlugins;
|
|
214
215
|
private pluginStartTimes;
|
|
215
216
|
private shutdownHandlers;
|
|
217
|
+
/**
|
|
218
|
+
* Name of the plugin whose init() is currently executing (Phase 1 is
|
|
219
|
+
* sequential, so at most one). Lets a getService miss during init name
|
|
220
|
+
* the structural fault (#4131) instead of only the symptom.
|
|
221
|
+
*/
|
|
222
|
+
private currentlyInitializing?;
|
|
216
223
|
constructor(config?: ObjectKernelConfig);
|
|
217
224
|
/**
|
|
218
225
|
* Register a plugin with enhanced validation
|
|
@@ -290,9 +297,27 @@ declare class ObjectKernel {
|
|
|
290
297
|
*/
|
|
291
298
|
getState(): string;
|
|
292
299
|
private initPluginWithTimeout;
|
|
300
|
+
/**
|
|
301
|
+
* Whether a service is resolvable on this kernel right now — direct
|
|
302
|
+
* registration or a loader-registered factory. Backs the init-service
|
|
303
|
+
* contract checks (#4131).
|
|
304
|
+
*/
|
|
305
|
+
private hasAnyService;
|
|
306
|
+
/**
|
|
307
|
+
* When a getService miss happens while a plugin's init() is running,
|
|
308
|
+
* append the structural diagnosis (#4131): which plugin was initializing,
|
|
309
|
+
* and — when a composed plugin declares the service — who provides it.
|
|
310
|
+
* Empty string outside Phase 1, so non-boot messages stay unchanged.
|
|
311
|
+
*/
|
|
312
|
+
private describeInitOrderFault;
|
|
293
313
|
private startPluginWithTimeout;
|
|
294
314
|
private rollbackStartedPlugins;
|
|
295
315
|
private performShutdown;
|
|
316
|
+
/**
|
|
317
|
+
* Topological order over `dependencies` (hard) + `optionalDependencies`
|
|
318
|
+
* (order-if-present) — ADR-0116, #4131. One implementation shared with
|
|
319
|
+
* LiteKernel via `plugin-order.ts`.
|
|
320
|
+
*/
|
|
296
321
|
private resolveDependencies;
|
|
297
322
|
private registerShutdownSignals;
|
|
298
323
|
/**
|
|
@@ -350,17 +375,22 @@ interface PluginContext {
|
|
|
350
375
|
*/
|
|
351
376
|
getServices(): Map<string, any>;
|
|
352
377
|
/**
|
|
353
|
-
* Register a hook handler
|
|
378
|
+
* Register a hook handler.
|
|
379
|
+
*
|
|
380
|
+
* Known lifecycle-bus names (see `IPluginLifecycleEvents` in
|
|
381
|
+
* `@objectstack/spec`) autocomplete; the bus stays open to custom
|
|
382
|
+
* cross-plugin event names, so any string remains valid.
|
|
383
|
+
*
|
|
354
384
|
* @param name - Hook name (e.g., 'kernel:ready', 'data:beforeInsert')
|
|
355
385
|
* @param handler - Hook handler function
|
|
356
386
|
*/
|
|
357
|
-
hook(name: string, handler: (...args: any[]) => void | Promise<void>): void;
|
|
387
|
+
hook(name: LifecycleEventName | (string & {}), handler: (...args: any[]) => void | Promise<void>): void;
|
|
358
388
|
/**
|
|
359
389
|
* Trigger a hook
|
|
360
|
-
* @param name - Hook name
|
|
390
|
+
* @param name - Hook name (known lifecycle names autocomplete; custom names stay legal)
|
|
361
391
|
* @param args - Arguments to pass to hook handlers
|
|
362
392
|
*/
|
|
363
|
-
trigger(name: string, ...args: any[]): Promise<void>;
|
|
393
|
+
trigger(name: LifecycleEventName | (string & {}), ...args: any[]): Promise<void>;
|
|
364
394
|
/**
|
|
365
395
|
* Logger instance
|
|
366
396
|
*/
|
|
@@ -393,8 +423,35 @@ interface Plugin {
|
|
|
393
423
|
/**
|
|
394
424
|
* List of other plugin names that this plugin depends on.
|
|
395
425
|
* The kernel ensures these plugins are initialized before this one.
|
|
426
|
+
* A name that is not registered on the kernel is a boot error.
|
|
396
427
|
*/
|
|
397
428
|
dependencies?: string[];
|
|
429
|
+
/**
|
|
430
|
+
* Soft dependencies — order-if-present (ADR-0116, #4131).
|
|
431
|
+
* Registered names are hoisted ahead exactly like `dependencies`;
|
|
432
|
+
* absent names are silently skipped instead of failing the boot.
|
|
433
|
+
* For plugins that DEGRADE gracefully without the dependency but must
|
|
434
|
+
* never initialize before it when both are composed (e.g. AppPlugin on
|
|
435
|
+
* an engine-less metadata-only kernel).
|
|
436
|
+
*/
|
|
437
|
+
optionalDependencies?: string[];
|
|
438
|
+
/**
|
|
439
|
+
* Services this plugin resolves SYNCHRONOUSLY during `init()`
|
|
440
|
+
* (ADR-0116, #4131). The kernel validates the resolved order before
|
|
441
|
+
* Phase 1 (a required service whose only declared provider initializes
|
|
442
|
+
* later is a named boot error) and re-checks immediately before this
|
|
443
|
+
* plugin's init runs. Declare only hard init-time needs — a service the
|
|
444
|
+
* init merely probes behind a try/catch does not belong here.
|
|
445
|
+
*/
|
|
446
|
+
requiresServices?: string[];
|
|
447
|
+
/**
|
|
448
|
+
* Services this plugin's `init()` UNCONDITIONALLY registers
|
|
449
|
+
* (ADR-0116, #4131). Powers the pre-Phase-1 ordering validation and
|
|
450
|
+
* lets misordering errors name the provider. Never declare a service
|
|
451
|
+
* that is registered conditionally (option-gated, environment-gated):
|
|
452
|
+
* the kernel would blame orderings this plugin cannot satisfy.
|
|
453
|
+
*/
|
|
454
|
+
providesServices?: string[];
|
|
398
455
|
/**
|
|
399
456
|
* Init Phase: Register services
|
|
400
457
|
* Called when kernel is initializing.
|
|
@@ -437,6 +494,12 @@ declare abstract class ObjectKernelBase {
|
|
|
437
494
|
protected state: KernelState;
|
|
438
495
|
protected logger: Logger;
|
|
439
496
|
protected context: PluginContext;
|
|
497
|
+
/**
|
|
498
|
+
* Name of the plugin whose init() is currently executing (Phase 1 runs
|
|
499
|
+
* sequentially, so there is at most one). Lets a getService miss during
|
|
500
|
+
* init name the structural fault (#4131) instead of only the symptom.
|
|
501
|
+
*/
|
|
502
|
+
protected currentlyInitializing?: string;
|
|
440
503
|
constructor(logger: Logger);
|
|
441
504
|
/**
|
|
442
505
|
* Validate kernel state
|
|
@@ -454,10 +517,30 @@ declare abstract class ObjectKernelBase {
|
|
|
454
517
|
*/
|
|
455
518
|
protected createContext(): PluginContext;
|
|
456
519
|
/**
|
|
457
|
-
* Resolve plugin dependencies using topological sort
|
|
520
|
+
* Resolve plugin dependencies using topological sort — `dependencies`
|
|
521
|
+
* hard, `optionalDependencies` order-if-present (ADR-0116, #4131). One
|
|
522
|
+
* implementation shared with ObjectKernel via `plugin-order.ts`.
|
|
458
523
|
* @returns Ordered list of plugins (dependencies first)
|
|
459
524
|
*/
|
|
460
525
|
protected resolveDependencies(): Plugin[];
|
|
526
|
+
/**
|
|
527
|
+
* Whether a service is registered on this kernel right now. Backs the
|
|
528
|
+
* init-service contract checks (#4131).
|
|
529
|
+
*/
|
|
530
|
+
protected hasRegisteredService(name: string): boolean;
|
|
531
|
+
/**
|
|
532
|
+
* Pre-Phase-1 ordering validation (ADR-0116, #4131): a plugin whose
|
|
533
|
+
* `requiresServices` names a service provided only by a LATER plugin is
|
|
534
|
+
* a named boot error before any init side effects.
|
|
535
|
+
*/
|
|
536
|
+
protected validateInitServices(ordered: Plugin[]): void;
|
|
537
|
+
/**
|
|
538
|
+
* When a getService miss happens while a plugin's init() is running,
|
|
539
|
+
* append the structural diagnosis (#4131): which plugin was initializing,
|
|
540
|
+
* and — when a composed plugin declares the service — who provides it.
|
|
541
|
+
* Empty string outside Phase 1, so non-boot messages stay unchanged.
|
|
542
|
+
*/
|
|
543
|
+
protected describeInitOrderFault(serviceName: string): string;
|
|
461
544
|
/**
|
|
462
545
|
* Run plugin init phase
|
|
463
546
|
* @param plugin - Plugin to initialize
|
|
@@ -495,6 +578,90 @@ declare abstract class ObjectKernelBase {
|
|
|
495
578
|
abstract destroy(): Promise<void>;
|
|
496
579
|
}
|
|
497
580
|
|
|
581
|
+
/**
|
|
582
|
+
* Plugin ordering + init-service contract (ADR-0116, #4131).
|
|
583
|
+
*
|
|
584
|
+
* The kernel resolves BOTH init and start order from the plugin dependency
|
|
585
|
+
* graph, so `kernel.use()` registration order proves nothing. Twice a plugin
|
|
586
|
+
* relied on list position anyway and shipped a boot that dies inside init —
|
|
587
|
+
* the first cut of DefaultDatasourcePlugin (started after boot schema-sync;
|
|
588
|
+
* server with no tables) and AppPlugin (#4085: `manifest` grabbed in init
|
|
589
|
+
* before ObjectQLPlugin registered it). Both times the fix existed only as a
|
|
590
|
+
* convention: put the plugin in the right slot, write a comment. This module
|
|
591
|
+
* is the enforced form of that contract, shared by ObjectKernel and
|
|
592
|
+
* LiteKernel so there is exactly one ordering semantic:
|
|
593
|
+
*
|
|
594
|
+
* - `dependencies` — hard: hoisted ahead, missing ⇒ boot error (unchanged).
|
|
595
|
+
* - `optionalDependencies` — order-if-present: hoisted ahead when composed,
|
|
596
|
+
* silently skipped when absent. For plugins that DEGRADE without the
|
|
597
|
+
* dependency but must never init before it (AppPlugin on an engine-less
|
|
598
|
+
* metadata-only kernel).
|
|
599
|
+
* - `requiresServices` — services a plugin resolves SYNCHRONOUSLY during
|
|
600
|
+
* `init()`. Validated before Phase 1 (provable misordering ⇒ named error
|
|
601
|
+
* instead of a crash inside init) and again immediately before each init
|
|
602
|
+
* (authoritative: the service is either registered by now or init dies).
|
|
603
|
+
* - `providesServices` — services a plugin's `init()` UNCONDITIONALLY
|
|
604
|
+
* registers. Powers the pre-Phase-1 check and the named diagnostics.
|
|
605
|
+
* Declare only unconditional registrations: a conditional service (e.g.
|
|
606
|
+
* one gated behind an option) would indict this plugin for orderings it
|
|
607
|
+
* cannot actually satisfy.
|
|
608
|
+
*/
|
|
609
|
+
/**
|
|
610
|
+
* The ordering-relevant surface of a kernel plugin. Structural on purpose:
|
|
611
|
+
* ObjectKernel sorts `PluginMetadata`, LiteKernel sorts `Plugin`, and both
|
|
612
|
+
* satisfy this shape.
|
|
613
|
+
*/
|
|
614
|
+
interface OrderablePlugin {
|
|
615
|
+
name: string;
|
|
616
|
+
/** Hard dependencies — hoisted ahead; missing ⇒ boot error. */
|
|
617
|
+
dependencies?: string[];
|
|
618
|
+
/** Soft dependencies — hoisted ahead when composed, skipped when absent. */
|
|
619
|
+
optionalDependencies?: string[];
|
|
620
|
+
/** Services resolved synchronously during init(). */
|
|
621
|
+
requiresServices?: string[];
|
|
622
|
+
/** Services init() unconditionally registers. */
|
|
623
|
+
providesServices?: string[];
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Topologically order plugins: every plugin's `dependencies` (throw when
|
|
627
|
+
* missing) and `optionalDependencies` (skip when missing) init before it.
|
|
628
|
+
* Insertion order is preserved for plugins with no edges between them.
|
|
629
|
+
* Cycles through either edge kind throw — an optional dependency is a real
|
|
630
|
+
* edge whenever both sides are composed.
|
|
631
|
+
*/
|
|
632
|
+
declare function resolvePluginOrder<P extends OrderablePlugin>(plugins: Map<string, P>): P[];
|
|
633
|
+
/**
|
|
634
|
+
* Pre-Phase-1 check: walk the resolved order and prove no plugin requires a
|
|
635
|
+
* service whose only declared provider initializes AFTER it. A violation is
|
|
636
|
+
* the exact #4085 class — misplaced composition — reported as a named,
|
|
637
|
+
* structural boot error BEFORE any init side effects, instead of a bare
|
|
638
|
+
* "Service not found" thrown from inside the victim's init.
|
|
639
|
+
*
|
|
640
|
+
* Deliberately does NOT fail when a required service has no declared provider
|
|
641
|
+
* and is not yet registered: an earlier plugin may register it without
|
|
642
|
+
* declaring `providesServices`. That case is settled authoritatively by
|
|
643
|
+
* {@link assertInitServiceRequirements} immediately before the requiring
|
|
644
|
+
* plugin's init runs.
|
|
645
|
+
*/
|
|
646
|
+
declare function validateInitServiceContract<P extends OrderablePlugin>(ordered: P[], isServiceRegistered: (name: string) => boolean): void;
|
|
647
|
+
/**
|
|
648
|
+
* Diagnosis suffix for a getService miss that happens WHILE a plugin's
|
|
649
|
+
* init() is running: names the initializing plugin and — when a composed
|
|
650
|
+
* plugin declares the service — the provider and the directive to declare
|
|
651
|
+
* the ordering. Returns '' when no plugin is initializing, so non-boot
|
|
652
|
+
* error messages stay byte-identical. Shared by both kernels.
|
|
653
|
+
*/
|
|
654
|
+
declare function describeInitOrderFault(currentlyInitializing: string | undefined, plugins: Iterable<OrderablePlugin>, serviceName: string): string;
|
|
655
|
+
/**
|
|
656
|
+
* Just-before-init check: every service in `requiresServices` must be
|
|
657
|
+
* registered at the moment the plugin's init() is about to run. At this
|
|
658
|
+
* point the verdict is authoritative — Phase 1 runs sequentially, so a
|
|
659
|
+
* service absent now is absent for this init, and the init would die on a
|
|
660
|
+
* bare "Service not found" anyway. This turns that crash into a named
|
|
661
|
+
* composition error.
|
|
662
|
+
*/
|
|
663
|
+
declare function assertInitServiceRequirements(plugin: OrderablePlugin, isServiceRegistered: (name: string) => boolean): void;
|
|
664
|
+
|
|
498
665
|
/**
|
|
499
666
|
* ObjectKernel - MiniKernel Architecture
|
|
500
667
|
*
|
|
@@ -1997,18 +2164,16 @@ declare function evaluateAuthGate(sessionUser: any, path: string): AuthGate | nu
|
|
|
1997
2164
|
|
|
1998
2165
|
/** HTTP status every seam returns for an anonymous-denied request. */
|
|
1999
2166
|
declare const ANONYMOUS_DENY_STATUS: 401;
|
|
2000
|
-
/** Stable machine code (mirrors the REST `enforceAuth` seam). */
|
|
2001
|
-
declare const ANONYMOUS_DENY_CODE: "
|
|
2167
|
+
/** Stable machine code (mirrors the REST `enforceAuth` seam). ADR-0112: SCREAMING, a `StandardErrorCode` member. */
|
|
2168
|
+
declare const ANONYMOUS_DENY_CODE: "UNAUTHENTICATED";
|
|
2002
2169
|
/** Human-facing message. */
|
|
2003
2170
|
declare const ANONYMOUS_DENY_MESSAGE = "Authentication is required to access this endpoint.";
|
|
2004
2171
|
/** The single 401 body shape every seam returns: `{ error, message }`. */
|
|
2005
2172
|
declare const ANONYMOUS_DENY_BODY: {
|
|
2006
|
-
readonly error: "
|
|
2173
|
+
readonly error: "UNAUTHENTICATED";
|
|
2007
2174
|
readonly message: "Authentication is required to access this endpoint.";
|
|
2008
2175
|
};
|
|
2009
2176
|
interface AnonymousDenyInput {
|
|
2010
|
-
/** The `requireAuth` posture. Falsy ⇒ no-op (demo / single-tenant). */
|
|
2011
|
-
requireAuth: boolean | undefined;
|
|
2012
2177
|
/** Resolved caller id, if any. */
|
|
2013
2178
|
userId?: string | null;
|
|
2014
2179
|
/** Internal system context (never set on inbound HTTP; cannot be forged). */
|
|
@@ -2115,6 +2280,7 @@ declare function calendarPartsInTzOrUtc(d: Date, tz?: string): CalendarParts;
|
|
|
2115
2280
|
* reference-tz calendar, so its bucket boundary is that tz's midnight instant.
|
|
2116
2281
|
*/
|
|
2117
2282
|
declare function zonedDateStartToUtcMs(ymd: string, tz?: string): number;
|
|
2283
|
+
|
|
2118
2284
|
/**
|
|
2119
2285
|
* Granularity of a canonical date-bucket key. Mirrors `@objectstack/spec`'s
|
|
2120
2286
|
* `DateGranularity` enum but kept as a local literal union so this low-level
|
|
@@ -2357,9 +2523,22 @@ declare function filterTokenContextFrom(execCtx: ExecutionContextLike | undefine
|
|
|
2357
2523
|
* Implements the ICacheService contract with basic get/set/delete/has/clear
|
|
2358
2524
|
* and TTL expiry. Used by ObjectKernel as an automatic fallback when no
|
|
2359
2525
|
* real cache plugin (e.g. Redis) is registered.
|
|
2526
|
+
*
|
|
2527
|
+
* [#4058] Self-describes as `degraded`, not `stub` (ADR-0076 D12): this is a
|
|
2528
|
+
* real cache — it stores, expires, and reports true stats — just process-local
|
|
2529
|
+
* and unshared. The non-standard `_fallback: true` it used to carry was read by
|
|
2530
|
+
* nothing (`readServiceSelfInfo` reads only `__serviceInfo` — `_dev`, the other
|
|
2531
|
+
* marker it knew back then, was itself retired in #4319), so discovery reported
|
|
2532
|
+
* it as fully `available`. `handlerReady: false` because
|
|
2533
|
+
* no HTTP surface is mounted for `cache` at all — the same reason realtime
|
|
2534
|
+
* reports false.
|
|
2360
2535
|
*/
|
|
2361
2536
|
declare function createMemoryCache(): {
|
|
2362
|
-
|
|
2537
|
+
__serviceInfo: {
|
|
2538
|
+
status: "degraded";
|
|
2539
|
+
handlerReady: boolean;
|
|
2540
|
+
message: string;
|
|
2541
|
+
};
|
|
2363
2542
|
_serviceName: string;
|
|
2364
2543
|
get<T = unknown>(key: string): Promise<T | undefined>;
|
|
2365
2544
|
set<T = unknown>(key: string, value: T, ttl?: number): Promise<void>;
|
|
@@ -2379,9 +2558,18 @@ declare function createMemoryCache(): {
|
|
|
2379
2558
|
* Implements the IQueueService contract with synchronous in-process delivery.
|
|
2380
2559
|
* Used by ObjectKernel as an automatic fallback when no real queue plugin
|
|
2381
2560
|
* (e.g. BullMQ / RabbitMQ) is registered.
|
|
2561
|
+
*
|
|
2562
|
+
* [#4058] `degraded`, not `stub` (ADR-0076 D12): messages really reach real
|
|
2563
|
+
* subscribers — synchronously, in-process, with no durability or retry.
|
|
2564
|
+
* `getQueueSize()` answering 0 follows from that rather than faking it: nothing
|
|
2565
|
+
* is ever buffered. `handlerReady: false` — no HTTP surface exists for `queue`.
|
|
2382
2566
|
*/
|
|
2383
2567
|
declare function createMemoryQueue(): {
|
|
2384
|
-
|
|
2568
|
+
__serviceInfo: {
|
|
2569
|
+
status: "degraded";
|
|
2570
|
+
handlerReady: boolean;
|
|
2571
|
+
message: string;
|
|
2572
|
+
};
|
|
2385
2573
|
_serviceName: string;
|
|
2386
2574
|
publish<T = unknown>(queue: string, data: T): Promise<string>;
|
|
2387
2575
|
subscribe(queue: string, handler: (msg: any) => Promise<void>): Promise<void>;
|
|
@@ -2396,9 +2584,19 @@ declare function createMemoryQueue(): {
|
|
|
2396
2584
|
* Implements the IJobService contract with basic schedule/cancel/trigger
|
|
2397
2585
|
* operations. Used by ObjectKernel as an automatic fallback when no real
|
|
2398
2586
|
* job plugin (e.g. Agenda / BullMQ) is registered.
|
|
2587
|
+
*
|
|
2588
|
+
* [#4058] `degraded` (ADR-0076 D12), with the missing half named in the
|
|
2589
|
+
* message rather than left for a deployer to discover: `trigger()` really runs
|
|
2590
|
+
* the registered handler, but nothing here owns a timer, so a `schedule()`d job
|
|
2591
|
+
* NEVER fires on its own. That is reduced capability, not fabricated output —
|
|
2592
|
+
* no call returns a made-up answer. `handlerReady: false`: no HTTP surface.
|
|
2399
2593
|
*/
|
|
2400
2594
|
declare function createMemoryJob(): {
|
|
2401
|
-
|
|
2595
|
+
__serviceInfo: {
|
|
2596
|
+
status: "degraded";
|
|
2597
|
+
handlerReady: boolean;
|
|
2598
|
+
message: string;
|
|
2599
|
+
};
|
|
2402
2600
|
_serviceName: string;
|
|
2403
2601
|
schedule(name: string, schedule: any, handler: any): Promise<void>;
|
|
2404
2602
|
cancel(name: string): Promise<void>;
|
|
@@ -2439,7 +2637,10 @@ declare function resolveLocale(requestedLocale: string, availableLocales: string
|
|
|
2439
2637
|
* Does not load files from disk — operates purely in-memory.
|
|
2440
2638
|
*/
|
|
2441
2639
|
declare function createMemoryI18n(): {
|
|
2442
|
-
|
|
2640
|
+
__serviceInfo: {
|
|
2641
|
+
status: "degraded";
|
|
2642
|
+
message: string;
|
|
2643
|
+
};
|
|
2443
2644
|
_serviceName: string;
|
|
2444
2645
|
t(key: string, locale: string, params?: Record<string, unknown>): string;
|
|
2445
2646
|
getTranslations(locale: string): Record<string, unknown>;
|
|
@@ -2464,7 +2665,10 @@ declare function createMemoryI18n(): {
|
|
|
2464
2665
|
* (e.g. MetadataPlugin with file-system persistence) is registered.
|
|
2465
2666
|
*/
|
|
2466
2667
|
declare function createMemoryMetadata(): {
|
|
2467
|
-
|
|
2668
|
+
__serviceInfo: {
|
|
2669
|
+
status: "degraded";
|
|
2670
|
+
message: string;
|
|
2671
|
+
};
|
|
2468
2672
|
_serviceName: string;
|
|
2469
2673
|
register(type: string, name: string, data: any): Promise<void>;
|
|
2470
2674
|
registerInMemory(type: string, name: string, data: any): void;
|
|
@@ -2787,4 +2991,4 @@ declare class NamespaceResolver {
|
|
|
2787
2991
|
private suggestAlternative;
|
|
2788
2992
|
}
|
|
2789
2993
|
|
|
2790
|
-
export { ANONYMOUS_DENY_BODY, ANONYMOUS_DENY_CODE, ANONYMOUS_DENY_MESSAGE, ANONYMOUS_DENY_STATUS, API_KEY_PREFIX, type AnonymousDenyInput, type ApiKeyPrincipal, ApiRegistry, type ApiRegistryPluginConfig, type AuthGate, type BucketGranularity, type BulkWriteOptions, type BulkWriteRowResult, CORE_FALLBACK_FACTORIES, type CalendarParts, DependencyResolver, type ExecutionContextLike, type FilterTokenResolutionContext, type GeneratedApiKey, type GrantValidityWindow, HotReloadManager, type KernelState, type KeyInput, type LadderPrincipal, type LadderRow, LiteKernel, type NamespaceCheckResult, type NamespaceConflict, type NamespaceEntry, NamespaceResolver, ObjectKernel, ObjectKernelBase, type ObjectKernelConfig, ObjectLogger, POSTURE_INJECTION_RULE, POSTURE_LADDER, POSTURE_RANK, type ParsedSignature, type PermissionCheckResult$1 as PermissionCheckResult, type PermissionGrant, type Plugin, type PluginArtifactVerifyResult, PluginConfigValidator, type PluginContext, PluginHealthMonitor, type PluginHealthStatus, type PluginLoadResult, PluginLoader, type PluginMetadata, type PermissionCheckResult as PluginPermissionCheckResult, PluginPermissionEnforcer, PluginPermissionManager, type PluginPermissions, PluginSandboxRuntime, PluginSecurityScanner, type PluginSignatureConfig, PluginSignatureVerifier, type PluginStartupResult, type PostureEvidence, type PublisherVerifyResult, index as QA, type ResolveAuthzInput, type ResolveLocalizationInput, type ResolveUserAuthzGrantsOptions, type ResolvedAuthzContext, type ResourceUsage, type RetryOptions, SIGNATURE_ALG, type SandboxContext, type ScanTarget, SecurePluginContext, type SecurityIssue, SemanticVersionManager, type ServiceFactory, ServiceLifecycle, type ServiceRegistration, type SignatureVerificationResult, UnknownFilterTokenError, UnresolvedFilterTokenError, type UserAuthzGrants, type VersionCompatibility, bucketKeyToCalendarRange, buildPermissionsFromGrants, bulkWrite, calendarPartsInTz, calendarPartsInTzOrUtc, counterSignPayload, createApiRegistryPlugin, createMemoryCache, createMemoryI18n, createMemoryJob, createMemoryMetadata, createMemoryQueue, createPluginConfigValidator, createPluginPermissionEnforcer, deepMerge, defaultIsTransientError, derivePosture, evaluateAuthGate, extractApiKey, filterTokenContextFrom, generateApiKey, generateEd25519KeyPair, getEnv, getMemoryUsage, hashApiKey, isAuthGateAllowlisted, isExpired, isGrantActive, isGrantExpired, isNode, parseScopes, parseSignature, postureVisibleRows, readAuthoredTranslationLayer, resolveApiKeyPrincipal, resolveAuthzContext, resolveFilterToken, resolveFilterTokens, resolveLocale, resolveLocalizationContext, resolveUserAuthzGrants, safeExit, shouldDenyAnonymous, signPayload, verifyPayload, verifyPlatformSignature, verifyPluginArtifact, verifyPublisherSignature, wireAuthoredTranslationSync, withTransientRetry, zonedDateStartToUtcMs };
|
|
2994
|
+
export { ANONYMOUS_DENY_BODY, ANONYMOUS_DENY_CODE, ANONYMOUS_DENY_MESSAGE, ANONYMOUS_DENY_STATUS, API_KEY_PREFIX, type AnonymousDenyInput, type ApiKeyPrincipal, ApiRegistry, type ApiRegistryPluginConfig, type AuthGate, type BucketGranularity, type BulkWriteOptions, type BulkWriteRowResult, CORE_FALLBACK_FACTORIES, type CalendarParts, DependencyResolver, type ExecutionContextLike, type FilterTokenResolutionContext, type GeneratedApiKey, type GrantValidityWindow, HotReloadManager, type KernelState, type KeyInput, type LadderPrincipal, type LadderRow, LiteKernel, type NamespaceCheckResult, type NamespaceConflict, type NamespaceEntry, NamespaceResolver, ObjectKernel, ObjectKernelBase, type ObjectKernelConfig, ObjectLogger, type OrderablePlugin, POSTURE_INJECTION_RULE, POSTURE_LADDER, POSTURE_RANK, type ParsedSignature, type PermissionCheckResult$1 as PermissionCheckResult, type PermissionGrant, type Plugin, type PluginArtifactVerifyResult, PluginConfigValidator, type PluginContext, PluginHealthMonitor, type PluginHealthStatus, type PluginLoadResult, PluginLoader, type PluginMetadata, type PermissionCheckResult as PluginPermissionCheckResult, PluginPermissionEnforcer, PluginPermissionManager, type PluginPermissions, PluginSandboxRuntime, PluginSecurityScanner, type PluginSignatureConfig, PluginSignatureVerifier, type PluginStartupResult, type PostureEvidence, type PublisherVerifyResult, index as QA, type ResolveAuthzInput, type ResolveLocalizationInput, type ResolveUserAuthzGrantsOptions, type ResolvedAuthzContext, type ResourceUsage, type RetryOptions, SIGNATURE_ALG, type SandboxContext, type ScanTarget, SecurePluginContext, type SecurityIssue, SemanticVersionManager, type ServiceFactory, ServiceLifecycle, type ServiceRegistration, type SignatureVerificationResult, UnknownFilterTokenError, UnresolvedFilterTokenError, type UserAuthzGrants, type VersionCompatibility, assertInitServiceRequirements, bucketKeyToCalendarRange, buildPermissionsFromGrants, bulkWrite, calendarPartsInTz, calendarPartsInTzOrUtc, counterSignPayload, createApiRegistryPlugin, createMemoryCache, createMemoryI18n, createMemoryJob, createMemoryMetadata, createMemoryQueue, createPluginConfigValidator, createPluginPermissionEnforcer, deepMerge, defaultIsTransientError, derivePosture, describeInitOrderFault, evaluateAuthGate, extractApiKey, filterTokenContextFrom, generateApiKey, generateEd25519KeyPair, getEnv, getMemoryUsage, hashApiKey, isAuthGateAllowlisted, isExpired, isGrantActive, isGrantExpired, isNode, parseScopes, parseSignature, postureVisibleRows, readAuthoredTranslationLayer, resolveApiKeyPrincipal, resolveAuthzContext, resolveFilterToken, resolveFilterTokens, resolveLocale, resolveLocalizationContext, resolvePluginOrder, resolveUserAuthzGrants, safeExit, shouldDenyAnonymous, signPayload, validateInitServiceContract, verifyPayload, verifyPlatformSignature, verifyPluginArtifact, verifyPublisherSignature, wireAuthoredTranslationSync, withTransientRetry, zonedDateStartToUtcMs };
|