@decaf-ts/for-nest 0.3.7 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ import { Catch, NotAcceptableException, NotFoundException, } from "@nestjs/commo
8
8
  import { BaseError, InternalError } from "@decaf-ts/db-decorators";
9
9
  import { LoggedEnvironment } from "@decaf-ts/logging";
10
10
  import { UnsupportedError } from "@decaf-ts/core";
11
+ import { ToManyRequestsError } from "./../errors/throttling.js";
11
12
  let DecafExceptionFilter = class DecafExceptionFilter {
12
13
  catch(exception, host) {
13
14
  const ctx = host.switchToHttp();
@@ -20,8 +21,14 @@ let DecafExceptionFilter = class DecafExceptionFilter {
20
21
  exception = new NotAcceptableException(exception.message);
21
22
  statusCode = exception.getStatus();
22
23
  }
23
- else if (!(exception instanceof BaseError))
24
- exception = new InternalError(exception.message);
24
+ else if (!(exception instanceof BaseError)) {
25
+ if (exception.code === 429) {
26
+ exception = new ToManyRequestsError(exception.message);
27
+ }
28
+ else {
29
+ exception = new InternalError(exception.message);
30
+ }
31
+ }
25
32
  response.status(exception.code || statusCode).json({
26
33
  status: exception.code || statusCode,
27
34
  error: isProduction ? exception.name : exception.message,
@@ -1 +1 @@
1
- {"version":3,"file":"DecafErrorFilter.js","sourceRoot":"","sources":["../../../../src/factory/exceptions/DecafErrorFilter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAEL,KAAK,EAEL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG3C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,KAAK,CAAC,SAAgB,EAAE,IAAmB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,KAAK,YAAY,CAAC;QAC5D,IAAI,UAAU,CAAC;QAEf,IACE,SAAS,YAAY,iBAAiB;YACtC,SAAS,YAAY,gBAAgB,EACrC,CAAC;YACD,SAAS,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1D,UAAU,GAAI,SAAoC,CAAC,SAAS,EAAE,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,CAAC,SAAS,YAAY,SAAS,CAAC;YAC1C,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnD,QAAQ,CAAC,MAAM,CAAE,SAAuB,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,EAAG,SAAuB,CAAC,IAAI,IAAI,UAAU;YACnD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO;YACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,GAAG;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA1BY,oBAAoB;IADhC,KAAK,EAAE;GACK,oBAAoB,CA0BhC"}
1
+ {"version":3,"file":"DecafErrorFilter.js","sourceRoot":"","sources":["../../../../src/factory/exceptions/DecafErrorFilter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAEL,KAAK,EAEL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,kCAA6B;AAGpD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,KAAK,CAAC,SAAgB,EAAE,IAAmB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,KAAK,YAAY,CAAC;QAC5D,IAAI,UAAU,CAAC;QAEf,IACE,SAAS,YAAY,iBAAiB;YACtC,SAAS,YAAY,gBAAgB,EACrC,CAAC;YACD,SAAS,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1D,UAAU,GAAI,SAAoC,CAAC,SAAS,EAAE,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,CAAC,SAAS,YAAY,SAAS,CAAC,EAAE,CAAC;YAC7C,IAAI,SAAuB,CAAC,IAAI,KAAK,GAAG,EAAC,CAAC;gBACxC,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;iBAAI,CAAC;gBACJ,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,MAAM,CAAE,SAAuB,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,EAAG,SAAuB,CAAC,IAAI,IAAI,UAAU;YACnD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO;YACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,GAAG;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA/BY,oBAAoB;IADhC,KAAK,EAAE;GACK,oBAAoB,CA+BhC"}
@@ -39,5 +39,5 @@ export * from "./events-module";
39
39
  * @constant
40
40
  * @type {string}
41
41
  */
42
- export declare const VERSION = "0.3.7";
42
+ export declare const VERSION = "0.3.9";
43
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/esm/index.js CHANGED
@@ -40,7 +40,7 @@ export * from "./events-module/index.js";
40
40
  * @constant
41
41
  * @type {string}
42
42
  */
43
- export const VERSION = "0.3.7";
43
+ export const VERSION = "0.3.9";
44
44
  export const PACKAGE_NAME = "@decaf-ts/for-nest";
45
45
  Metadata.allowReregistration(true);
46
46
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
@@ -22,6 +22,7 @@ const rxjs_1 = require("rxjs");
22
22
  const logging_1 = require("@decaf-ts/logging");
23
23
  const constant_1 = require("./constant.cjs");
24
24
  const utils_1 = require("./utils.cjs");
25
+ const operators_1 = require("rxjs/operators");
25
26
  let EventsController = EventsController_1 = class EventsController extends controllers_1.DecafController {
26
27
  constructor(clientContext, flavours) {
27
28
  super(clientContext, EventsController_1.name);
@@ -29,7 +30,7 @@ let EventsController = EventsController_1 = class EventsController extends contr
29
30
  }
30
31
  listen() {
31
32
  const logger = logging_1.Logging.for(EventsController_1.name);
32
- return new rxjs_1.Observable((observer) => {
33
+ const events$ = new rxjs_1.Observable((observer) => {
33
34
  const observerId = `B-${Math.random().toString(36).slice(2, 8)}`.toUpperCase();
34
35
  logger.info(`Creating SSE observer: ${observerId} for client ${this.clientContext.uuid}`);
35
36
  const cb = new (class {
@@ -40,7 +41,7 @@ let EventsController = EventsController_1 = class EventsController extends contr
40
41
  logger.debug(`SSE observer ${this.observerId} received refresh event`);
41
42
  return Promise.resolve().then(() => {
42
43
  const data = (0, utils_1.normalizeEventResponse)(args);
43
- observer.next({ data });
44
+ observer.next({ type: "message", data });
44
45
  logger.debug(`SSE observer ${this.observerId} event pushed to client`);
45
46
  });
46
47
  }
@@ -72,6 +73,16 @@ let EventsController = EventsController_1 = class EventsController extends contr
72
73
  }
73
74
  };
74
75
  });
76
+ const HEARTBEAT_INTERVAL_MS = 15000;
77
+ const heartbeat$ = (0, rxjs_1.interval)(HEARTBEAT_INTERVAL_MS).pipe((0, operators_1.tap)(() => {
78
+ logger.debug("Sending heartbeat");
79
+ }), (0, operators_1.map)(() => ({
80
+ type: "heartbeat",
81
+ data: {
82
+ ts: new Date().toISOString(),
83
+ },
84
+ })));
85
+ return (0, rxjs_1.merge)(events$, heartbeat$);
75
86
  }
76
87
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
77
88
  listenForModel(model) {
@@ -1,5 +1,6 @@
1
1
  import { DecafController } from "../controllers";
2
2
  import { DecafRequestContext } from "../request";
3
+ import { MessageEvent } from "@nestjs/common";
3
4
  import { Observable } from "rxjs";
4
5
  import { DecafServerCtx } from "../constants";
5
6
  export declare class EventsController extends DecafController<DecafServerCtx> {
@@ -1 +1 @@
1
- {"version":3,"file":"EventsController.js","sourceRoot":"","sources":["../../src/events-module/EventsController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventsController.js","sourceRoot":"","sources":["../../src/events-module/EventsController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToManyRequestsError = void 0;
4
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
5
+ class ToManyRequestsError extends db_decorators_1.BaseError {
6
+ constructor(msg) {
7
+ super(ToManyRequestsError.name, msg, 429);
8
+ }
9
+ }
10
+ exports.ToManyRequestsError = ToManyRequestsError;
11
+ //# sourceMappingURL=throttling.js.map
@@ -0,0 +1,4 @@
1
+ import { BaseError } from "@decaf-ts/db-decorators";
2
+ export declare class ToManyRequestsError extends BaseError {
3
+ constructor(msg: string | Error);
4
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttling.js","sourceRoot":"","sources":["../../../src/factory/errors/throttling.ts"],"names":[],"mappings":";;;AAAA,2DAAoD;AAEpD,MAAa,mBAAoB,SAAQ,yBAAS;IAChD,YAAY,GAAmB;QAC7B,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF;AAJD,kDAIC"}
@@ -11,6 +11,7 @@ const common_1 = require("@nestjs/common");
11
11
  const db_decorators_1 = require("@decaf-ts/db-decorators");
12
12
  const logging_1 = require("@decaf-ts/logging");
13
13
  const core_1 = require("@decaf-ts/core");
14
+ const throttling_1 = require("./../errors/throttling.cjs");
14
15
  let DecafExceptionFilter = class DecafExceptionFilter {
15
16
  catch(exception, host) {
16
17
  const ctx = host.switchToHttp();
@@ -23,8 +24,14 @@ let DecafExceptionFilter = class DecafExceptionFilter {
23
24
  exception = new common_1.NotAcceptableException(exception.message);
24
25
  statusCode = exception.getStatus();
25
26
  }
26
- else if (!(exception instanceof db_decorators_1.BaseError))
27
- exception = new db_decorators_1.InternalError(exception.message);
27
+ else if (!(exception instanceof db_decorators_1.BaseError)) {
28
+ if (exception.code === 429) {
29
+ exception = new throttling_1.ToManyRequestsError(exception.message);
30
+ }
31
+ else {
32
+ exception = new db_decorators_1.InternalError(exception.message);
33
+ }
34
+ }
28
35
  response.status(exception.code || statusCode).json({
29
36
  status: exception.code || statusCode,
30
37
  error: isProduction ? exception.name : exception.message,
@@ -1 +1 @@
1
- {"version":3,"file":"DecafErrorFilter.js","sourceRoot":"","sources":["../../../src/factory/exceptions/DecafErrorFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAMwB;AACxB,2DAAmE;AACnE,+CAAsD;AACtD,yCAAkD;AAG3C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,KAAK,CAAC,SAAgB,EAAE,IAAmB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,2BAAiB,CAAC,GAAG,KAAK,YAAY,CAAC;QAC5D,IAAI,UAAU,CAAC;QAEf,IACE,SAAS,YAAY,0BAAiB;YACtC,SAAS,YAAY,uBAAgB,EACrC,CAAC;YACD,SAAS,GAAG,IAAI,+BAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1D,UAAU,GAAI,SAAoC,CAAC,SAAS,EAAE,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,CAAC,SAAS,YAAY,yBAAS,CAAC;YAC1C,SAAS,GAAG,IAAI,6BAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnD,QAAQ,CAAC,MAAM,CAAE,SAAuB,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,EAAG,SAAuB,CAAC,IAAI,IAAI,UAAU;YACnD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO;YACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,GAAG;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA1BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,cAAK,GAAE;GACK,oBAAoB,CA0BhC"}
1
+ {"version":3,"file":"DecafErrorFilter.js","sourceRoot":"","sources":["../../../src/factory/exceptions/DecafErrorFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAMwB;AACxB,2DAAmE;AACnE,+CAAsD;AACtD,yCAAkD;AAClD,2DAA2D;AAGpD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,KAAK,CAAC,SAAgB,EAAE,IAAmB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,2BAAiB,CAAC,GAAG,KAAK,YAAY,CAAC;QAC5D,IAAI,UAAU,CAAC;QAEf,IACE,SAAS,YAAY,0BAAiB;YACtC,SAAS,YAAY,uBAAgB,EACrC,CAAC;YACD,SAAS,GAAG,IAAI,+BAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1D,UAAU,GAAI,SAAoC,CAAC,SAAS,EAAE,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,CAAC,SAAS,YAAY,yBAAS,CAAC,EAAE,CAAC;YAC7C,IAAI,SAAuB,CAAC,IAAI,KAAK,GAAG,EAAC,CAAC;gBACxC,SAAS,GAAG,IAAI,gCAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;iBAAI,CAAC;gBACJ,SAAS,GAAG,IAAI,6BAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,MAAM,CAAE,SAAuB,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,EAAG,SAAuB,CAAC,IAAI,IAAI,UAAU;YACnD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO;YACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,GAAG;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA/BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,cAAK,GAAE;GACK,oBAAoB,CA+BhC"}
package/lib/index.cjs CHANGED
@@ -57,7 +57,7 @@ __exportStar(require("./events-module/index.cjs"), exports);
57
57
  * @constant
58
58
  * @type {string}
59
59
  */
60
- exports.VERSION = "0.3.7";
60
+ exports.VERSION = "0.3.9";
61
61
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
62
62
  decoration_1.Metadata.allowReregistration(true);
63
63
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
package/lib/index.d.ts CHANGED
@@ -39,5 +39,5 @@ export * from "./events-module";
39
39
  * @constant
40
40
  * @type {string}
41
41
  */
42
- export declare const VERSION = "0.3.7";
42
+ export declare const VERSION = "0.3.9";
43
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nest",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {