eservices-back-core 2.1.78 → 2.1.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/Server.d.ts.map +1 -1
  2. package/dist/Server.js +12 -1
  3. package/dist/Server.js.map +1 -1
  4. package/dist/app.js +1 -0
  5. package/dist/app.js.map +1 -1
  6. package/dist/auth/authorization-client.d.ts.map +1 -1
  7. package/dist/auth/authorization-client.js +4 -0
  8. package/dist/auth/authorization-client.js.map +1 -1
  9. package/dist/configuration.json +8 -9
  10. package/dist/controller/close-api/document-builder-controller.d.ts +5 -0
  11. package/dist/controller/close-api/document-builder-controller.d.ts.map +1 -0
  12. package/dist/controller/close-api/document-builder-controller.js +63 -0
  13. package/dist/controller/close-api/document-builder-controller.js.map +1 -0
  14. package/dist/errors/api-error.d.ts +5 -0
  15. package/dist/errors/api-error.d.ts.map +1 -1
  16. package/dist/errors/api-error.js +7 -0
  17. package/dist/errors/api-error.js.map +1 -1
  18. package/dist/router/close/document-builder-router.d.ts +2 -1
  19. package/dist/router/close/document-builder-router.d.ts.map +1 -1
  20. package/dist/router/close/document-builder-router.js +3 -32
  21. package/dist/router/close/document-builder-router.js.map +1 -1
  22. package/dist/router/close/index.js +2 -0
  23. package/dist/router/close/index.js.map +1 -1
  24. package/dist/router/index.js +1 -1
  25. package/dist/router/index.js.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/auth/finish-tumbler-request.d.ts +0 -7
  28. package/dist/auth/finish-tumbler-request.d.ts.map +0 -1
  29. package/dist/auth/finish-tumbler-request.js +0 -22
  30. package/dist/auth/finish-tumbler-request.js.map +0 -1
  31. package/dist/auth/get-auth-session-key.d.ts +0 -2
  32. package/dist/auth/get-auth-session-key.d.ts.map +0 -1
  33. package/dist/auth/get-auth-session-key.js +0 -12
  34. package/dist/auth/get-auth-session-key.js.map +0 -1
  35. package/dist/auth/get-auth-state-form-request.d.ts +0 -7
  36. package/dist/auth/get-auth-state-form-request.d.ts.map +0 -1
  37. package/dist/auth/get-auth-state-form-request.js +0 -20
  38. package/dist/auth/get-auth-state-form-request.js.map +0 -1
  39. package/dist/auth/get-auth-url.d.ts +0 -5
  40. package/dist/auth/get-auth-url.d.ts.map +0 -1
  41. package/dist/auth/get-auth-url.js +0 -15
  42. package/dist/auth/get-auth-url.js.map +0 -1
  43. package/dist/auth/get-second.d.ts +0 -2
  44. package/dist/auth/get-second.d.ts.map +0 -1
  45. package/dist/auth/get-second.js +0 -7
  46. package/dist/auth/get-second.js.map +0 -1
  47. package/dist/auth/is-active-authorized-request.d.ts +0 -7
  48. package/dist/auth/is-active-authorized-request.d.ts.map +0 -1
  49. package/dist/auth/is-active-authorized-request.js +0 -21
  50. package/dist/auth/is-active-authorized-request.js.map +0 -1
  51. package/dist/auth/is-expired.d.ts +0 -2
  52. package/dist/auth/is-expired.d.ts.map +0 -1
  53. package/dist/auth/is-expired.js +0 -20
  54. package/dist/auth/is-expired.js.map +0 -1
  55. package/dist/auth/locker-emulation.d.ts +0 -11
  56. package/dist/auth/locker-emulation.d.ts.map +0 -1
  57. package/dist/auth/locker-emulation.js +0 -28
  58. package/dist/auth/locker-emulation.js.map +0 -1
  59. package/dist/auth/reload-session-promisify.d.ts +0 -3
  60. package/dist/auth/reload-session-promisify.d.ts.map +0 -1
  61. package/dist/auth/reload-session-promisify.js +0 -18
  62. package/dist/auth/reload-session-promisify.js.map +0 -1
  63. package/dist/auth/save-session-promisify.d.ts +0 -3
  64. package/dist/auth/save-session-promisify.d.ts.map +0 -1
  65. package/dist/auth/save-session-promisify.js +0 -13
  66. package/dist/auth/save-session-promisify.js.map +0 -1
  67. package/dist/auth/start-tumbler-request.d.ts +0 -7
  68. package/dist/auth/start-tumbler-request.d.ts.map +0 -1
  69. package/dist/auth/start-tumbler-request.js +0 -23
  70. package/dist/auth/start-tumbler-request.js.map +0 -1
  71. package/dist/auth/use-auth.d.ts +0 -13
  72. package/dist/auth/use-auth.d.ts.map +0 -1
  73. package/dist/auth/use-auth.js +0 -359
  74. package/dist/auth/use-auth.js.map +0 -1
  75. package/dist/dtos/dto-error.d.ts +0 -11
  76. package/dist/dtos/dto-error.d.ts.map +0 -1
  77. package/dist/dtos/dto-error.js +0 -31
  78. package/dist/dtos/dto-error.js.map +0 -1
  79. package/dist/dtos/error-response-dto.d.ts +0 -5
  80. package/dist/dtos/error-response-dto.d.ts.map +0 -1
  81. package/dist/dtos/error-response-dto.js +0 -9
  82. package/dist/dtos/error-response-dto.js.map +0 -1
  83. package/dist/errors/entity-error.d.ts +0 -7
  84. package/dist/errors/entity-error.d.ts.map +0 -1
  85. package/dist/errors/entity-error.js +0 -12
  86. package/dist/errors/entity-error.js.map +0 -1
  87. package/dist/errors/history-error.d.ts +0 -5
  88. package/dist/errors/history-error.d.ts.map +0 -1
  89. package/dist/errors/history-error.js +0 -13
  90. package/dist/errors/history-error.js.map +0 -1
  91. package/dist/errors/list-settings-error.d.ts +0 -23
  92. package/dist/errors/list-settings-error.d.ts.map +0 -1
  93. package/dist/errors/list-settings-error.js +0 -40
  94. package/dist/errors/list-settings-error.js.map +0 -1
  95. package/dist/errors/socket-error.d.ts +0 -7
  96. package/dist/errors/socket-error.d.ts.map +0 -1
  97. package/dist/errors/socket-error.js +0 -12
  98. package/dist/errors/socket-error.js.map +0 -1
  99. package/dist/errors/wizard-error.d.ts +0 -9
  100. package/dist/errors/wizard-error.d.ts.map +0 -1
  101. package/dist/errors/wizard-error.js +0 -16
  102. package/dist/errors/wizard-error.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-active-authorized-request.d.ts","sourceRoot":"","sources":["../../src/auth/is-active-authorized-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAGhC;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAS3E"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const is_expired_1 = require("./is-expired");
