xypriss 3.3.1 → 4.0.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.
Files changed (54) hide show
  1. package/dist/cjs/mods/security/src/utils/memory/config-manager.js +5 -5
  2. package/dist/cjs/mods/security/src/utils/memory/config-manager.js.map +1 -1
  3. package/dist/cjs/src/index.js +2 -0
  4. package/dist/cjs/src/index.js.map +1 -1
  5. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +11 -9
  6. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  7. package/dist/cjs/src/plugins/core/PluginAPI.js +80 -0
  8. package/dist/cjs/src/plugins/core/PluginAPI.js.map +1 -0
  9. package/dist/cjs/src/plugins/core/PluginManager.js +220 -0
  10. package/dist/cjs/src/plugins/core/PluginManager.js.map +1 -0
  11. package/dist/cjs/src/plugins/modules/index.js +1 -1
  12. package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js +2 -2
  13. package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -1
  14. package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js +2 -2
  15. package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -1
  16. package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js +2 -2
  17. package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -1
  18. package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js +1 -1
  19. package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -1
  20. package/dist/cjs/src/server/FastServer.js +1 -1
  21. package/dist/cjs/src/server/ServerFactory.js +42 -38
  22. package/dist/cjs/src/server/ServerFactory.js.map +1 -1
  23. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +8 -0
  24. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
  25. package/dist/cjs/src/server/utils/shouldRegisterRouteOnServer.js +34 -0
  26. package/dist/cjs/src/server/utils/shouldRegisterRouteOnServer.js.map +1 -0
  27. package/dist/esm/mods/security/src/utils/memory/config-manager.js +5 -5
  28. package/dist/esm/mods/security/src/utils/memory/config-manager.js.map +1 -1
  29. package/dist/esm/src/index.js +1 -0
  30. package/dist/esm/src/index.js.map +1 -1
  31. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +11 -9
  32. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  33. package/dist/esm/src/plugins/core/PluginAPI.js +78 -0
  34. package/dist/esm/src/plugins/core/PluginAPI.js.map +1 -0
  35. package/dist/esm/src/plugins/core/PluginManager.js +218 -0
  36. package/dist/esm/src/plugins/core/PluginManager.js.map +1 -0
  37. package/dist/esm/src/plugins/modules/index.js +1 -1
  38. package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js +2 -2
  39. package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -1
  40. package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js +2 -2
  41. package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -1
  42. package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js +2 -2
  43. package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -1
  44. package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js +1 -1
  45. package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -1
  46. package/dist/esm/src/server/FastServer.js +1 -1
  47. package/dist/esm/src/server/ServerFactory.js +42 -38
  48. package/dist/esm/src/server/ServerFactory.js.map +1 -1
  49. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +8 -0
  50. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
  51. package/dist/esm/src/server/utils/shouldRegisterRouteOnServer.js +32 -0
  52. package/dist/esm/src/server/utils/shouldRegisterRouteOnServer.js.map +1 -0
  53. package/dist/index.d.ts +148 -35
  54. package/package.json +2 -3
package/dist/index.d.ts CHANGED
@@ -30,6 +30,32 @@ interface ComponentLogConfig {
30
30
  suppressPatterns?: (string | RegExp)[];
31
31
  }
32
32
 
33
+ /**
34
+ * Plugin System Types
35
+ */
36
+
37
+ interface XyPrissServer$1 {
38
+ app: UltraFastApp;
39
+ [key: string]: any;
40
+ }
41
+ interface XyPrissPlugin {
42
+ name: string;
43
+ version: string;
44
+ description?: string;
45
+ dependencies?: string[];
46
+ onRegister?(server: XyPrissServer$1, config?: any): void | Promise<void>;
47
+ onServerStart?(server: XyPrissServer$1): void | Promise<void>;
48
+ onServerReady?(server: XyPrissServer$1): void | Promise<void>;
49
+ onServerStop?(server: XyPrissServer$1): void | Promise<void>;
50
+ onRequest?(req: XyPrisRequest, res: XyPrisResponse, next: NextFunction): void | Promise<void>;
51
+ onResponse?(req: XyPrisRequest, res: XyPrisResponse): void | Promise<void>;
52
+ onError?(error: Error, req: XyPrisRequest, res: XyPrisResponse, next?: NextFunction): void | Promise<void>;
53
+ registerRoutes?(app: UltraFastApp): void;
54
+ middleware?: any | any[];
55
+ middlewarePriority?: "first" | "normal" | "last";
56
+ }
57
+ type PluginCreator = (config?: any) => XyPrissPlugin;
58
+
33
59
  /**
34
60
  * XyPriss Request interface (Express-compatible)
35
61
  */
