@adaptivestone/framework 5.0.0-beta.40 → 5.0.0-beta.41

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/CHANGELOG.md CHANGED
@@ -50,11 +50,21 @@ Main feature of that release is full TypeScript support insluding mongoose model
50
50
  - **[BREAKING]** Mongoose v8. <https://mongoosejs.com/docs/migrating_to_8.html>.
51
51
  - **[BREAKING]** Vitest v4 <https://vitest.dev/guide/migration.html#vitest-4>
52
52
 
53
+
54
+ ---
55
+ ## [5.0.0-beta.41]
56
+
57
+ - **[UPDATE]** Update deps
58
+ - **[NEW]** Bearer scheme support
59
+ - **[NEW]** redisConnection helper
60
+
61
+
62
+
53
63
  ---
54
64
  ## [5.0.0-beta.40]
55
65
 
56
66
  - **[UPDATE]** Update `rate-limiter-flexible` to v9.
57
- - **[UPDATE]** Remove 'winston-transport-sentry' and implementcustom logic based on 'sentry' itself (from v9.14 sentry have natove winston support)
67
+ - **[UPDATE]** Remove 'winston-transport-sentry' and implementcustom logic based on 'sentry' itself (from v9.14 sentry have native winston support)
58
68
 
59
69
 
60
70
  ## [5.0.0-beta.39]
@@ -533,7 +543,7 @@ Main feature of that release is full TypeScript support insluding mongoose model
533
543
 
534
544
  ## [4.9.0]
535
545
 
536
- - **[BREAKING]** We are separated testsing to setyp and global setup. Global setup now care of mongo to make sure that only on mongodb memoery server is spinned up. If you are using `vitest` please add `"globalSetup": "node_modules/@adaptivestone/framework/tests/globalSetupVitest"` to your vitest config.
546
+ - **[BREAKING]** We are separated testsing to setyp and global setup. Global setup now care of mongo to make sure that only on mongodb memory server is spinned up. If you are using `vitest` please add `"globalSetup": "node_modules/@adaptivestone/framework/tests/globalSetupVitest"` to your vitest config.
537
547
 
538
548
  ---
539
549
 
