@mahameru/diatrema 0.0.1 → 0.0.3

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 (101) hide show
  1. package/diatrema-Bk12jngx.d.ts +93 -0
  2. package/diatrema-CyKJKZv_.d.cts +93 -0
  3. package/diatrema.cjs +70 -52
  4. package/diatrema.cjs.map +1 -1
  5. package/diatrema.d.cts +6 -72
  6. package/diatrema.d.ts +4 -71
  7. package/diatrema.js +70 -52
  8. package/diatrema.js.map +1 -1
  9. package/helpers.cjs +2 -18
  10. package/helpers.cjs.map +1 -1
  11. package/helpers.d.cts +1 -6
  12. package/helpers.d.ts +1 -6
  13. package/helpers.js +1 -16
  14. package/helpers.js.map +1 -1
  15. package/index.cjs +4 -18
  16. package/index.cjs.map +1 -1
  17. package/index.d.cts +4 -13
  18. package/index.d.ts +4 -13
  19. package/index.js +2 -9
  20. package/index.js.map +1 -1
  21. package/logger.cjs +10 -5
  22. package/logger.cjs.map +1 -1
  23. package/logger.d.cts +1 -1
  24. package/logger.d.ts +1 -1
  25. package/logger.js +10 -5
  26. package/logger.js.map +1 -1
  27. package/mahameru-plugin.cjs +109 -0
  28. package/mahameru-plugin.cjs.map +1 -0
  29. package/mahameru-plugin.d.cts +4 -0
  30. package/mahameru-plugin.d.ts +4 -0
  31. package/mahameru-plugin.js +85 -0
  32. package/mahameru-plugin.js.map +1 -0
  33. package/package.json +4 -3
  34. package/scripts/preinstall.cjs +10 -0
  35. package/scripts/preinstall.cjs.map +1 -0
  36. package/scripts/preinstall.d.cts +2 -0
  37. package/scripts/preinstall.d.ts +2 -0
  38. package/scripts/preinstall.js +9 -9
  39. package/scripts/preinstall.js.map +1 -0
  40. package/types.cjs +0 -23
  41. package/types.cjs.map +1 -1
  42. package/types.d.cts +5 -3
  43. package/types.d.ts +5 -3
  44. package/types.js +0 -15
  45. package/types.js.map +1 -1
  46. package/container-error.cjs +0 -45
  47. package/container-error.cjs.map +0 -1
  48. package/container-error.d.cts +0 -7
  49. package/container-error.d.ts +0 -7
  50. package/container-error.js +0 -22
  51. package/container-error.js.map +0 -1
  52. package/container.cjs +0 -318
  53. package/container.cjs.map +0 -1
  54. package/container.d.cts +0 -60
  55. package/container.d.ts +0 -60
  56. package/container.js +0 -285
  57. package/container.js.map +0 -1
  58. package/http-server-error.cjs +0 -44
  59. package/http-server-error.cjs.map +0 -1
  60. package/http-server-error.d.cts +0 -7
  61. package/http-server-error.d.ts +0 -7
  62. package/http-server-error.js +0 -21
  63. package/http-server-error.js.map +0 -1
  64. package/http-server.cjs +0 -382
  65. package/http-server.cjs.map +0 -1
  66. package/http-server.d.cts +0 -81
  67. package/http-server.d.ts +0 -81
  68. package/http-server.js +0 -359
  69. package/http-server.js.map +0 -1
  70. package/mahameru-request.cjs +0 -79
  71. package/mahameru-request.cjs.map +0 -1
  72. package/mahameru-request.d.cts +0 -3
  73. package/mahameru-request.d.ts +0 -3
  74. package/mahameru-request.js +0 -56
  75. package/mahameru-request.js.map +0 -1
  76. package/mahameru-response.cjs +0 -71
  77. package/mahameru-response.cjs.map +0 -1
  78. package/mahameru-response.d.cts +0 -17
  79. package/mahameru-response.d.ts +0 -17
  80. package/mahameru-response.js +0 -48
  81. package/mahameru-response.js.map +0 -1
  82. package/mahameru-server-error.cjs +0 -54
  83. package/mahameru-server-error.cjs.map +0 -1
  84. package/mahameru-server-error.d.cts +0 -19
  85. package/mahameru-server-error.d.ts +0 -19
  86. package/mahameru-server-error.js +0 -31
  87. package/mahameru-server-error.js.map +0 -1
  88. package/module-error.cjs +0 -46
  89. package/module-error.cjs.map +0 -1
  90. package/module-error.d.cts +0 -12
  91. package/module-error.d.ts +0 -12
  92. package/module-error.js +0 -23
  93. package/module-error.js.map +0 -1
  94. package/route.cjs +0 -128
  95. package/route.cjs.map +0 -1
  96. package/route.d.cts +0 -46
  97. package/route.d.ts +0 -46
  98. package/route.js +0 -105
  99. package/route.js.map +0 -1
  100. package/types-BmFqDpSs.d.ts +0 -113
  101. package/types-Cd6Gkoxx.d.cts +0 -113
package/diatrema.js CHANGED
@@ -1,103 +1,121 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { join } from "node:path";
4
- import { HttpServer } from "./http-server.js";
5
4
  import { EventEmitter } from "./event-emitter.js";
5
+ import { existsSync } from "node:fs";
6
+ import { pathToFileURL } from "node:url";
7
+ import { createLogger } from "./logger.js";
6
8
  const diatremaDefaultConfig = {
7
9
  dev: false,
8
- isStandalone: false,
10
+ debug: false,
9
11
  rootPath: process.cwd(),
10
12
  get appPath() {
11
- if (this.isStandalone)
12
- return this.rootPath;
13
13
  return join(this.rootPath, this.dev ? this.developmentDir : this.productionDir);
14
14
  },
15
15
  productionDir: ".mahameru",
16
16
  developmentDir: ".mahameru",
17
- routesDir: "routes"
17
+ moduleType: "esm"
18
18
  };
