@weconjs/core 0.2.0 → 1.1.0
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/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +6 -8
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +30 -21
- package/dist/context.js.map +1 -1
- package/dist/devtools/controllers/config.controller.d.ts +28 -0
- package/dist/devtools/controllers/config.controller.d.ts.map +1 -0
- package/dist/devtools/controllers/config.controller.js +100 -0
- package/dist/devtools/controllers/config.controller.js.map +1 -0
- package/dist/devtools/controllers/i18n.controller.d.ts +22 -0
- package/dist/devtools/controllers/i18n.controller.d.ts.map +1 -0
- package/dist/devtools/controllers/i18n.controller.js +93 -0
- package/dist/devtools/controllers/i18n.controller.js.map +1 -0
- package/dist/devtools/controllers/modules.controller.d.ts +16 -0
- package/dist/devtools/controllers/modules.controller.d.ts.map +1 -0
- package/dist/devtools/controllers/modules.controller.js +73 -0
- package/dist/devtools/controllers/modules.controller.js.map +1 -0
- package/dist/devtools/controllers/routes.controller.d.ts +13 -0
- package/dist/devtools/controllers/routes.controller.d.ts.map +1 -0
- package/dist/devtools/controllers/routes.controller.js +32 -0
- package/dist/devtools/controllers/routes.controller.js.map +1 -0
- package/dist/devtools/index.d.ts +28 -0
- package/dist/devtools/index.d.ts.map +1 -0
- package/dist/devtools/index.js +66 -0
- package/dist/devtools/index.js.map +1 -0
- package/dist/devtools/middleware.d.ts +11 -0
- package/dist/devtools/middleware.d.ts.map +1 -0
- package/dist/devtools/middleware.js +30 -0
- package/dist/devtools/middleware.js.map +1 -0
- package/dist/devtools/types.d.ts +59 -0
- package/dist/devtools/types.d.ts.map +1 -0
- package/dist/devtools/types.js +5 -0
- package/dist/devtools/types.js.map +1 -0
- package/dist/errors/ConfigError.d.ts +6 -0
- package/dist/errors/ConfigError.d.ts.map +1 -0
- package/dist/errors/ConfigError.js +16 -0
- package/dist/errors/ConfigError.js.map +1 -0
- package/dist/errors/RequestError.d.ts +6 -0
- package/dist/errors/RequestError.d.ts.map +1 -0
- package/dist/errors/RequestError.js +16 -0
- package/dist/errors/RequestError.js.map +1 -0
- package/dist/errors/index.d.ts +9 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +5 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/module/index.d.ts +6 -0
- package/dist/module/index.d.ts.map +1 -0
- package/dist/module/index.js +5 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/module-loader.d.ts +60 -0
- package/dist/module/module-loader.d.ts.map +1 -0
- package/dist/module/module-loader.js +119 -0
- package/dist/module/module-loader.js.map +1 -0
- package/dist/routing/ErrorCatcher.d.ts +18 -0
- package/dist/routing/ErrorCatcher.d.ts.map +1 -0
- package/dist/routing/ErrorCatcher.js +50 -0
- package/dist/routing/ErrorCatcher.js.map +1 -0
- package/dist/routing/RaiMatcher.d.ts +27 -0
- package/dist/routing/RaiMatcher.d.ts.map +1 -0
- package/dist/routing/RaiMatcher.js +127 -0
- package/dist/routing/RaiMatcher.js.map +1 -0
- package/dist/routing/Route.d.ts +28 -0
- package/dist/routing/Route.d.ts.map +1 -0
- package/dist/routing/Route.js +125 -0
- package/dist/routing/Route.js.map +1 -0
- package/dist/routing/Routes.d.ts +31 -0
- package/dist/routing/Routes.d.ts.map +1 -0
- package/dist/routing/Routes.js +151 -0
- package/dist/routing/Routes.js.map +1 -0
- package/dist/routing/RoutesParam.d.ts +29 -0
- package/dist/routing/RoutesParam.d.ts.map +1 -0
- package/dist/routing/RoutesParam.js +113 -0
- package/dist/routing/RoutesParam.js.map +1 -0
- package/dist/routing/Wecon.d.ts +66 -0
- package/dist/routing/Wecon.d.ts.map +1 -0
- package/dist/routing/Wecon.js +248 -0
- package/dist/routing/Wecon.js.map +1 -0
- package/dist/routing/index.d.ts +9 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +7 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/server/index.d.ts +29 -5
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +40 -1
- package/dist/server/index.js.map +1 -1
- package/dist/types.d.ts +75 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +3 -1
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAiC1E;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAiB7D;AAwED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,cAAc,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAiC1E;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAiB7D;AAwED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,cAAc,CAqChB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAYzB"}
|
package/dist/config.js
CHANGED
|
@@ -143,6 +143,7 @@ export function resolveConfig(config, mode) {
|
|
|
143
143
|
https: { ...DEFAULT_CONFIG.https },
|
|
144
144
|
features: { ...DEFAULT_CONFIG.features },
|
|
145
145
|
modules: [...(config.modules ?? [])],
|
|
146
|
+
moduleConfigs: { ...(config.moduleConfigs ?? {}) },
|
|
146
147
|
};
|
|
147
148
|
// Apply mode-specific configuration if defined
|
|
148
149
|
if (config.modes && config.modes[targetMode]) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH;;GAEG;AACH,MAAM,cAAc,GAA4B;IAC9C,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE;QACR,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE;YACR,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,WAAW;SACtB;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;KACf;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAC9C,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;QAC5C,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KAC3B;IACD,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,yDAAyD;IACzD,OAAO;QACL,GAAG,EAAE;YACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YACrB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO;SACvC;QACD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,MAAS,EACT,MAAkB;IAElB,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAO,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAc,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAc,CAAC,CAAC;QAE3C,IACE,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACA,MAAkC,CAAC,GAAG,CAAC,GAAG,SAAS,CAClD,WAAqB,EACrB,WAAqB,CACtB,CAAC;QACJ,CAAC;aAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,MAAkC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAClB,KAAiC,EACjC,QAAgB,EAChB,UAAuB,IAAI,GAAG,EAAE;IAEhC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACrE,MAAM,CACP,OAAO,QAAQ,EAAE,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,8BAA8B,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEtB,yDAAyD;IACzD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAAC;QACnD,OAAO,SAAS,CAAC,UAAU,EAAE,kBAAyC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAmB,EACnB,IAAa;IAEb,MAAM,UAAU,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IAEjE,sBAAsB;IACtB,IAAI,QAAQ,GAAmB;QAC7B,GAAG,EAAE;YACH,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;YACrB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO;SACvC;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,cAAc,CAAC,IAAK;QAC1B,QAAQ,EAAE,EAAE,GAAG,cAAc,CAAC,QAAQ,EAAE;QACxC,OAAO,EAAE,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE;QACtC,KAAK,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE;QAClC,QAAQ,EAAE,EAAE,GAAG,cAAc,CAAC,QAAQ,EAAE;QACxC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACpC,aAAa,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE;KACnD,CAAC;IAEF,+CAA+C;IAC/C,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEzD,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;SACG,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAgB,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC;QAEjE,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/context.d.ts
CHANGED
|
@@ -6,24 +6,22 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { Application } from "express";
|
|
8
8
|
import type { Server } from "socket.io";
|
|
9
|
+
import type { z } from "zod";
|
|
9
10
|
import type { WeconContext, ResolvedConfig, WeconLogger } from "./types.js";
|
|
10
11
|
/**
|
|
11
|
-
* Create a Wecon application context
|
|
12
|
-
*
|
|
13
|
-
* @param options - Context options
|
|
14
|
-
* @returns The application context
|
|
12
|
+
* Create a Wecon application context.
|
|
13
|
+
* Includes service registry and typed module config access.
|
|
15
14
|
*/
|
|
16
15
|
export declare function createContext(options: {
|
|
17
16
|
config: ResolvedConfig;
|
|
18
17
|
app: Application;
|
|
19
18
|
io?: Server;
|
|
20
19
|
logger?: WeconLogger;
|
|
20
|
+
/** Zod schemas for module configs (used by setModuleConfig validation) */
|
|
21
|
+
moduleSchemas?: Map<string, z.ZodType>;
|
|
21
22
|
}): WeconContext;
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @param config - The resolved configuration
|
|
26
|
-
* @param customLogger - Optional custom logger implementation
|
|
24
|
+
* Create a level-aware logger from config.
|
|
27
25
|
*/
|
|
28
26
|
export declare function createLogger(config: ResolvedConfig, customLogger?: WeconLogger): WeconLogger;
|
|
29
27
|
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EAEZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EAEZ,MAAM,YAAY,CAAC;AASpB;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CACxC,GAAG,YAAY,CAgDf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,YAAY,CAAC,EAAE,WAAW,GACzB,WAAW,CAuBb"}
|
package/dist/context.js
CHANGED
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* Creates and manages the Wecon application context.
|
|
5
5
|
* The context is passed to handlers, middleware, and hooks.
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
* Default logger implementation (console-based)
|
|
9
|
-
*/
|
|
10
7
|
const defaultLogger = {
|
|
11
8
|
debug: (message, meta) => console.debug(`[DEBUG] ${message}`, meta ?? ""),
|
|
12
9
|
info: (message, meta) => console.info(`[INFO] ${message}`, meta ?? ""),
|
|
@@ -14,13 +11,12 @@ const defaultLogger = {
|
|
|
14
11
|
error: (message, meta) => console.error(`[ERROR] ${message}`, meta ?? ""),
|
|
15
12
|
};
|
|
16
13
|
/**
|
|
17
|
-
* Create a Wecon application context
|
|
18
|
-
*
|
|
19
|
-
* @param options - Context options
|
|
20
|
-
* @returns The application context
|
|
14
|
+
* Create a Wecon application context.
|
|
15
|
+
* Includes service registry and typed module config access.
|
|
21
16
|
*/
|
|
22
17
|
export function createContext(options) {
|
|
23
18
|
const services = {};
|
|
19
|
+
const moduleSchemas = options.moduleSchemas ?? new Map();
|
|
24
20
|
const ctx = {
|
|
25
21
|
config: options.config,
|
|
26
22
|
app: options.app,
|
|
@@ -36,43 +32,56 @@ export function createContext(options) {
|
|
|
36
32
|
}
|
|
37
33
|
services[name] = service;
|
|
38
34
|
},
|
|
35
|
+
getModuleConfig(moduleName) {
|
|
36
|
+
const config = ctx.config.moduleConfigs[moduleName];
|
|
37
|
+
if (config === undefined) {
|
|
38
|
+
throw new Error(`[Wecon] No config registered for module "${moduleName}"`);
|
|
39
|
+
}
|
|
40
|
+
return config;
|
|
41
|
+
},
|
|
42
|
+
setModuleConfig(moduleName, newConfig) {
|
|
43
|
+
const schema = moduleSchemas.get(moduleName);
|
|
44
|
+
if (schema) {
|
|
45
|
+
// Validate against the module's Zod schema before setting
|
|
46
|
+
const result = schema.safeParse(newConfig);
|
|
47
|
+
if (!result.success) {
|
|
48
|
+
throw new Error(`[Wecon] Invalid config for module "${moduleName}": ${result.error.message}`);
|
|
49
|
+
}
|
|
50
|
+
ctx.config.moduleConfigs[moduleName] = result.data;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
ctx.config.moduleConfigs[moduleName] = newConfig;
|
|
54
|
+
}
|
|
55
|
+
},
|
|
39
56
|
};
|
|
40
57
|
return ctx;
|
|
41
58
|
}
|
|
42
59
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* @param config - The resolved configuration
|
|
46
|
-
* @param customLogger - Optional custom logger implementation
|
|
60
|
+
* Create a level-aware logger from config.
|
|
47
61
|
*/
|
|
48
62
|
export function createLogger(config, customLogger) {
|
|
49
|
-
if (customLogger)
|
|
63
|
+
if (customLogger)
|
|
50
64
|
return customLogger;
|
|
51
|
-
}
|
|
52
65
|
const level = config.logging.level ?? "info";
|
|
53
66
|
const levels = ["debug", "info", "warn", "error"];
|
|
54
67
|
const minLevel = levels.indexOf(level);
|
|
55
68
|
const shouldLog = (logLevel) => levels.indexOf(logLevel) >= minLevel;
|
|
56
69
|
return {
|
|
57
70
|
debug: (message, meta) => {
|
|
58
|
-
if (shouldLog("debug"))
|
|
71
|
+
if (shouldLog("debug"))
|
|
59
72
|
console.debug(`[DEBUG] ${message}`, meta ?? "");
|
|
60
|
-
}
|
|
61
73
|
},
|
|
62
74
|
info: (message, meta) => {
|
|
63
|
-
if (shouldLog("info"))
|
|
75
|
+
if (shouldLog("info"))
|
|
64
76
|
console.info(`[INFO] ${message}`, meta ?? "");
|
|
65
|
-
}
|
|
66
77
|
},
|
|
67
78
|
warn: (message, meta) => {
|
|
68
|
-
if (shouldLog("warn"))
|
|
79
|
+
if (shouldLog("warn"))
|
|
69
80
|
console.warn(`[WARN] ${message}`, meta ?? "");
|
|
70
|
-
}
|
|
71
81
|
},
|
|
72
82
|
error: (message, meta) => {
|
|
73
|
-
if (shouldLog("error"))
|
|
83
|
+
if (shouldLog("error"))
|
|
74
84
|
console.error(`[ERROR] ${message}`, meta ?? "");
|
|
75
|
-
}
|
|
76
85
|
},
|
|
77
86
|
};
|
|
78
87
|
}
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Config Controller
|
|
3
|
+
*
|
|
4
|
+
* Read and update global config and per-module config.
|
|
5
|
+
*/
|
|
6
|
+
import type { Request, Response } from "express";
|
|
7
|
+
import type { DevToolsContext } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* GET /config - Get full resolved config
|
|
10
|
+
*/
|
|
11
|
+
export declare function getConfig(dtCtx: DevToolsContext): (_req: Request, res: Response) => void;
|
|
12
|
+
/**
|
|
13
|
+
* PUT /config - Update global config values (dot-path notation)
|
|
14
|
+
*
|
|
15
|
+
* Body: { "path": "logging.level", "value": "debug" }
|
|
16
|
+
*/
|
|
17
|
+
export declare function updateConfig(dtCtx: DevToolsContext): (req: Request, res: Response) => void;
|
|
18
|
+
/**
|
|
19
|
+
* GET /config/:moduleName - Get module config and schema info
|
|
20
|
+
*/
|
|
21
|
+
export declare function getModuleConfig(dtCtx: DevToolsContext): (req: Request, res: Response) => void;
|
|
22
|
+
/**
|
|
23
|
+
* PUT /config/:moduleName - Update module config (Zod-validated)
|
|
24
|
+
*
|
|
25
|
+
* Body: the full new config object
|
|
26
|
+
*/
|
|
27
|
+
export declare function updateModuleConfig(dtCtx: DevToolsContext): (req: Request, res: Response) => void;
|
|
28
|
+
//# sourceMappingURL=config.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.controller.d.ts","sourceRoot":"","sources":["../../../src/devtools/controllers/config.controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,IACtC,MAAM,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CAK5C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,IACzC,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CA4C3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,IAC5C,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CAa3C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,IAC/C,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CAe3C"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Config Controller
|
|
3
|
+
*
|
|
4
|
+
* Read and update global config and per-module config.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* GET /config - Get full resolved config
|
|
8
|
+
*/
|
|
9
|
+
export function getConfig(dtCtx) {
|
|
10
|
+
return (_req, res) => {
|
|
11
|
+
// Return a sanitized copy (exclude sensitive fields)
|
|
12
|
+
const config = { ...dtCtx.ctx.config };
|
|
13
|
+
res.json({ success: true, data: config });
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* PUT /config - Update global config values (dot-path notation)
|
|
18
|
+
*
|
|
19
|
+
* Body: { "path": "logging.level", "value": "debug" }
|
|
20
|
+
*/
|
|
21
|
+
export function updateConfig(dtCtx) {
|
|
22
|
+
return (req, res) => {
|
|
23
|
+
const { path, value } = req.body;
|
|
24
|
+
if (!path || typeof path !== "string") {
|
|
25
|
+
res.status(400).json({
|
|
26
|
+
success: false,
|
|
27
|
+
errors: [{ code: "INVALID_INPUT", message: "\"path\" is required (dot notation)" }],
|
|
28
|
+
});
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Prevent updating immutable fields
|
|
32
|
+
const immutable = ["app.name", "mode"];
|
|
33
|
+
if (immutable.includes(path)) {
|
|
34
|
+
res.status(400).json({
|
|
35
|
+
success: false,
|
|
36
|
+
errors: [{ code: "IMMUTABLE", message: `Cannot update "${path}" at runtime` }],
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Navigate to the target and set value
|
|
41
|
+
const parts = path.split(".");
|
|
42
|
+
let target = dtCtx.ctx.config;
|
|
43
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
44
|
+
const part = parts[i];
|
|
45
|
+
if (target[part] === undefined || typeof target[part] !== "object") {
|
|
46
|
+
res.status(400).json({
|
|
47
|
+
success: false,
|
|
48
|
+
errors: [{ code: "INVALID_PATH", message: `Path "${path}" is invalid at "${part}"` }],
|
|
49
|
+
});
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
target = target[part];
|
|
53
|
+
}
|
|
54
|
+
const lastKey = parts[parts.length - 1];
|
|
55
|
+
target[lastKey] = value;
|
|
56
|
+
dtCtx.ctx.logger.info(`Config updated: ${path}`, { value });
|
|
57
|
+
res.json({ success: true, data: { path, value } });
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* GET /config/:moduleName - Get module config and schema info
|
|
62
|
+
*/
|
|
63
|
+
export function getModuleConfig(dtCtx) {
|
|
64
|
+
return (req, res) => {
|
|
65
|
+
const { moduleName } = req.params;
|
|
66
|
+
try {
|
|
67
|
+
const config = dtCtx.ctx.getModuleConfig(moduleName);
|
|
68
|
+
res.json({ success: true, data: { moduleName, config } });
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
res.status(404).json({
|
|
72
|
+
success: false,
|
|
73
|
+
errors: [{ code: "NOT_FOUND", message: err.message }],
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* PUT /config/:moduleName - Update module config (Zod-validated)
|
|
80
|
+
*
|
|
81
|
+
* Body: the full new config object
|
|
82
|
+
*/
|
|
83
|
+
export function updateModuleConfig(dtCtx) {
|
|
84
|
+
return (req, res) => {
|
|
85
|
+
const { moduleName } = req.params;
|
|
86
|
+
try {
|
|
87
|
+
dtCtx.ctx.setModuleConfig(moduleName, req.body);
|
|
88
|
+
const updated = dtCtx.ctx.getModuleConfig(moduleName);
|
|
89
|
+
dtCtx.ctx.logger.info(`Module config updated: ${moduleName}`);
|
|
90
|
+
res.json({ success: true, data: { moduleName, config: updated } });
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
res.status(400).json({
|
|
94
|
+
success: false,
|
|
95
|
+
errors: [{ code: "VALIDATION_ERROR", message: err.message }],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=config.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.controller.js","sourceRoot":"","sources":["../../../src/devtools/controllers/config.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools i18n Controller
|
|
3
|
+
*
|
|
4
|
+
* List namespaces, read and update translations.
|
|
5
|
+
*/
|
|
6
|
+
import type { Request, Response } from "express";
|
|
7
|
+
import type { DevToolsContext } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* GET /i18n - List all namespaces with languages and key counts
|
|
10
|
+
*/
|
|
11
|
+
export declare function listNamespaces(dtCtx: DevToolsContext, modulesDir: string): (_req: Request, res: Response) => Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* GET /i18n/:namespace/:lang - Get translations for namespace + language
|
|
14
|
+
*/
|
|
15
|
+
export declare function getTranslations(dtCtx: DevToolsContext, modulesDir: string): (req: Request, res: Response) => void;
|
|
16
|
+
/**
|
|
17
|
+
* PUT /i18n/:namespace/:lang - Update translations
|
|
18
|
+
*
|
|
19
|
+
* Body: the full translations object
|
|
20
|
+
*/
|
|
21
|
+
export declare function updateTranslations(dtCtx: DevToolsContext, modulesDir: string): (req: Request, res: Response) => void;
|
|
22
|
+
//# sourceMappingURL=i18n.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.controller.d.ts","sourceRoot":"","sources":["../../../src/devtools/controllers/i18n.controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,IACzD,MAAM,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CAuB3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,IAChE,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CA0B3C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,IACnE,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CAwB3C"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools i18n Controller
|
|
3
|
+
*
|
|
4
|
+
* List namespaces, read and update translations.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
7
|
+
import { join, dirname } from "path";
|
|
8
|
+
import { loadI18nResources } from "../../i18n/index.js";
|
|
9
|
+
/**
|
|
10
|
+
* GET /i18n - List all namespaces with languages and key counts
|
|
11
|
+
*/
|
|
12
|
+
export function listNamespaces(dtCtx, modulesDir) {
|
|
13
|
+
return async (_req, res) => {
|
|
14
|
+
try {
|
|
15
|
+
const resources = await loadI18nResources(modulesDir);
|
|
16
|
+
const namespaces = Object.entries(resources).map(([namespace, langs]) => ({
|
|
17
|
+
namespace,
|
|
18
|
+
languages: Object.keys(langs),
|
|
19
|
+
keyCounts: Object.fromEntries(Object.entries(langs).map(([lang, translations]) => [
|
|
20
|
+
lang,
|
|
21
|
+
Object.keys(translations).length,
|
|
22
|
+
])),
|
|
23
|
+
}));
|
|
24
|
+
res.json({ success: true, data: namespaces });
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
res.status(500).json({
|
|
28
|
+
success: false,
|
|
29
|
+
errors: [{ code: "I18N_ERROR", message: err.message }],
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* GET /i18n/:namespace/:lang - Get translations for namespace + language
|
|
36
|
+
*/
|
|
37
|
+
export function getTranslations(dtCtx, modulesDir) {
|
|
38
|
+
return (req, res) => {
|
|
39
|
+
const { namespace, lang } = req.params;
|
|
40
|
+
const filePath = join(modulesDir, namespace, "i18n", `${lang}.translation.json`);
|
|
41
|
+
if (!existsSync(filePath)) {
|
|
42
|
+
res.status(404).json({
|
|
43
|
+
success: false,
|
|
44
|
+
errors: [{
|
|
45
|
+
code: "NOT_FOUND",
|
|
46
|
+
message: `Translation file not found: ${namespace}/${lang}`,
|
|
47
|
+
}],
|
|
48
|
+
});
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
const content = readFileSync(filePath, "utf-8");
|
|
53
|
+
const translations = JSON.parse(content);
|
|
54
|
+
res.json({ success: true, data: { namespace, lang, translations } });
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
res.status(500).json({
|
|
58
|
+
success: false,
|
|
59
|
+
errors: [{ code: "PARSE_ERROR", message: err.message }],
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* PUT /i18n/:namespace/:lang - Update translations
|
|
66
|
+
*
|
|
67
|
+
* Body: the full translations object
|
|
68
|
+
*/
|
|
69
|
+
export function updateTranslations(dtCtx, modulesDir) {
|
|
70
|
+
return (req, res) => {
|
|
71
|
+
const { namespace, lang } = req.params;
|
|
72
|
+
const filePath = join(modulesDir, namespace, "i18n", `${lang}.translation.json`);
|
|
73
|
+
try {
|
|
74
|
+
// Ensure directory exists
|
|
75
|
+
const dir = dirname(filePath);
|
|
76
|
+
if (!existsSync(dir)) {
|
|
77
|
+
mkdirSync(dir, { recursive: true });
|
|
78
|
+
}
|
|
79
|
+
// Write formatted JSON
|
|
80
|
+
const content = JSON.stringify(req.body, null, 2);
|
|
81
|
+
writeFileSync(filePath, content + "\n", "utf-8");
|
|
82
|
+
dtCtx.ctx.logger.info(`Translations updated: ${namespace}/${lang}`);
|
|
83
|
+
res.json({ success: true, data: { namespace, lang, translations: req.body } });
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
res.status(500).json({
|
|
87
|
+
success: false,
|
|
88
|
+
errors: [{ code: "WRITE_ERROR", message: err.message }],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=i18n.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.controller.js","sourceRoot":"","sources":["../../../src/devtools/controllers/i18n.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Modules Controller
|
|
3
|
+
*
|
|
4
|
+
* List and inspect registered modules.
|
|
5
|
+
*/
|
|
6
|
+
import type { Request, Response } from "express";
|
|
7
|
+
import type { DevToolsContext } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* GET /modules - List all modules
|
|
10
|
+
*/
|
|
11
|
+
export declare function listModules(dtCtx: DevToolsContext): (_req: Request, res: Response) => void;
|
|
12
|
+
/**
|
|
13
|
+
* GET /modules/:name - Get module detail
|
|
14
|
+
*/
|
|
15
|
+
export declare function getModule(dtCtx: DevToolsContext): (req: Request, res: Response) => void;
|
|
16
|
+
//# sourceMappingURL=modules.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules.controller.d.ts","sourceRoot":"","sources":["../../../src/devtools/controllers/modules.controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,aAAa,CAAC;AAEhF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,IACxC,MAAM,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CAa5C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,IACtC,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CAgD3C"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Modules Controller
|
|
3
|
+
*
|
|
4
|
+
* List and inspect registered modules.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* GET /modules - List all modules
|
|
8
|
+
*/
|
|
9
|
+
export function listModules(dtCtx) {
|
|
10
|
+
return (_req, res) => {
|
|
11
|
+
const summaries = dtCtx.modules.map((mod) => ({
|
|
12
|
+
name: mod.name,
|
|
13
|
+
namespace: mod.namespace,
|
|
14
|
+
description: mod.description,
|
|
15
|
+
hasConfig: !!mod.config?.schema,
|
|
16
|
+
hasRoutes: !!mod.routes,
|
|
17
|
+
imports: mod.imports ?? [],
|
|
18
|
+
exports: mod.exports ?? [],
|
|
19
|
+
}));
|
|
20
|
+
res.json({ success: true, data: summaries });
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* GET /modules/:name - Get module detail
|
|
25
|
+
*/
|
|
26
|
+
export function getModule(dtCtx) {
|
|
27
|
+
return (req, res) => {
|
|
28
|
+
const { name } = req.params;
|
|
29
|
+
const mod = dtCtx.modules.find((m) => m.name === name);
|
|
30
|
+
if (!mod) {
|
|
31
|
+
res.status(404).json({
|
|
32
|
+
success: false,
|
|
33
|
+
errors: [{ code: "NOT_FOUND", message: `Module "${name}" not found` }],
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// Get current config if available
|
|
38
|
+
let currentConfig = null;
|
|
39
|
+
try {
|
|
40
|
+
currentConfig = dtCtx.ctx.getModuleConfig(name);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Module has no config
|
|
44
|
+
}
|
|
45
|
+
// Describe schema if available
|
|
46
|
+
let schemaDescription = null;
|
|
47
|
+
if (mod.config?.schema) {
|
|
48
|
+
try {
|
|
49
|
+
// Zod schemas have a .describe() or ._def we can inspect
|
|
50
|
+
const def = mod.config.schema._def;
|
|
51
|
+
schemaDescription = def ? JSON.stringify(def, null, 2) : null;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
schemaDescription = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const detail = {
|
|
58
|
+
name: mod.name,
|
|
59
|
+
namespace: mod.namespace,
|
|
60
|
+
description: mod.description,
|
|
61
|
+
hasConfig: !!mod.config?.schema,
|
|
62
|
+
hasRoutes: !!mod.routes,
|
|
63
|
+
imports: mod.imports ?? [],
|
|
64
|
+
exports: mod.exports ?? [],
|
|
65
|
+
config: {
|
|
66
|
+
schema: schemaDescription,
|
|
67
|
+
current: currentConfig,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
res.json({ success: true, data: detail });
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=modules.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules.controller.js","sourceRoot":"","sources":["../../../src/devtools/controllers/modules.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Routes Controller
|
|
3
|
+
*
|
|
4
|
+
* List all registered RAIs with their methods, paths, and roles.
|
|
5
|
+
*/
|
|
6
|
+
import type { Request, Response } from "express";
|
|
7
|
+
import type { DevToolsContext } from "../types.js";
|
|
8
|
+
import type Wecon from "../../routing/Wecon.js";
|
|
9
|
+
/**
|
|
10
|
+
* GET /routes - List all registered routes
|
|
11
|
+
*/
|
|
12
|
+
export declare function listRoutes(dtCtx: DevToolsContext, wecon?: Wecon): (_req: Request, res: Response) => void;
|
|
13
|
+
//# sourceMappingURL=routes.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.controller.d.ts","sourceRoot":"","sources":["../../../src/devtools/controllers/routes.controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,KAAK,IACtD,MAAM,OAAO,EAAE,KAAK,QAAQ,KAAG,IAAI,CAyB5C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Routes Controller
|
|
3
|
+
*
|
|
4
|
+
* List all registered RAIs with their methods, paths, and roles.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* GET /routes - List all registered routes
|
|
8
|
+
*/
|
|
9
|
+
export function listRoutes(dtCtx, wecon) {
|
|
10
|
+
return (_req, res) => {
|
|
11
|
+
if (!wecon) {
|
|
12
|
+
res.json({ success: true, data: [] });
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const routes = wecon.getRoutes();
|
|
16
|
+
const summaries = [];
|
|
17
|
+
for (const route of routes) {
|
|
18
|
+
summaries.push({
|
|
19
|
+
rai: route.rai,
|
|
20
|
+
method: route.method,
|
|
21
|
+
path: route.path,
|
|
22
|
+
roles: route.roles,
|
|
23
|
+
module: route.meta?.module,
|
|
24
|
+
name: route.name,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
// Sort by path for readability
|
|
28
|
+
summaries.sort((a, b) => a.path.localeCompare(b.path));
|
|
29
|
+
res.json({ success: true, data: summaries });
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=routes.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.controller.js","sourceRoot":"","sources":["../../../src/devtools/controllers/routes.controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB,EAAE,KAAa;IAC9D,OAAO,CAAC,IAAa,EAAE,GAAa,EAAQ,EAAE;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,SAAS,GAAmB,EAAE,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC;gBACb,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAA4B;gBAChD,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,+BAA+B;QAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Module
|
|
3
|
+
*
|
|
4
|
+
* REST API for inspecting and managing modules, config, i18n, and routes.
|
|
5
|
+
* Disabled in production by default.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const app = await createWecon({
|
|
10
|
+
* config,
|
|
11
|
+
* modules: [authModule],
|
|
12
|
+
* devtools: {
|
|
13
|
+
* enabled: true,
|
|
14
|
+
* auth: { token: process.env.DEVTOOLS_TOKEN },
|
|
15
|
+
* },
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import type { Router } from "express";
|
|
20
|
+
import type { WeconContext, WeconModule } from "../types.js";
|
|
21
|
+
import type Wecon from "../routing/Wecon.js";
|
|
22
|
+
import type { DevToolsOptions } from "./types.js";
|
|
23
|
+
export type { DevToolsOptions } from "./types.js";
|
|
24
|
+
/**
|
|
25
|
+
* Create the devtools Express Router
|
|
26
|
+
*/
|
|
27
|
+
export declare function createDevToolsRouter(ctx: WeconContext, modules: WeconModule[], options?: DevToolsOptions, wecon?: Wecon): Router | null;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|