@playcademy/sandbox 0.1.9 → 0.1.10

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.
Files changed (41) hide show
  1. package/README.md +15 -15
  2. package/dist/cli.d.ts +0 -1
  3. package/dist/cli.js +103711 -98870
  4. package/dist/config.d.ts +43 -0
  5. package/dist/server.d.ts +288 -5
  6. package/dist/server.js +102023 -97211
  7. package/package.json +9 -11
  8. package/dist/config/index.d.ts +0 -10
  9. package/dist/config/mutators.d.ts +0 -4
  10. package/dist/config/timeback.d.ts +0 -10
  11. package/dist/config/types.d.ts +0 -23
  12. package/dist/constants.d.ts +0 -171
  13. package/dist/database/index.d.ts +0 -6
  14. package/dist/database/path-manager.d.ts +0 -26
  15. package/dist/database/seed.d.ts +0 -34
  16. package/dist/lib/auth.d.ts +0 -10
  17. package/dist/lib/error-handler.d.ts +0 -22
  18. package/dist/lib/realtime.d.ts +0 -17
  19. package/dist/routes/achievements.d.ts +0 -3
  20. package/dist/routes/character.d.ts +0 -3
  21. package/dist/routes/currencies.d.ts +0 -3
  22. package/dist/routes/dev.d.ts +0 -3
  23. package/dist/routes/games.d.ts +0 -3
  24. package/dist/routes/health.d.ts +0 -2
  25. package/dist/routes/index.d.ts +0 -20
  26. package/dist/routes/inventory.d.ts +0 -3
  27. package/dist/routes/items.d.ts +0 -3
  28. package/dist/routes/leaderboard.d.ts +0 -3
  29. package/dist/routes/levels.d.ts +0 -3
  30. package/dist/routes/lti.d.ts +0 -3
  31. package/dist/routes/manifest.d.ts +0 -3
  32. package/dist/routes/maps.d.ts +0 -4
  33. package/dist/routes/notifications.d.ts +0 -3
  34. package/dist/routes/realtime.d.ts +0 -3
  35. package/dist/routes/shop-listings.d.ts +0 -3
  36. package/dist/routes/shop.d.ts +0 -3
  37. package/dist/routes/sprite.d.ts +0 -3
  38. package/dist/routes/timeback.d.ts +0 -3
  39. package/dist/routes/users.d.ts +0 -3
  40. package/dist/types.d.ts +0 -29
  41. /package/dist/{config/index.js → config.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcademy/sandbox",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Local development server for Playcademy game development",
5
5
  "type": "module",
6
6
  "exports": {
@@ -12,13 +12,9 @@
12
12
  "import": "./dist/cli.js",
13
13
  "types": "./dist/cli.d.ts"
14
14
  },
15
- "./ports": {
16
- "import": "./dist/utils/port.js",
17
- "types": "./dist/utils/port.d.ts"
18
- },
19
15
  "./config": {
20
- "import": "./dist/config/index.js",
21
- "types": "./dist/config/index.d.ts"
16
+ "import": "./dist/config.js",
17
+ "types": "./dist/config.d.ts"
22
18
  }
23
19
  },
24
20
  "bin": {
@@ -29,10 +25,10 @@
29
25
  ],
30
26
  "scripts": {
31
27
  "build": "bun run build.ts",
32
- "dev": "bun --watch src/cli.ts",
28
+ "dev": "bun --watch src/cli",
29
+ "docs": "typedoc",
33
30
  "pub": "bun publish.ts",
34
- "start": "bun src/cli.ts",
35
- "docs": "typedoc"
31
+ "start": "bun src/cli.ts"
36
32
  },
37
33
  "dependencies": {
38
34
  "@electric-sql/pglite": "^0.3.2",
@@ -42,6 +38,7 @@
42
38
  "drizzle-orm": "^0.42.0",
43
39
  "hono": "^4.6.3",
44
40
  "jose": "^5.2.3",
41
+ "json-colorizer": "^3.0.1",
45
42
  "picocolors": "^1.1.1"
46
43
  },