19
19
  class Diatrema extends EventEmitter {
20
20
  static {
21
21
  __name(this, "Diatrema");
22
22
  }
23
- #initialized = false;
24
- #isShuttingDown = false;
25
- options = diatremaDefaultConfig;
26
- dependencies;
27
- constructor(arg1, arg2) {
23
+ _initialized = false;
24
+ _isShuttingDown = false;
25
+ _plugins = /* @__PURE__ */ new Map();
26
+ logger;
27
+ instances = {};
28
+ options;
29
+ constructor(options) {
28
30
  super();
29
- if (typeof arg2 !== "undefined")
30
- this.options = { ...this.options, ...arg1 };
31
- if (typeof arg2 !== "undefined") {
32
- this.dependencies = arg2;
33
- } else {
34
- this.dependencies = arg1;
35
- }
31
+ this.options = { ...diatremaDefaultConfig, ...options };
32
+ this.logger = createLogger("Diatrema", this.options.debug);
36
33
  }
37
34
  /**
38
35
  * Indicates whether the Mahameru server has been initialized or not.
39
36
  * @returns {boolean}
40
37
  */
41
38
  get initialized() {
42
- return this.#initialized;
39
+ return this._initialized;
43
40
  }
44
41
  /**
45
42
  * Indicates whether the Mahameru server is shutting down or not.
46
43
  * @returns {boolean}
47
44
  */
48
45
  get isShuttingDown() {
49
- return this.#isShuttingDown;
46
+ return this._isShuttingDown;
47
+ }
48
+ get plugins() {
49
+ return Object.fromEntries(this._plugins);
50
50
  }
51
- /**
52
- * Initialize the Mahameru server.
53
- */
54
51
  async initialize() {
55
52
  try {
56
- if (this.#initialized)
53
+ if (this._initialized)
57
54
  return;
58
- await this.dependencies.container.discover();
55
+ await this.loadInitiator();
56
+ for (const plugin of this._plugins.values()) {
57
+ plugin.setDiatrema(this);
58
+ await plugin.initialize();
59
+ }
59
60
  } catch (error) {
60
61
  throw error;
61
62
  }
62
- const { port, host } = await this.dependencies.httpServer.listen();
63
- this.#initialized = true;
64
- this.emit("ready", { mode: this.options.dev ? "development" : "production", port, host });
63
+ this._initialized = true;
64
+ this.emit("ready", { mode: this.options.dev ? "development" : "production" });
65
+ }
66
+ setPlugin(pluginName, plugin) {
67
+ this._plugins.set(pluginName, plugin);
68
+ }
69
+ getPlugin(pluginName) {
70
+ return this._plugins.get(pluginName);
65
71
  }
66
- /**
67
- * Hot reload the middleware and routes when a file changes in development mode.
68
- */
69
72
  async devHRM(changedFile) {
70
- if (!this.#initialized)
73
+ if (!this._initialized)
71
74
  return;
72
75
  if (changedFile) {
73
- if (await this.dependencies.container.onFileChanged(changedFile))
74
- this.dependencies.logger.debug(`File changed: ${changedFile}`);
75
76
  }
76
77
  }
77
- /**
78
- * Shut down the Mahameru server gracefully.
79
- * @returns {Promise<void>}
80
- */
81
78
  async shutdown() {
82
- if (this.#isShuttingDown)
79
+ if (this._isShuttingDown)
83
80
  return;
84
- this.#isShuttingDown = true;
85
- this.dependencies.logger.info("Shutting down Mahameru server...");
86
- try {
87
- this.dependencies.logger.info("Databases destroyed successfully.");
88
- } catch (error) {
89
- this.dependencies.logger.error("Error destroying databases", error);
81
+ this._isShuttingDown = true;
82
+ this.logger.debug("Shutting down...");
83
+ for (const plugin of this._plugins.values()) {
84
+ await plugin.destroy();
90
85
  }
91
- if (this.dependencies.httpServer.listening) {
92
- try {
93
- await this.dependencies.httpServer.close();
94
- this.dependencies.logger.info("HTTP server closed successfully.");
95
- } catch (error) {
96
- this.dependencies.logger.error("Error closing HTTP server", error);
86
+ this._initialized = false;
87
+ this.logger.debug("Shutting down... Done");
88
+ }
89
+ async loadInitiator() {
90
+ if (!this.options.initiatorFilePath)
91
+ return;
92
+ const result = await this.require(this.options.moduleType, this.options.initiatorFilePath);
93
+ if (result) {
94
+ const handler = this.getDefaultExport(result, this.options.initiatorFilePath);
95
+ this.instances = await handler();
96
+ this.logger.debug(`Initiator loaded successfully. Found ${Object.keys(this.instances).length} instances.`);
97
+ }
98
+ }
99
+ async require(type, resolvedFilePath) {
100
+ const noCache = this.options.dev;
101
+ if (!existsSync(resolvedFilePath))
102
+ return;
103
+ if (type === "commonjs") {
104
+ if (noCache) {
105
+ delete require.cache[resolvedFilePath];
97
106
  }
107
+ return require(resolvedFilePath);
98
108
  }
99
- this.#initialized = false;
100
- this.dependencies.logger.info("Mahameru server shut down.");
109
+ let fileUrl = pathToFileURL(resolvedFilePath).href;
110
+ if (noCache)
111
+ fileUrl += `?update=${Date.now()}`;
112
+ return await import(fileUrl);
113
+ }
114
+ getDefaultExport(module, filePath) {
115
+ const defaultExportName = Object.keys(module).find((key) => key === "default");
116
+ if (!defaultExportName)
117
+ throw new Error(`Module in file '${filePath}' does not have a default export.`);
118
+ return module[defaultExportName];
101
119
  }
102
120
  }
103
121
  export {
package/diatrema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/diatrema.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { HttpServer } from './http-server';\nimport { EventEmitter } from \"./event-emitter\";\n\nimport type { Container } from './container';\nimport type { Route } from './route';\nimport type { Logger } from './logger';\n\nexport type DiatremaEvents = {\n ready: [data: { mode: \"development\" | \"production\"; port: number; host: string; }];\n};\n\nexport type DiatremaOptions = {\n dev: boolean;\n isStandalone: boolean;\n rootPath: string;\n appPath: string;\n routesDir: string;\n productionDir: string;\n developmentDir: string;\n}\n\nexport type DiatremaDependencies = {\n container: Container;\n route: Route;\n httpServer: HttpServer;\n logger: Logger;\n};\n\nexport const diatremaDefaultConfig: DiatremaOptions = {\n dev: false,\n isStandalone: false,\n rootPath: process.cwd(),\n get appPath(): string {\n if (this.isStandalone)\n return this.rootPath;\n\n return join(this.rootPath, this.dev ? this.developmentDir : this.productionDir);\n },\n productionDir: '.mahameru',\n developmentDir: '.mahameru',\n routesDir: 'routes'\n}\n\n/**\n * Main Diatrema class that orchestrates the application lifecycle.\n */\nexport default class Diatrema extends EventEmitter<DiatremaEvents> {\n #initialized = false;\n #isShuttingDown = false;\n public readonly options: DiatremaOptions = diatremaDefaultConfig;\n protected readonly dependencies: DiatremaDependencies;\n\n constructor(dependencies: DiatremaDependencies)\n constructor(\n initialOptions: Partial<DiatremaOptions>,\n dependencies: DiatremaDependencies\n )\n constructor(\n arg1: Partial<DiatremaOptions> | DiatremaDependencies,\n arg2?: DiatremaDependencies\n ) {\n super();\n\n if (typeof arg2 !== 'undefined')\n this.options = { ...this.options, ...arg1 as Partial<DiatremaOptions> };\n\n if (typeof arg2 !== 'undefined') {\n this.dependencies = arg2;\n } else {\n this.dependencies = arg1 as DiatremaDependencies;\n }\n }\n\n /**\n * Indicates whether the Mahameru server has been initialized or not.\n * @returns {boolean}\n */\n get initialized() {\n return this.#initialized;\n }\n\n /**\n * Indicates whether the Mahameru server is shutting down or not.\n * @returns {boolean}\n */\n get isShuttingDown() {\n return this.#isShuttingDown;\n }\n\n /**\n * Initialize the Mahameru server.\n */\n async initialize(): Promise<void> {\n try {\n if (this.#initialized)\n return;\n\n await this.dependencies.container.discover();\n } catch (error) {\n throw error;\n }\n\n const { port, host } = await this.dependencies.httpServer.listen();\n this.#initialized = true;\n\n this.emit('ready', { mode: this.options.dev ? 'development' : 'production', port: port, host: host });\n }\n\n /**\n * Hot reload the middleware and routes when a file changes in development mode.\n */\n async devHRM(changedFile?: string) {\n if (!this.#initialized)\n return\n\n if (changedFile) {\n if (await this.dependencies.container.onFileChanged(changedFile))\n this.dependencies.logger.debug(`File changed: ${changedFile}`);\n }\n }\n\n /**\n * Shut down the Mahameru server gracefully.\n * @returns {Promise<void>}\n */\n async shutdown(): Promise<void> {\n if (this.#isShuttingDown)\n return\n\n this.#isShuttingDown = true;\n\n this.dependencies.logger.info('Shutting down Mahameru server...');\n\n try {\n this.dependencies.logger.info('Databases destroyed successfully.');\n } catch (error) {\n this.dependencies.logger.error('Error destroying databases', error);\n }\n\n if (this.dependencies.httpServer.listening) {\n try {\n await this.dependencies.httpServer.close();\n this.dependencies.logger.info('HTTP server closed successfully.');\n } catch (error) {\n this.dependencies.logger.error('Error closing HTTP server', error);\n }\n }\n\n this.#initialized = false;\n this.dependencies.logger.info('Mahameru server shut down.');\n }\n}\n"],"mappings":";;AAAA,SAAS,YAAY;AAErB,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AA2BtB,MAAM,wBAAyC;AAAA,EAClD,KAAK;AAAA,EACL,cAAc;AAAA,EACd,UAAU,QAAQ,IAAI;AAAA,EACtB,IAAI,UAAkB;AAClB,QAAI,KAAK;AACL,aAAO,KAAK;AAEhB,WAAO,KAAK,KAAK,UAAU,KAAK,MAAM,KAAK,iBAAiB,KAAK,aAAa;AAAA,EAClF;AAAA,EACA,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,WAAW;AACf;AAKA,MAAO,iBAA+B,aAA6B;AAAA,EAhDnE,OAgDmE;AAAA;AAAA;AAAA,EAC/D,eAAe;AAAA,EACf,kBAAkB;AAAA,EACF,UAA2B;AAAA,EACxB;AAAA,EAOnB,YACI,MACA,MACF;AACE,UAAM;AAEN,QAAI,OAAO,SAAS;AAChB,WAAK,UAAU,EAAE,GAAG,KAAK,SAAS,GAAG,KAAiC;AAE1E,QAAI,OAAO,SAAS,aAAa;AAC7B,WAAK,eAAe;AAAA,IACxB,OAAO;AACH,WAAK,eAAe;AAAA,IACxB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,aAA4B;AAC9B,QAAI;AACA,UAAI,KAAK;AACL;AAEJ,YAAM,KAAK,aAAa,UAAU,SAAS;AAAA,IAC/C,SAAS,OAAO;AACZ,YAAM;AAAA,IACV;AAEA,UAAM,EAAE,MAAM,KAAK,IAAI,MAAM,KAAK,aAAa,WAAW,OAAO;AACjE,SAAK,eAAe;AAEpB,SAAK,KAAK,SAAS,EAAE,MAAM,KAAK,QAAQ,MAAM,gBAAgB,cAAc,MAAY,KAAW,CAAC;AAAA,EACxG;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,aAAsB;AAC/B,QAAI,CAAC,KAAK;AACN;AAEJ,QAAI,aAAa;AACb,UAAI,MAAM,KAAK,aAAa,UAAU,cAAc,WAAW;AAC3D,aAAK,aAAa,OAAO,MAAM,iBAAiB,WAAW,EAAE;AAAA,IACrE;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WAA0B;AAC5B,QAAI,KAAK;AACL;AAEJ,SAAK,kBAAkB;AAEvB,SAAK,aAAa,OAAO,KAAK,kCAAkC;AAEhE,QAAI;AACA,WAAK,aAAa,OAAO,KAAK,mCAAmC;AAAA,IACrE,SAAS,OAAO;AACZ,WAAK,aAAa,OAAO,MAAM,8BAA8B,KAAK;AAAA,IACtE;AAEA,QAAI,KAAK,aAAa,WAAW,WAAW;AACxC,UAAI;AACA,cAAM,KAAK,aAAa,WAAW,MAAM;AACzC,aAAK,aAAa,OAAO,KAAK,kCAAkC;AAAA,MACpE,SAAS,OAAO;AACZ,aAAK,aAAa,OAAO,MAAM,6BAA6B,KAAK;AAAA,MACrE;AAAA,IACJ;AAEA,SAAK,eAAe;AACpB,SAAK,aAAa,OAAO,KAAK,4BAA4B;AAAA,EAC9D;AACJ;","names":[]}
1
+ {"version":3,"sources":["../src/diatrema.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { EventEmitter } from \"./event-emitter\";\nimport { existsSync } from 'node:fs';\nimport { pathToFileURL } from 'node:url';\nimport type { InitiatorHandler, Instances } from './types';\nimport type { MahameruPlugin } from './mahameru-plugin';\nimport { createLogger, type Logger } from './logger';\n\nexport type DiatremaEvents = {\n ready: [data: { mode: \"development\" | \"production\"; port?: number; host?: string; }];\n};\n\nexport type DiatremaOptions = {\n dev: boolean;\n debug: boolean;\n rootPath: string;\n appPath: string;\n productionDir: string;\n developmentDir: string;\n initiatorFilePath?: string;\n moduleType: \"commonjs\" | \"esm\";\n}\n\nexport const diatremaDefaultConfig: DiatremaOptions = {\n dev: false,\n debug: false,\n rootPath: process.cwd(),\n get appPath(): string {\n return join(this.rootPath, this.dev ? this.developmentDir : this.productionDir);\n },\n productionDir: '.mahameru',\n developmentDir: '.mahameru',\n moduleType: 'esm'\n}\n\n/**\n * Main Diatrema class that orchestrates the application lifecycle.\n */\nexport default class Diatrema extends EventEmitter<DiatremaEvents> {\n protected _initialized = false;\n protected _isShuttingDown = false;\n protected _plugins = new Map<string, MahameruPlugin<any>>();\n protected logger: Logger;\n public instances: Instances = {};\n public readonly options: DiatremaOptions;\n\n constructor(options?: Partial<DiatremaOptions>) {\n super();\n\n this.options = { ...diatremaDefaultConfig, ...options };\n this.logger = createLogger('Diatrema', this.options.debug);\n }\n\n /**\n * Indicates whether the Mahameru server has been initialized or not.\n * @returns {boolean}\n */\n get initialized() {\n return this._initialized;\n }\n\n /**\n * Indicates whether the Mahameru server is shutting down or not.\n * @returns {boolean}\n */\n get isShuttingDown() {\n return this._isShuttingDown;\n }\n\n get plugins(): Record<string, MahameruPlugin<any>> {\n return Object.fromEntries(this._plugins);\n }\n\n public async initialize(): Promise<void> {\n try {\n if (this._initialized)\n return;\n\n await this.loadInitiator();\n\n for (const plugin of this._plugins.values()) {\n plugin.setDiatrema(this);\n\n await plugin.initialize();\n }\n } catch (error) {\n throw error;\n }\n\n this._initialized = true;\n\n this.emit('ready', { mode: this.options.dev ? 'development' : 'production' });\n }\n\n public setPlugin<T extends MahameruPlugin<any>>(pluginName: string, plugin: T) {\n this._plugins.set(pluginName, plugin);\n }\n\n public getPlugin<T extends MahameruPlugin<any>>(pluginName: string): T | undefined {\n return this._plugins.get(pluginName) as T | undefined;\n }\n\n public async devHRM(changedFile?: string) {\n if (!this._initialized)\n return\n\n if (changedFile) {\n // if (await this.dependencies.container.onFileChanged(changedFile))\n // this.logger.debug(`File changed: ${changedFile}`);\n }\n }\n\n public async shutdown(): Promise<void> {\n if (this._isShuttingDown)\n return\n\n this._isShuttingDown = true;\n\n this.logger.debug('Shutting down...');\n\n for (const plugin of this._plugins.values()) {\n await plugin.destroy();\n }\n\n this._initialized = false;\n this.logger.debug('Shutting down... Done');\n }\n\n protected async loadInitiator() {\n if (!this.options.initiatorFilePath)\n return;\n\n const result = await this.require<Record<'default', InitiatorHandler>>(this.options.moduleType, this.options.initiatorFilePath);\n\n if (result) {\n const handler = this.getDefaultExport<InitiatorHandler>(result, this.options.initiatorFilePath);\n\n this.instances = await handler();\n this.logger.debug(`Initiator loaded successfully. Found ${Object.keys(this.instances).length} instances.`);\n }\n }\n\n protected async require<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string): Promise<T | undefined> {\n const noCache = this.options.dev;\n\n if (!existsSync(resolvedFilePath))\n return;\n\n if (type === \"commonjs\") {\n if (noCache) {\n delete require.cache[resolvedFilePath];\n }\n\n return require(resolvedFilePath) as T;\n }\n\n let fileUrl = pathToFileURL(resolvedFilePath).href;\n\n if (noCache)\n fileUrl += `?update=${Date.now()}`;\n\n return (await import(fileUrl)) as T;\n }\n\n protected getDefaultExport<T>(module: Record<string, T>, filePath: string) {\n const defaultExportName = Object.keys(module).find((key) => key === 'default');\n\n if (!defaultExportName)\n throw new Error(`Module in file '${filePath}' does not have a default export.`);\n\n return module[defaultExportName];\n }\n}\n"],"mappings":";;AAAA,SAAS,YAAY;AAErB,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAG9B,SAAS,oBAAiC;AAiBnC,MAAM,wBAAyC;AAAA,EAClD,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU,QAAQ,IAAI;AAAA,EACtB,IAAI,UAAkB;AAClB,WAAO,KAAK,KAAK,UAAU,KAAK,MAAM,KAAK,iBAAiB,KAAK,aAAa;AAAA,EAClF;AAAA,EACA,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,YAAY;AAChB;AAKA,MAAO,iBAA+B,aAA6B;AAAA,EAvCnE,OAuCmE;AAAA;AAAA;AAAA,EACrD,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,WAAW,oBAAI,IAAiC;AAAA,EAChD;AAAA,EACH,YAAuB,CAAC;AAAA,EACf;AAAA,EAEhB,YAAY,SAAoC;AAC5C,UAAM;AAEN,SAAK,UAAU,EAAE,GAAG,uBAAuB,GAAG,QAAQ;AACtD,SAAK,SAAS,aAAa,YAAY,KAAK,QAAQ,KAAK;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAA+C;AAC/C,WAAO,OAAO,YAAY,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAa,aAA4B;AACrC,QAAI;AACA,UAAI,KAAK;AACL;AAEJ,YAAM,KAAK,cAAc;AAEzB,iBAAW,UAAU,KAAK,SAAS,OAAO,GAAG;AACzC,eAAO,YAAY,IAAI;AAEvB,cAAM,OAAO,WAAW;AAAA,MAC5B;AAAA,IACJ,SAAS,OAAO;AACZ,YAAM;AAAA,IACV;AAEA,SAAK,eAAe;AAEpB,SAAK,KAAK,SAAS,EAAE,MAAM,KAAK,QAAQ,MAAM,gBAAgB,aAAa,CAAC;AAAA,EAChF;AAAA,EAEO,UAAyC,YAAoB,QAAW;AAC3E,SAAK,SAAS,IAAI,YAAY,MAAM;AAAA,EACxC;AAAA,EAEO,UAAyC,YAAmC;AAC/E,WAAO,KAAK,SAAS,IAAI,UAAU;AAAA,EACvC;AAAA,EAEA,MAAa,OAAO,aAAsB;AACtC,QAAI,CAAC,KAAK;AACN;AAEJ,QAAI,aAAa;AAAA,IAGjB;AAAA,EACJ;AAAA,EAEA,MAAa,WAA0B;AACnC,QAAI,KAAK;AACL;AAEJ,SAAK,kBAAkB;AAEvB,SAAK,OAAO,MAAM,kBAAkB;AAEpC,eAAW,UAAU,KAAK,SAAS,OAAO,GAAG;AACzC,YAAM,OAAO,QAAQ;AAAA,IACzB;AAEA,SAAK,eAAe;AACpB,SAAK,OAAO,MAAM,uBAAuB;AAAA,EAC7C;AAAA,EAEA,MAAgB,gBAAgB;AAC5B,QAAI,CAAC,KAAK,QAAQ;AACd;AAEJ,UAAM,SAAS,MAAM,KAAK,QAA6C,KAAK,QAAQ,YAAY,KAAK,QAAQ,iBAAiB;AAE9H,QAAI,QAAQ;AACR,YAAM,UAAU,KAAK,iBAAmC,QAAQ,KAAK,QAAQ,iBAAiB;AAE9F,WAAK,YAAY,MAAM,QAAQ;AAC/B,WAAK,OAAO,MAAM,wCAAwC,OAAO,KAAK,KAAK,SAAS,EAAE,MAAM,aAAa;AAAA,IAC7G;AAAA,EACJ;AAAA,EAEA,MAAgB,QAAqE,MAA0B,kBAAkD;AAC7J,UAAM,UAAU,KAAK,QAAQ;AAE7B,QAAI,CAAC,WAAW,gBAAgB;AAC5B;AAEJ,QAAI,SAAS,YAAY;AACrB,UAAI,SAAS;AACT,eAAO,QAAQ,MAAM,gBAAgB;AAAA,MACzC;AAEA,aAAO,QAAQ,gBAAgB;AAAA,IACnC;AAEA,QAAI,UAAU,cAAc,gBAAgB,EAAE;AAE9C,QAAI;AACA,iBAAW,WAAW,KAAK,IAAI,CAAC;AAEpC,WAAQ,MAAM,OAAO;AAAA,EACzB;AAAA,EAEU,iBAAoB,QAA2B,UAAkB;AACvE,UAAM,oBAAoB,OAAO,KAAK,MAAM,EAAE,KAAK,CAAC,QAAQ,QAAQ,SAAS;AAE7E,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,mBAAmB,QAAQ,mCAAmC;AAElF,WAAO,OAAO,iBAAiB;AAAA,EACnC;AACJ;","names":[]}
package/helpers.cjs CHANGED
@@ -21,27 +21,12 @@ var helpers_exports = {};
21
21
  __export(helpers_exports, {
22
22
  dynamicRequire: () => dynamicRequire,
23
23
  exists: () => exists,
24
- resolveWithinBase: () => resolveWithinBase,
25
- validateProtectedRoute: () => validateProtectedRoute
24
+ resolveWithinBase: () => resolveWithinBase
26
25
  });
27
26
  module.exports = __toCommonJS(helpers_exports);
28
27
  var import_promises = require("node:fs/promises");
29
28
  var import_node_path = require("node:path");
30
29
  var import_node_url = require("node:url");
31
- const matchRoutePattern = /* @__PURE__ */ __name((currentPath, routePattern) => {
32
- const regexPattern = routePattern.replace(/\//g, "\\/").replace(/:[^/]+/g, "[^/]+");
33
- const regex = new RegExp(`^${regexPattern}$`);
34
- return regex.test(currentPath);
35
- }, "matchRoutePattern");
36
- const validateProtectedRoute = /* @__PURE__ */ __name((protectedRoutes, method, path) => {
37
- return protectedRoutes.some((route) => {
38
- if (typeof route === "string")
39
- return matchRoutePattern(path, route);
40
- const isPathMatch = matchRoutePattern(path, route.path);
41
- const isMethodMatch = route.methods.includes(method);
42
- return isPathMatch && isMethodMatch;
43
- });
44
- }, "validateProtectedRoute");
45
30
  const exists = /* @__PURE__ */ __name(async (target) => {
46
31
  try {
47
32
  await (0, import_promises.access)(target, import_promises.constants.R_OK);
@@ -87,7 +72,6 @@ __name(dynamicRequire, "dynamicRequire");
87
72
  0 && (module.exports = {
88
73
  dynamicRequire,
89
74
  exists,
90
- resolveWithinBase,
91
- validateProtectedRoute
75
+ resolveWithinBase
92
76
  });
93
77
  //# sourceMappingURL=helpers.cjs.map
package/helpers.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helpers.ts"],"sourcesContent":["import { access, constants } from \"node:fs/promises\";\nimport type { HTTPMethod, ProtectedRoute } from \"./types\";\nimport { resolve, sep } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nconst matchRoutePattern = (currentPath: string, routePattern: string): boolean => {\n const regexPattern = routePattern\n .replace(/\\//g, '\\\\/')\n .replace(/:[^/]+/g, '[^/]+');\n\n const regex = new RegExp(`^${regexPattern}$`);\n\n return regex.test(currentPath);\n};\n\nexport const validateProtectedRoute = (protectedRoutes: ProtectedRoute, method: string, path: string): boolean => {\n return protectedRoutes.some(route => {\n if (typeof route === 'string')\n return matchRoutePattern(path, route);\n\n const isPathMatch = matchRoutePattern(path, route.path);\n const isMethodMatch = route.methods.includes(method as HTTPMethod);\n\n return isPathMatch && isMethodMatch;\n });\n};\n\nexport const exists = async (target: string): Promise<boolean> => {\n try {\n await access(target, constants.R_OK);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Checks if the target path is within the base path.\n * @param base The base directory (absolute path)\n * @param target The target path (absolute path) to check\n * @returns true if target is within base, false otherwise\n */\nfunction isWithin(base: string, target: string): boolean {\n if (target === base)\n return true;\n\n if (target.startsWith(base)) {\n const nextChar = target.charAt(base.length);\n\n return nextChar === sep;\n }\n\n return false;\n}\n\n/**\n * Resolves a target path relative to a base directory, ensuring the result is within the base.\n * Returns null if the resolved path would be outside the base.\n * @param base The base directory (absolute path)\n * @param target The target path (relative to base) to resolve\n * @returns The resolved absolute path if within base, null otherwise\n */\nexport function resolveWithinBase(base: string, target: string): string | null {\n const baseResolved = resolve(base);\n const targetResolved = resolve(base, target);\n\n if (isWithin(baseResolved, targetResolved))\n return targetResolved;\n\n return null;\n}\n\n/**\n * \n * @param type \"commonjs\" | \"esm\"\n * @param filePath string - path to resolved file: require.resolve(\"./path/to/file\")\n */\nexport async function dynamicRequire<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string, noCache: boolean = false): Promise<T | undefined> {\n if (!(await exists(resolvedFilePath)))\n return;\n\n if (type === \"commonjs\") {\n if (noCache) {\n delete require.cache[resolvedFilePath];\n }\n\n return require(resolvedFilePath) as T;\n }\n\n let fileUrl = pathToFileURL(resolvedFilePath).href;\n\n if (noCache)\n fileUrl += `?update=${Date.now()}`;\n\n return (await import(fileUrl)) as T;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAkC;AAElC,uBAA6B;AAC7B,sBAA8B;AAE9B,MAAM,oBAAoB,wBAAC,aAAqB,iBAAkC;AAC9E,QAAM,eAAe,aAChB,QAAQ,OAAO,KAAK,EACpB,QAAQ,WAAW,OAAO;AAE/B,QAAM,QAAQ,IAAI,OAAO,IAAI,YAAY,GAAG;AAE5C,SAAO,MAAM,KAAK,WAAW;AACjC,GAR0B;AAUnB,MAAM,yBAAyB,wBAAC,iBAAiC,QAAgB,SAA0B;AAC9G,SAAO,gBAAgB,KAAK,WAAS;AACjC,QAAI,OAAO,UAAU;AACjB,aAAO,kBAAkB,MAAM,KAAK;AAExC,UAAM,cAAc,kBAAkB,MAAM,MAAM,IAAI;AACtD,UAAM,gBAAgB,MAAM,QAAQ,SAAS,MAAoB;AAEjE,WAAO,eAAe;AAAA,EAC1B,CAAC;AACL,GAVsC;AAY/B,MAAM,SAAS,8BAAO,WAAqC;AAC9D,MAAI;AACA,cAAM,wBAAO,QAAQ,0BAAU,IAAI;AACnC,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ,GAPsB;AAetB,SAAS,SAAS,MAAc,QAAyB;AACrD,MAAI,WAAW;AACX,WAAO;AAEX,MAAI,OAAO,WAAW,IAAI,GAAG;AACzB,UAAM,WAAW,OAAO,OAAO,KAAK,MAAM;AAE1C,WAAO,aAAa;AAAA,EACxB;AAEA,SAAO;AACX;AAXS;AAoBF,SAAS,kBAAkB,MAAc,QAA+B;AAC3E,QAAM,mBAAe,0BAAQ,IAAI;AACjC,QAAM,qBAAiB,0BAAQ,MAAM,MAAM;AAE3C,MAAI,SAAS,cAAc,cAAc;AACrC,WAAO;AAEX,SAAO;AACX;AARgB;AAehB,eAAsB,eAA4E,MAA0B,kBAA0B,UAAmB,OAA+B;AACpM,MAAI,CAAE,MAAM,OAAO,gBAAgB;AAC/B;AAEJ,MAAI,SAAS,YAAY;AACrB,QAAI,SAAS;AACT,aAAO,QAAQ,MAAM,gBAAgB;AAAA,IACzC;AAEA,WAAO,QAAQ,gBAAgB;AAAA,EACnC;AAEA,MAAI,cAAU,+BAAc,gBAAgB,EAAE;AAE9C,MAAI;AACA,eAAW,WAAW,KAAK,IAAI,CAAC;AAEpC,SAAQ,MAAM,OAAO;AACzB;AAlBsB;","names":[]}
1
+ {"version":3,"sources":["../src/helpers.ts"],"sourcesContent":["import { access, constants } from \"node:fs/promises\";\nimport { resolve, sep } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nexport const exists = async (target: string): Promise<boolean> => {\n try {\n await access(target, constants.R_OK);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Checks if the target path is within the base path.\n * @param base The base directory (absolute path)\n * @param target The target path (absolute path) to check\n * @returns true if target is within base, false otherwise\n */\nfunction isWithin(base: string, target: string): boolean {\n if (target === base)\n return true;\n\n if (target.startsWith(base)) {\n const nextChar = target.charAt(base.length);\n\n return nextChar === sep;\n }\n\n return false;\n}\n\n/**\n * Resolves a target path relative to a base directory, ensuring the result is within the base.\n * Returns null if the resolved path would be outside the base.\n * @param base The base directory (absolute path)\n * @param target The target path (relative to base) to resolve\n * @returns The resolved absolute path if within base, null otherwise\n */\nexport function resolveWithinBase(base: string, target: string): string | null {\n const baseResolved = resolve(base);\n const targetResolved = resolve(base, target);\n\n if (isWithin(baseResolved, targetResolved))\n return targetResolved;\n\n return null;\n}\n\n/**\n * \n * @param type \"commonjs\" | \"esm\"\n * @param filePath string - path to resolved file: require.resolve(\"./path/to/file\")\n */\nexport async function dynamicRequire<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string, noCache: boolean = false): Promise<T | undefined> {\n if (!(await exists(resolvedFilePath)))\n return;\n\n if (type === \"commonjs\") {\n if (noCache) {\n delete require.cache[resolvedFilePath];\n }\n\n return require(resolvedFilePath) as T;\n }\n\n let fileUrl = pathToFileURL(resolvedFilePath).href;\n\n if (noCache)\n fileUrl += `?update=${Date.now()}`;\n\n return (await import(fileUrl)) as T;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAkC;AAClC,uBAA6B;AAC7B,sBAA8B;AAEvB,MAAM,SAAS,8BAAO,WAAqC;AAC9D,MAAI;AACA,cAAM,wBAAO,QAAQ,0BAAU,IAAI;AACnC,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ,GAPsB;AAetB,SAAS,SAAS,MAAc,QAAyB;AACrD,MAAI,WAAW;AACX,WAAO;AAEX,MAAI,OAAO,WAAW,IAAI,GAAG;AACzB,UAAM,WAAW,OAAO,OAAO,KAAK,MAAM;AAE1C,WAAO,aAAa;AAAA,EACxB;AAEA,SAAO;AACX;AAXS;AAoBF,SAAS,kBAAkB,MAAc,QAA+B;AAC3E,QAAM,mBAAe,0BAAQ,IAAI;AACjC,QAAM,qBAAiB,0BAAQ,MAAM,MAAM;AAE3C,MAAI,SAAS,cAAc,cAAc;AACrC,WAAO;AAEX,SAAO;AACX;AARgB;AAehB,eAAsB,eAA4E,MAA0B,kBAA0B,UAAmB,OAA+B;AACpM,MAAI,CAAE,MAAM,OAAO,gBAAgB;AAC/B;AAEJ,MAAI,SAAS,YAAY;AACrB,QAAI,SAAS;AACT,aAAO,QAAQ,MAAM,gBAAgB;AAAA,IACzC;AAEA,WAAO,QAAQ,gBAAgB;AAAA,EACnC;AAEA,MAAI,cAAU,+BAAc,gBAAgB,EAAE;AAE9C,MAAI;AACA,eAAW,WAAW,KAAK,IAAI,CAAC;AAEpC,SAAQ,MAAM,OAAO;AACzB;AAlBsB;","names":[]}
package/helpers.d.cts CHANGED
@@ -1,8 +1,3 @@
1
- import { P as ProtectedRoute } from './types-Cd6Gkoxx.cjs';
2
- import 'node:http';
3
- import './mahameru-response.cjs';
4
-
5
- declare const validateProtectedRoute: (protectedRoutes: ProtectedRoute, method: string, path: string) => boolean;
6
1
  declare const exists: (target: string) => Promise<boolean>;
7
2
  /**
8
3
  * Resolves a target path relative to a base directory, ensuring the result is within the base.
@@ -19,4 +14,4 @@ declare function resolveWithinBase(base: string, target: string): string | null;
19
14
  */
20
15
  declare function dynamicRequire<T extends Record<string, unknown> = Record<string, unknown>>(type: "commonjs" | "esm", resolvedFilePath: string, noCache?: boolean): Promise<T | undefined>;
21
16
 
22
- export { dynamicRequire, exists, resolveWithinBase, validateProtectedRoute };
17
+ export { dynamicRequire, exists, resolveWithinBase };
package/helpers.d.ts CHANGED
@@ -1,8 +1,3 @@
1
- import { P as ProtectedRoute } from './types-BmFqDpSs.js';
2
- import 'node:http';
3
- import './mahameru-response.js';
4
-
5
- declare const validateProtectedRoute: (protectedRoutes: ProtectedRoute, method: string, path: string) => boolean;
6
1
  declare const exists: (target: string) => Promise<boolean>;
7
2
  /**
8
3
  * Resolves a target path relative to a base directory, ensuring the result is within the base.
@@ -19,4 +14,4 @@ declare function resolveWithinBase(base: string, target: string): string | null;
19
14
  */
20
15
  declare function dynamicRequire<T extends Record<string, unknown> = Record<string, unknown>>(type: "commonjs" | "esm", resolvedFilePath: string, noCache?: boolean): Promise<T | undefined>;
21
16
 
22
- export { dynamicRequire, exists, resolveWithinBase, validateProtectedRoute };
17
+ export { dynamicRequire, exists, resolveWithinBase };
package/helpers.js CHANGED
@@ -3,20 +3,6 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
  import { access, constants } from "node:fs/promises";
4
4
  import { resolve, sep } from "node:path";
5
5
  import { pathToFileURL } from "node:url";
6
- const matchRoutePattern = /* @__PURE__ */ __name((currentPath, routePattern) => {
7
- const regexPattern = routePattern.replace(/\//g, "\\/").replace(/:[^/]+/g, "[^/]+");
8
- const regex = new RegExp(`^${regexPattern}$`);
9
- return regex.test(currentPath);
10
- }, "matchRoutePattern");
11
- const validateProtectedRoute = /* @__PURE__ */ __name((protectedRoutes, method, path) => {
12
- return protectedRoutes.some((route) => {
13
- if (typeof route === "string")
14
- return matchRoutePattern(path, route);
15
- const isPathMatch = matchRoutePattern(path, route.path);
16
- const isMethodMatch = route.methods.includes(method);
17
- return isPathMatch && isMethodMatch;
18
- });
19
- }, "validateProtectedRoute");
20
6
  const exists = /* @__PURE__ */ __name(async (target) => {
21
7
  try {
22
8
  await access(target, constants.R_OK);
@@ -61,7 +47,6 @@ __name(dynamicRequire, "dynamicRequire");
61
47
  export {
62
48
  dynamicRequire,
63
49
  exists,
64
- resolveWithinBase,
65
- validateProtectedRoute
50
+ resolveWithinBase
66
51
  };
67
52
  //# sourceMappingURL=helpers.js.map
package/helpers.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helpers.ts"],"sourcesContent":["import { access, constants } from \"node:fs/promises\";\nimport type { HTTPMethod, ProtectedRoute } from \"./types\";\nimport { resolve, sep } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nconst matchRoutePattern = (currentPath: string, routePattern: string): boolean => {\n const regexPattern = routePattern\n .replace(/\\//g, '\\\\/')\n .replace(/:[^/]+/g, '[^/]+');\n\n const regex = new RegExp(`^${regexPattern}$`);\n\n return regex.test(currentPath);\n};\n\nexport const validateProtectedRoute = (protectedRoutes: ProtectedRoute, method: string, path: string): boolean => {\n return protectedRoutes.some(route => {\n if (typeof route === 'string')\n return matchRoutePattern(path, route);\n\n const isPathMatch = matchRoutePattern(path, route.path);\n const isMethodMatch = route.methods.includes(method as HTTPMethod);\n\n return isPathMatch && isMethodMatch;\n });\n};\n\nexport const exists = async (target: string): Promise<boolean> => {\n try {\n await access(target, constants.R_OK);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Checks if the target path is within the base path.\n * @param base The base directory (absolute path)\n * @param target The target path (absolute path) to check\n * @returns true if target is within base, false otherwise\n */\nfunction isWithin(base: string, target: string): boolean {\n if (target === base)\n return true;\n\n if (target.startsWith(base)) {\n const nextChar = target.charAt(base.length);\n\n return nextChar === sep;\n }\n\n return false;\n}\n\n/**\n * Resolves a target path relative to a base directory, ensuring the result is within the base.\n * Returns null if the resolved path would be outside the base.\n * @param base The base directory (absolute path)\n * @param target The target path (relative to base) to resolve\n * @returns The resolved absolute path if within base, null otherwise\n */\nexport function resolveWithinBase(base: string, target: string): string | null {\n const baseResolved = resolve(base);\n const targetResolved = resolve(base, target);\n\n if (isWithin(baseResolved, targetResolved))\n return targetResolved;\n\n return null;\n}\n\n/**\n * \n * @param type \"commonjs\" | \"esm\"\n * @param filePath string - path to resolved file: require.resolve(\"./path/to/file\")\n */\nexport async function dynamicRequire<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string, noCache: boolean = false): Promise<T | undefined> {\n if (!(await exists(resolvedFilePath)))\n return;\n\n if (type === \"commonjs\") {\n if (noCache) {\n delete require.cache[resolvedFilePath];\n }\n\n return require(resolvedFilePath) as T;\n }\n\n let fileUrl = pathToFileURL(resolvedFilePath).href;\n\n if (noCache)\n fileUrl += `?update=${Date.now()}`;\n\n return (await import(fileUrl)) as T;\n}\n"],"mappings":";;AAAA,SAAS,QAAQ,iBAAiB;AAElC,SAAS,SAAS,WAAW;AAC7B,SAAS,qBAAqB;AAE9B,MAAM,oBAAoB,wBAAC,aAAqB,iBAAkC;AAC9E,QAAM,eAAe,aAChB,QAAQ,OAAO,KAAK,EACpB,QAAQ,WAAW,OAAO;AAE/B,QAAM,QAAQ,IAAI,OAAO,IAAI,YAAY,GAAG;AAE5C,SAAO,MAAM,KAAK,WAAW;AACjC,GAR0B;AAUnB,MAAM,yBAAyB,wBAAC,iBAAiC,QAAgB,SAA0B;AAC9G,SAAO,gBAAgB,KAAK,WAAS;AACjC,QAAI,OAAO,UAAU;AACjB,aAAO,kBAAkB,MAAM,KAAK;AAExC,UAAM,cAAc,kBAAkB,MAAM,MAAM,IAAI;AACtD,UAAM,gBAAgB,MAAM,QAAQ,SAAS,MAAoB;AAEjE,WAAO,eAAe;AAAA,EAC1B,CAAC;AACL,GAVsC;AAY/B,MAAM,SAAS,8BAAO,WAAqC;AAC9D,MAAI;AACA,UAAM,OAAO,QAAQ,UAAU,IAAI;AACnC,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ,GAPsB;AAetB,SAAS,SAAS,MAAc,QAAyB;AACrD,MAAI,WAAW;AACX,WAAO;AAEX,MAAI,OAAO,WAAW,IAAI,GAAG;AACzB,UAAM,WAAW,OAAO,OAAO,KAAK,MAAM;AAE1C,WAAO,aAAa;AAAA,EACxB;AAEA,SAAO;AACX;AAXS;AAoBF,SAAS,kBAAkB,MAAc,QAA+B;AAC3E,QAAM,eAAe,QAAQ,IAAI;AACjC,QAAM,iBAAiB,QAAQ,MAAM,MAAM;AAE3C,MAAI,SAAS,cAAc,cAAc;AACrC,WAAO;AAEX,SAAO;AACX;AARgB;AAehB,eAAsB,eAA4E,MAA0B,kBAA0B,UAAmB,OAA+B;AACpM,MAAI,CAAE,MAAM,OAAO,gBAAgB;AAC/B;AAEJ,MAAI,SAAS,YAAY;AACrB,QAAI,SAAS;AACT,aAAO,QAAQ,MAAM,gBAAgB;AAAA,IACzC;AAEA,WAAO,QAAQ,gBAAgB;AAAA,EACnC;AAEA,MAAI,UAAU,cAAc,gBAAgB,EAAE;AAE9C,MAAI;AACA,eAAW,WAAW,KAAK,IAAI,CAAC;AAEpC,SAAQ,MAAM,OAAO;AACzB;AAlBsB;","names":[]}
1
+ {"version":3,"sources":["../src/helpers.ts"],"sourcesContent":["import { access, constants } from \"node:fs/promises\";\nimport { resolve, sep } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nexport const exists = async (target: string): Promise<boolean> => {\n try {\n await access(target, constants.R_OK);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Checks if the target path is within the base path.\n * @param base The base directory (absolute path)\n * @param target The target path (absolute path) to check\n * @returns true if target is within base, false otherwise\n */\nfunction isWithin(base: string, target: string): boolean {\n if (target === base)\n return true;\n\n if (target.startsWith(base)) {\n const nextChar = target.charAt(base.length);\n\n return nextChar === sep;\n }\n\n return false;\n}\n\n/**\n * Resolves a target path relative to a base directory, ensuring the result is within the base.\n * Returns null if the resolved path would be outside the base.\n * @param base The base directory (absolute path)\n * @param target The target path (relative to base) to resolve\n * @returns The resolved absolute path if within base, null otherwise\n */\nexport function resolveWithinBase(base: string, target: string): string | null {\n const baseResolved = resolve(base);\n const targetResolved = resolve(base, target);\n\n if (isWithin(baseResolved, targetResolved))\n return targetResolved;\n\n return null;\n}\n\n/**\n * \n * @param type \"commonjs\" | \"esm\"\n * @param filePath string - path to resolved file: require.resolve(\"./path/to/file\")\n */\nexport async function dynamicRequire<T extends Record<string, unknown> = Record<string, unknown>>(type: \"commonjs\" | \"esm\", resolvedFilePath: string, noCache: boolean = false): Promise<T | undefined> {\n if (!(await exists(resolvedFilePath)))\n return;\n\n if (type === \"commonjs\") {\n if (noCache) {\n delete require.cache[resolvedFilePath];\n }\n\n return require(resolvedFilePath) as T;\n }\n\n let fileUrl = pathToFileURL(resolvedFilePath).href;\n\n if (noCache)\n fileUrl += `?update=${Date.now()}`;\n\n return (await import(fileUrl)) as T;\n}\n"],"mappings":";;AAAA,SAAS,QAAQ,iBAAiB;AAClC,SAAS,SAAS,WAAW;AAC7B,SAAS,qBAAqB;AAEvB,MAAM,SAAS,8BAAO,WAAqC;AAC9D,MAAI;AACA,UAAM,OAAO,QAAQ,UAAU,IAAI;AACnC,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ,GAPsB;AAetB,SAAS,SAAS,MAAc,QAAyB;AACrD,MAAI,WAAW;AACX,WAAO;AAEX,MAAI,OAAO,WAAW,IAAI,GAAG;AACzB,UAAM,WAAW,OAAO,OAAO,KAAK,MAAM;AAE1C,WAAO,aAAa;AAAA,EACxB;AAEA,SAAO;AACX;AAXS;AAoBF,SAAS,kBAAkB,MAAc,QAA+B;AAC3E,QAAM,eAAe,QAAQ,IAAI;AACjC,QAAM,iBAAiB,QAAQ,MAAM,MAAM;AAE3C,MAAI,SAAS,cAAc,cAAc;AACrC,WAAO;AAEX,SAAO;AACX;AARgB;AAehB,eAAsB,eAA4E,MAA0B,kBAA0B,UAAmB,OAA+B;AACpM,MAAI,CAAE,MAAM,OAAO,gBAAgB;AAC/B;AAEJ,MAAI,SAAS,YAAY;AACrB,QAAI,SAAS;AACT,aAAO,QAAQ,MAAM,gBAAgB;AAAA,IACzC;AAEA,WAAO,QAAQ,gBAAgB;AAAA,EACnC;AAEA,MAAI,UAAU,cAAc,gBAAgB,EAAE;AAE9C,MAAI;AACA,eAAW,WAAW,KAAK,IAAI,CAAC;AAEpC,SAAQ,MAAM,OAAO;AACzB;AAlBsB;","names":[]}
package/index.cjs CHANGED
@@ -32,35 +32,21 @@ __export(index_exports, {
32
32
  default: () => index_default
33
33
  });
34
34
  module.exports = __toCommonJS(index_exports);
35
- __reExport(index_exports, require('./container-error.cjs'), module.exports);
36
- __reExport(index_exports, require('./container.cjs'), module.exports);
37
35
  __reExport(index_exports, require('./diatrema.cjs'), module.exports);
38
- __reExport(index_exports, require('./http-server-error.cjs'), module.exports);
39
- __reExport(index_exports, require('./http-server.cjs'), module.exports);
36
+ __reExport(index_exports, require('./event-emitter.cjs'), module.exports);
40
37
  __reExport(index_exports, require('./logger.cjs'), module.exports);
41
38
  __reExport(index_exports, require('./mahameru-error.cjs'), module.exports);
42
- __reExport(index_exports, require('./mahameru-request.cjs'), module.exports);
43
- __reExport(index_exports, require('./mahameru-response.cjs'), module.exports);
44
- __reExport(index_exports, require('./mahameru-server-error.cjs'), module.exports);
45
- __reExport(index_exports, require('./module-error.cjs'), module.exports);
46
- __reExport(index_exports, require('./route.cjs'), module.exports);
39
+ __reExport(index_exports, require('./mahameru-plugin.cjs'), module.exports);
47
40
  __reExport(index_exports, require('./types.cjs'), module.exports);
48
41
  var import_diatrema = __toESM(require('./diatrema.cjs'), 1);
49
42
  var index_default = import_diatrema.default;
50
43
  // Annotate the CommonJS export names for ESM import in node:
51
44
  0 && (module.exports = {
52
- ...require('./container-error.cjs'),
53
- ...require('./container.cjs'),
54
45
  ...require('./diatrema.cjs'),
55
- ...require('./http-server-error.cjs'),
56
- ...require('./http-server.cjs'),
46
+ ...require('./event-emitter.cjs'),
57
47
  ...require('./logger.cjs'),
58
48
  ...require('./mahameru-error.cjs'),
59
- ...require('./mahameru-request.cjs'),
60
- ...require('./mahameru-response.cjs'),
61
- ...require('./mahameru-server-error.cjs'),
62
- ...require('./module-error.cjs'),
63
- ...require('./route.cjs'),
49
+ ...require('./mahameru-plugin.cjs'),
64
50
  ...require('./types.cjs')
65
51
  });
66
52
  //# sourceMappingURL=index.cjs.map
package/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './container-error'\r\nexport * from './container'\r\nexport * from './diatrema'\r\nexport * from './http-server-error'\r\nexport * from './http-server'\r\nexport * from './logger'\r\nexport * from './mahameru-error'\r\nexport * from './mahameru-request'\r\nexport * from './mahameru-response'\r\nexport * from './mahameru-server-error'\r\nexport * from './module-error'\r\nexport * from './route'\r\nexport * from './types'\r\n\r\nimport Diatrema from './diatrema'\r\n\r\nexport default Diatrema;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAc,8BAAd;AACA,0BAAc,wBADd;AAEA,0BAAc,uBAFd;AAGA,0BAAc,gCAHd;AAIA,0BAAc,0BAJd;AAKA,0BAAc,qBALd;AAMA,0BAAc,6BANd;AAOA,0BAAc,+BAPd;AAQA,0BAAc,gCARd;AASA,0BAAc,oCATd;AAUA,0BAAc,2BAVd;AAWA,0BAAc,oBAXd;AAYA,0BAAc,oBAZd;AAcA,sBAAqB;AAErB,IAAO,gBAAQ,gBAAAA;","names":["Diatrema"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './diatrema'\r\nexport * from './event-emitter'\r\nexport * from './logger'\r\nexport * from './mahameru-error'\r\nexport * from './mahameru-plugin'\r\nexport * from './types'\r\n\r\nimport Diatrema from './diatrema'\r\n\r\nexport default Diatrema;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAc,uBAAd;AACA,0BAAc,4BADd;AAEA,0BAAc,qBAFd;AAGA,0BAAc,6BAHd;AAIA,0BAAc,8BAJd;AAKA,0BAAc,oBALd;AAOA,sBAAqB;AAErB,IAAO,gBAAQ,gBAAAA;","names":["Diatrema"]}
package/index.d.cts CHANGED
@@ -1,18 +1,9 @@
1
- export { ContainerError } from './container-error.cjs';
2
- export { Container, ContainerDependencies, ContainerOptions } from './container.cjs';
3
- import Diatrema from './diatrema.cjs';
4
- export { DiatremaDependencies, DiatremaEvents, DiatremaOptions, diatremaDefaultConfig } from './diatrema.cjs';
5
- export { HttpServerError } from './http-server-error.cjs';
6
- export { HttpServer, HttpServerDependencies, HttpServerOptions } from './http-server.cjs';
1
+ import { D as Diatrema } from './diatrema-CyKJKZv_.cjs';
2
+ export { B as BasePluginOptions, a as BaseTypesGeneratorOptions, b as DiatremaEvents, c as DiatremaOptions, M as MahameruPlugin, T as TypesGenerator, d as diatremaDefaultConfig } from './diatrema-CyKJKZv_.cjs';
3
+ export { EventEmitter } from './event-emitter.cjs';
7
4
  export { Logger, createLogger } from './logger.cjs';
8
5
  export { MahameruError } from './mahameru-error.cjs';
9
- export { C as ClassConstructor, a as ContainerItem, b as ContainerItemID, c as ContainerRegistry, E as ErrorHandler, d as ErrorHandlerContext, H as HTTPMethod, e as HTTPMethodEnum, I as InitiatorHandler, f as Instances, M as MahameruContainer, g as MahameruMiddleware, h as MahameruMiddlewareContext, i as MahameruNext, j as MahameruRequest, k as Modules, P as ProtectedRoute, R as RegisterRoutes, l as RequestParams, m as RouteHandler, n as RouteHandlerContext, o as RouteHandlers, p as RouteItem, q as RouteObject } from './types-Cd6Gkoxx.cjs';
10
- export { MahameruResponse } from './mahameru-response.cjs';
11
- export { MahameruServerError } from './mahameru-server-error.cjs';
12
- export { ModuleError } from './module-error.cjs';
13
- export { Route, RouteDependencies, RouteOptions } from './route.cjs';
14
- import './event-emitter.cjs';
15
- import 'node:http';
6
+ export { InitiatorHandler, Instances } from './types.cjs';
16
7
 
17
8
 
18
9
 
package/index.d.ts CHANGED
@@ -1,18 +1,9 @@
1
- export { ContainerError } from './container-error.js';
2
- export { Container, ContainerDependencies, ContainerOptions } from './container.js';
3
- import Diatrema from './diatrema.js';
4
- export { DiatremaDependencies, DiatremaEvents, DiatremaOptions, diatremaDefaultConfig } from './diatrema.js';
5
- export { HttpServerError } from './http-server-error.js';
6
- export { HttpServer, HttpServerDependencies, HttpServerOptions } from './http-server.js';
1
+ import { D as Diatrema } from './diatrema-Bk12jngx.js';
2
+ export { B as BasePluginOptions, a as BaseTypesGeneratorOptions, b as DiatremaEvents, c as DiatremaOptions, M as MahameruPlugin, T as TypesGenerator, d as diatremaDefaultConfig } from './diatrema-Bk12jngx.js';
3
+ export { EventEmitter } from './event-emitter.js';
7
4
  export { Logger, createLogger } from './logger.js';
8
5
  export { MahameruError } from './mahameru-error.js';
9
- export { C as ClassConstructor, a as ContainerItem, b as ContainerItemID, c as ContainerRegistry, E as ErrorHandler, d as ErrorHandlerContext, H as HTTPMethod, e as HTTPMethodEnum, I as InitiatorHandler, f as Instances, M as MahameruContainer, g as MahameruMiddleware, h as MahameruMiddlewareContext, i as MahameruNext, j as MahameruRequest, k as Modules, P as ProtectedRoute, R as RegisterRoutes, l as RequestParams, m as RouteHandler, n as RouteHandlerContext, o as RouteHandlers, p as RouteItem, q as RouteObject } from './types-BmFqDpSs.js';
10
- export { MahameruResponse } from './mahameru-response.js';
11
- export { MahameruServerError } from './mahameru-server-error.js';
12
- export { ModuleError } from './module-error.js';
13
- export { Route, RouteDependencies, RouteOptions } from './route.js';
14
- import './event-emitter.js';
15
- import 'node:http';
6
+ export { InitiatorHandler, Instances } from './types.js';
16
7
 
17
8
 
18
9
 
package/index.js CHANGED
@@ -1,15 +1,8 @@
1
- export * from "./container-error.js";
2
- export * from "./container.js";
3
1
  export * from "./diatrema.js";
4
- export * from "./http-server-error.js";
5
- export * from "./http-server.js";
2
+ export * from "./event-emitter.js";
6
3
  export * from "./logger.js";
7
4
  export * from "./mahameru-error.js";
8
- export * from "./mahameru-request.js";
9
- export * from "./mahameru-response.js";
10
- export * from "./mahameru-server-error.js";
11
- export * from "./module-error.js";
12
- export * from "./route.js";
5
+ export * from "./mahameru-plugin.js";
13
6
  export * from "./types.js";
14
7
  import Diatrema from "./diatrema.js";
15
8
  var index_default = Diatrema;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './container-error'\r\nexport * from './container'\r\nexport * from './diatrema'\r\nexport * from './http-server-error'\r\nexport * from './http-server'\r\nexport * from './logger'\r\nexport * from './mahameru-error'\r\nexport * from './mahameru-request'\r\nexport * from './mahameru-response'\r\nexport * from './mahameru-server-error'\r\nexport * from './module-error'\r\nexport * from './route'\r\nexport * from './types'\r\n\r\nimport Diatrema from './diatrema'\r\n\r\nexport default Diatrema;\r\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,OAAO,cAAc;AAErB,IAAO,gBAAQ;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './diatrema'\r\nexport * from './event-emitter'\r\nexport * from './logger'\r\nexport * from './mahameru-error'\r\nexport * from './mahameru-plugin'\r\nexport * from './types'\r\n\r\nimport Diatrema from './diatrema'\r\n\r\nexport default Diatrema;\r\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,OAAO,cAAc;AAErB,IAAO,gBAAQ;","names":[]}
package/logger.cjs CHANGED
@@ -22,25 +22,30 @@ __export(logger_exports, {
22
22
  createLogger: () => createLogger
23
23
  });
24
24
  module.exports = __toCommonJS(logger_exports);
25
- const createLogger = /* @__PURE__ */ __name((debug = false) => {
25
+ const createLogger = /* @__PURE__ */ __name((name, debug = false) => {
26
+ if (typeof name === "string") {
27
+ name = [`[${name}]`];
28
+ } else {
29
+ name = name.map((item) => `[${item}]`);
30
+ }
26
31
  return {
27
32
  info: /* @__PURE__ */ __name((...data) => {
28
33
  if (debug) {
29
- console.log("[Info]", ...data);
34
+ console.log(...name, "[Info]", ...data);
30
35
  return;
31
36
  }
32
37
  }, "info"),
33
38
  error: /* @__PURE__ */ __name((message, error) => {
34
- console.error(`[Error] ${message}`, error);
39
+ console.error(...name, `[Error] ${message}`, error);
35
40
  }, "error"),
36
41
  warn: /* @__PURE__ */ __name((...data) => {
37
42
  if (debug) {
38
- console.warn("[Warn]", ...data);
43
+ console.warn(...name, "[Warn]", ...data);
39
44
  }
40
45
  }, "warn"),
41
46
  debug: /* @__PURE__ */ __name((...data) => {
42
47
  if (debug) {
43
- console.debug("[Debug]", ...data);
48
+ console.debug(...name, "[Debug]", ...data);
44
49
  }
45
50
  }, "debug")
46
51
  };
package/logger.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (debug: boolean = false): Logger => {\r\n return {\r\n info: (...data: any[]) => {\r\n if (debug) {\r\n console.log('[Info]', ...data)\r\n\r\n return\r\n }\r\n },\r\n error: (message, error) => {\r\n console.error(`[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n if (debug) {\r\n console.warn('[Warn]', ...data)\r\n }\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug) {\r\n console.debug('[Debug]', ...data)\r\n }\r\n }\r\n };\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,eAAe,wBAAC,QAAiB,UAAkB;AAC5D,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,IAAI,UAAU,GAAG,IAAI;AAE7B;AAAA,MACJ;AAAA,IACJ,GANM;AAAA,IAON,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IAC7C,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,KAAK,UAAU,GAAG,IAAI;AAAA,MAClC;AAAA,IACJ,GAJM;AAAA,IAKN,OAAO,2BAAI,SAAgB;AACvB,UAAI,OAAO;AACP,gBAAQ,MAAM,WAAW,GAAG,IAAI;AAAA,MACpC;AAAA,IACJ,GAJO;AAAA,EAKX;AACJ,GAvB4B;","names":[]}
1
+ {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (name: string | string[], debug: boolean = false): Logger => {\r\n if (typeof name === 'string') {\r\n name = [`[${name}]`];\r\n } else {\r\n name = name.map(item => `[${item}]`);\r\n }\r\n return {\r\n info: (...data: any[]) => {\r\n if (debug) {\r\n console.log(...name, '[Info]', ...data)\r\n\r\n return\r\n }\r\n },\r\n error: (message, error) => {\r\n console.error(...name, `[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n if (debug) {\r\n console.warn(...name, '[Warn]', ...data)\r\n }\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug) {\r\n console.debug(...name, '[Debug]', ...data)\r\n }\r\n }\r\n };\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,eAAe,wBAAC,MAAyB,QAAiB,UAAkB;AACrF,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO,CAAC,IAAI,IAAI,GAAG;AAAA,EACvB,OAAO;AACH,WAAO,KAAK,IAAI,UAAQ,IAAI,IAAI,GAAG;AAAA,EACvC;AACA,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,IAAI,GAAG,MAAM,UAAU,GAAG,IAAI;AAEtC;AAAA,MACJ;AAAA,IACJ,GANM;AAAA,IAON,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,GAAG,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IACtD,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,KAAK,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,MAC3C;AAAA,IACJ,GAJM;AAAA,IAKN,OAAO,2BAAI,SAAgB;AACvB,UAAI,OAAO;AACP,gBAAQ,MAAM,GAAG,MAAM,WAAW,GAAG,IAAI;AAAA,MAC7C;AAAA,IACJ,GAJO;AAAA,EAKX;AACJ,GA5B4B;","names":[]}
package/logger.d.cts CHANGED
@@ -4,6 +4,6 @@ interface Logger {
4
4
  warn(...data: any[]): void;
5
5
  debug(...data: any[]): void;
6
6
  }
7
- declare const createLogger: (debug?: boolean) => Logger;
7
+ declare const createLogger: (name: string | string[], debug?: boolean) => Logger;
8
8
 
9
9
  export { type Logger, createLogger };
package/logger.d.ts CHANGED
@@ -4,6 +4,6 @@ interface Logger {
4
4
  warn(...data: any[]): void;
5
5
  debug(...data: any[]): void;
6
6
  }
7
- declare const createLogger: (debug?: boolean) => Logger;
7
+ declare const createLogger: (name: string | string[], debug?: boolean) => Logger;
8
8
 
9
9
  export { type Logger, createLogger };
package/logger.js CHANGED
@@ -1,24 +1,29 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- const createLogger = /* @__PURE__ */ __name((debug = false) => {
3
+ const createLogger = /* @__PURE__ */ __name((name, debug = false) => {
4
+ if (typeof name === "string") {
5
+ name = [`[${name}]`];
6
+ } else {
7
+ name = name.map((item) => `[${item}]`);
8
+ }
4
9
  return {
5
10
  info: /* @__PURE__ */ __name((...data) => {
6
11
  if (debug) {
7
- console.log("[Info]", ...data);
12
+ console.log(...name, "[Info]", ...data);
8
13
  return;
9
14
  }
10
15
  }, "info"),
11
16
  error: /* @__PURE__ */ __name((message, error) => {
12
- console.error(`[Error] ${message}`, error);
17
+ console.error(...name, `[Error] ${message}`, error);
13
18
  }, "error"),
14
19
  warn: /* @__PURE__ */ __name((...data) => {
15
20
  if (debug) {
16
- console.warn("[Warn]", ...data);
21
+ console.warn(...name, "[Warn]", ...data);
17
22
  }
18
23
  }, "warn"),
19
24
  debug: /* @__PURE__ */ __name((...data) => {
20
25
  if (debug) {
21
- console.debug("[Debug]", ...data);
26
+ console.debug(...name, "[Debug]", ...data);
22
27
  }
23
28
  }, "debug")
24
29
  };
package/logger.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (debug: boolean = false): Logger => {\r\n return {\r\n info: (...data: any[]) => {\r\n if (debug) {\r\n console.log('[Info]', ...data)\r\n\r\n return\r\n }\r\n },\r\n error: (message, error) => {\r\n console.error(`[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n if (debug) {\r\n console.warn('[Warn]', ...data)\r\n }\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug) {\r\n console.debug('[Debug]', ...data)\r\n }\r\n }\r\n };\r\n};\r\n"],"mappings":";;AAOO,MAAM,eAAe,wBAAC,QAAiB,UAAkB;AAC5D,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,IAAI,UAAU,GAAG,IAAI;AAE7B;AAAA,MACJ;AAAA,IACJ,GANM;AAAA,IAON,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IAC7C,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,KAAK,UAAU,GAAG,IAAI;AAAA,MAClC;AAAA,IACJ,GAJM;AAAA,IAKN,OAAO,2BAAI,SAAgB;AACvB,UAAI,OAAO;AACP,gBAAQ,MAAM,WAAW,GAAG,IAAI;AAAA,MACpC;AAAA,IACJ,GAJO;AAAA,EAKX;AACJ,GAvB4B;","names":[]}
1
+ {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface Logger {\r\n info(...data: any[]): void;\r\n error(message: string, error?: unknown): void;\r\n warn(...data: any[]): void;\r\n debug(...data: any[]): void;\r\n}\r\n\r\nexport const createLogger = (name: string | string[], debug: boolean = false): Logger => {\r\n if (typeof name === 'string') {\r\n name = [`[${name}]`];\r\n } else {\r\n name = name.map(item => `[${item}]`);\r\n }\r\n return {\r\n info: (...data: any[]) => {\r\n if (debug) {\r\n console.log(...name, '[Info]', ...data)\r\n\r\n return\r\n }\r\n },\r\n error: (message, error) => {\r\n console.error(...name, `[Error] ${message}`, error);\r\n },\r\n warn: (...data: any[]) => {\r\n if (debug) {\r\n console.warn(...name, '[Warn]', ...data)\r\n }\r\n },\r\n debug: (...data: any[]) => {\r\n if (debug) {\r\n console.debug(...name, '[Debug]', ...data)\r\n }\r\n }\r\n };\r\n};\r\n"],"mappings":";;AAOO,MAAM,eAAe,wBAAC,MAAyB,QAAiB,UAAkB;AACrF,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO,CAAC,IAAI,IAAI,GAAG;AAAA,EACvB,OAAO;AACH,WAAO,KAAK,IAAI,UAAQ,IAAI,IAAI,GAAG;AAAA,EACvC;AACA,SAAO;AAAA,IACH,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,IAAI,GAAG,MAAM,UAAU,GAAG,IAAI;AAEtC;AAAA,MACJ;AAAA,IACJ,GANM;AAAA,IAON,OAAO,wBAAC,SAAS,UAAU;AACvB,cAAQ,MAAM,GAAG,MAAM,WAAW,OAAO,IAAI,KAAK;AAAA,IACtD,GAFO;AAAA,IAGP,MAAM,2BAAI,SAAgB;AACtB,UAAI,OAAO;AACP,gBAAQ,KAAK,GAAG,MAAM,UAAU,GAAG,IAAI;AAAA,MAC3C;AAAA,IACJ,GAJM;AAAA,IAKN,OAAO,2BAAI,SAAgB;AACvB,UAAI,OAAO;AACP,gBAAQ,MAAM,GAAG,MAAM,WAAW,GAAG,IAAI;AAAA,MAC7C;AAAA,IACJ,GAJO;AAAA,EAKX;AACJ,GA5B4B;","names":[]}