@cruxjs/base 0.0.7 → 0.0.9

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 CHANGED
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
 
10
10
  <div align="center">
11
- <img src="https://img.shields.io/badge/v-0.0.7-black"/>
11
+ <img src="https://img.shields.io/badge/v-0.0.9-black"/>
12
12
  <img src="https://img.shields.io/badge/🔥-@cruxjs-black"/>
13
13
  <br>
14
14
  <img src="https://img.shields.io/github/issues/cruxjs-org/base?style=flat" alt="Github Repo Issues" />
package/dist/index.cjs CHANGED
@@ -1,3 +1,2 @@
1
- 'use strict';var g=class{constructor(e=false){this.debug=e;}phase(e){this.debug&&console.log(`
2
- [CruxJS] \u26A1 Phase: ${e}`);}info(e){this.debug&&console.log(`[CruxJS] ${e}`);}success(e){this.debug&&console.log(`[CruxJS] \u2713 ${e}`);}error(e,t){console.error(`[CruxJS] \u2717 ${e}`),t&&console.error(t);}plugin(e,t){this.debug&&console.log(`[CruxJS:${e}] ${t}`);}};var a=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>`${s.method}:${s.path}`));for(let s of t){let n=`${s.method}:${s.path}`;i.has(n)?this.logger.info(`Skipping plugin route ${n} (overridden by user)`):o.push(s);}return o}mergeSchemas(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>s.name));for(let s of t)i.has(s.name)?this.logger.info(`Skipping plugin schema ${s.name} (overridden by user)`):o.push(s);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var l=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.success(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.plugin(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.plugin(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.plugin(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.plugin(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.plugin(t.name,`Provided ${t.static.length} static configs`));return e}};exports.Logger=g;exports.PluginRegistry=l;exports.ResourceMerger=a;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var logger=require('@minejs/logger');var p=new logger.Logger("debug",true,"[CruxJS]");var n=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>`${i.method}:${i.path}`));for(let i of t){let r=`${i.method}:${i.path}`;s.has(r)?this.logger.info(`Skipping plugin route ${r} (overridden by user)`):o.push(i);}return o}mergeSchemas(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>i.name));for(let i of t)s.has(i.name)?this.logger.info(`Skipping plugin schema ${i.name} (overridden by user)`):o.push(i);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var g=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.debug(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.debug(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.debug(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.debug(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.debug(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.debug(t.name,`Provided ${t.static.length} static configs`));return e}};exports.PluginRegistry=g;exports.ResourceMerger=n;exports.logger=p;//# sourceMappingURL=index.cjs.map
3
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["Logger","debug","name","msg","err","ResourceMerger","logger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"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","file":"index.cjs","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class Logger {\r\n constructor(private debug: boolean = false) {}\r\n\r\n phase(name: string) {\r\n if (!this.debug) return;\r\n console.log(`\\n[CruxJS] ⚡ Phase: ${name}`);\r\n }\r\n\r\n info(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ${msg}`);\r\n }\r\n\r\n success(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ✓ ${msg}`);\r\n }\r\n\r\n error(msg: string, err?: Error) {\r\n console.error(`[CruxJS] ✗ ${msg}`);\r\n if (err) console.error(err);\r\n }\r\n\r\n plugin(name: string, msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS:${name}] ${msg}`);\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.success(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.plugin(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.plugin(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
1
+ {"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["logger","Logger","ResourceMerger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","s","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"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","file":"index.cjs","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export const logger = new Logger('debug', true, '[CruxJS]');\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.debug(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.debug(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.debug(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.debug(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.debug(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.debug(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
package/dist/index.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { TableSchema as TableSchema$1, DB } from '@minejs/db';
2
2
  import { AppContext as AppContext$1 } from '@minejs/server';
3
+ import { Logger } from '@minejs/logger';
3
4
 
4
5
  type AppContext = AppContext$1;
5
6
  type TableSchema = TableSchema$1;
@@ -148,15 +149,7 @@ interface AppInstance {
148
149
  getMiddleware(name: string): AppMiddleware | undefined;
149
150
  }
150
151
 
151
- declare class Logger {
152
- private debug;
153
- constructor(debug?: boolean);
154
- phase(name: string): void;
155
- info(msg: string): void;
156
- success(msg: string): void;
157
- error(msg: string, err?: Error): void;
158
- plugin(name: string, msg: string): void;
159
- }
152
+ declare const logger: Logger;
160
153
 
161
154
  declare class ResourceMerger {
162
155
  private logger;
@@ -179,4 +172,4 @@ declare class PluginRegistry {
179
172
  collectStatic(): StaticConfig[];
180
173
  }
181
174
 
182
- export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks, Logger, type MiddlewareExport, PluginRegistry, ResourceMerger, type RouteDefinition, type StaticConfig, type TableSchema };
175
+ export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks, type MiddlewareExport, PluginRegistry, ResourceMerger, type RouteDefinition, type StaticConfig, type TableSchema, logger };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { TableSchema as TableSchema$1, DB } from '@minejs/db';
2
2
  import { AppContext as AppContext$1 } from '@minejs/server';
3
+ import { Logger } from '@minejs/logger';
3
4
 
4
5
  type AppContext = AppContext$1;
5
6
  type TableSchema = TableSchema$1;
@@ -148,15 +149,7 @@ interface AppInstance {
148
149
  getMiddleware(name: string): AppMiddleware | undefined;
149
150
  }
150
151
 
151
- declare class Logger {
152
- private debug;
153
- constructor(debug?: boolean);
154
- phase(name: string): void;
155
- info(msg: string): void;
156
- success(msg: string): void;
157
- error(msg: string, err?: Error): void;
158
- plugin(name: string, msg: string): void;
159
- }
152
+ declare const logger: Logger;
160
153
 
161
154
  declare class ResourceMerger {
162
155
  private logger;
@@ -179,4 +172,4 @@ declare class PluginRegistry {
179
172
  collectStatic(): StaticConfig[];
180
173
  }
181
174
 
182
- export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks, Logger, type MiddlewareExport, PluginRegistry, ResourceMerger, type RouteDefinition, type StaticConfig, type TableSchema };
175
+ export { type AppConfig, type AppContext, type AppInstance, type AppMiddleware, type CruxPlugin, type LifecycleContext, type LifecycleHooks, type MiddlewareExport, PluginRegistry, ResourceMerger, type RouteDefinition, type StaticConfig, type TableSchema, logger };
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
- var g=class{constructor(e=false){this.debug=e;}phase(e){this.debug&&console.log(`
2
- [CruxJS] \u26A1 Phase: ${e}`);}info(e){this.debug&&console.log(`[CruxJS] ${e}`);}success(e){this.debug&&console.log(`[CruxJS] \u2713 ${e}`);}error(e,t){console.error(`[CruxJS] \u2717 ${e}`),t&&console.error(t);}plugin(e,t){this.debug&&console.log(`[CruxJS:${e}] ${t}`);}};var a=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>`${s.method}:${s.path}`));for(let s of t){let n=`${s.method}:${s.path}`;i.has(n)?this.logger.info(`Skipping plugin route ${n} (overridden by user)`):o.push(s);}return o}mergeSchemas(e=[],t=[]){let o=[...e],i=new Set(e.map(s=>s.name));for(let s of t)i.has(s.name)?this.logger.info(`Skipping plugin schema ${s.name} (overridden by user)`):o.push(s);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var l=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.success(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.plugin(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.plugin(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.plugin(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.plugin(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.plugin(t.name,`Provided ${t.static.length} static configs`));return e}};export{g as Logger,l as PluginRegistry,a as ResourceMerger};//# sourceMappingURL=index.js.map
1
+ import {Logger}from'@minejs/logger';var p=new Logger("debug",true,"[CruxJS]");var n=class{constructor(e){this.logger=e;}mergeRoutes(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>`${i.method}:${i.path}`));for(let i of t){let r=`${i.method}:${i.path}`;s.has(r)?this.logger.info(`Skipping plugin route ${r} (overridden by user)`):o.push(i);}return o}mergeSchemas(e=[],t=[]){let o=[...e],s=new Set(e.map(i=>i.name));for(let i of t)s.has(i.name)?this.logger.info(`Skipping plugin schema ${i.name} (overridden by user)`):o.push(i);return o}mergeStatic(e=[],t=[]){return [...e,...t]}};var g=class{constructor(e){this.plugins=[];this.logger=e;}async register(e,t){this.logger.info(`Registering plugin: ${e.name}`),this.plugins.push(e),e.onRegister&&await e.onRegister(t),this.logger.debug(`Plugin registered: ${e.name} v${e.version}`);}getAll(){return this.plugins}async callHook(e,t){for(let o of this.plugins)o[e]&&(this.logger.debug(o.name,`Calling ${e}`),await o[e](t));}collectRoutes(){let e=[];for(let t of this.plugins)t.routes&&(e.push(...t.routes),this.logger.debug(t.name,`Provided ${t.routes.length} routes`));return e}collectSchemas(){let e=[];for(let t of this.plugins)t.schemas&&(e.push(...t.schemas),this.logger.debug(t.name,`Provided ${t.schemas.length} schemas`));return e}collectMiddlewares(){let e=new Map;for(let t of this.plugins)if(t.middlewares)for(let o of t.middlewares)e.set(`${t.name}:${o.name}`,o.handler),this.logger.debug(t.name,`Provided middleware: ${o.name}`);return e}collectStatic(){let e=[];for(let t of this.plugins)t.static&&(e.push(...t.static),this.logger.debug(t.name,`Provided ${t.static.length} static configs`));return e}};export{g as PluginRegistry,n as ResourceMerger,p as logger};//# sourceMappingURL=index.js.map
3
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["Logger","debug","name","msg","err","ResourceMerger","logger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"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","file":"index.js","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class Logger {\r\n constructor(private debug: boolean = false) {}\r\n\r\n phase(name: string) {\r\n if (!this.debug) return;\r\n console.log(`\\n[CruxJS] ⚡ Phase: ${name}`);\r\n }\r\n\r\n info(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ${msg}`);\r\n }\r\n\r\n success(msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS] ✓ ${msg}`);\r\n }\r\n\r\n error(msg: string, err?: Error) {\r\n console.error(`[CruxJS] ✗ ${msg}`);\r\n if (err) console.error(err);\r\n }\r\n\r\n plugin(name: string, msg: string) {\r\n if (!this.debug) return;\r\n console.log(`[CruxJS:${name}] ${msg}`);\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from './logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.success(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.plugin(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.plugin(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.plugin(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
1
+ {"version":3,"sources":["../src/mod/logger.ts","../src/mod/resource_merger.ts","../src/mod/plugin_registry.ts"],"names":["logger","Logger","ResourceMerger","userRoutes","pluginRoutes","merged","userPaths","r","route","key","userSchemas","pluginSchemas","userTables","s","schema","userStatic","pluginStatic","PluginRegistry","plugin","app","hook","ctx","routes","schemas","middlewares","mw","statics"],"mappings":"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","file":"index.js","sourcesContent":["// src/mod/logger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export const logger = new Logger('debug', true, '[CruxJS]');\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/resource_merger.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { RouteDefinition, TableSchema, StaticConfig } from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class ResourceMerger {\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n mergeRoutes(\r\n userRoutes: RouteDefinition[] = [],\r\n pluginRoutes: RouteDefinition[] = []\r\n ): RouteDefinition[] {\r\n // User routes have priority\r\n const merged = [...userRoutes];\r\n const userPaths = new Set(userRoutes.map(r => `${r.method}:${r.path}`));\r\n\r\n for (const route of pluginRoutes) {\r\n const key = `${route.method}:${route.path}`;\r\n\r\n if (!userPaths.has(key)) {\r\n merged.push(route);\r\n } else {\r\n this.logger.info(`Skipping plugin route ${key} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeSchemas(\r\n userSchemas: TableSchema[] = [],\r\n pluginSchemas: TableSchema[] = []\r\n ): TableSchema[] {\r\n // User schemas have priority\r\n const merged = [...userSchemas];\r\n const userTables = new Set(userSchemas.map(s => s.name));\r\n\r\n for (const schema of pluginSchemas) {\r\n if (!userTables.has(schema.name)) {\r\n merged.push(schema);\r\n } else {\r\n this.logger.info(`Skipping plugin schema ${schema.name} (overridden by user)`);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n\r\n mergeStatic(\r\n userStatic: StaticConfig[] = [],\r\n pluginStatic: StaticConfig[] = []\r\n ): StaticConfig[] {\r\n return [...userStatic, ...pluginStatic];\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/plugin_registry.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import * as types from '../types';\r\n import { Logger } from '@minejs/logger';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export class PluginRegistry {\r\n private plugins: types.CruxPlugin[] = [];\r\n private logger: Logger;\r\n\r\n constructor(logger: Logger) {\r\n this.logger = logger;\r\n }\r\n\r\n async register(plugin: types.CruxPlugin, app: types.AppInstance) {\r\n this.logger.info(`Registering plugin: ${plugin.name}`);\r\n\r\n this.plugins.push(plugin);\r\n\r\n // Call plugin's onRegister hook\r\n if (plugin.onRegister) {\r\n await plugin.onRegister(app);\r\n }\r\n\r\n this.logger.debug(`Plugin registered: ${plugin.name} v${plugin.version}`);\r\n }\r\n\r\n getAll(): types.CruxPlugin[] {\r\n return this.plugins;\r\n }\r\n\r\n async callHook(\r\n hook: keyof Pick<types.CruxPlugin, 'onAwake' | 'onStart' | 'onReady' | 'onShutdown'>,\r\n ctx: types.LifecycleContext\r\n ) {\r\n for (const plugin of this.plugins) {\r\n if (plugin[hook]) {\r\n this.logger.debug(plugin.name, `Calling ${hook}`);\r\n await plugin[hook]!(ctx);\r\n }\r\n }\r\n }\r\n\r\n collectRoutes(): types.RouteDefinition[] {\r\n const routes: types.RouteDefinition[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.routes) {\r\n routes.push(...plugin.routes);\r\n this.logger.debug(plugin.name, `Provided ${plugin.routes.length} routes`);\r\n }\r\n }\r\n\r\n return routes;\r\n }\r\n\r\n collectSchemas(): types.TableSchema[] {\r\n const schemas: types.TableSchema[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.schemas) {\r\n schemas.push(...plugin.schemas);\r\n this.logger.debug(plugin.name, `Provided ${plugin.schemas.length} schemas`);\r\n }\r\n }\r\n\r\n return schemas;\r\n }\r\n\r\n collectMiddlewares(): Map<string, types.AppMiddleware> {\r\n const middlewares = new Map<string, types.AppMiddleware>();\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.middlewares) {\r\n for (const mw of plugin.middlewares) {\r\n middlewares.set(`${plugin.name}:${mw.name}`, mw.handler);\r\n this.logger.debug(plugin.name, `Provided middleware: ${mw.name}`);\r\n }\r\n }\r\n }\r\n\r\n return middlewares;\r\n }\r\n\r\n collectStatic(): types.StaticConfig[] {\r\n const statics: types.StaticConfig[] = [];\r\n\r\n for (const plugin of this.plugins) {\r\n if (plugin.static) {\r\n statics.push(...plugin.static);\r\n this.logger.debug(plugin.name, `Provided ${plugin.static.length} static configs`);\r\n }\r\n }\r\n\r\n return statics;\r\n }\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cruxjs/base",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "Core types and utilities for building CruxJS applications and plugins. A shared foundation for @cruxjs/app and plugin packages.",
5
5
  "keywords": ["cruxjs", "base", "types"],
6
6
  "license": "MIT",
@@ -41,7 +41,8 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@minejs/db": "^0.0.3",
44
- "@minejs/server": "^0.0.9"
44
+ "@minejs/logger": "^0.0.2",
45
+ "@minejs/server": "^0.1.0"
45
46
  },
46
47
  "devDependencies": {
47
48
  "@eslint/js": "^9.39.2",