4
- const get_auth_state_form_request_1 = require("./get-auth-state-form-request");
5
- /**
6
- * @description Метод проверяет, является ли auth состояние активным (не устаревшим)
7
- * @returns {boolean }isActive Если состояние активное - true.
8
- */
9
- function isActiveAuthorizedRequest(request) {
10
- try {
11
- const state = (0, get_auth_state_form_request_1.getAuthStateFormRequest)(request);
12
- if (!state)
13
- return false;
14
- return !(0, is_expired_1.isExpiredDateInSecond)(state === null || state === void 0 ? void 0 : state.expiresAt);
15
- }
16
- catch (e) {
17
- return false;
18
- }
19
- }
20
- exports.default = isActiveAuthorizedRequest;
21
- //# sourceMappingURL=is-active-authorized-request.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-active-authorized-request.js","sourceRoot":"","sources":["../../src/auth/is-active-authorized-request.ts"],"names":[],"mappings":";;AAAA,6CAAmD;AAEnD,+EAAsE;AAEtE;;;GAGG;AACH,SAAwB,yBAAyB,CAAC,OAAgB;IACjE,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,IAAA,qDAAuB,EAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,OAAO,CAAC,IAAA,kCAAqB,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AATD,4CASC"}
@@ -1,2 +0,0 @@
1
- export declare function isExpiredDateInSecond(second: unknown): boolean;
2
- //# sourceMappingURL=is-expired.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-expired.d.ts","sourceRoot":"","sources":["../../src/auth/is-expired.ts"],"names":[],"mappings":"AAQA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,WAOpD"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isExpiredDateInSecond = void 0;
4
- const use_logger_1 = require("../logger/use-logger");
5
- function isExpired(seconds) {
6
- const dateNow = new Date();
7
- const currentSeconds = (dateNow.getTime() / 1000);
8
- use_logger_1.Logger.debug('Checking %d %d', currentSeconds, seconds);
9
- return currentSeconds > seconds;
10
- }
11
- function isExpiredDateInSecond(second) {
12
- use_logger_1.Logger.debug(`Start check date %s`, second);
13
- if (!(typeof second === 'number' && Number.isInteger(second))) {
14
- use_logger_1.Logger.debug('Date is not valid.');
15
- return true;
16
- }
17
- return isExpired(second);
18
- }
19
- exports.isExpiredDateInSecond = isExpiredDateInSecond;
20
- //# sourceMappingURL=is-expired.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-expired.js","sourceRoot":"","sources":["../../src/auth/is-expired.ts"],"names":[],"mappings":";;;AAAA,qDAA4C;AAE5C,SAAS,SAAS,CAAC,OAAe;IACjC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAK,CAAC,CAAC;IACnD,mBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;IACvD,OAAO,cAAc,GAAG,OAAO,CAAC;AACjC,CAAC;AACD,SAAgB,qBAAqB,CAAC,MAAe;IACpD,mBAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/D,mBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;AACzB,CAAC;AAPD,sDAOC"}
@@ -1,11 +0,0 @@
1
- export default class LockerEmulation {
2
- /**
3
- * @description Хранилище мьютексов/семафоров/тумблеров. Как угодно это можете называть. Используется
4
- * для того, чтобы блокировать параллельные запроса на обновление tokens.
5
- */
6
- store: Map<string, [Promise<any>, Function, Function]>;
7
- lock(token: string): void;
8
- unlock(token: string): void;
9
- isLocked(token: string): false | Promise<any>;
10
- }
11
- //# sourceMappingURL=locker-emulation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locker-emulation.d.ts","sourceRoot":"","sources":["../../src/auth/locker-emulation.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,eAAe;IAEnC;;;OAGG;IACH,KAAK,kDAAwD;IAE7D,IAAI,CAAC,KAAK,EAAE,MAAM;IAOlB,MAAM,CAAC,KAAK,EAAE,MAAM;IAMpB,QAAQ,CAAC,KAAK,EAAE,MAAM;CAItB"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class LockerEmulation {
4
- constructor() {
5
- /**
6
- * @description Хранилище мьютексов/семафоров/тумблеров. Как угодно это можете называть. Используется
7
- * для того, чтобы блокировать параллельные запроса на обновление tokens.
8
- */
9
- this.store = new Map();
10
- }
11
- lock(token) {
12
- // Создаём новый promise. Сохраняем функции его зварешения в хранилище.
13
- const promise = new Promise((resolve, reject) => {
14
- this.store.set(token, [promise, resolve, reject]);
15
- });
16
- }
17
- unlock(token) {
18
- const unlockers = this.store.get(token);
19
- if (!unlockers)
20
- throw new Error("Locker emulation, can't found saved unlockers.");
21
- unlockers[1]();
22
- }
23
- isLocked(token) {
24
- return (this.store.has(token)) ? this.store.get(token)[0] : false;
25
- }
26
- }
27
- exports.default = LockerEmulation;
28
- //# sourceMappingURL=locker-emulation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locker-emulation.js","sourceRoot":"","sources":["../../src/auth/locker-emulation.ts"],"names":[],"mappings":";;AAAA,MAAqB,eAAe;IAApC;QAEC;;;WAGG;QACH,UAAK,GAAG,IAAI,GAAG,EAA8C,CAAA;IAmB9D,CAAC;IAjBA,IAAI,CAAC,KAAa;QACjB,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAA;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACjF,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,KAAa;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,CAAC;CAED;AAzBD,kCAyBC"}
@@ -1,3 +0,0 @@
1
- import { Request } from "express";
2
- export default function reloadSessionPromisify(req: Request): Promise<void>;
3
- //# sourceMappingURL=reload-session-promisify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reload-session-promisify.d.ts","sourceRoot":"","sources":["../../src/auth/reload-session-promisify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAGhC,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAG,EAAE,OAAO,iBAc1D"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const use_logger_1 = require("../logger/use-logger");
4
- function reloadSessionPromisify(req) {
5
- return new Promise((resolve, reject) => {
6
- use_logger_1.Logger.debug("Reloading session");
7
- req.session.reload((err) => {
8
- if (err) {
9
- use_logger_1.Logger.debug("Reloading session(-) failed!");
10
- return reject();
11
- }
12
- use_logger_1.Logger.debug("Reloading session(+) completed!");
13
- resolve();
14
- });
15
- });
16
- }
17
- exports.default = reloadSessionPromisify;
18
- //# sourceMappingURL=reload-session-promisify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reload-session-promisify.js","sourceRoot":"","sources":["../../src/auth/reload-session-promisify.ts"],"names":[],"mappings":";;AACA,qDAA4C;AAE5C,SAAwB,sBAAsB,CAAC,GAAY;IAC1D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,mBAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,IAAI,GAAG,EAAE,CAAC;gBACT,mBAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;gBAE5C,OAAO,MAAM,EAAE,CAAA;YAChB,CAAC;YACD,mBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAE/C,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAdD,yCAcC"}
@@ -1,3 +0,0 @@
1
- import { Request } from "express";
2
- export default function saveSessionPromisify(req: Request): Promise<void>;
3
- //# sourceMappingURL=save-session-promisify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"save-session-promisify.d.ts","sourceRoot":"","sources":["../../src/auth/save-session-promisify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAEhC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,GAAG,EAAE,OAAO,iBAOxD"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function saveSessionPromisify(req) {
4
- return new Promise((resolve, reject) => {
5
- req.session.save((err) => {
6
- if (err)
7
- return reject();
8
- resolve();
9
- });
10
- });
11
- }
12
- exports.default = saveSessionPromisify;
13
- //# sourceMappingURL=save-session-promisify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"save-session-promisify.js","sourceRoot":"","sources":["../../src/auth/save-session-promisify.ts"],"names":[],"mappings":";;AAEA,SAAwB,oBAAoB,CAAC,GAAY;IACxD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,GAAG;gBAAE,OAAO,MAAM,EAAE,CAAA;YACxB,OAAO,EAAE,CAAA;QACV,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAPD,uCAOC"}
@@ -1,7 +0,0 @@
1
- import { Request } from "express";
2
- /**
3
- * @description Устанавливает тумблер параллельного запроса в состояние "off"
4
- * @param request
5
- */
6
- export declare function startTumblerRequest(request: Request): Promise<void>;
7
- //# sourceMappingURL=start-tumbler-request.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-tumbler-request.d.ts","sourceRoot":"","sources":["../../src/auth/start-tumbler-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAMhC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,iBAMnD"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.startTumblerRequest = void 0;
7
- const constants_1 = require("../constants");
8
- const save_session_promisify_1 = __importDefault(require("./save-session-promisify"));
9
- const get_second_1 = __importDefault(require("./get-second"));
10
- const use_logger_1 = require("../logger/use-logger");
11
- /**
12
- * @description Устанавливает тумблер параллельного запроса в состояние "off"
13
- * @param request
14
- */
15
- function startTumblerRequest(request) {
16
- request.session[constants_1.AUTH_SESSION_KEY].isRequestRunningAt = (0, get_second_1.default)(new Date()) + constants_1.AUTH_WAIT_PARALLEL_DELAY;
17
- return (0, save_session_promisify_1.default)(request)
18
- .then(() => {
19
- use_logger_1.Logger.debug('Parallel tumbler turn on.');
20
- });
21
- }
22
- exports.startTumblerRequest = startTumblerRequest;
23
- //# sourceMappingURL=start-tumbler-request.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-tumbler-request.js","sourceRoot":"","sources":["../../src/auth/start-tumbler-request.ts"],"names":[],"mappings":";;;;;;AACA,4CAAwE;AACxE,sFAA4D;AAC5D,8DAAqC;AACrC,qDAA4C;AAE5C;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAAgB;IACnD,OAAO,CAAC,OAAO,CAAC,4BAAgB,CAAC,CAAC,kBAAkB,GAAG,IAAA,oBAAS,EAAC,IAAI,IAAI,EAAE,CAAC,GAAG,oCAAwB,CAAC;IACxG,OAAO,IAAA,gCAAoB,EAAC,OAAO,CAAC;SACnC,IAAI,CAAC,GAAG,EAAE;QACV,mBAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAA;AACH,CAAC;AAND,kDAMC"}
@@ -1,13 +0,0 @@
1
- import { Request } from "express";
2
- export declare function getFullAccessToken(request: Request): string;
3
- /**
4
- * @description Функция возвращает идентификатор текущего пользователя(UserID) из запроса.
5
- * @return {number} userId
6
- */
7
- export declare function getUserIdFromAuthRequest(request: Request): number;
8
- /**
9
- * @description Функция возвращает идентификатор персоны пользователя.
10
- * @return {number} personId
11
- */
12
- export declare function getPersonIdFromAuthRequest(request: Request): number;
13
- //# sourceMappingURL=use-auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-auth.d.ts","sourceRoot":"","sources":["../../src/auth/use-auth.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAwUzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,UAIlD;AAID;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,UAExD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,UAE1D"}
@@ -1,359 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getPersonIdFromAuthRequest = exports.getUserIdFromAuthRequest = exports.getFullAccessToken = void 0;
16
- const use_logger_1 = require("../logger/use-logger");
17
- const constants_1 = require("../constants");
18
- const reload_session_promisify_1 = __importDefault(require("./reload-session-promisify"));
19
- const get_auth_session_key_1 = __importDefault(require("./get-auth-session-key"));
20
- const is_expired_1 = require("./is-expired");
21
- const get_auth_state_form_request_1 = require("./get-auth-state-form-request");
22
- // Name of SESSION key that will be used for store auth data.
23
- const SESSION_KEY = constants_1.AUTH_SESSION_KEY;
24
- /**
25
- * @description Функция обёртка для подключения к ID server. Возвращает middleware для стандартного http подключения. А
26
- * также для WS.
27
- */
28
- /*export default function useAuth(options: IAuthOptions) {
29
-
30
- // Установка нового лимита времени жизни запроса
31
- custom.setHttpOptionsDefaults({
32
- timeout: AUTH_REQUEST_TIMEOUT,
33
- });
34
-
35
- const {issuerBaseURL, baseURL} = options;
36
- let client: Client;
37
- let APPIssuer: Issuer<Client>;
38
-
39
- // URL на который нас будет перебрасывать ID server вместе с code для дальнейшего получения токенов.
40
- const callbackURL = baseURL + "/callback";
41
- /!**
42
- * @description Функция для чтения метаданных OIDC и создание web-server-client.
43
- *!/
44
-
45
- useReconnection(async () => {
46
- Logger.info("Attempt to read OIDC issuer: %s", issuerBaseURL);
47
- APPIssuer = await Issuer.discover(issuerBaseURL);
48
- Logger.info(`Discovered issuer %s success!`, issuerBaseURL)
49
- client = new APPIssuer.Client({
50
- client_id: options.clientId,
51
- client_secret: options.clientSecret,
52
- response_types: ['code'],
53
- redirect_uris: [callbackURL],
54
- });
55
- client[custom.clock_tolerance] = 5;
56
-
57
- Logger.info(`SSO client was created successful!`);
58
- }, {
59
- onReject(e) {
60
- Logger.error("Read OIDC issuer was failed.");
61
- Logger.error(JSON.stringify(e))
62
- }
63
- })
64
-
65
-
66
- /!**
67
- * @description Обновляет набор данных по переданному refreshToken.
68
- *!/
69
- function refreshTokenSet(request: Request) {
70
- const authState = getAuthStateFormRequest(request)
71
- return Promise.resolve()
72
- .then(() => startTumblerRequest(request))
73
- .then(() => client.refresh(authState.refreshToken))
74
- .catch(err => {
75
- Logger.debug('Обновление refreshToken не удалось: %s', protectToken(authState.refreshToken));
76
- Logger.error(err);
77
- return finishTumblerRequest(request)
78
- .then(() => {
79
- throw AuthError.RefreshNotAvailableOrSessionOutOfDate()
80
- })
81
- })
82
- .then((set) => {
83
- return finishTumblerRequest(request)
84
- .then(() => {
85
- return set;
86
- })
87
- })
88
- }
89
-
90
- function useAuthMiddleware() {
91
- const router = express.Router();
92
-
93
- router.get("/callback", async (req: Request, res) => {
94
- try {
95
- Logger.debug("[/callback] был перехвачен.")
96
- const params = client.callbackParams(req);
97
- const authState = getAuthStateFormRequest(req);
98
- if (!authState) return res.redirect(baseURL);
99
- const {codeVerifier} = authState
100
- Logger.debug("[/callback] callbackParams was restored. Process start.")
101
- const tokenSet = await client.callback(callbackURL, params, {
102
- state: params.state,
103
- code_verifier: codeVerifier
104
- });
105
- const parsedState = JSON.parse(params.state) as IAuthCallbackState;
106
-
107
- updateSessionByTokenSet(req, tokenSet);
108
- setAuthSessionKey(req, 'claims', tokenSet.claims());
109
- Logger.debug("Info about user claims was loaded. Redirect to %s", parsedState.redirectTo);
110
-
111
- res.redirect(parsedState?.redirectTo || baseURL)
112
- } catch (e) {
113
- Logger.debug("Callback auth was rejected with error: ", e);
114
- Logger.error('/callback middleware', e);
115
- renderResponseTemplate(res, 'error',
116
- dtoTemplateRenderError("Authorization failed", DEFAULT_CRITERION_VALUE, "Callback failed"))
117
- }
118
- })
119
-
120
- Logger.debug("Logout URL: %s", getAuthURL().logout)
121
- // LOGOUT URL
122
- router.get(getAuthURL().logout, (req: Request, res, next) => {
123
- try {
124
- const authState = getAuthStateFormRequest(req);
125
- const endSessionURL = client.endSessionUrl({
126
- post_logout_redirect_uri: options.baseURL,
127
- id_token_hint: authState?.idToken,
128
- })
129
- cleanAuthStateFormRequest(req);
130
- Logger.debug(`Logout redirect %s.`, endSessionURL);
131
- res.redirect(endSessionURL);
132
- } catch (e) {
133
- Logger.debug("Logout was rejected with error ", e);
134
- res.redirect(baseURL);
135
- }
136
- })
137
- router.post(getAuthURL().postLogout, (req: Request, res, next) => {
138
- try {
139
- Logger.info('Post logout Detected.');
140
- Logger.debug(`Post Logout Detected.`);
141
- cleanAuthStateFormRequest(req);
142
- } catch (e) { }
143
- })
144
- router.use(async (req: Request, res, next) => {
145
- try {
146
- Logger.debug(`Перехвачена авторизации для %s.`, parse(req.url).pathname);
147
- if (!client) return renderResponseTemplate(res, 'error', dtoTemplateRenderError('Please try again later', `Authentication provider is not ready yet`));
148
-
149
- try {
150
- await authProcess(req);
151
- return next();
152
- } catch (e) {
153
- Logger.debug(e);
154
- Logger.debug('Упс, тихая авторизация закончилась ошибкой! Необходимо перенаправить на identity server.')
155
- }
156
-
157
- Logger.debug("Генерация кода-верификации.")
158
- const codeVerifier = generators.codeVerifier();
159
- setAuthSessionKey(req, "codeVerifier", codeVerifier);
160
- // store the code_verifier in your framework's session mechanism, if it is a cookie based solution
161
- // it should be httpOnly (not readable by javascript) and encrypted.
162
- const codeChallenge = generators.codeChallenge(codeVerifier);
163
-
164
- const state: IAuthCallbackState = {
165
- redirectTo: baseURL + parse(req.url).path
166
- };
167
-
168
- Logger.debug("Для подзапроса добавлен следюущие состояние: %O", state);
169
-
170
- const url = client.authorizationUrl({
171
- scope: Server.instance.params.oidc.scope,
172
- code_challenge: codeChallenge,
173
- code_challenge_method: 'S256',
174
- state: JSON.stringify(state),
175
- });
176
- Logger.debug("Redirect auth to URL %s", url);
177
- return res.redirect(url)
178
- } catch (e) {
179
- Logger.debug(e);
180
- Logger.error(e);
181
-
182
- res.redirect(baseURL);
183
- }
184
- })
185
-
186
- return router
187
- }
188
-
189
- async function useWSAuthMiddleware(req: Request) {
190
- return authProcess(req);
191
- }
192
-
193
- /!**
194
- * @description Функция отвечает за пошаговое обновление набора токенов. Используется механанизм для обработки
195
- * двух одновременных запросов, используя переключатель и обновление сессии.
196
- *!/
197
- async function authProcess(req: Request) {
198
- Logger.debug("Auth Process started.");
199
-
200
- Logger.debug("Попытка перечитать сессию.");
201
- await reloadSessionPromisify(req);
202
- Logger.debug("Процесс проверки авторизации начат, сессия перечитана.");
203
- let authState = getAuthStateFormRequest(req);
204
- let isParallelRequest = false;
205
-
206
- if (!authState) {
207
- Logger.debug("У пользователя полностью отсутствует информация об авторизации.");
208
- throw AuthError.UserIsNotAuthorize()
209
- }
210
-
211
- if (typeof authState.isRequestRunningAt === 'number' && !isExpiredDateInSecond(authState.isRequestRunningAt)) {
212
- Logger.debug('Параллельный запрос!');
213
- isParallelRequest = true;
214
- await waitParallelAuthRequest(req);
215
- Logger.debug('Ожидание параллельного запроса завершилось!');
216
- authState = getAuthStateFormRequest(req);
217
- Logger.debug(`После ожидания TokenSet равен %o`, getProtectedTokenSet(authState));
218
- }
219
-
220
- if (isActiveAuthorizedRequest(req)) {
221
- Logger.debug("Пользователь обладает активным accessToken %s, %d, Сейчас: %d", protectToken(authState.accessToken), authState.expiresAt, getSecond(new Date()));
222
- return;
223
- }
224
- else {
225
- Logger.debug("Токены устарели %o. Сейчас %d", getProtectedTokenSet(authState), getSecond(new Date()));
226
- }
227
-
228
- if (isParallelRequest) {
229
- Logger.debug("После ожидании в очереди(parallel request), пользователя не удалось авторизовать");
230
- throw AuthError.UserIsNotAuthorize()
231
- }
232
-
233
- if (!isRefreshTokenProvided(authState)) {
234
- Logger.debug("У пользователя отсутствует refreshToken, обновление не возможно.")
235
- throw AuthError.RefreshNotAvailableOrSessionOutOfDate();
236
- }
237
-
238
- Logger.debug("Попытка обновить TokenSet.");
239
- const newTokenSet = await refreshTokenSet(req);
240
- updateSessionByTokenSet(req, newTokenSet);
241
- await saveSessionPromisify(req);
242
- Logger.debug("Авторизационные токены успешно обновлены и сохранены в сессию.");
243
- }
244
-
245
- function silentLogout(req: Request) {
246
- cleanAuthStateFormRequest(req);
247
- }
248
-
249
- function endSessionURL() {
250
-
251
- return client.endSessionUrl();
252
- }
253
-
254
- function authorizationUrl() {
255
- return client.authorizationUrl();
256
- }
257
-
258
- return {
259
- client,
260
- useAuthMiddleware,
261
- useWSAuthMiddleware,
262
- silentLogout,
263
- getAuthStateFormRequest,
264
- getFullAccessToken,
265
- endSessionURL,
266
- authorizationUrl
267
- }
268
- }*/
269
- function waitParallelAuthRequest(request) {
270
- return new Promise((resolve) => {
271
- function check() {
272
- return __awaiter(this, void 0, void 0, function* () {
273
- yield (0, reload_session_promisify_1.default)(request);
274
- const state = (0, get_auth_state_form_request_1.getAuthStateFormRequest)(request);
275
- if (typeof state.isRequestRunningAt !== 'number' || (0, is_expired_1.isExpiredDateInSecond)(state.isRequestRunningAt)) {
276
- return resolve();
277
- }
278
- use_logger_1.Logger.debug('checking continues');
279
- setTimeout(check, 1000);
280
- });
281
- }
282
- check();
283
- });
284
- }
285
- /**
286
- * @description Проверяет, есть ли в переданном объекте значение refreshToken.
287
- */
288
- function isRefreshTokenProvided(state) {
289
- return !!state && state.refreshToken;
290
- }
291
- /**
292
- * @description Метод используется для очистили текущей сессии авторизации.
293
- */
294
- function cleanAuthStateFormRequest(request) {
295
- var _a, _b;
296
- try {
297
- delete request.session[(0, get_auth_session_key_1.default)()];
298
- // @ts-ignore
299
- (_b = (_a = request.session) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a);
300
- }
301
- catch (e) {
302
- use_logger_1.Logger.debug("Clean auth state error", e);
303
- }
304
- }
305
- function updateSessionByTokenSet(request, tokenSet) {
306
- setAuthSessionKey(request, 'accessToken', tokenSet.access_token);
307
- setAuthSessionKey(request, 'tokenType', tokenSet.token_type);
308
- setAuthSessionKey(request, 'refreshToken', tokenSet.refresh_token);
309
- setAuthSessionKey(request, 'expiresAt', tokenSet.expires_at);
310
- setAuthSessionKey(request, 'tokenSet', tokenSet);
311
- setAuthSessionKey(request, 'idToken', tokenSet.id_token);
312
- use_logger_1.Logger.debug(`New token set %o`, getProtectedTokenSet((0, get_auth_state_form_request_1.getAuthStateFormRequest)(request)));
313
- }
314
- function getFullAccessToken(request) {
315
- const state = (0, get_auth_state_form_request_1.getAuthStateFormRequest)(request);
316
- if (!state)
317
- return null;
318
- return [state.tokenType, state.accessToken].join(' ');
319
- }
320
- exports.getFullAccessToken = getFullAccessToken;
321
- function getTokenSet(request) {
322
- return request.session[SESSION_KEY]['tokenSet'];
323
- }
324
- /**
325
- * @description Функция возвращает идентификатор текущего пользователя(UserID) из запроса.
326
- * @return {number} userId
327
- */
328
- function getUserIdFromAuthRequest(request) {
329
- return request.infoUserId;
330
- }
331
- exports.getUserIdFromAuthRequest = getUserIdFromAuthRequest;
332
- /**
333
- * @description Функция возвращает идентификатор персоны пользователя.
334
- * @return {number} personId
335
- */
336
- function getPersonIdFromAuthRequest(request) {
337
- return request.infoPersonId;
338
- }
339
- exports.getPersonIdFromAuthRequest = getPersonIdFromAuthRequest;
340
- function setAuthSessionKey(req, key, value) {
341
- if (!req.session[SESSION_KEY]) {
342
- req.session[SESSION_KEY] = {};
343
- use_logger_1.Logger.debug("Auth session was init.");
344
- }
345
- req.session[SESSION_KEY][key] = value;
346
- }
347
- function getProtectedTokenSet(set) {
348
- return {
349
- accessToken: protectToken(set.accessToken),
350
- refreshToken: protectToken(set.refreshToken),
351
- expirationTime: set.expiresAt
352
- };
353
- }
354
- function protectToken(token) {
355
- if (typeof token !== 'string')
356
- return 'NOT_PROVIDED';
357
- return token.slice(0, 5) + '...' + token.slice(-5);
358
- }
359
- //# sourceMappingURL=use-auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-auth.js","sourceRoot":"","sources":["../../src/auth/use-auth.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export default function dtoError(error: unknown): IDtoError;
2
- type IDtoError = {
3
- message: string;
4
- details: any;
5
- error?: string;
6
- date: string;
7
- stack?: any;
8
- status: number;
9
- };
10
- export {};
11
- //# sourceMappingURL=dto-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dto-error.d.ts","sourceRoot":"","sources":["../../src/dtos/dto-error.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAO1D;AAaD,KAAK,SAAS,GAAG;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const core_error_1 = __importDefault(require("../errors/core-error"));
7
- const api_error_1 = __importDefault(require("../errors/api-error"));
8
- const constants_1 = require("../constants");
9
- function dtoError(error) {
10
- if (typeof error === 'string')
11
- return wrap(error, error);
12
- if (error instanceof core_error_1.default)
13
- return wrap(error.displayMessage, error.message, error.details, error.httpStatus);
14
- if (error instanceof api_error_1.default)
15
- return wrap(error.message, error.message, [], null, error.status);
16
- if (error instanceof Error)
17
- return wrap(error.message, error.message, [], error.stack);
18
- return wrap(constants_1.DEFAULT_ERROR_MESSAGE, 'unknown-error', [], null, 500);
19
- }
20
- exports.default = dtoError;
21
- function wrap(displayMessage, insideErrorMessage, details, stack, status) {
22
- return {
23
- message: displayMessage,
24
- error: insideErrorMessage,
25
- date: (new Date()).toISOString(),
26
- stack: stack || '',
27
- status: status || 400,
28
- details
29
- };
30
- }
31
- //# sourceMappingURL=dto-error.js.map