@qwickapps/server 1.0.0 → 1.1.7
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/README.md +179 -80
- package/dist/core/control-panel.d.ts.map +1 -1
- package/dist/core/control-panel.js +37 -45
- package/dist/core/control-panel.js.map +1 -1
- package/dist/core/gateway.d.ts +32 -13
- package/dist/core/gateway.d.ts.map +1 -1
- package/dist/core/gateway.js +150 -99
- package/dist/core/gateway.js.map +1 -1
- package/dist/core/guards.d.ts +22 -0
- package/dist/core/guards.d.ts.map +1 -0
- package/dist/core/guards.js +167 -0
- package/dist/core/guards.js.map +1 -0
- package/dist/core/health-manager.d.ts.map +1 -1
- package/dist/core/health-manager.js +3 -9
- package/dist/core/health-manager.js.map +1 -1
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/logging.js +1 -5
- package/dist/core/logging.js.map +1 -1
- package/dist/core/types.d.ts +104 -11
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/cache-plugin.d.ts +219 -0
- package/dist/plugins/cache-plugin.d.ts.map +1 -0
- package/dist/plugins/cache-plugin.js +326 -0
- package/dist/plugins/cache-plugin.js.map +1 -0
- package/dist/plugins/cache-plugin.test.d.ts +8 -0
- package/dist/plugins/cache-plugin.test.d.ts.map +1 -0
- package/dist/plugins/cache-plugin.test.js +188 -0
- package/dist/plugins/cache-plugin.test.js.map +1 -0
- package/dist/plugins/config-plugin.js +1 -1
- package/dist/plugins/config-plugin.js.map +1 -1
- package/dist/plugins/diagnostics-plugin.js +1 -1
- package/dist/plugins/diagnostics-plugin.js.map +1 -1
- package/dist/plugins/frontend-app-plugin.d.ts +39 -0
- package/dist/plugins/frontend-app-plugin.d.ts.map +1 -0
- package/dist/plugins/frontend-app-plugin.js +176 -0
- package/dist/plugins/frontend-app-plugin.js.map +1 -0
- package/dist/plugins/health-plugin.js +1 -1
- package/dist/plugins/health-plugin.js.map +1 -1
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +5 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/logs-plugin.d.ts.map +1 -1
- package/dist/plugins/logs-plugin.js +1 -3
- package/dist/plugins/logs-plugin.js.map +1 -1
- package/dist/plugins/postgres-plugin.d.ts +155 -0
- package/dist/plugins/postgres-plugin.d.ts.map +1 -0
- package/dist/plugins/postgres-plugin.js +244 -0
- package/dist/plugins/postgres-plugin.js.map +1 -0
- package/dist/plugins/postgres-plugin.test.d.ts +8 -0
- package/dist/plugins/postgres-plugin.test.d.ts.map +1 -0
- package/dist/plugins/postgres-plugin.test.js +165 -0
- package/dist/plugins/postgres-plugin.test.js.map +1 -0
- package/dist-ui/assets/{index-Bk7ypbI4.js → index-CW1BviRn.js} +2 -2
- package/dist-ui/assets/{index-Bk7ypbI4.js.map → index-CW1BviRn.js.map} +1 -1
- package/dist-ui/index.html +1 -1
- package/package.json +18 -2
- package/src/core/control-panel.ts +41 -53
- package/src/core/gateway.ts +193 -124
- package/src/core/guards.ts +190 -0
- package/src/core/health-manager.ts +3 -9
- package/src/core/logging.ts +1 -5
- package/src/core/types.ts +115 -9
- package/src/index.ts +40 -0
- package/src/plugins/cache-plugin.test.ts +241 -0
- package/src/plugins/cache-plugin.ts +503 -0
- package/src/plugins/config-plugin.ts +1 -1
- package/src/plugins/diagnostics-plugin.ts +1 -1
- package/src/plugins/frontend-app-plugin.ts +211 -0
- package/src/plugins/health-plugin.ts +1 -1
- package/src/plugins/index.ts +13 -0
- package/src/plugins/logs-plugin.ts +1 -3
- package/src/plugins/postgres-plugin.test.ts +213 -0
- package/src/plugins/postgres-plugin.ts +345 -0
- package/ui/src/api/controlPanelApi.ts +1 -1
- package/ui/src/pages/LogsPage.tsx +6 -10
package/dist/core/logging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -4,6 +4,100 @@
|
|
|
4
4
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
5
|
*/
|
|
6
6
|
import type { Application, RequestHandler, Router } from 'express';
|
|
7
|
+
/**
|
|
8
|
+
* Route guard types for protecting routes
|
|
9
|
+
*/
|
|
10
|
+
export type RouteGuardType = 'none' | 'basic' | 'supabase' | 'auth0';
|
|
11
|
+
/**
|
|
12
|
+
* Basic auth guard configuration
|
|
13
|
+
*/
|
|
14
|
+
export interface BasicAuthGuardConfig {
|
|
15
|
+
type: 'basic';
|
|
16
|
+
/** Username for basic auth */
|
|
17
|
+
username: string;
|
|
18
|
+
/** Password for basic auth */
|
|
19
|
+
password: string;
|
|
20
|
+
/** Realm name for the WWW-Authenticate header */
|
|
21
|
+
realm?: string;
|
|
22
|
+
/** Paths to exclude from authentication (e.g., ['/health']) */
|
|
23
|
+
excludePaths?: string[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Supabase auth guard configuration
|
|
27
|
+
*/
|
|
28
|
+
export interface SupabaseAuthGuardConfig {
|
|
29
|
+
type: 'supabase';
|
|
30
|
+
/** Supabase project URL */
|
|
31
|
+
supabaseUrl: string;
|
|
32
|
+
/** Supabase anon key */
|
|
33
|
+
supabaseAnonKey: string;
|
|
34
|
+
/** Paths to exclude from authentication */
|
|
35
|
+
excludePaths?: string[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Auth0 guard configuration
|
|
39
|
+
*/
|
|
40
|
+
export interface Auth0GuardConfig {
|
|
41
|
+
type: 'auth0';
|
|
42
|
+
/** Auth0 domain (e.g., 'myapp.auth0.com') */
|
|
43
|
+
domain: string;
|
|
44
|
+
/** Auth0 client ID */
|
|
45
|
+
clientId: string;
|
|
46
|
+
/** Auth0 client secret */
|
|
47
|
+
clientSecret: string;
|
|
48
|
+
/** Base URL of the application */
|
|
49
|
+
baseUrl: string;
|
|
50
|
+
/** Session secret for cookie encryption */
|
|
51
|
+
secret: string;
|
|
52
|
+
/** Auth routes configuration */
|
|
53
|
+
routes?: {
|
|
54
|
+
login?: string;
|
|
55
|
+
logout?: string;
|
|
56
|
+
callback?: string;
|
|
57
|
+
};
|
|
58
|
+
/** Paths to exclude from authentication */
|
|
59
|
+
excludePaths?: string[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* No authentication guard
|
|
63
|
+
*/
|
|
64
|
+
export interface NoAuthGuardConfig {
|
|
65
|
+
type: 'none';
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Union type for all guard configurations
|
|
69
|
+
*/
|
|
70
|
+
export type RouteGuardConfig = NoAuthGuardConfig | BasicAuthGuardConfig | SupabaseAuthGuardConfig | Auth0GuardConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Mount path configuration for applications
|
|
73
|
+
*/
|
|
74
|
+
export interface MountConfig {
|
|
75
|
+
/** Path where this app is mounted (e.g., '/', '/cpanel', '/app') */
|
|
76
|
+
path: string;
|
|
77
|
+
/** Route guard configuration for this mount point */
|
|
78
|
+
guard?: RouteGuardConfig;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Frontend app configuration
|
|
82
|
+
*/
|
|
83
|
+
export interface FrontendAppConfig {
|
|
84
|
+
/** Mount configuration */
|
|
85
|
+
mount: MountConfig;
|
|
86
|
+
/** Redirect to another URL instead of serving content */
|
|
87
|
+
redirectUrl?: string;
|
|
88
|
+
/** Path to static files to serve */
|
|
89
|
+
staticPath?: string;
|
|
90
|
+
/** Landing page HTML (used if no staticPath or redirectUrl) */
|
|
91
|
+
landingPage?: {
|
|
92
|
+
title: string;
|
|
93
|
+
heading?: string;
|
|
94
|
+
description?: string;
|
|
95
|
+
links?: Array<{
|
|
96
|
+
label: string;
|
|
97
|
+
url: string;
|
|
98
|
+
}>;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
7
101
|
/**
|
|
8
102
|
* Control Panel Configuration
|
|
9
103
|
*/
|
|
@@ -20,17 +114,16 @@ export interface ControlPanelConfig {
|
|
|
20
114
|
primaryColor?: string;
|
|
21
115
|
favicon?: string;
|
|
22
116
|
};
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
117
|
+
/**
|
|
118
|
+
* Mount path for the control panel.
|
|
119
|
+
* Defaults to '/cpanel'.
|
|
120
|
+
*/
|
|
121
|
+
mountPath?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Route guard for the control panel.
|
|
124
|
+
* Defaults to basic auth in production.
|
|
125
|
+
*/
|
|
126
|
+
guard?: RouteGuardConfig;
|
|
34
127
|
/** Optional: CORS configuration */
|
|
35
128
|
cors?: {
|
|
36
129
|
origins: string[];
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
export { createControlPanel } from './core/control-panel.js';
|
|
10
10
|
export { createGateway } from './core/gateway.js';
|
|
11
11
|
export { HealthManager } from './core/health-manager.js';
|
|
12
|
+
export { createRouteGuard, isAuthenticated, getAuthenticatedUser, } from './core/guards.js';
|
|
12
13
|
export { initializeLogging, getControlPanelLogger, getLoggingSubsystem, } from './core/logging.js';
|
|
13
14
|
export type { LoggingConfig } from './core/logging.js';
|
|
14
|
-
export type { ControlPanelConfig, ControlPanelPlugin, ControlPanelInstance, PluginContext, HealthCheck, HealthCheckType, HealthCheckResult, HealthStatus, LogSource, ConfigDisplayOptions, Logger, DiagnosticsReport, } from './core/types.js';
|
|
15
|
+
export type { ControlPanelConfig, ControlPanelPlugin, ControlPanelInstance, PluginContext, HealthCheck, HealthCheckType, HealthCheckResult, HealthStatus, LogSource, ConfigDisplayOptions, Logger, DiagnosticsReport, RouteGuardType, RouteGuardConfig, BasicAuthGuardConfig, SupabaseAuthGuardConfig, Auth0GuardConfig, NoAuthGuardConfig, MountConfig, FrontendAppConfig, } from './core/types.js';
|
|
15
16
|
export type { GatewayConfig, GatewayInstance, ServiceFactory, } from './core/gateway.js';
|
|
16
|
-
export { createHealthPlugin, createLogsPlugin, createConfigPlugin, createDiagnosticsPlugin, } from './plugins/index.js';
|
|
17
|
-
export type { HealthPluginConfig, LogsPluginConfig, ConfigPluginConfig, DiagnosticsPluginConfig, } from './plugins/index.js';
|
|
17
|
+
export { createHealthPlugin, createLogsPlugin, createConfigPlugin, createDiagnosticsPlugin, createFrontendAppPlugin, createPostgresPlugin, getPostgres, hasPostgres, createPostgresPlugin as createDatabasePlugin, getPostgres as getDatabase, hasPostgres as hasDatabase, createCachePlugin, getCache, hasCache, } from './plugins/index.js';
|
|
18
|
+
export type { HealthPluginConfig, LogsPluginConfig, ConfigPluginConfig, DiagnosticsPluginConfig, FrontendAppPluginConfig, PostgresPluginConfig, PostgresInstance, TransactionCallback, PostgresPluginConfig as DatabasePluginConfig, PostgresInstance as DatabaseInstance, CachePluginConfig, CacheInstance, } from './plugins/index.js';
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,MAAM,EACN,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,MAAM,EACN,iBAAiB,EAEjB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EAEvB,oBAAoB,EACpB,WAAW,EACX,WAAW,EAEX,oBAAoB,IAAI,oBAAoB,EAC5C,WAAW,IAAI,WAAW,EAC1B,WAAW,IAAI,WAAW,EAE1B,iBAAiB,EACjB,QAAQ,EACR,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EAEvB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EAEnB,oBAAoB,IAAI,oBAAoB,EAC5C,gBAAgB,IAAI,gBAAgB,EAEpC,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,8 +10,16 @@
|
|
|
10
10
|
export { createControlPanel } from './core/control-panel.js';
|
|
11
11
|
export { createGateway } from './core/gateway.js';
|
|
12
12
|
export { HealthManager } from './core/health-manager.js';
|
|
13
|
+
// Guards exports
|
|
14
|
+
export { createRouteGuard, isAuthenticated, getAuthenticatedUser, } from './core/guards.js';
|
|
13
15
|
// Logging exports
|
|
14
16
|
export { initializeLogging, getControlPanelLogger, getLoggingSubsystem, } from './core/logging.js';
|
|
15
17
|
// Built-in plugins
|
|
16
|
-
export { createHealthPlugin, createLogsPlugin, createConfigPlugin, createDiagnosticsPlugin,
|
|
18
|
+
export { createHealthPlugin, createLogsPlugin, createConfigPlugin, createDiagnosticsPlugin, createFrontendAppPlugin,
|
|
19
|
+
// Database plugins
|
|
20
|
+
createPostgresPlugin, getPostgres, hasPostgres,
|
|
21
|
+
// Backward compatibility aliases (deprecated)
|
|
22
|
+
createPostgresPlugin as createDatabasePlugin, getPostgres as getDatabase, hasPostgres as hasDatabase,
|
|
23
|
+
// Cache plugins
|
|
24
|
+
createCachePlugin, getCache, hasCache, } from './plugins/index.js';
|
|
17
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,kBAAkB;AAClB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,iBAAiB;AACjB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAgC3B,mBAAmB;AACnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB;AACvB,mBAAmB;AACnB,oBAAoB,EACpB,WAAW,EACX,WAAW;AACX,8CAA8C;AAC9C,oBAAoB,IAAI,oBAAoB,EAC5C,WAAW,IAAI,WAAW,EAC1B,WAAW,IAAI,WAAW;AAC1B,gBAAgB;AAChB,iBAAiB,EACjB,QAAQ,EACR,QAAQ,GACT,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Plugin
|
|
3
|
+
*
|
|
4
|
+
* Provides Redis caching capabilities with connection pooling and health checks.
|
|
5
|
+
* Wraps the 'ioredis' library with a simple, reusable interface.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
* - Connection management with automatic reconnection
|
|
9
|
+
* - Key prefixing for multi-tenant/multi-app scenarios
|
|
10
|
+
* - TTL-based caching with setex/get operations
|
|
11
|
+
* - Automatic health checks
|
|
12
|
+
* - Multiple named instances support
|
|
13
|
+
* - Graceful shutdown
|
|
14
|
+
*
|
|
15
|
+
* ## Usage
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { createGateway, createCachePlugin, getCache } from '@qwickapps/server';
|
|
19
|
+
*
|
|
20
|
+
* const gateway = createGateway({
|
|
21
|
+
* // ... config
|
|
22
|
+
* plugins: [
|
|
23
|
+
* createCachePlugin({
|
|
24
|
+
* url: process.env.REDIS_URL,
|
|
25
|
+
* keyPrefix: 'myapp:',
|
|
26
|
+
* }),
|
|
27
|
+
* ],
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // In your service code:
|
|
31
|
+
* const cache = getCache();
|
|
32
|
+
* await cache.set('user:123', userData, 3600); // Cache for 1 hour
|
|
33
|
+
* const user = await cache.get<User>('user:123');
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* ## Multiple Caches
|
|
37
|
+
*
|
|
38
|
+
* ```typescript
|
|
39
|
+
* // Register multiple caches with different names
|
|
40
|
+
* createCachePlugin({ url: primaryUrl, keyPrefix: 'session:' }, 'sessions');
|
|
41
|
+
* createCachePlugin({ url: cacheUrl, keyPrefix: 'cache:' }, 'content');
|
|
42
|
+
*
|
|
43
|
+
* // Access by name
|
|
44
|
+
* const sessions = getCache('sessions');
|
|
45
|
+
* const content = getCache('content');
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
49
|
+
*/
|
|
50
|
+
import type { ControlPanelPlugin } from '../core/types.js';
|
|
51
|
+
type Redis = import('ioredis').default;
|
|
52
|
+
/**
|
|
53
|
+
* Configuration for the cache plugin
|
|
54
|
+
*/
|
|
55
|
+
export interface CachePluginConfig {
|
|
56
|
+
/** Redis connection URL (e.g., redis://localhost:6379) */
|
|
57
|
+
url: string;
|
|
58
|
+
/** Key prefix for all cache operations (default: '') */
|
|
59
|
+
keyPrefix?: string;
|
|
60
|
+
/** Default TTL in seconds for set operations (default: 3600 = 1 hour) */
|
|
61
|
+
defaultTtl?: number;
|
|
62
|
+
/** Maximum number of retry attempts (default: 3) */
|
|
63
|
+
maxRetries?: number;
|
|
64
|
+
/** Retry delay in milliseconds (default: 1000) */
|
|
65
|
+
retryDelayMs?: number;
|
|
66
|
+
/** Connection timeout in milliseconds (default: 5000) */
|
|
67
|
+
connectTimeoutMs?: number;
|
|
68
|
+
/** Command timeout in milliseconds (default: 5000) */
|
|
69
|
+
commandTimeoutMs?: number;
|
|
70
|
+
/** Register a health check for this cache (default: true) */
|
|
71
|
+
healthCheck?: boolean;
|
|
72
|
+
/** Name for the health check (default: 'redis') */
|
|
73
|
+
healthCheckName?: string;
|
|
74
|
+
/** Health check interval in milliseconds (default: 30000) */
|
|
75
|
+
healthCheckInterval?: number;
|
|
76
|
+
/** Called when connection is ready */
|
|
77
|
+
onConnect?: () => void;
|
|
78
|
+
/** Called on connection errors */
|
|
79
|
+
onError?: (error: Error) => void;
|
|
80
|
+
/** Enable lazy connect - don't connect until first command (default: false) */
|
|
81
|
+
lazyConnect?: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Cache instance returned by the plugin
|
|
85
|
+
*/
|
|
86
|
+
export interface CacheInstance {
|
|
87
|
+
/**
|
|
88
|
+
* Get a value from cache
|
|
89
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
90
|
+
* @returns Parsed JSON value or null if not found
|
|
91
|
+
*/
|
|
92
|
+
get<T = unknown>(key: string): Promise<T | null>;
|
|
93
|
+
/**
|
|
94
|
+
* Get a raw string value from cache
|
|
95
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
96
|
+
* @returns Raw string value or null if not found
|
|
97
|
+
*/
|
|
98
|
+
getRaw(key: string): Promise<string | null>;
|
|
99
|
+
/**
|
|
100
|
+
* Set a value in cache with TTL
|
|
101
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
102
|
+
* @param value - Value to cache (will be JSON stringified)
|
|
103
|
+
* @param ttlSeconds - Time to live in seconds (uses defaultTtl if not specified)
|
|
104
|
+
*/
|
|
105
|
+
set<T = unknown>(key: string, value: T, ttlSeconds?: number): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Set a raw string value in cache with TTL
|
|
108
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
109
|
+
* @param value - Raw string value to cache
|
|
110
|
+
* @param ttlSeconds - Time to live in seconds (uses defaultTtl if not specified)
|
|
111
|
+
*/
|
|
112
|
+
setRaw(key: string, value: string, ttlSeconds?: number): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Delete a key from cache
|
|
115
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
116
|
+
* @returns true if key was deleted, false if it didn't exist
|
|
117
|
+
*/
|
|
118
|
+
delete(key: string): Promise<boolean>;
|
|
119
|
+
/**
|
|
120
|
+
* Delete multiple keys matching a pattern
|
|
121
|
+
* @param pattern - Pattern to match (prefix is applied automatically)
|
|
122
|
+
* @returns Number of keys deleted
|
|
123
|
+
*/
|
|
124
|
+
deletePattern(pattern: string): Promise<number>;
|
|
125
|
+
/**
|
|
126
|
+
* Check if a key exists in cache
|
|
127
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
128
|
+
* @returns true if key exists
|
|
129
|
+
*/
|
|
130
|
+
exists(key: string): Promise<boolean>;
|
|
131
|
+
/**
|
|
132
|
+
* Set expiration time on a key
|
|
133
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
134
|
+
* @param ttlSeconds - Time to live in seconds
|
|
135
|
+
* @returns true if timeout was set, false if key doesn't exist
|
|
136
|
+
*/
|
|
137
|
+
expire(key: string, ttlSeconds: number): Promise<boolean>;
|
|
138
|
+
/**
|
|
139
|
+
* Get remaining TTL for a key
|
|
140
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
141
|
+
* @returns TTL in seconds, -1 if no expiry, -2 if key doesn't exist
|
|
142
|
+
*/
|
|
143
|
+
ttl(key: string): Promise<number>;
|
|
144
|
+
/**
|
|
145
|
+
* Increment a numeric value
|
|
146
|
+
* @param key - Cache key (prefix is applied automatically)
|
|
147
|
+
* @param delta - Amount to increment by (default: 1)
|
|
148
|
+
* @returns New value after increment
|
|
149
|
+
*/
|
|
150
|
+
incr(key: string, delta?: number): Promise<number>;
|
|
151
|
+
/**
|
|
152
|
+
* Get all keys matching a pattern
|
|
153
|
+
* @param pattern - Pattern to match (prefix is applied automatically)
|
|
154
|
+
* @returns Array of matching keys (without prefix)
|
|
155
|
+
*/
|
|
156
|
+
keys(pattern: string): Promise<string[]>;
|
|
157
|
+
/**
|
|
158
|
+
* Flush all keys with the configured prefix
|
|
159
|
+
* @returns Number of keys deleted
|
|
160
|
+
*/
|
|
161
|
+
flush(): Promise<number>;
|
|
162
|
+
/**
|
|
163
|
+
* Get cache statistics
|
|
164
|
+
*/
|
|
165
|
+
getStats(): Promise<{
|
|
166
|
+
connected: boolean;
|
|
167
|
+
keyCount: number;
|
|
168
|
+
usedMemory?: string;
|
|
169
|
+
}>;
|
|
170
|
+
/**
|
|
171
|
+
* Get the underlying Redis client (for advanced use cases)
|
|
172
|
+
*/
|
|
173
|
+
getClient(): Redis;
|
|
174
|
+
/**
|
|
175
|
+
* Close the connection
|
|
176
|
+
*/
|
|
177
|
+
close(): Promise<void>;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get a cache instance by name
|
|
181
|
+
*
|
|
182
|
+
* @param name - Instance name (default: 'default')
|
|
183
|
+
* @returns The cache instance
|
|
184
|
+
* @throws Error if the instance is not registered
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* const cache = getCache();
|
|
189
|
+
* const user = await cache.get<User>('user:123');
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
export declare function getCache(name?: string): CacheInstance;
|
|
193
|
+
/**
|
|
194
|
+
* Check if a cache instance is registered
|
|
195
|
+
*
|
|
196
|
+
* @param name - Instance name (default: 'default')
|
|
197
|
+
* @returns true if the instance exists
|
|
198
|
+
*/
|
|
199
|
+
export declare function hasCache(name?: string): boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Create a cache plugin
|
|
202
|
+
*
|
|
203
|
+
* @param config - Cache configuration
|
|
204
|
+
* @param instanceName - Name for this cache instance (default: 'default')
|
|
205
|
+
* @returns A control panel plugin
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* ```typescript
|
|
209
|
+
* createCachePlugin({
|
|
210
|
+
* url: process.env.REDIS_URL,
|
|
211
|
+
* keyPrefix: 'myapp:',
|
|
212
|
+
* defaultTtl: 3600,
|
|
213
|
+
* healthCheck: true,
|
|
214
|
+
* });
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
export declare function createCachePlugin(config: CachePluginConfig, instanceName?: string): ControlPanelPlugin;
|
|
218
|
+
export {};
|
|
219
|
+
//# sourceMappingURL=cache-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/cache-plugin.ts"],"names":[],"mappings":"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"}
|