47
44
  "devDependencies": {
@@ -53,7 +50,8 @@
53
50
  "@playcademy/timeback": "0.0.1",
54
51
  "@types/bun": "latest",
55
52
  "aws-jwt-verify": "^5.1.0",
56
- "yocto-spinner": "^0.2.2"
53
+ "rollup": "^4.50.2",
54
+ "rollup-plugin-dts": "^6.2.3"
57
55
  },
58
56
  "peerDependencies": {
59
57
  "typescript": "^5"
@@ -1,10 +0,0 @@
1
- import type { SandboxConfig } from './types';
2
- /**
3
- * Sandbox Configuration
4
- *
5
- * Loads configuration from environment variables.
6
- */
7
- export type { AuthConfig, SandboxConfig, TimebackConfig, TimebackMode } from './types';
8
- export { setEmbeddedMode } from './mutators';
9
- export { configureTimeback, hasTimebackCredentials, hasTimebackFullConfig, isTimebackEnabled, requireTimebackCredentials, } from './timeback';
10
- export declare const config: SandboxConfig;
@@ -1,4 +0,0 @@
1
- /**
2
- * Configuration Mutation Functions
3
- */
4
- export declare function setEmbeddedMode(embedded: boolean): void;
@@ -1,10 +0,0 @@
1
- /**
2
- * TimeBack Configuration Helpers
3
- */
4
- import type { TimebackConfig, TimebackMode } from './types';
5
- export declare function getTimebackMode(): TimebackMode;
6
- export declare function isTimebackEnabled(): boolean;
7
- export declare function hasTimebackCredentials(): boolean;
8
- export declare function hasTimebackFullConfig(): boolean;
9
- export declare function requireTimebackCredentials(): TimebackConfig;
10
- export declare function configureTimeback(options: Partial<TimebackConfig>): void;
@@ -1,23 +0,0 @@
1
- /**
2
- * Configuration Type Definitions
3
- */
4
- export type TimebackMode = 'local' | 'remote' | 'disabled';
5
- export interface TimebackConfig {
6
- mode: TimebackMode;
7
- onerosterApiUrl?: string;
8
- caliperApiUrl?: string;
9
- clientId?: string;
10
- clientSecret?: string;
11
- authUrl?: string;
12
- courseId?: string;
13
- studentId?: string;
14
- }
15
- export interface AuthConfig {
16
- betterAuthSecret: string;
17
- gameJwtSecret: string;
18
- }
19
- export interface SandboxConfig {
20
- embedded: boolean;
21
- auth: AuthConfig;
22
- timeback: TimebackConfig;
23
- }
@@ -1,171 +0,0 @@
1
- import type { Item } from '@playcademy/data/types';
2
- export declare const DEMO_USERS: {
3
- readonly admin: {
4
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
5
- readonly name: "Admin User";
6
- readonly username: "admin_user";
7
- readonly email: "admin@playcademy.com";
8
- readonly emailVerified: true;
9
- readonly image: null;
10
- readonly role: "admin";
11
- readonly developerStatus: "approved";
12
- readonly createdAt: Date;
13
- readonly updatedAt: Date;
14
- };
15
- readonly player: {
16
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
17
- readonly name: "Player User";
18
- readonly username: "player_user";
19
- readonly email: "player@playcademy.com";
20
- readonly emailVerified: true;
21
- readonly image: null;
22
- readonly role: "player";
23
- readonly developerStatus: "none";
24
- readonly createdAt: Date;
25
- readonly updatedAt: Date;
26
- };
27
- readonly developer: {
28
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
29
- readonly name: "Developer User";
30
- readonly username: "developer_user";
31
- readonly email: "developer@playcademy.com";
32
- readonly emailVerified: true;
33
- readonly image: null;
34
- readonly role: "developer";
35
- readonly developerStatus: "approved";
36
- readonly createdAt: Date;
37
- readonly updatedAt: Date;
38
- };
39
- readonly pendingDeveloper: {
40
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
41
- readonly name: "Pending Developer";
42
- readonly username: "pending_dev";
43
- readonly email: "pending@playcademy.com";
44
- readonly emailVerified: true;
45
- readonly image: null;
46
- readonly role: "developer";
47
- readonly developerStatus: "pending";
48
- readonly createdAt: Date;
49
- readonly updatedAt: Date;
50
- };
51
- readonly unverifiedPlayer: {
52
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
53
- readonly name: "Unverified Player";
54
- readonly username: "unverified_player";
55
- readonly email: "unverified@playcademy.com";
56
- readonly emailVerified: false;
57
- readonly image: null;
58
- readonly role: "player";
59
- readonly developerStatus: "none";
60
- readonly createdAt: Date;
61
- readonly updatedAt: Date;
62
- };
63
- };
64
- export declare const DEMO_TOKENS: {
65
- readonly 'sandbox-demo-token': {
66
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
67
- readonly name: "Admin User";
68
- readonly username: "admin_user";
69
- readonly email: "admin@playcademy.com";
70
- readonly emailVerified: true;
71
- readonly image: null;
72
- readonly role: "admin";
73
- readonly developerStatus: "approved";
74
- readonly createdAt: Date;
75
- readonly updatedAt: Date;
76
- };
77
- readonly 'sandbox-admin-token': {
78
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
79
- readonly name: "Admin User";
80
- readonly username: "admin_user";
81
- readonly email: "admin@playcademy.com";
82
- readonly emailVerified: true;
83
- readonly image: null;
84
- readonly role: "admin";
85
- readonly developerStatus: "approved";
86
- readonly createdAt: Date;
87
- readonly updatedAt: Date;
88
- };
89
- readonly 'sandbox-player-token': {
90
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
91
- readonly name: "Player User";
92
- readonly username: "player_user";
93
- readonly email: "player@playcademy.com";
94
- readonly emailVerified: true;
95
- readonly image: null;
96
- readonly role: "player";
97
- readonly developerStatus: "none";
98
- readonly createdAt: Date;
99
- readonly updatedAt: Date;
100
- };
101
- readonly 'sandbox-developer-token': {
102
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
103
- readonly name: "Developer User";
104
- readonly username: "developer_user";
105
- readonly email: "developer@playcademy.com";
106
- readonly emailVerified: true;
107
- readonly image: null;
108
- readonly role: "developer";
109
- readonly developerStatus: "approved";
110
- readonly createdAt: Date;
111
- readonly updatedAt: Date;
112
- };
113
- readonly 'sandbox-pending-dev-token': {
114
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
115
- readonly name: "Pending Developer";
116
- readonly username: "pending_dev";
117
- readonly email: "pending@playcademy.com";
118
- readonly emailVerified: true;
119
- readonly image: null;
120
- readonly role: "developer";
121
- readonly developerStatus: "pending";
122
- readonly createdAt: Date;
123
- readonly updatedAt: Date;
124
- };
125
- readonly 'sandbox-unverified-token': {
126
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
127
- readonly name: "Unverified Player";
128
- readonly username: "unverified_player";
129
- readonly email: "unverified@playcademy.com";
130
- readonly emailVerified: false;
131
- readonly image: null;
132
- readonly role: "player";
133
- readonly developerStatus: "none";
134
- readonly createdAt: Date;
135
- readonly updatedAt: Date;
136
- };
137
- readonly 'mock-game-token-for-local-dev': {
138
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
139
- readonly name: "Admin User";
140
- readonly username: "admin_user";
141
- readonly email: "admin@playcademy.com";
142
- readonly emailVerified: true;
143
- readonly image: null;
144
- readonly role: "admin";
145
- readonly developerStatus: "approved";
146
- readonly createdAt: Date;
147
- readonly updatedAt: Date;
148
- };
149
- };
150
- export declare const DEMO_USER: {
151
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
152
- readonly name: "Admin User";
153
- readonly username: "admin_user";
154
- readonly email: "admin@playcademy.com";
155
- readonly emailVerified: true;
156
- readonly image: null;
157
- readonly role: "admin";
158
- readonly developerStatus: "approved";
159
- readonly createdAt: Date;
160
- readonly updatedAt: Date;
161
- };
162
- export declare const DEMO_TOKEN = "sandbox-demo-token";
163
- export declare const MOCK_GAME_ID = "mock-game-id-from-template";
164
- export declare const PLAYCADEMY_CREDITS_ID: `${string}-${string}-${string}-${string}-${string}`;
165
- export declare const SAMPLE_ITEMS: Omit<Item, 'createdAt'>[];
166
- export declare const SAMPLE_INVENTORY: {
167
- id: `${string}-${string}-${string}-${string}-${string}`;
168
- userId: `${string}-${string}-${string}-${string}-${string}`;
169
- itemId: `${string}-${string}-${string}-${string}-${string}`;
170
- quantity: number;
171
- }[];
@@ -1,6 +0,0 @@
1
- import { PGlite } from '@electric-sql/pglite';
2
- import * as schema from '@playcademy/data/tables';
3
- import type { PgliteDatabase } from 'drizzle-orm/pglite';
4
- export declare function setupDatabase(customPath?: string): Promise<PgliteDatabase<typeof schema> & {
5
- $client: PGlite;
6
- }>;
@@ -1,26 +0,0 @@
1
- /**
2
- * Database path configuration and management
3
- */
4
- export declare class DatabasePathManager {
5
- private static readonly DEFAULT_DB_SUBPATH;
6
- /**
7
- * Find the nearest node_modules directory by walking up the directory tree
8
- */
9
- private static findNodeModulesPath;
10
- /**
11
- * Resolve the database path, using provided path or auto-discovering location
12
- */
13
- static resolveDatabasePath(customPath?: string): string;
14
- /**
15
- * Ensure database directory exists, removing any existing data for fresh start
16
- */
17
- static ensureDatabaseDirectory(dbPath: string): void;
18
- /**
19
- * Get debug information about the database path resolution
20
- */
21
- static getDebugInfo(customPath?: string): {
22
- resolvedPath: string;
23
- nodeModulesPath: string;
24
- isCustomPath: boolean;
25
- };
26
- }
@@ -1,34 +0,0 @@
1
- import { setupDatabase } from '.';
2
- import type { ProjectInfo } from '../types';
3
- export declare function seedDemoData(db: Awaited<ReturnType<typeof setupDatabase>>): Promise<{
4
- readonly id: `${string}-${string}-${string}-${string}-${string}`;
5
- readonly name: "Admin User";
6
- readonly username: "admin_user";
7
- readonly email: "admin@playcademy.com";
8
- readonly emailVerified: true;
9
- readonly image: null;
10
- readonly role: "admin";
11
- readonly developerStatus: "approved";
12
- readonly createdAt: Date;
13
- readonly updatedAt: Date;
14
- }>;
15
- export declare function generateLevelConfigs(): {
16
- level: number;
17
- xpRequired: number;
18
- creditsReward: number;
19
- }[];
20
- export declare function seedCurrentProjectGame(db: Awaited<ReturnType<typeof setupDatabase>>, project: ProjectInfo): Promise<{
21
- id: string;
22
- createdAt: Date | null;
23
- updatedAt: Date | null;
24
- developerId: string | null;
25
- slug: string;
26
- displayName: string;
27
- version: string;
28
- gameType: "hosted" | "external";
29
- assetBundleBase: string | null;
30
- externalUrl: string | null;
31
- platform: "web" | "godot" | "unity";
32
- mapElementId: string | null;
33
- metadata: import("@playcademy/data/tables").GameMetadata;
34
- } | undefined>;
@@ -1,10 +0,0 @@
1
- import type { MiddlewareHandler } from 'hono';
2
- export interface SetupAuthOptions {
3
- /** Paths that don't require authentication */
4
- exceptions?: string[];
5
- }
6
- /**
7
- * Setup authentication middleware for sandbox
8
- * Accepts both Bearer tokens (for user auth) and x-api-key (for server-to-server)
9
- */
10
- export declare function setupAuth(options?: SetupAuthOptions): MiddlewareHandler;
@@ -1,22 +0,0 @@
1
- import { ApiError } from '@playcademy/api-core/errors';
2
- import type { Context } from 'hono';
3
- /**
4
- * Create a standardized error response that matches the API contract
5
- */
6
- export declare function createErrorResponse(error: ApiError): {
7
- error: {
8
- code: string;
9
- message: string;
10
- details: unknown;
11
- };
12
- };
13
- /**
14
- * Create a standardized error response for unknown errors
15
- */
16
- export declare function createUnknownErrorResponse(error: unknown): {
17
- error: {
18
- code: string;
19
- message: string;
20
- };
21
- };
22
- export declare function handleApiError(c: Context, error: unknown): Response;
@@ -1,17 +0,0 @@
1
- import { createRealtimeServer } from '@playcademy/realtime/server';
2
- import type { SandboxRealtimeServer } from '@playcademy/realtime/server/sandbox';
3
- import type { ServerOptions } from '../types';
4
- /**
5
- * Starts the realtime server with sandbox-specific configuration.
6
- *
7
- * This function handles:
8
- * - Conditional startup based on options
9
- * - Sandbox-specific authentication secrets
10
- * - Quiet mode for clean embedded logging
11
- * - Error handling with graceful degradation
12
- *
13
- * @param realtimeOptions - Realtime configuration from ServerOptions
14
- * @param betterAuthSecret - Authentication secret for realtime server
15
- * @returns Promise resolving to realtime server instance or null
16
- */
17
- export declare function startRealtimeServer(realtimeOptions: NonNullable<ServerOptions['realtime']>, betterAuthSecret: string): Promise<SandboxRealtimeServer | Awaited<ReturnType<typeof createRealtimeServer>> | null>;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const achievementsRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const characterRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const currenciesRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const devRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const gamesRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,2 +0,0 @@
1
- import { Hono } from 'hono';
2
- export declare const healthRouter: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
@@ -1,20 +0,0 @@
1
- export { usersRouter } from './users';
2
- export { healthRouter } from './health';
3
- export { inventoryRouter } from './inventory';
4
- export { gamesRouter } from './games';
5
- export { manifestRouter } from './manifest';
6
- export { shopRouter } from './shop';
7
- export { itemsRouter } from './items';
8
- export { currenciesRouter } from './currencies';
9
- export { mapRouter, mapsRouter } from './maps';
10
- export { shopListingsRouter } from './shop-listings';
11
- export { devRouter } from './dev';
12
- export { levelsRouter } from './levels';
13
- export { leaderboardRouter } from './leaderboard';
14
- export { realtimeRouter } from './realtime';
15
- export { characterRouter } from './character';
16
- export { spriteRouter } from './sprite';
17
- export { timebackRouter } from './timeback';
18
- export { achievementsRouter } from './achievements';
19
- export { ltiRouter } from './lti';
20
- export { notificationsRouter } from './notifications';
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const inventoryRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const itemsRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const leaderboardRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const levelsRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const ltiRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const manifestRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,4 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const mapRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
4
- export declare const mapsRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const notificationsRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const realtimeRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const shopListingsRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const shopRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const spriteRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const timebackRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
@@ -1,3 +0,0 @@
1
- import { Hono } from 'hono';
2
- import type { HonoEnv } from '../types';
3
- export declare const usersRouter: Hono<HonoEnv, import("hono/types").BlankSchema, "/">;
package/dist/types.d.ts DELETED
@@ -1,29 +0,0 @@
1
- import type { User } from '@playcademy/data/types';
2
- import type { TimebackConfig } from './config';
3
- import type { setupDatabase } from './database';
4
- export type HonoEnv = {
5
- Variables: {
6
- user: User | null;
7
- db: Awaited<ReturnType<typeof setupDatabase>>;
8
- };
9
- };
10
- export interface ProjectInfo {
11
- slug: string;
12
- displayName: string;
13
- version: string;
14
- description?: string;
15
- }
16
- export interface ServerOptions {
17
- port: number;
18
- project?: ProjectInfo;
19
- verbose?: boolean;
20
- quiet?: boolean;
21
- seed?: boolean;
22
- memoryOnly?: boolean;
23
- logLevel?: 'debug' | 'info' | 'warn' | 'error';
24
- realtime?: {
25
- enabled?: boolean;
26
- port?: number;
27
- };
28
- timeback?: Partial<TimebackConfig>;
29
- }
File without changes