@weconjs/core 0.2.0 → 1.2.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/database/index.d.ts.map +1 -1
- package/dist/database/index.js +1 -2
- package/dist/database/index.js.map +1 -1
- package/dist/devtools/client/assets/ModuleDetail-Cv1SUhav.js +1 -0
- package/dist/devtools/client/assets/TranslationEditor-CwBjcmjN.js +6 -0
- package/dist/devtools/client/assets/api-DHFLRYt1.js +11 -0
- package/dist/devtools/client/assets/arrow-left-XXd8AsXj.js +6 -0
- package/dist/devtools/client/assets/chevron-right-DN23SEYa.js +6 -0
- package/dist/devtools/client/assets/index-BFzJyDrn.css +1 -0
- package/dist/devtools/client/assets/index-BbARU3f6.js +1 -0
- package/dist/devtools/client/assets/index-Cwwdi5uz.js +181 -0
- package/dist/devtools/client/assets/index-DH5TZlGZ.js +6 -0
- package/dist/devtools/client/assets/index-DbBxhrHS.js +1 -0
- package/dist/devtools/client/assets/index-LkCf2mcb.js +1 -0
- package/dist/devtools/client/assets/index-jqJ0mfFs.js +6 -0
- package/dist/devtools/client/index.html +15 -0
- 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 +29 -0
- package/dist/devtools/index.d.ts.map +1 -0
- package/dist/devtools/index.js +94 -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/banner.d.ts +20 -0
- package/dist/server/banner.d.ts.map +1 -0
- package/dist/server/banner.js +77 -0
- package/dist/server/banner.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 +76 -12
- 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 +4 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/devtools/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,IACtC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAsB/D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Auth Middleware
|
|
3
|
+
*
|
|
4
|
+
* Optional bearer token authentication for devtools endpoints.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Create bearer token auth middleware for devtools
|
|
8
|
+
*/
|
|
9
|
+
export function createDevToolsAuth(token) {
|
|
10
|
+
return (req, res, next) => {
|
|
11
|
+
const authHeader = req.headers.authorization;
|
|
12
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
13
|
+
res.status(401).json({
|
|
14
|
+
success: false,
|
|
15
|
+
errors: [{ code: "UNAUTHORIZED", message: "Bearer token required" }],
|
|
16
|
+
});
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const provided = authHeader.slice(7);
|
|
20
|
+
if (provided !== token) {
|
|
21
|
+
res.status(403).json({
|
|
22
|
+
success: false,
|
|
23
|
+
errors: [{ code: "FORBIDDEN", message: "Invalid token" }],
|
|
24
|
+
});
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
next();
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/devtools/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAE7C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;aACrE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;aAC1D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - DevTools Types
|
|
3
|
+
*/
|
|
4
|
+
import type { WeconContext, WeconModule } from "../types.js";
|
|
5
|
+
/**
|
|
6
|
+
* DevTools configuration options
|
|
7
|
+
*/
|
|
8
|
+
export interface DevToolsOptions {
|
|
9
|
+
/** Enable devtools (default: true in non-production) */
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
/** Route prefix (default: "/dev/devtools") */
|
|
12
|
+
prefix?: string;
|
|
13
|
+
/** Optional bearer token for authentication */
|
|
14
|
+
auth?: {
|
|
15
|
+
token?: string;
|
|
16
|
+
};
|
|
17
|
+
/** Path to modules directory for i18n operations */
|
|
18
|
+
modulesDir?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Module summary returned by the list endpoint
|
|
22
|
+
*/
|
|
23
|
+
export interface ModuleSummary {
|
|
24
|
+
name: string;
|
|
25
|
+
namespace: string;
|
|
26
|
+
description: string;
|
|
27
|
+
hasConfig: boolean;
|
|
28
|
+
hasRoutes: boolean;
|
|
29
|
+
imports: string[];
|
|
30
|
+
exports: string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Module detail returned by the get endpoint
|
|
34
|
+
*/
|
|
35
|
+
export interface ModuleDetail extends ModuleSummary {
|
|
36
|
+
config: {
|
|
37
|
+
schema: string | null;
|
|
38
|
+
current: unknown;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Route summary for the routes list endpoint
|
|
43
|
+
*/
|
|
44
|
+
export interface RouteSummary {
|
|
45
|
+
rai: string;
|
|
46
|
+
method: string;
|
|
47
|
+
path: string;
|
|
48
|
+
roles: string[];
|
|
49
|
+
module?: string;
|
|
50
|
+
name?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Internal context passed to devtools controllers
|
|
54
|
+
*/
|
|
55
|
+
export interface DevToolsContext {
|
|
56
|
+
ctx: WeconContext;
|
|
57
|
+
modules: WeconModule[];
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/devtools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+CAA+C;IAC/C,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,YAAY,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/devtools/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigError.d.ts","sourceRoot":"","sources":["../../src/errors/ConfigError.ts"],"names":[],"mappings":"AAEA,cAAM,WAAY,SAAQ,KAAK;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;CAY5D;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
class ConfigError extends Error {
|
|
3
|
+
meta;
|
|
4
|
+
constructor(message, meta = {}) {
|
|
5
|
+
super(`ConfigError: ${message}`);
|
|
6
|
+
this.message = message;
|
|
7
|
+
this.meta = meta;
|
|
8
|
+
Object.setPrototypeOf(this, ConfigError.prototype);
|
|
9
|
+
this.name = "ConfigError";
|
|
10
|
+
if ("captureStackTrace" in Error) {
|
|
11
|
+
Error.captureStackTrace(this, ConfigError);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export default ConfigError;
|
|
16
|
+
//# sourceMappingURL=ConfigError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigError.js","sourceRoot":"","sources":["../../src/errors/ConfigError.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,MAAM,WAAY,SAAQ,KAAK;IACtB,IAAI,CAAsB;IAEjC,YAAY,OAAe,EAAE,OAA4B,EAAE;QACzD,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAE1B,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestError.d.ts","sourceRoot":"","sources":["../../src/errors/RequestError.ts"],"names":[],"mappings":"AAEA,cAAM,YAAa,SAAQ,KAAK;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;CAY5D;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
class RequestError extends Error {
|
|
3
|
+
meta;
|
|
4
|
+
constructor(message, meta = {}) {
|
|
5
|
+
super(`RequestError: ${message}`);
|
|
6
|
+
this.message = message;
|
|
7
|
+
this.meta = meta;
|
|
8
|
+
Object.setPrototypeOf(this, RequestError.prototype);
|
|
9
|
+
this.name = "RequestError";
|
|
10
|
+
if ("captureStackTrace" in Error) {
|
|
11
|
+
Error.captureStackTrace(this, RequestError);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export default RequestError;
|
|
16
|
+
//# sourceMappingURL=RequestError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestError.js","sourceRoot":"","sources":["../../src/errors/RequestError.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,MAAM,YAAa,SAAQ,KAAK;IACvB,IAAI,CAAsB;IAEjC,YAAY,OAAe,EAAE,OAA4B,EAAE;QACzD,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAE3B,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import ConfigError from "./ConfigError.js";
|
|
2
|
+
import RequestError from "./RequestError.js";
|
|
3
|
+
export { ConfigError, RequestError };
|
|
4
|
+
declare const _default: {
|
|
5
|
+
ConfigError: typeof ConfigError;
|
|
6
|
+
RequestError: typeof RequestError;
|
|
7
|
+
};
|
|
8
|
+
export default _default;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;;;;;AACrC,wBAA6C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACrC,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,20 +2,27 @@
|
|
|
2
2
|
* @weconjs/core
|
|
3
3
|
*
|
|
4
4
|
* Core package for the Wecon framework.
|
|
5
|
-
* Provides configuration, module system, and runtime utilities.
|
|
5
|
+
* Provides configuration, module system, routing, and runtime utilities.
|
|
6
6
|
*/
|
|
7
7
|
export { defineConfig, resolveConfig, loadConfig } from "./config.js";
|
|
8
8
|
export { defineModule, loadModule, discoverSocketHandlers, discoverSocketMiddleware, resolveModuleDependencies, } from "./module.js";
|
|
9
|
+
export { readModulePackageJson, checkModuleDeps, detectPackageManager, installModuleDeps, resolveAllModuleDeps, } from "./module/index.js";
|
|
10
|
+
export type { ModulePackageJson, DepsCheckResult } from "./module/index.js";
|
|
9
11
|
export { createContext, createLogger } from "./context.js";
|
|
10
12
|
export { createWinstonLogger, createConsoleLogger, } from "./logger/index.js";
|
|
11
13
|
export type { LoggerOptions, WinstonBasedLogger } from "./logger/index.js";
|
|
12
14
|
export { createWecon } from "./server/index.js";
|
|
13
15
|
export type { CreateWeconOptions, WeconApp, ApiError, ApiResponse, RespondOptions, } from "./server/index.js";
|
|
16
|
+
export { Wecon, Route, Routes, RoutesParam, RaiMatcher, ErrorCatcher, } from "./routing/index.js";
|
|
17
|
+
export type { WeconDevConfig, RaiRoutesList } from "./routing/index.js";
|
|
18
|
+
export { ConfigError, RequestError } from "./errors/index.js";
|
|
14
19
|
export { loadI18nResources, createI18nMiddleware, initI18n } from "./i18n/index.js";
|
|
15
20
|
export type { I18nResources } from "./i18n/index.js";
|
|
16
21
|
export { createDatabaseConnection, buildMongoUri, buildUriFromConfig, } from "./database/index.js";
|
|
17
22
|
export type { DatabaseOptions, DatabaseConnection, MongoUriParts, } from "./database/index.js";
|
|
18
23
|
export { createSocketServer, discoverSocketHandlers as discoverSocketHandlersFromModules, discoverSocketMiddleware as discoverSocketMiddlewareFromModules, initializeSocket, setupSocketIO, } from "./socket/index.js";
|
|
19
24
|
export type { SocketServer, SocketInstance, SocketHandler as SocketHandlerFn, SocketMiddleware as SocketMiddlewareFn, DiscoveredSocketHandler, SocketOptions, } from "./socket/index.js";
|
|
20
|
-
export
|
|
25
|
+
export { createDevToolsRouter } from "./devtools/index.js";
|
|
26
|
+
export type { DevToolsOptions } from "./devtools/index.js";
|
|
27
|
+
export type { RouteConfig, RoutesConfig, RAI, DefaultRole, ErrorInfoType, ErrorTraceType, PossibleErrosType, WeconConfig, ResolvedConfig, AppConfig, DatabaseConfig, LoggingConfig, HttpsConfig, SocketConfig, FeaturesConfig, ModeConfig, WeconHooks, ModuleDefinition, ModuleConfigDefinition, WeconModule, SocketHandler, SocketMiddleware, WeconContext, WeconLogger, WeconServices, Authenticable, AuthConfig, WeconRequest, WeconResponse, RouteHandler, WeconMiddleware, } from "./types.js";
|
|
21
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpF,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,IAAI,iCAAiC,EAC3D,wBAAwB,IAAI,mCAAmC,EAC/D,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,IAAI,eAAe,EAChC,gBAAgB,IAAI,kBAAkB,EACtC,uBAAuB,EACvB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAEV,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EACV,UAAU,EAGV,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EAGX,aAAa,EACb,gBAAgB,EAGhB,YAAY,EACZ,WAAW,EACX,aAAa,EAGb,aAAa,EACb,UAAU,EAGV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpF,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,IAAI,iCAAiC,EAC3D,wBAAwB,IAAI,mCAAmC,EAC/D,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,IAAI,eAAe,EAChC,gBAAgB,IAAI,kBAAkB,EACtC,uBAAuB,EACvB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,YAAY,EAEV,WAAW,EACX,YAAY,EACZ,GAAG,EACH,WAAW,EACX,aAAa,EACb,cAAc,EACd,iBAAiB,EAGjB,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EACV,UAAU,EAGV,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EAGX,aAAa,EACb,gBAAgB,EAGhB,YAAY,EACZ,WAAW,EACX,aAAa,EAGb,aAAa,EACb,UAAU,EAGV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,22 +2,30 @@
|
|
|
2
2
|
* @weconjs/core
|
|
3
3
|
*
|
|
4
4
|
* Core package for the Wecon framework.
|
|
5
|
-
* Provides configuration, module system, and runtime utilities.
|
|
5
|
+
* Provides configuration, module system, routing, and runtime utilities.
|
|
6
6
|
*/
|
|
7
7
|
// Configuration
|
|
8
8
|
export { defineConfig, resolveConfig, loadConfig } from "./config.js";
|
|
9
9
|
// Module System
|
|
10
10
|
export { defineModule, loadModule, discoverSocketHandlers, discoverSocketMiddleware, resolveModuleDependencies, } from "./module.js";
|
|
11
|
+
// Module Loader (per-module package.json support)
|
|
12
|
+
export { readModulePackageJson, checkModuleDeps, detectPackageManager, installModuleDeps, resolveAllModuleDeps, } from "./module/index.js";
|
|
11
13
|
// Context
|
|
12
14
|
export { createContext, createLogger } from "./context.js";
|
|
13
15
|
// Logger
|
|
14
16
|
export { createWinstonLogger, createConsoleLogger, } from "./logger/index.js";
|
|
15
17
|
// Server
|
|
16
18
|
export { createWecon } from "./server/index.js";
|
|
19
|
+
// Routing
|
|
20
|
+
export { Wecon, Route, Routes, RoutesParam, RaiMatcher, ErrorCatcher, } from "./routing/index.js";
|
|
21
|
+
// Errors
|
|
22
|
+
export { ConfigError, RequestError } from "./errors/index.js";
|
|
17
23
|
// i18n
|
|
18
24
|
export { loadI18nResources, createI18nMiddleware, initI18n } from "./i18n/index.js";
|
|
19
25
|
// Database
|
|
20
26
|
export { createDatabaseConnection, buildMongoUri, buildUriFromConfig, } from "./database/index.js";
|
|
21
27
|
// Socket.IO
|
|
22
28
|
export { createSocketServer, discoverSocketHandlers as discoverSocketHandlersFromModules, discoverSocketMiddleware as discoverSocketMiddlewareFromModules, initializeSocket, setupSocketIO, } from "./socket/index.js";
|
|
29
|
+
// DevTools
|
|
30
|
+
export { createDevToolsRouter } from "./devtools/index.js";
|
|
23
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3D,SAAS;AACT,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,OAAO;AACP,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGpF,WAAW;AACX,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAO7B,YAAY;AACZ,OAAO,EACL,kBAAkB,EAClB,sBAAsB,IAAI,iCAAiC,EAC3D,wBAAwB,IAAI,mCAAmC,EAC/D,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,kDAAkD;AAClD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3D,SAAS;AACT,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,UAAU;AACV,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO;AACP,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGpF,WAAW;AACX,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAO7B,YAAY;AACZ,OAAO,EACL,kBAAkB,EAClB,sBAAsB,IAAI,iCAAiC,EAC3D,wBAAwB,IAAI,mCAAmC,EAC/D,gBAAgB,EAChB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAU3B,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - Module utilities
|
|
3
|
+
*/
|
|
4
|
+
export { readModulePackageJson, checkModuleDeps, detectPackageManager, installModuleDeps, resolveAllModuleDeps, } from "./module-loader.js";
|
|
5
|
+
export type { ModulePackageJson, DepsCheckResult, } from "./module-loader.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - Module Loader
|
|
3
|
+
*
|
|
4
|
+
* Reads per-module package.json files and manages module-specific dependencies.
|
|
5
|
+
* Supports auto-installation of missing deps in development mode.
|
|
6
|
+
*/
|
|
7
|
+
import type { WeconLogger } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Parsed module package.json
|
|
10
|
+
*/
|
|
11
|
+
export interface ModulePackageJson {
|
|
12
|
+
name?: string;
|
|
13
|
+
private?: boolean;
|
|
14
|
+
dependencies?: Record<string, string>;
|
|
15
|
+
devDependencies?: Record<string, string>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result of checking module dependencies
|
|
19
|
+
*/
|
|
20
|
+
export interface DepsCheckResult {
|
|
21
|
+
moduleName: string;
|
|
22
|
+
modulePath: string;
|
|
23
|
+
/** Dependencies declared in module package.json */
|
|
24
|
+
declared: Record<string, string>;
|
|
25
|
+
/** Dependencies missing from root node_modules */
|
|
26
|
+
missing: string[];
|
|
27
|
+
/** Dependencies already installed */
|
|
28
|
+
installed: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Read a module's package.json if it exists
|
|
32
|
+
*/
|
|
33
|
+
export declare function readModulePackageJson(modulePath: string): ModulePackageJson | null;
|
|
34
|
+
/**
|
|
35
|
+
* Check which module dependencies are missing from root node_modules
|
|
36
|
+
*/
|
|
37
|
+
export declare function checkModuleDeps(modulePath: string, rootDir: string, moduleName: string): DepsCheckResult;
|
|
38
|
+
/**
|
|
39
|
+
* Detect which package manager is being used in the project
|
|
40
|
+
*/
|
|
41
|
+
export declare function detectPackageManager(rootDir: string): "npm" | "yarn" | "pnpm";
|
|
42
|
+
/**
|
|
43
|
+
* Install missing module dependencies into the root project
|
|
44
|
+
*/
|
|
45
|
+
export declare function installModuleDeps(missing: string[], declared: Record<string, string>, rootDir: string, logger: WeconLogger): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check and optionally install all module dependencies.
|
|
48
|
+
* Called during createWecon bootstrap.
|
|
49
|
+
*
|
|
50
|
+
* @param modules - Array of { name, path } for each module
|
|
51
|
+
* @param rootDir - Root project directory (where node_modules lives)
|
|
52
|
+
* @param logger - Logger instance
|
|
53
|
+
* @param autoInstall - Whether to auto-install missing deps
|
|
54
|
+
* @returns Array of check results
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveAllModuleDeps(modules: Array<{
|
|
57
|
+
name: string;
|
|
58
|
+
path: string;
|
|
59
|
+
}>, rootDir: string, logger: WeconLogger, autoInstall?: boolean): Promise<DepsCheckResult[]>;
|
|
60
|
+
//# sourceMappingURL=module-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../../src/module/module-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kDAAkD;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAalF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,eAAe,CAmBjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAI7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CA+BT;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,CAwB5B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - Module Loader
|
|
3
|
+
*
|
|
4
|
+
* Reads per-module package.json files and manages module-specific dependencies.
|
|
5
|
+
* Supports auto-installation of missing deps in development mode.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from "fs";
|
|
8
|
+
import { join, resolve } from "path";
|
|
9
|
+
import { execSync } from "child_process";
|
|
10
|
+
/**
|
|
11
|
+
* Read a module's package.json if it exists
|
|
12
|
+
*/
|
|
13
|
+
export function readModulePackageJson(modulePath) {
|
|
14
|
+
const pkgPath = join(modulePath, "package.json");
|
|
15
|
+
if (!existsSync(pkgPath)) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const raw = readFileSync(pkgPath, "utf-8");
|
|
20
|
+
return JSON.parse(raw);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Check which module dependencies are missing from root node_modules
|
|
28
|
+
*/
|
|
29
|
+
export function checkModuleDeps(modulePath, rootDir, moduleName) {
|
|
30
|
+
const pkg = readModulePackageJson(modulePath);
|
|
31
|
+
const declared = pkg?.dependencies ?? {};
|
|
32
|
+
const missing = [];
|
|
33
|
+
const installed = [];
|
|
34
|
+
const nodeModulesDir = join(rootDir, "node_modules");
|
|
35
|
+
for (const dep of Object.keys(declared)) {
|
|
36
|
+
// Check if the package exists in root node_modules
|
|
37
|
+
const depPath = join(nodeModulesDir, dep);
|
|
38
|
+
if (existsSync(depPath)) {
|
|
39
|
+
installed.push(dep);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
missing.push(dep);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return { moduleName, modulePath, declared, missing, installed };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Detect which package manager is being used in the project
|
|
49
|
+
*/
|
|
50
|
+
export function detectPackageManager(rootDir) {
|
|
51
|
+
if (existsSync(join(rootDir, "pnpm-lock.yaml")))
|
|
52
|
+
return "pnpm";
|
|
53
|
+
if (existsSync(join(rootDir, "yarn.lock")))
|
|
54
|
+
return "yarn";
|
|
55
|
+
return "npm";
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Install missing module dependencies into the root project
|
|
59
|
+
*/
|
|
60
|
+
export function installModuleDeps(missing, declared, rootDir, logger) {
|
|
61
|
+
if (missing.length === 0)
|
|
62
|
+
return true;
|
|
63
|
+
const pm = detectPackageManager(rootDir);
|
|
64
|
+
// Build install args with version specifiers
|
|
65
|
+
const packages = missing.map((name) => {
|
|
66
|
+
const version = declared[name];
|
|
67
|
+
return version ? `${name}@${version}` : name;
|
|
68
|
+
});
|
|
69
|
+
const installCmd = pm === "yarn"
|
|
70
|
+
? `yarn add ${packages.join(" ")}`
|
|
71
|
+
: pm === "pnpm"
|
|
72
|
+
? `pnpm add ${packages.join(" ")}`
|
|
73
|
+
: `npm install ${packages.join(" ")}`;
|
|
74
|
+
logger.info(`Installing module dependencies: ${missing.join(", ")}`);
|
|
75
|
+
try {
|
|
76
|
+
execSync(installCmd, { cwd: rootDir, stdio: "pipe" });
|
|
77
|
+
logger.info(`Dependencies installed successfully`);
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
logger.error("Failed to install module dependencies", {
|
|
82
|
+
error: err.message,
|
|
83
|
+
packages: missing,
|
|
84
|
+
});
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check and optionally install all module dependencies.
|
|
90
|
+
* Called during createWecon bootstrap.
|
|
91
|
+
*
|
|
92
|
+
* @param modules - Array of { name, path } for each module
|
|
93
|
+
* @param rootDir - Root project directory (where node_modules lives)
|
|
94
|
+
* @param logger - Logger instance
|
|
95
|
+
* @param autoInstall - Whether to auto-install missing deps
|
|
96
|
+
* @returns Array of check results
|
|
97
|
+
*/
|
|
98
|
+
export async function resolveAllModuleDeps(modules, rootDir, logger, autoInstall = false) {
|
|
99
|
+
const results = [];
|
|
100
|
+
const allMissing = [];
|
|
101
|
+
const allDeclared = {};
|
|
102
|
+
for (const mod of modules) {
|
|
103
|
+
const absolutePath = resolve(rootDir, mod.path);
|
|
104
|
+
const result = checkModuleDeps(absolutePath, rootDir, mod.name);
|
|
105
|
+
results.push(result);
|
|
106
|
+
if (result.missing.length > 0) {
|
|
107
|
+
logger.warn(`Module "${mod.name}" has missing dependencies: ${result.missing.join(", ")}`);
|
|
108
|
+
allMissing.push(...result.missing);
|
|
109
|
+
Object.assign(allDeclared, result.declared);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Deduplicate and install all at once
|
|
113
|
+
if (autoInstall && allMissing.length > 0) {
|
|
114
|
+
const unique = [...new Set(allMissing)];
|
|
115
|
+
installModuleDeps(unique, allDeclared, rootDir, logger);
|
|
116
|
+
}
|
|
117
|
+
return results;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=module-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../../src/module/module-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ErrorInfoType, ErrorTraceType } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for configuration error tracking.
|
|
4
|
+
* Captures caller info from stack traces for precise error reporting.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class ErrorCatcher {
|
|
7
|
+
/**
|
|
8
|
+
* Extract caller file, line, column from the stack trace.
|
|
9
|
+
* Skips internal frames to point to the user's code.
|
|
10
|
+
*/
|
|
11
|
+
static getCallerInfo(): ErrorTraceType;
|
|
12
|
+
/**
|
|
13
|
+
* Log a formatted config error with location info, then exit.
|
|
14
|
+
*/
|
|
15
|
+
static logError(error: ErrorInfoType, tracedStackInfo: ErrorTraceType): void;
|
|
16
|
+
}
|
|
17
|
+
export default ErrorCatcher;
|
|
18
|
+
//# sourceMappingURL=ErrorCatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorCatcher.d.ts","sourceRoot":"","sources":["../../src/routing/ErrorCatcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE;;;GAGG;AACH,8BAAsB,YAAY;IAChC;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;IA8BtC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,GAAG,IAAI;CAqB7E;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for configuration error tracking.
|
|
4
|
+
* Captures caller info from stack traces for precise error reporting.
|
|
5
|
+
*/
|
|
6
|
+
export class ErrorCatcher {
|
|
7
|
+
/**
|
|
8
|
+
* Extract caller file, line, column from the stack trace.
|
|
9
|
+
* Skips internal frames to point to the user's code.
|
|
10
|
+
*/
|
|
11
|
+
static getCallerInfo() {
|
|
12
|
+
const err = new Error();
|
|
13
|
+
const stack = err.stack || "";
|
|
14
|
+
const stackLines = stack.split("\n").slice(1);
|
|
15
|
+
// Skip getCallerInfo and constructor frames
|
|
16
|
+
const callerLine = stackLines[2] || stackLines[1] || "";
|
|
17
|
+
// V8 format: " at ClassName.method (file:///path/file.ts:15:23)"
|
|
18
|
+
let match = callerLine.match(/\((.+?):(\d+):(\d+)\)$/);
|
|
19
|
+
if (!match) {
|
|
20
|
+
// Format without parentheses: " at file:///path/file.ts:15:23"
|
|
21
|
+
match = callerLine.match(/at\s+(.+?):(\d+):(\d+)$/);
|
|
22
|
+
}
|
|
23
|
+
if (match) {
|
|
24
|
+
const file = match[1].replace("file://", "");
|
|
25
|
+
const line = parseInt(match[2], 10);
|
|
26
|
+
const column = parseInt(match[3], 10);
|
|
27
|
+
const functionMatch = callerLine.match(/at\s+(?:async\s+)?(\S+?)\s+\(/);
|
|
28
|
+
const functionName = functionMatch ? functionMatch[1] : null;
|
|
29
|
+
return { file, line, column, function: functionName };
|
|
30
|
+
}
|
|
31
|
+
return { file: "unknown", line: 0, column: 0, function: null };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Log a formatted config error with location info, then exit.
|
|
35
|
+
*/
|
|
36
|
+
static logError(error, tracedStackInfo) {
|
|
37
|
+
console.error(chalk.red.bold("\n-=>") +
|
|
38
|
+
chalk.white.bold(" Whoops! We caught an error for you.") +
|
|
39
|
+
chalk.red.bold(" <=-\n"));
|
|
40
|
+
console.error(chalk.red.bold("✖ Error:"), chalk.white(error.title));
|
|
41
|
+
console.error(chalk.gray("\n Details:"), chalk.white(error.details));
|
|
42
|
+
console.error(chalk.gray("\n Location:"), chalk.cyan(`${tracedStackInfo.file}:${tracedStackInfo.line}:${tracedStackInfo.column}`));
|
|
43
|
+
console.error(chalk.yellow.bold("\n 💡 How to fix:"));
|
|
44
|
+
console.error(chalk.yellow(` ${error.fix.replace(/\n/g, "\n ")}`));
|
|
45
|
+
console.error("");
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export default ErrorCatcher;
|
|
50
|
+
//# sourceMappingURL=ErrorCatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorCatcher.js","sourceRoot":"","sources":["../../src/routing/ErrorCatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type Route from "./Route.js";
|
|
2
|
+
export type RaiRoutesList = Array<Pick<Route, "path" | "method" | "rai">>;
|
|
3
|
+
/**
|
|
4
|
+
* High-performance RAI lookup engine.
|
|
5
|
+
* Pre-compiles path matchers, uses exact + runtime caches for O(1) lookups.
|
|
6
|
+
*/
|
|
7
|
+
declare class RaiMatcher {
|
|
8
|
+
private cache;
|
|
9
|
+
private routesByMethod;
|
|
10
|
+
private exactRoutes;
|
|
11
|
+
constructor(raisList: RaiRoutesList);
|
|
12
|
+
/** Pre-compile all route matchers and organize by HTTP method */
|
|
13
|
+
private initialize;
|
|
14
|
+
/** Score route specificity: static=10, dynamic=1, wildcard=0.5 */
|
|
15
|
+
private getRouteSpecificity;
|
|
16
|
+
/** Normalize trailing slashes */
|
|
17
|
+
private normalizeRoute;
|
|
18
|
+
/** Find RAI for the given request path and method */
|
|
19
|
+
findRai(path: string, method: string): string;
|
|
20
|
+
clearCache(): void;
|
|
21
|
+
getCacheStats(): {
|
|
22
|
+
size: number;
|
|
23
|
+
methods: string[];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export default RaiMatcher;
|
|
27
|
+
//# sourceMappingURL=RaiMatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RaiMatcher.d.ts","sourceRoot":"","sources":["../../src/routing/RaiMatcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AAS1E;;;GAGG;AACH,cAAM,UAAU;IACd,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAAsB;gBAE7B,QAAQ,EAAE,aAAa;IAOnC,iEAAiE;IACjE,OAAO,CAAC,UAAU;IA2ClB,kEAAkE;IAClE,OAAO,CAAC,mBAAmB;IAmB3B,iCAAiC;IACjC,OAAO,CAAC,cAAc;IAQtB,qDAAqD;IAC9C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAsD7C,UAAU,IAAI,IAAI;IAIlB,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;CAM5D;AAED,eAAe,UAAU,CAAC"}
|