@@ -4433,7 +4459,7 @@ declare class ServerMaintenancePlugin extends EventEmitter {
4433
4459
  * Manages all server plugins including route optimization and maintenance
4434
4460
  */
4435
4461
 
4436
- declare class PluginManager extends EventEmitter {
4462
+ declare class PluginManager$1 extends EventEmitter {
4437
4463
  private config;
4438
4464
  private routeOptimizationPlugin?;
4439
4465
  private serverMaintenancePlugin?;
@@ -4928,7 +4954,7 @@ declare class XyPrissServer {
4928
4954
  /**
4929
4955
  * Get the server plugin manager
4930
4956
  */
4931
- getServerPluginManager(): PluginManager | undefined;
4957
+ getServerPluginManager(): PluginManager$1 | undefined;
4932
4958
  /**
4933
4959
  * Wait for full initialization (cache, console interceptor, and all components)
4934
4960
  */
@@ -5583,26 +5609,6 @@ interface XyPrissMiddlewareAPI {
5583
5609
  getConfig(): any;
5584
5610
  }
5585
5611
 
5586
- /**
5587
- * XyPrissJS Express Types - Main Export File
5588
- *
5589
- * This file serves as the main entry point for all Express integration types.
5590
- * Types are now organized into MOD files for better maintainability.
5591
- *
5592
- * @fileoverview Main type export file for Express integration
5593
- * @version 4.5.11
5594
- * @author XyPrissJS Team
5595
- * @since 2025-01-06
5596
- *
5597
- * @example
5598
- * ```typescript
5599
- * import { ServerOptions, UltraFastApp } from './types';
5600
- * // or import specific modules
5601
- * import { CacheConfig } from './types/cache';
5602
- * import { SecurityConfig } from './types/security';
5603
- * ```
5604
- */
5605
-
5606
5612
  type RequestHandler = (req: XyPrisRequest, res: XyPrisResponse, next?: NextFunction) => void | Promise<void>;
5607
5613
 
5608
5614
  /**
@@ -6246,12 +6252,8 @@ interface ServerOptions {
6246
6252
  /** Callback when maintenance is complete */
6247
6253
  onMaintenanceComplete?: (actions: string[]) => void;
6248
6254
  };
6249
- /** Custom plugins */
6250
- customPlugins?: Array<{
6251
- name: string;
6252
- plugin: any;
6253
- config?: any;
6254
- }>;
6255
+ /** Register custom plugins (new plugin system) */
6256
+ register?: Array<XyPrissPlugin | PluginCreator>;
6255
6257
  };
6256
6258
  logging?: {
6257
6259
  enabled?: boolean;
@@ -11589,7 +11591,7 @@ interface CompressionConfig {
11589
11591
  excludeContentTypes?: string[];
11590
11592
  streaming?: boolean;
11591
11593
  }
11592
- type CompressionAlgorithm = "gzip" | "brotli" | "deflate";
11594
+ type CompressionAlgorithm = "gzip" | "br" | "deflate";
11593
11595
  /**
11594
11596
  * Rate limiting configuration
11595
11597
  */
@@ -11797,9 +11799,9 @@ declare abstract class NetworkPlugin implements NetworkPlugin$1 {
11797
11799
  * Connection management plugin for optimizing HTTP connections
11798
11800
  */
11799
11801
  declare class ConnectionPlugin extends NetworkPlugin {
11800
- readonly id = "xypriss.network.connection";
11802
+ readonly id = "xypriss::nehonix.network.connection";
11801
11803
  readonly name = "Connection Management Plugin";
11802
- readonly version = "1.0.0";
11804
+ readonly version = "1.0.1";
11803
11805
  readonly networkCategory = NetworkCategory.CONNECTION;
11804
11806
  private connectionPool;
11805
11807
  private activeConnections;
@@ -12060,9 +12062,9 @@ declare class CompressionPlugin extends NetworkPlugin {
12060
12062
  * Reverse proxy plugin with load balancing and health checks
12061
12063
  */
12062
12064
  declare class ProxyPlugin extends NetworkPlugin {
12063
- readonly id = "nehonix.xypriss.network.proxy";
12065
+ readonly id = "xypriss::nehonix.network.proxy";
12064
12066
  readonly name = "Reverse Proxy Plugin";
12065
- readonly version = "1.0.0";
12067
+ readonly version = "1.0.1";
12066
12068
  readonly networkCategory = NetworkCategory.PROXY;
12067
12069
  private upstreamServers;
12068
12070
  private proxyMiddleware;
@@ -12430,6 +12432,117 @@ declare class PluginDevelopmentHelpers {
12430
12432
  };
12431
12433
  }
12432
12434
 
12435
+ /**
12436
+ * Plugin Manager
12437
+ * Manages plugin registration, lifecycle, and execution
12438
+ */
12439
+
12440
+ declare class PluginManager {
12441
+ private plugins;
12442
+ private pluginOrder;
12443
+ private server;
12444
+ private logger;
12445
+ constructor(server: XyPrissServer$1);
12446
+ /**
12447
+ * Register a plugin
12448
+ */
12449
+ register(plugin: XyPrissPlugin | PluginCreator, config?: any): void;
12450
+ /**
12451
+ * Initialize all plugins (resolve dependencies and set execution order)
12452
+ */
12453
+ initialize(): Promise<void>;
12454
+ /**
12455
+ * Execute a lifecycle hook on all plugins
12456
+ */
12457
+ executeHook(hookName: keyof XyPrissPlugin, ...args: any[]): Promise<void>;
12458
+ /**
12459
+ * Register routes from all plugins
12460
+ */
12461
+ registerRoutes(app: UltraFastApp): void;
12462
+ /**
12463
+ * Apply middleware from all plugins
12464
+ */
12465
+ applyMiddleware(app: UltraFastApp): void;
12466
+ /**
12467
+ * Apply error handlers from all plugins
12468
+ * Wraps route methods to catch errors and call plugin error handlers
12469
+ */
12470
+ applyErrorHandlers(app: UltraFastApp): void;
12471
+ /**
12472
+ * Get a plugin by name
12473
+ */
12474
+ getPlugin(name: string): XyPrissPlugin | undefined;
12475
+ /**
12476
+ * Resolve dependencies and determine execution order
12477
+ */
12478
+ private resolveDependencies;
12479
+ /**
12480
+ * Shutdown all plugins
12481
+ */
12482
+ shutdown(): Promise<void>;
12483
+ }
12484
+
12485
+ /**
12486
+ * Plugin API - Imperative plugin registration
12487
+ *
12488
+ * Usage:
12489
+ * import { Plugin } from 'xypriss';
12490
+ *
12491
+ * Plugin.register({
12492
+ * name: 'my-plugin',
12493
+ * version: '1.0.0',
12494
+ * onServerStart: () => console.log('Started!')
12495
+ * });
12496
+ */
12497
+
12498
+ declare class PluginAPI {
12499
+ private static manager;
12500
+ /**
12501
+ * Set the plugin manager (called internally by ServerFactory)
12502
+ */
12503
+ static setManager(manager: PluginManager): void;
12504
+ /**
12505
+ * Register a plugin imperatively
12506
+ *
12507
+ * @example
12508
+ * Plugin.register({
12509
+ * name: 'my-plugin',
12510
+ * version: '1.0.0',
12511
+ * onServerStart: () => console.log('Started!')
12512
+ * });
12513
+ */
12514
+ static register(plugin: XyPrissPlugin | PluginCreator, config?: any): void;
12515
+ /**
12516
+ * Get a registered plugin by name
12517
+ */
12518
+ static get(name: string): XyPrissPlugin | undefined;
12519
+ /**
12520
+ * Create a plugin (helper for creating plugin objects)
12521
+ *
12522
+ * @example
12523
+ * const myPlugin = Plugin.create({
12524
+ * name: 'my-plugin',
12525
+ * version: '1.0.0',
12526
+ * onServerStart: () => console.log('Started!')
12527
+ * });
12528
+ */
12529
+ static create(plugin: XyPrissPlugin): XyPrissPlugin;
12530
+ /**
12531
+ * Create a plugin factory function
12532
+ *
12533
+ * @example
12534
+ * const createAuthPlugin = Plugin.factory((config) => ({
12535
+ * name: 'auth',
12536
+ * version: '1.0.0',
12537
+ * onRequest: (req, res, next) => {
12538
+ * // Use config here
12539
+ * next();
12540
+ * }
12541
+ * }));
12542
+ */
12543
+ static factory(creator: PluginCreator): PluginCreator;
12544
+ }
12545
+
12433
12546
  /**
12434
12547
  * XyPrissJS Express Quick Start
12435
12548
  * Pre-configured server instances for rapid development (tests with limited configs)
@@ -12557,5 +12670,5 @@ declare class TrustProxy {
12557
12670
  */
12558
12671
  declare function Router(): XyPrissRouter;
12559
12672
 
12560
- export { CachePlugin as CachePluginBase, CompressionPlugin, ConfigurationManager as Configs, ConnectionPlugin, DEFAULT_PLUGIN_CONFIG, FileUploadAPI as FLA, FileUploadAPI, JWTAuthPlugin, NetworkCategory, NetworkPlugin, NetworkPluginFactory, NetworkPluginUtils, PERFORMANCE_TARGETS, PLUGIN_SYSTEM_NAME, PLUGIN_SYSTEM_VERSION, PerformanceMonitor, PerformancePlugin as PerformancePluginBase, PluginDevelopmentHelpers, PluginEngine, PluginEventType, PluginPriority, PluginRegistry, PluginSystemFactory, PluginSystemUtils, PluginType, ProxyPlugin, RateLimitPlugin, ResponseTimePlugin, Route, Router, SecurityMiddleware, SecurityPlugin as SecurityPluginBase, SmartCachePlugin, TrustProxy, Upload, XyPrissRouter, createCacheMiddleware, createCircularRefDebugger, createOptimalCache, createSafeJsonMiddleware, createServer, createServerInstance, expressStringify, fastStringify, initializeFileUpload, quickServer, safeJsonStringify, safeStringify, sendSafeJson, setupSafeJson, uploadAny, uploadArray, uploadFields, uploadSingle };
12561
- export type { BasePlugin, CacheConfig, CachePlugin$1 as CachePlugin, CompressionAlgorithm, CompressionConfig, ConnectionConfig, FailoverConfig, FileUploadConfig as FiUpConfig, FileUploadConfig, HTTPCacheConfig, HealthCheckConfig, CachePlugin$1 as ICachePlugin, PerformancePlugin$1 as IPerformancePlugin, SecurityPlugin$1 as ISecurityPlugin, LoadBalancingStrategy, MultiServerApp, MultiServerConfig, NativePlugin, NetworkExecutionContext, NetworkExecutionResult, NetworkHealthStatus, NetworkPluginConfig, NetworkSecurityConfig, NextFunction, PerformanceConfig, PerformanceMetrics, PerformancePlugin$1 as PerformancePlugin, PluginConfiguration, PluginEvent, PluginExecutionContext, PluginExecutionResult, PluginExecutionStats, PluginInitializationContext, PluginRegistryConfig, ProxyConfig, RateLimitConfig, RateLimitRule, RateLimitStrategy, RedisConfig, XyPrisRequest as Request, RequestHandler, XyPrisResponse as Response, RouteConfig, RouteOptions, SecurityConfig, SecurityPlugin$1 as SecurityPlugin, ServerOptions, SmartRouteConfig, TrustProxyValue$1 as TrustProxyValue, UltraFastApp, UpstreamServer, WebSocketConfig, MultiServerApp as XyPMS, XyPrisRequest as XyPrissRequest, XyPrisResponse as XyPrissResponse };
12673
+ export { CachePlugin as CachePluginBase, CompressionPlugin, ConfigurationManager as Configs, ConnectionPlugin, DEFAULT_PLUGIN_CONFIG, FileUploadAPI as FLA, FileUploadAPI, JWTAuthPlugin, NetworkCategory, NetworkPlugin, NetworkPluginFactory, NetworkPluginUtils, PERFORMANCE_TARGETS, PLUGIN_SYSTEM_NAME, PLUGIN_SYSTEM_VERSION, PerformanceMonitor, PerformancePlugin as PerformancePluginBase, PluginAPI as Plugin, PluginDevelopmentHelpers, PluginEngine, PluginEventType, PluginPriority, PluginRegistry, PluginSystemFactory, PluginSystemUtils, PluginType, ProxyPlugin, RateLimitPlugin, ResponseTimePlugin, Route, Router, SecurityMiddleware, SecurityPlugin as SecurityPluginBase, SmartCachePlugin, TrustProxy, Upload, XyPrissRouter, createCacheMiddleware, createCircularRefDebugger, createOptimalCache, createSafeJsonMiddleware, createServer, createServerInstance, expressStringify, fastStringify, initializeFileUpload, quickServer, safeJsonStringify, safeStringify, sendSafeJson, setupSafeJson, uploadAny, uploadArray, uploadFields, uploadSingle };
12674
+ export type { BasePlugin, CacheConfig, CachePlugin$1 as CachePlugin, CompressionAlgorithm, CompressionConfig, ConnectionConfig, FailoverConfig, FileUploadConfig as FiUpConfig, FileUploadConfig, HTTPCacheConfig, HealthCheckConfig, CachePlugin$1 as ICachePlugin, PerformancePlugin$1 as IPerformancePlugin, SecurityPlugin$1 as ISecurityPlugin, LoadBalancingStrategy, MultiServerApp, MultiServerConfig, NativePlugin, NetworkExecutionContext, NetworkExecutionResult, NetworkHealthStatus, NetworkPluginConfig, NetworkSecurityConfig, NextFunction, PerformanceConfig, PerformanceMetrics, PerformancePlugin$1 as PerformancePlugin, PluginConfiguration, PluginCreator, PluginEvent, PluginExecutionContext, PluginExecutionResult, PluginExecutionStats, PluginInitializationContext, PluginRegistryConfig, ProxyConfig, RateLimitConfig, RateLimitRule, RateLimitStrategy, RedisConfig, XyPrisRequest as Request, RequestHandler, XyPrisResponse as Response, RouteConfig, RouteOptions, SecurityConfig, SecurityPlugin$1 as SecurityPlugin, ServerOptions, SmartRouteConfig, TrustProxyValue$1 as TrustProxyValue, UltraFastApp, UpstreamServer, WebSocketConfig, MultiServerApp as XyPMS, XyPrissPlugin, XyPrisRequest as XyPrissRequest, XyPrisResponse as XyPrissResponse };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xypriss",
3
- "version": "3.3.1",
3
+ "version": "4.0.1",
4
4
  "description": "XyPriss is a lightweight, TypeScript-first, open-source Node.js web framework crafted for developers seeking a familiar Express-like API without Express dependencies. It features built-in security middleware, a robust routing system, and performance optimizations to build scalable, secure web applications effortlessly. Join our community and contribute on GitHub!",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -267,8 +267,7 @@
267
267
  "tweetnacl": "^1.0.3",
268
268
  "ws": "^8.18.2",
269
269
  "xss": "^1.0.15",
270
- "xypriss": "^3.2.2",
270
+ "xypriss-compression-pluging": "^1.0.3",
271
271
  "xypriss-security": "^1.1.10"
272
272
  }
273
273
  }
274
-