@@ -0,0 +1,6 @@
1
+ import type { RedisClientType } from '@redis/client';
2
+ export declare const getRedisClient: () => Promise<RedisClientType>;
3
+ /**
4
+ * Synchronous way to get redis client. Make sure to call connect on it before usage
5
+ */
6
+ export declare const getRedisClientSync: () => RedisClientType;
@@ -0,0 +1,48 @@
1
+ import { createClient } from '@redis/client';
2
+ import { appInstance } from "../appInstance.js";
3
+ let redisClient = null;
4
+ export const getRedisClient = async () => {
5
+ if (redisClient) {
6
+ return redisClient;
7
+ }
8
+ const redisClientLocal = createNewRedisClient();
9
+ await redisClientLocal.connect();
10
+ return redisClientLocal;
11
+ };
12
+ /**
13
+ * Synchronous way to get redis client. Make sure to call connect on it before usage
14
+ */
15
+ export const getRedisClientSync = () => {
16
+ if (redisClient) {
17
+ return redisClient;
18
+ }
19
+ const redisClientLocal = createNewRedisClient();
20
+ // to make sure connection is established
21
+ (async () => {
22
+ await redisClientLocal.connect();
23
+ })();
24
+ return redisClientLocal;
25
+ };
26
+ const createNewRedisClient = () => {
27
+ if (redisClient) {
28
+ return redisClient;
29
+ }
30
+ const redisConfig = appInstance.getConfig('redis');
31
+ redisClient = createClient({
32
+ url: redisConfig.url,
33
+ });
34
+ redisClient.on('error', (error, b, c) => {
35
+ appInstance.logger?.error('Redis Client Error', error, b, c);
36
+ });
37
+ redisClient.on('connect', () => {
38
+ appInstance.logger?.info('Redis connection established');
39
+ });
40
+ appInstance.events.on('shutdown', async () => {
41
+ if (redisClient) {
42
+ await redisClient.quit();
43
+ redisClient = null;
44
+ }
45
+ });
46
+ return redisClient;
47
+ };
48
+ //# sourceMappingURL=redisConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisConnection.js","sourceRoot":"","sources":["../../../src/helpers/redis/redisConnection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,IAAI,WAAW,GAA2B,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAA8B,EAAE;IACjE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,gBAAgB,GAAG,oBAAoB,EAAE,CAAC;IAChD,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAoB,EAAE;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,gBAAgB,GAAG,oBAAoB,EAAE,CAAC;IAChD,yCAAyC;IACzC,CAAC,KAAK,IAAI,EAAE;QACV,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,GAAoB,EAAE;IACjD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAEhD,CAAC;IAEF,WAAW,GAAG,YAAY,CAAC;QACzB,GAAG,EAAE,WAAW,CAAC,GAAG;KACrB,CAAC,CAAC;IAEH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QAC7B,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
@@ -47,7 +47,8 @@ declare class AbstractController extends Base {
47
47
  authParams: {
48
48
  name: string;
49
49
  type: string;
50
- in: string;
50
+ in?: string;
51
+ scheme?: string;
51
52
  description: string;
52
53
  }[];
53
54
  MiddlewareFunction: typeof AbstractMiddleware;
@@ -1,3 +1,4 @@
1
+ import { getRedisClient } from "../../helpers/redis/redisConnection.js";
1
2
  import Base from "../../modules/Base.js";
2
3
  class Cache extends Base {
3
4
  whenReady;
@@ -13,21 +14,9 @@ class Cache extends Base {
13
14
  // at least memory and redis drivers should be presented
14
15
  // memory drives should works on master process level
15
16
  // we should support multiple cashe same time
16
- const { createClient } = await import('@redis/client');
17
- const conf = this.app.getConfig('redis');
18
- this.redisClient = createClient({
19
- url: conf.url,
20
- });
21
- this.redisNamespace = conf.namespace;
22
- this.redisClient.on('error', (error, b, c) => {
23
- this.logger?.error(error, b, c);
24
- });
25
- this.redisClient.on('connect', () => {
26
- this.logger?.info('Redis connection success');
27
- });
28
- this.app.events.on('shutdown', () => {
29
- this.redisClient.quit();
30
- });
17
+ const { namespace } = this.app.getConfig('redis');
18
+ this.redisClient = await getRedisClient();
19
+ this.redisNamespace = namespace;
31
20
  }
32
21
  /**
33
22
  * As framework support namespaces all key for cache go through this function
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../src/services/cache/Cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../src/services/cache/Cache.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,8 @@ declare class AbstractMiddleware extends Base {
9
9
  get usedAuthParameters(): Array<{
10
10
  name: string;
11
11
  type: string;
12
- in: string;
12
+ in?: string;
13
+ scheme?: string;
13
14
  description: string;
14
15
  }>;
15
16
  get relatedQueryParameters(): import("yup").ObjectSchema<{}, import("yup").AnyObject, {}, "">;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractMiddleware.js","sourceRoot":"","sources":["../../../../src/services/http/middleware/AbstractMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAI5C,MAAM,kBAAmB,SAAQ,IAAI;IACnC,MAAM,CAA2B;IAEjC,YAAY,GAAS,EAAE,MAAgC;QACrD,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,WAAW;QACpB,OAAO,4CAA4C,CAAC;IACtD,CAAC;IAED,IAAI,kBAAkB;QAMpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,sBAAsB;QACxB,uFAAuF;QACvF,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,wBAAwB;QAC1B,uFAAuF;QACvF,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,wBAAwB;YACtC,KAAK,EAAE,IAAI,CAAC,sBAAsB;SACnC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAsB,EACtB,IAAc,EACd,IAAkB;QAElB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACnD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,WAAW;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"AbstractMiddleware.js","sourceRoot":"","sources":["../../../../src/services/http/middleware/AbstractMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAI5C,MAAM,kBAAmB,SAAQ,IAAI;IACnC,MAAM,CAA2B;IAEjC,YAAY,GAAS,EAAE,MAAgC;QACrD,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,WAAW;QACpB,OAAO,4CAA4C,CAAC;IACtD,CAAC;IAED,IAAI,kBAAkB;QAOpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,sBAAsB;QACxB,uFAAuF;QACvF,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,wBAAwB;QAC1B,uFAAuF;QACvF,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,wBAAwB;YACtC,KAAK,EAAE,IAAI,CAAC,sBAAsB;SACnC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAsB,EACtB,IAAc,EACd,IAAkB;QAElB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACnD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,WAAW;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,eAAe,kBAAkB,CAAC"}
@@ -9,12 +9,19 @@ export interface GetUserByTokenAppInfo {
9
9
  }
10
10
  declare class GetUserByToken extends AbstractMiddleware {
11
11
  static get description(): string;
12
- get usedAuthParameters(): {
12
+ get usedAuthParameters(): ({
13
13
  name: string;
14
14
  type: string;
15
15
  in: string;
16
16
  description: string;
17
- }[];
17
+ scheme?: undefined;
18
+ } | {
19
+ name: string;
20
+ type: string;
21
+ scheme: string;
22
+ description: string;
23
+ in?: undefined;
24
+ })[];
18
25
  middleware(req: FrameworkRequest & GetUserByTokenAppInfo, _res: Response, next: NextFunction): Promise<void>;
19
26
  }
20
27
  export default GetUserByToken;
@@ -11,6 +11,12 @@ class GetUserByToken extends AbstractMiddleware {
11
11
  in: 'header',
12
12
  description: GetUserByToken.description,
13
13
  },
14
+ {
15
+ name: 'bearerAuth',
16
+ type: 'http',
17
+ scheme: 'bearer',
18
+ description: GetUserByToken.description,
19
+ },
14
20
  ];
15
21
  }
16
22
  async middleware(req, _res, next) {
@@ -27,6 +33,8 @@ class GetUserByToken extends AbstractMiddleware {
27
33
  return next();
28
34
  }
29
35
  }
36
+ // token cleanup
37
+ token = token.replace(/^Bearer\s+/i, '').trim();
30
38
  const User = this.app.getModel('User');
31
39
  const user = (await User.getUserByToken(token));
32
40
  if (user) {
@@ -1 +1 @@
1
- {"version":3,"file":"GetUserByToken.js","sourceRoot":"","sources":["../../../../src/services/http/middleware/GetUserByToken.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAQzD,MAAM,cAAe,SAAQ,kBAAkB;IAC7C,MAAM,KAAK,WAAW;QACpB,OAAO,kGAAkG,CAAC;IAC5G,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO;YACL;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;gBACZ,WAAW,EAAE,cAAc,CAAC,WAAW;aACxC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAA6C,EAC7C,IAAc,EACd,IAAkB;QAElB,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC5D,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,OAAO,CAClB,gCAAgC,KAAK,mCAAmC,GAAG,CAAC,GAAG,CAC7E,eAAe,CAChB,EAAE,CACJ,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC/B,uBAAuB;gBACvB,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAqB,CAAC;QAC3D,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CACrC,KAAK,CACN,CAAmC,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;CACF;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"GetUserByToken.js","sourceRoot":"","sources":["../../../../src/services/http/middleware/GetUserByToken.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAQzD,MAAM,cAAe,SAAQ,kBAAkB;IAC7C,MAAM,KAAK,WAAW;QACpB,OAAO,kGAAkG,CAAC;IAC5G,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO;YACL;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;gBACZ,WAAW,EAAE,cAAc,CAAC,WAAW;aACxC;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,cAAc,CAAC,WAAW;aACxC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAA6C,EAC7C,IAAc,EACd,IAAkB;QAElB,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC5D,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,OAAO,CAClB,gCAAgC,KAAK,mCAAmC,GAAG,CAAC,GAAG,CAC7E,eAAe,CAChB,EAAE,CACJ,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC/B,uBAAuB;gBACvB,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,gBAAgB;QAChB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAqB,CAAC;QAC3D,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CACrC,KAAK,CACN,CAAmC,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;CACF;AAED,eAAe,cAAc,CAAC"}
@@ -1,7 +1,7 @@
1
- import { createClient } from '@redis/client';
2
1
  import merge from 'deepmerge';
3
2
  import mongoose from 'mongoose';
4
3
  import { RateLimiterMemory, RateLimiterMongo, RateLimiterRedis, } from 'rate-limiter-flexible';
4
+ import { getRedisClientSync } from "../../../helpers/redis/redisConnection.js";
5
5
  import AbstractMiddleware from "./AbstractMiddleware.js";
6
6
  class RateLimiter extends AbstractMiddleware {
7
7
  static get description() {
@@ -33,23 +33,7 @@ class RateLimiter extends AbstractMiddleware {
33
33
  }
34
34
  }
35
35
  initRedisLimiter() {
36
- const redisConfig = this.app.getConfig('redis');
37
- const redisClient = createClient({
38
- url: redisConfig.url,
39
- });
40
- // TODO: change it
41
- (async () => {
42
- await redisClient.connect();
43
- })();
44
- redisClient.on('error', (error, b, c) => {
45
- this.logger?.error(error, b, c);
46
- });
47
- redisClient.on('connect', () => {
48
- this.logger?.info('Redis connection success');
49
- });
50
- this.app.events.on('shutdown', async () => {
51
- await redisClient.disconnect();
52
- });
36
+ const redisClient = getRedisClientSync();
53
37
  return new RateLimiterRedis({
54
38
  storeClient: redisClient,
55
39
  useRedisPackage: true,
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../../src/services/http/middleware/RateLimiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../../src/services/http/middleware/RateLimiter.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,7 @@ import Transport from 'winston-transport';
5
5
  * Only loads the Winston transport if @sentry/node is installed
6
6
  */
7
7
  declare class SentryTransport extends Transport {
8
- private sentryTransport;
9
- private initializationAttempted;
8
+ #private;
10
9
  constructor(opts?: Transport.TransportStreamOptions);
11
10
  private loadSentryTransport;
12
11
  log(info: unknown, callback: () => void): void;
@@ -7,32 +7,46 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
7
7
  return path;
8
8
  };
9
9
  import Transport from 'winston-transport';
10
+ // See: https://github.com/winstonjs/triple-beam
11
+ const LEVEL_SYMBOL = Symbol.for('level');
12
+ const MESSAGE_SYMBOL = Symbol.for('message');
13
+ const SPLAT_SYMBOL = Symbol.for('splat');
14
+ class ExtendedError extends Error {
15
+ constructor(info) {
16
+ super(info.message || 'Unknown error');
17
+ this.name = info.name || 'Error';
18
+ if (info.stack && typeof info.stack === 'string') {
19
+ this.stack = info.stack;
20
+ }
21
+ }
22
+ }
23
+ function isObject(anything) {
24
+ return typeof anything === 'object' && anything != null;
25
+ }
10
26
  /**
11
27
  * Winston transport wrapper for Sentry that conditionally loads @sentry/node
12
28
  * Assumes Sentry is already initialized in the consuming application
13
29
  * Only loads the Winston transport if @sentry/node is installed
14
30
  */
15
31
  class SentryTransport extends Transport {
16
- sentryTransport = null;
17
- initializationAttempted = false;
32
+ #sentry = null;
33
+ #initializationAttempted = false;
18
34
  constructor(opts = {}) {
19
35
  super(opts);
20
36
  // Try to load Sentry Winston transport asynchronously
21
37
  this.loadSentryTransport(opts);
22
38
  }
23
39
  async loadSentryTransport(opts) {
24
- if (this.initializationAttempted) {
40
+ if (this.#initializationAttempted) {
25
41
  return;
26
42
  }
27
- this.initializationAttempted = true;
43
+ this.#initializationAttempted = true;
28
44
  try {
29
- // Dynamically import @sentry/node/winston - will fail if not installed
45
+ // Dynamically import @sentry/node - will fail if not installed
30
46
  // Using dynamic import to avoid TypeScript errors when package is not installed
31
- const sentryWinston = await import(__rewriteRelativeImportExtension('@sentry/node/winston'));
32
- const SentryWinstonTransport = sentryWinston.default || sentryWinston;
33
- // Create the actual Sentry transport
34
- // Assuming Sentry SDK is already initialized by the consuming application
35
- this.sentryTransport = new SentryWinstonTransport(opts);
47
+ const SentryNode = await import(__rewriteRelativeImportExtension('@sentry/node'));
48
+ const sentry = SentryNode.default || SentryNode;
49
+ this.#sentry = sentry;
36
50
  console.log('[Framework] Sentry Winston transport loaded successfully');
37
51
  }
38
52
  catch (error) {
@@ -41,17 +55,67 @@ class SentryTransport extends Transport {
41
55
  }
42
56
  }
43
57
  log(info, callback) {
44
- // If Sentry transport is loaded, delegate to it
45
- if (this.sentryTransport && this.sentryTransport.log) {
46
- this.sentryTransport.log(info, () => {
47
- callback();
48
- });
58
+ setImmediate(() => {
59
+ this.emit('logged', info);
60
+ });
61
+ if (!this.#sentry || !isObject(info)) {
62
+ return callback();
63
+ }
64
+ const levelFromSymbol = info[LEVEL_SYMBOL];
65
+ // See: https://github.com/winstonjs/winston?tab=readme-ov-file#streams-objectmode-and-info-objects
66
+ const { message, tags, user, ...attributes } = info;
67
+ // Remove all symbols from the remaining attributes
68
+ attributes[LEVEL_SYMBOL] = undefined;
69
+ attributes[MESSAGE_SYMBOL] = undefined;
70
+ attributes[SPLAT_SYMBOL] = undefined;
71
+ const logSeverityLevel = WINSTON_LEVEL_TO_LOG_SEVERITY_LEVEL_MAP[levelFromSymbol] ??
72
+ 'info';
73
+ // Setup Sentry scope with tags, user, and extras
74
+ const scope = this.#sentry.getCurrentScope();
75
+ scope.clear();
76
+ if (tags !== undefined && isObject(tags)) {
77
+ scope.setTags(tags);
49
78
  }
50
- else {
51
- // Otherwise, just call the callback (no-op)
52
- setImmediate(callback);
79
+ if (user !== undefined && isObject(user)) {
80
+ scope.setUser(user);
53
81
  }
82
+ // Filter out undefined values and set extras
83
+ const extras = Object.fromEntries(Object.entries(attributes).filter(([_, value]) => value !== undefined));
84
+ scope.setExtras(extras);
85
+ const error = Object.values(info).find((value) => value instanceof Error) ??
86
+ new ExtendedError(info);
87
+ this.#sentry.captureException(error, {
88
+ tags: tags,
89
+ level: logSeverityLevel,
90
+ });
91
+ return callback();
54
92
  }
55
93
  }
94
+ const WINSTON_LEVEL_TO_LOG_SEVERITY_LEVEL_MAP = {
95
+ // npm
96
+ silly: 'trace',
97
+ // npm and syslog
98
+ debug: 'debug',
99
+ // npm
100
+ verbose: 'debug',
101
+ // npm
102
+ http: 'debug',
103
+ // npm and syslog
104
+ info: 'info',
105
+ // syslog
106
+ notice: 'info',
107
+ // npm
108
+ warn: 'warn',
109
+ // syslog
110
+ warning: 'warn',
111
+ // npm and syslog
112
+ error: 'error',
113
+ // syslog
114
+ emerg: 'fatal',
115
+ // syslog
116
+ alert: 'fatal',
117
+ // syslog
118
+ crit: 'fatal',
119
+ };
56
120
  export default SentryTransport;
57
121
  //# sourceMappingURL=SentryTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SentryTransport.js","sourceRoot":"","sources":["../../../src/services/logging/SentryTransport.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,eAAgB,SAAQ,SAAS;IAC7B,eAAe,GAAqB,IAAI,CAAC;IACzC,uBAAuB,GAAG,KAAK,CAAC;IAExC,YAAY,OAAyC,EAAE;QACrD,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,sDAAsD;QACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAsC;QACtE,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QAEpC,IAAI,CAAC;YACH,uEAAuE;YACvE,gFAAgF;YAChF,MAAM,aAAa,GAAG,MAAM,MAAM,kCAAC,sBAAgC,EAAC,CAAC;YACrE,MAAM,sBAAsB,GAAG,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC;YAEtE,qCAAqC;YACrC,0EAA0E;YAC1E,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAc,CAAC;YAErE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yDAAyD;YACzD,OAAO,CAAC,GAAG,CACT,4EAA4E,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAa,EAAE,QAAoB;QACrC,gDAAgD;QAChD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;YACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;gBAClC,QAAQ,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"SentryTransport.js","sourceRoot":"","sources":["../../../src/services/logging/SentryTransport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@adaptivestone/framework",
3
- "version": "5.0.0-beta.40",
3
+ "version": "5.0.0-beta.41",
4
4
  "description": "Adaptive stone node js framework",
5
5
  "type": "module",
6
6
  "engines": {
7
- "node": ">=23.6.0"
7
+ "node": ">=24.0.0"
8
8
  },
9
9
  "exports": {
10
10
  "./package.json": "./package.json",
@@ -53,22 +53,29 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@biomejs/biome": "^2.0.6",
56
+ "@sentry/core": "^10.34.0",
57
+ "@sentry/node": "^10.34.0",
56
58
  "@types/express": "^5.0.1",
57
59
  "@types/formidable": "^3.4.5",
58
60
  "@types/node": "^25.0.0",
59
61
  "@vitest/coverage-v8": "^4.0.0",
60
62
  "lefthook": "^2.0.0",
61
- "mongodb-memory-server": "^10.0.0",
63
+ "mongodb-memory-server": "^11.0.0",
62
64
  "typescript": "^5.8.3",
63
65
  "vitest": "^4.0.0"
64
66
  },
65
67
  "peerDependencies": {
66
- "@adaptivestone/framework-module-email": "^1.0.0"
68
+ "@adaptivestone/framework-module-email": "^1.0.0",
69
+ "@sentry/core": "^10.34..0",
70
+ "@sentry/node": "^10.34.0"
67
71
  },
68
72
  "peerDependenciesMeta": {
69
73
  "@adaptivestone/framework-module-email": {
70
74
  "optional": true
71
75
  },
76
+ "@sentry/core": {
77
+ "optional": true
78
+ },
72
79
  "@sentry/node": {
73
80
  "optional": true
74
81
  }