@sima-land/isomorph 11.0.0-alpha.16 → 11.0.0-alpha.19

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 (84) hide show
  1. package/cache/types.d.ts +24 -2
  2. package/config/base.d.ts +2 -2
  3. package/config/base.js +2 -2
  4. package/config/browser.d.ts +1 -1
  5. package/config/browser.js +1 -1
  6. package/config/node.d.ts +1 -1
  7. package/config/node.js +1 -1
  8. package/config/types.d.ts +3 -0
  9. package/di/application.d.ts +5 -1
  10. package/di/application.js +14 -1
  11. package/di/application.js.map +1 -1
  12. package/di/container.js +4 -1
  13. package/di/container.js.map +1 -1
  14. package/di/errors.d.ts +13 -2
  15. package/di/errors.js +19 -4
  16. package/di/errors.js.map +1 -1
  17. package/di/index.d.ts +1 -1
  18. package/di/index.js +2 -1
  19. package/di/index.js.map +1 -1
  20. package/di/preset.js +19 -15
  21. package/di/preset.js.map +1 -1
  22. package/di/token.js +27 -5
  23. package/di/token.js.map +1 -1
  24. package/di/types.d.ts +56 -0
  25. package/error-tracking/index.d.ts +2 -0
  26. package/error-tracking/index.js +2 -0
  27. package/error-tracking/index.js.map +1 -1
  28. package/error-tracking/types.d.ts +6 -0
  29. package/http-client/middleware/cookie.d.ts +1 -0
  30. package/http-client/middleware/cookie.js +1 -0
  31. package/http-client/middleware/cookie.js.map +1 -1
  32. package/http-client/middleware/logging.js +3 -1
  33. package/http-client/middleware/logging.js.map +1 -1
  34. package/http-client/sauce/index.d.ts +3 -1
  35. package/http-client/sauce/index.js +15 -2
  36. package/http-client/sauce/index.js.map +1 -1
  37. package/http-server/errors.d.ts +11 -0
  38. package/http-server/errors.js +18 -0
  39. package/http-server/errors.js.map +1 -0
  40. package/http-server/handler/health-check.d.ts +1 -1
  41. package/http-server/handler/health-check.js +1 -1
  42. package/http-server/middleware/metrics.js +2 -2
  43. package/http-server/middleware/metrics.js.map +1 -1
  44. package/logger/handler/sentry.d.ts +1 -1
  45. package/logger/handler/sentry.js +1 -1
  46. package/logger/types.d.ts +16 -0
  47. package/metrics/constants.d.ts +3 -0
  48. package/metrics/constants.js +3 -0
  49. package/metrics/constants.js.map +1 -1
  50. package/metrics/node.d.ts +7 -0
  51. package/metrics/node.js +1 -0
  52. package/metrics/node.js.map +1 -1
  53. package/package.json +1 -1
  54. package/preset/node/response.d.ts +1 -0
  55. package/preset/node/response.js +43 -7
  56. package/preset/node/response.js.map +1 -1
  57. package/tokens.d.ts +1 -0
  58. package/tokens.js +1 -0
  59. package/tokens.js.map +1 -1
  60. package/utils/browser/analytics/oko.d.ts +2 -1
  61. package/utils/browser/analytics/oko.js +2 -1
  62. package/utils/browser/analytics/oko.js.map +1 -1
  63. package/utils/browser/storage/index.d.ts +8 -0
  64. package/utils/browser/storage/index.js +5 -0
  65. package/utils/browser/storage/index.js.map +1 -1
  66. package/utils/react/error-handlers/index.d.ts +9 -6
  67. package/utils/react/error-handlers/index.js +3 -3
  68. package/utils/react/error-handlers/index.js.map +1 -1
  69. package/utils/redux/remote-data.d.ts +9 -0
  70. package/utils/redux/remote-data.js +3 -0
  71. package/utils/redux/remote-data.js.map +1 -1
  72. package/utils/redux-saga/take-chain.d.ts +2 -0
  73. package/utils/redux-saga/take-chain.js +2 -0
  74. package/utils/redux-saga/take-chain.js.map +1 -1
  75. package/utils/ssr/index.d.ts +3 -0
  76. package/utils/ssr/index.js +3 -0
  77. package/utils/ssr/index.js.map +1 -1
  78. package/utils/webpack/module-federation/index.d.ts +4 -1
  79. package/utils/webpack/module-federation/index.js +4 -2
  80. package/utils/webpack/module-federation/index.js.map +1 -1
  81. package/utils/webpack/module-federation/types.d.ts +4 -0
  82. package/utils/webpack/module-federation/utils.d.ts +1 -0
  83. package/utils/webpack/module-federation/utils.js +1 -0
  84. package/utils/webpack/module-federation/utils.js.map +1 -1
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.sauce = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
4
8
  /**
5
9
  * Оборачивает экземпляр axios. Все методы обертки возвращают promise, который никогда не попадают в состояние rejected.
6
10
  * @param instance Экземпляр axios или AxiosInstanceWrapper.
@@ -12,10 +16,19 @@ function sauce(instance) {
12
16
  return async function (...args) {
13
17
  try {
14
18
  const response = await instance[methodName](...args);
15
- return { ok: true, data: response.data };
19
+ return {
20
+ ok: true,
21
+ status: response.status,
22
+ data: response.data,
23
+ };
16
24
  }
17
25
  catch (error) {
18
- return { ok: false, error };
26
+ const status = axios_1.default.isAxiosError(error) ? error.response?.status : undefined;
27
+ return {
28
+ ok: false,
29
+ status,
30
+ error,
31
+ };
19
32
  }
20
33
  };
21
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http-client/sauce/index.ts"],"names":[],"mappings":";;;AA4BA;;;;GAIG;AACH,SAAgB,KAAK,CAAC,QAA8C;IAClE,8DAA8D;IAC9D,SAAS,YAAY,CAAyB,UAAe;QAC3D,OAAO,KAAK,WACV,GAAG,IAAoC;YAEvC,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAI,IAAc,CAAC,CAAC;gBAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC1C;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC9B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;KAC7B,CAAC;AACJ,CAAC;AAxBD,sBAwBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http-client/sauce/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6C;AA8B7C;;;;GAIG;AACH,SAAgB,KAAK,CAAC,QAA8C;IAClE,8DAA8D;IAC9D,SAAS,YAAY,CAAyB,UAAe;QAC3D,OAAO,KAAK,WACV,GAAG,IAAoC;YAEvC,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAI,IAAc,CAAC,CAAC;gBAEhE,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC;aACH;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,MAAM,GAAG,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE9E,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM;oBACN,KAAK;iBACN,CAAC;aACH;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC9B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;KAC7B,CAAC;AACJ,CAAC;AAnCD,sBAmCC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Ошибка в процессе серверного рендеринга.
3
+ */
4
+ export declare class SSRError extends Error {
5
+ statusCode: number;
6
+ /**
7
+ * @param message Сообщение.
8
+ * @param statusCode Код ответа.
9
+ */
10
+ constructor(message: string, statusCode?: number);
11
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SSRError = void 0;
4
+ /**
5
+ * Ошибка в процессе серверного рендеринга.
6
+ */
7
+ class SSRError extends Error {
8
+ /**
9
+ * @param message Сообщение.
10
+ * @param statusCode Код ответа.
11
+ */
12
+ constructor(message, statusCode = 500) {
13
+ super(message);
14
+ this.statusCode = statusCode;
15
+ }
16
+ }
17
+ exports.SSRError = SSRError;
18
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/http-server/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAGjC;;;OAGG;IACH,YAAY,OAAe,EAAE,UAAU,GAAG,GAAG;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAXD,4BAWC"}
@@ -1,6 +1,6 @@
1
1
  import type { Handler } from 'express';
2
2
  /**
3
- * Обработчик, отвечающий данными о времени работы приложения.
3
+ * Возвращает обработчик, отвечающий данными о времени работы приложения.
4
4
  * @return Обработчик http-запроса.
5
5
  */
6
6
  export declare function healthCheck(): Handler;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.healthCheck = void 0;
4
4
  /**
5
- * Обработчик, отвечающий данными о времени работы приложения.
5
+ * Возвращает обработчик, отвечающий данными о времени работы приложения.
6
6
  * @return Обработчик http-запроса.
7
7
  */
8
8
  function healthCheck() {
@@ -19,7 +19,7 @@ function responseMetricsMiddleware(config, metrics) {
19
19
  method: req.method,
20
20
  };
21
21
  }
22
- return (req, res, next) => {
22
+ return function responseMetrics(req, res, next) {
23
23
  const start = process.hrtime.bigint();
24
24
  metrics.counter.inc(resolveLabels(req, res), 1);
25
25
  res.once('finish', () => {
@@ -37,7 +37,7 @@ exports.responseMetricsMiddleware = responseMetricsMiddleware;
37
37
  * @return Middleware.
38
38
  */
39
39
  function renderMetricsMiddleware(config, metrics) {
40
- return (req, res, next) => {
40
+ return function renderMetrics(req, res, next) {
41
41
  let start;
42
42
  res.once(constants_1.RESPONSE_EVENT.renderStart, () => {
43
43
  start = process.hrtime.bigint();
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/http-server/middleware/metrics.ts"],"names":[],"mappings":";;;AAGA,+CAAoD;AACpD,4CAA8C;AAG9C;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,MAAkB,EAClB,OAGC;IAED,8DAA8D;IAC9D,SAAS,aAAa,CACpB,GAAY,EACZ,GAAa;QAEb,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;YAC7B,IAAI,EAAE,GAAG,CAAC,UAAU;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhD,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEvC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAA,uBAAc,EAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAjCD,8DAiCC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,MAAkB,EAClB,OAEC;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,IAAI,KAAyB,CAAC;QAE9B,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,EAAE,GAAG,EAAE;YACxC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,EAAE,GAAG,EAAE;YACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAC5D;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEvC,OAAO,CAAC,SAAS,CAAC,OAAO,CACvB;gBACE,OAAO,EAAE,MAAM,CAAC,UAAU;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;aAC9B,EACD,IAAA,uBAAc,EAAC,MAAM,GAAG,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAhCD,0DAgCC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/http-server/middleware/metrics.ts"],"names":[],"mappings":";;;AAGA,+CAAoD;AACpD,4CAA8C;AAG9C;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,MAAkB,EAClB,OAGC;IAED,8DAA8D;IAC9D,SAAS,aAAa,CACpB,GAAY,EACZ,GAAa;QAEb,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;YAC7B,IAAI,EAAE,GAAG,CAAC,UAAU;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhD,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEvC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAA,uBAAc,EAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAjCD,8DAiCC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,MAAkB,EAClB,OAEC;IAED,OAAO,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QAC1C,IAAI,KAAyB,CAAC;QAE9B,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,EAAE,GAAG,EAAE;YACxC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,EAAE,GAAG,EAAE;YACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAC5D;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEvC,OAAO,CAAC,SAAS,CAAC,OAAO,CACvB;gBACE,OAAO,EAAE,MAAM,CAAC,UAAU;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;aAC9B,EACD,IAAA,uBAAc,EAAC,MAAM,GAAG,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAhCD,0DAgCC"}
@@ -2,7 +2,7 @@ import type { LoggerEventHandler } from '../types';
2
2
  import type { Hub } from '@sentry/types';
3
3
  /**
4
4
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
5
- * @param hub Набор данных для работы с Sentry.
5
+ * @param hub Sentry Hub.
6
6
  * @return Handler.
7
7
  */
8
8
  export declare function createSentryHandler(hub: Hub): LoggerEventHandler;
@@ -4,7 +4,7 @@ exports.createSentryHandler = void 0;
4
4
  const error_tracking_1 = require("../../error-tracking");
5
5
  /**
6
6
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
7
- * @param hub Набор данных для работы с Sentry.
7
+ * @param hub Sentry Hub.
8
8
  * @return Handler.
9
9
  */
10
10
  function createSentryHandler(hub) {
package/logger/types.d.ts CHANGED
@@ -1,11 +1,24 @@
1
+ /**
2
+ * Тип события.
3
+ */
1
4
  export declare type LoggerEventType = 'error' | 'log' | 'info' | 'warn' | 'debug';
5
+ /**
6
+ * Интерфейс события.
7
+ */
2
8
  export interface LoggerEvent {
3
9
  type: LoggerEventType;
4
10
  data: unknown;
5
11
  }
12
+ /**
13
+ * Интерфейс функции-обработчика события.
14
+ */
6
15
  export interface LoggerEventHandler {
7
16
  (event: LoggerEvent): void;
8
17
  }
18
+ /**
19
+ * Интерфейс логгера.
20
+ * Поддерживает наиболее распространенные события жизненного цикла программы.
21
+ */
9
22
  export interface Logger {
10
23
  error(data: any): void;
11
24
  log(data: any): void;
@@ -14,6 +27,9 @@ export interface Logger {
14
27
  debug(data: any): void;
15
28
  subscribe(handler: LoggerEventHandler): void;
16
29
  }
30
+ /**
31
+ * Структура данных, которую необходимо выводить в терминал по соглашению внутри компании.
32
+ */
17
33
  export interface ConventionalFluentInfo {
18
34
  version: string;
19
35
  latency: number;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Константы лейблов для метрик по соглашению.
3
+ */
1
4
  export declare const ConventionalLabels: {
2
5
  readonly HTTP_RESPONSE: readonly ["version", "route", "code", "method"];
3
6
  readonly SSR: readonly ["version", "route", "method"];
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConventionalLabels = void 0;
4
+ /**
5
+ * Константы лейблов для метрик по соглашению.
6
+ */
4
7
  exports.ConventionalLabels = {
5
8
  HTTP_RESPONSE: ['version', 'route', 'code', 'method'],
6
9
  SSR: ['version', 'route', 'method'],
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/metrics/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAChC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;IACrD,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/metrics/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;IACrD,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;CAC3B,CAAC"}
package/metrics/node.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  import { Application } from 'express';
2
2
  import * as PromClient from 'prom-client';
3
3
  import { ConventionalLabels } from './constants';
4
+ /**
5
+ * Распространенные метрики для Node.js приложения.
6
+ */
4
7
  export interface DefaultNodeMetrics {
8
+ /** Счетчик входящих запросов. */
5
9
  requestCount: PromClient.Counter<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
10
+ /** Гистограмма длительности ответа. */
6
11
  responseDuration: PromClient.Histogram<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
12
+ /** Гистограмма длительности SSR. */
7
13
  renderDuration: PromClient.Histogram<typeof ConventionalLabels.SSR[number]>;
8
14
  }
9
15
  /**
@@ -13,6 +19,7 @@ export interface DefaultNodeMetrics {
13
19
  export declare function createMetricsHttpApp(): Application;
14
20
  /**
15
21
  * Возвращает набор готовых метрик по умолчанию для приложений.
22
+ * @todo Возможно стоит унести это в пресет.
16
23
  * @return Набор метрик.
17
24
  */
18
25
  export declare function createDefaultMetrics(): DefaultNodeMetrics;
package/metrics/node.js CHANGED
@@ -47,6 +47,7 @@ function createMetricsHttpApp() {
47
47
  exports.createMetricsHttpApp = createMetricsHttpApp;
48
48
  /**
49
49
  * Возвращает набор готовых метрик по умолчанию для приложений.
50
+ * @todo Возможно стоит унести это в пресет.
50
51
  * @return Набор метрик.
51
52
  */
52
53
  function createDefaultMetrics() {
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/metrics/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA+C;AAC/C,wDAA0C;AAC1C,2CAAiD;AAQjD;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG;QACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEpD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAbD,oDAaC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,OAAO;QACL,YAAY,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,8BAAkB,CAAC,aAAa;SAC7C,CAAC;QACF,gBAAgB,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,0CAA0C;YAChD,UAAU,EAAE,8BAAkB,CAAC,aAAa;YAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;SACtD,CAAC;QACF,cAAc,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,8BAAkB,CAAC,GAAG;YAClC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;SACjD,CAAC;KACH,CAAC;AACJ,CAAC;AApBD,oDAoBC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/metrics/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA+C;AAC/C,wDAA0C;AAC1C,2CAAiD;AAgBjD;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG;QACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEpD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAbD,oDAaC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,OAAO;QACL,YAAY,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,8BAAkB,CAAC,aAAa;SAC7C,CAAC;QACF,gBAAgB,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,0CAA0C;YAChD,UAAU,EAAE,8BAAkB,CAAC,aAAa;YAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;SACtD,CAAC;QACF,cAAc,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,8BAAkB,CAAC,GAAG;YAClC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;SACjD,CAAC;KACH,CAAC;AACJ,CAAC;AApBD,oDAoBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sima-land/isomorph",
3
- "version": "11.0.0-alpha.16",
3
+ "version": "11.0.0-alpha.19",
4
4
  "description": "Tiny framework for fast start frontend microservices",
5
5
  "author": "www.sima-land.ru team",
6
6
  "license": "Apache-2.0",
@@ -14,6 +14,7 @@ export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMid
14
14
  export declare function provideRender(resolve: Resolve): (element: JSX.Element) => string;
15
15
  export declare function provideTemplate(resolve: Resolve): PageTemplate;
16
16
  export declare function provideMain(resolve: Resolve): VoidFunction;
17
+ export declare function provideParams(resolve: Resolve): Record<string, unknown>;
17
18
  /**
18
19
  * Возвращает express-handler, создающий дочернее di-приложение при запросе.
19
20
  * @param appFactory Фабрика di-приложения запроса.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HandlerProvider = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideSagaMiddleware = exports.provideHttpClientFactory = exports.PresetResponse = void 0;
3
+ exports.HandlerProvider = exports.provideParams = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideSagaMiddleware = exports.provideHttpClientFactory = exports.PresetResponse = void 0;
4
4
  const di_1 = require("../../di");
5
5
  const tokens_1 = require("../../tokens");
6
6
  const server_1 = require("react-dom/server");
@@ -13,6 +13,7 @@ const tracing_1 = require("../../http-client/middleware/tracing");
13
13
  const logging_1 = require("../../http-client/middleware/logging");
14
14
  const headers_1 = require("../../http-client/middleware/headers");
15
15
  const cookie_1 = require("../../http-client/middleware/cookie");
16
+ const errors_1 = require("../../http-server/errors");
16
17
  /**
17
18
  * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
18
19
  * @return Preset.
@@ -23,6 +24,7 @@ function PresetResponse() {
23
24
  [tokens_1.KnownToken.Response.render, provideRender],
24
25
  [tokens_1.KnownToken.Response.template, provideTemplate],
25
26
  [tokens_1.KnownToken.Response.main, provideMain],
27
+ [tokens_1.KnownToken.Response.params, provideParams],
26
28
  [tokens_1.KnownToken.Http.Client.factory, provideHttpClientFactory],
27
29
  ]);
28
30
  }
@@ -72,16 +74,50 @@ function provideMain(resolve) {
72
74
  const prepare = resolve(tokens_1.KnownToken.Response.prepare);
73
75
  const render = resolve(tokens_1.KnownToken.Response.render);
74
76
  const template = resolve(tokens_1.KnownToken.Response.template);
77
+ const logger = resolve(tokens_1.KnownToken.logger);
75
78
  return async function main() {
76
- new utils_1.PageResponse()
77
- .markup(await render(await prepare()))
78
- .assets(assets)
79
- .format(utils_1.PageResponse.defineFormat(context.req))
80
- .template(template)
81
- .send(context.res);
79
+ try {
80
+ new utils_1.PageResponse()
81
+ .markup(await render(await prepare()))
82
+ .assets(assets)
83
+ .format(utils_1.PageResponse.defineFormat(context.req))
84
+ .template(template)
85
+ .send(context.res);
86
+ }
87
+ catch (error) {
88
+ let message;
89
+ let statusCode = 500;
90
+ if (error instanceof Error) {
91
+ message = error.message;
92
+ if (error instanceof errors_1.SSRError) {
93
+ statusCode = error.statusCode;
94
+ }
95
+ }
96
+ else {
97
+ message = String(error);
98
+ }
99
+ context.res.status(statusCode).send(message);
100
+ logger.error(error);
101
+ }
82
102
  };
83
103
  }
84
104
  exports.provideMain = provideMain;
105
+ function provideParams(resolve) {
106
+ const context = resolve(tokens_1.KnownToken.Response.context);
107
+ try {
108
+ const headerValue = context.req.header('simaland-params');
109
+ /**
110
+ * Node.js переводит в ASCII.
111
+ * @see {https://github.com/nodejs/node/issues/17390}
112
+ */
113
+ const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';
114
+ return processedValue ? JSON.parse(processedValue) : {};
115
+ }
116
+ catch {
117
+ return {};
118
+ }
119
+ }
120
+ exports.provideParams = provideParams;
85
121
  /**
86
122
  * Возвращает express-handler, создающий дочернее di-приложение при запросе.
87
123
  * @param appFactory Фабрика di-приложения запроса.
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":"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"}
package/tokens.d.ts CHANGED
@@ -38,6 +38,7 @@ export declare const KnownToken: {
38
38
  };
39
39
  };
40
40
  readonly Response: {
41
+ readonly params: import("./di").Token<Record<string, unknown>>;
41
42
  readonly template: import("./di").Token<PageTemplate>;
42
43
  readonly context: import("./di").Token<ResponseContext>;
43
44
  readonly assets: import("./di").Token<PageAssets>;
package/tokens.js CHANGED
@@ -39,6 +39,7 @@ exports.KnownToken = {
39
39
  },
40
40
  // scope: page response
41
41
  Response: {
42
+ params: (0, di_1.createToken)('response/params'),
42
43
  template: (0, di_1.createToken)('response/template'),
43
44
  context: (0, di_1.createToken)('response/context'),
44
45
  assets: (0, di_1.createToken)('response/assets'),
package/tokens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,6BAAmC;AAiBtB,QAAA,UAAU,GAAG;IACxB,SAAS;IACT,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,gBAAW,EAAe,eAAe,CAAC;QAClD,IAAI,EAAE,IAAA,gBAAW,EAAa,aAAa,CAAC;KAC7C;IAED,QAAQ;IACR,KAAK,EAAE,IAAA,gBAAW,EAAQ,OAAO,CAAC;IAElC,UAAU;IACV,MAAM,EAAE,IAAA,gBAAW,EAAS,QAAQ,CAAC;IAErC,cAAc;IACd,cAAc,EAAE,IAAA,gBAAW,EAAyB,iBAAiB,CAAC;IAEtE,UAAU;IACV,OAAO,EAAE;QACP,MAAM,EAAE,IAAA,gBAAW,EAAS,gBAAgB,CAAC;QAC7C,YAAY,EAAE,IAAA,gBAAW,EAAe,uBAAuB,CAAC;QAChE,cAAc,EAAE,IAAA,gBAAW,EAAsB,yBAAyB,CAAC;QAC3E,sBAAsB,EAAE,IAAA,gBAAW,EAAW,kCAAkC,CAAC;KAClF;IAED,UAAU;IACV,OAAO,EAAE;QACP,OAAO,EAAE,IAAA,gBAAW,EAAc,kBAAkB,CAAC;KACtD;IAED,OAAO;IACP,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;SAC/D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;YAC9D,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAA,gBAAW,EAAoB,iCAAiC,CAAC;aAC9E;SACF;KACF;IAED,uBAAuB;IACvB,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAA,gBAAW,EAAe,mBAAmB,CAAC;QACxD,OAAO,EAAE,IAAA,gBAAW,EAAkB,kBAAkB,CAAC;QACzD,MAAM,EAAE,IAAA,gBAAW,EAAa,iBAAiB,CAAC;QAClD,OAAO,EAAE,IAAA,gBAAW,EAA2C,kBAAkB,CAAC;QAClF,MAAM,EAAE,IAAA,gBAAW,EAAqD,iBAAiB,CAAC;QAC1F,IAAI,EAAE,IAAA,gBAAW,EAAa,eAAe,CAAC;KAC/C;CACO,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,6BAAmC;AAiBtB,QAAA,UAAU,GAAG;IACxB,SAAS;IACT,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,gBAAW,EAAe,eAAe,CAAC;QAClD,IAAI,EAAE,IAAA,gBAAW,EAAa,aAAa,CAAC;KAC7C;IAED,QAAQ;IACR,KAAK,EAAE,IAAA,gBAAW,EAAQ,OAAO,CAAC;IAElC,UAAU;IACV,MAAM,EAAE,IAAA,gBAAW,EAAS,QAAQ,CAAC;IAErC,cAAc;IACd,cAAc,EAAE,IAAA,gBAAW,EAAyB,iBAAiB,CAAC;IAEtE,UAAU;IACV,OAAO,EAAE;QACP,MAAM,EAAE,IAAA,gBAAW,EAAS,gBAAgB,CAAC;QAC7C,YAAY,EAAE,IAAA,gBAAW,EAAe,uBAAuB,CAAC;QAChE,cAAc,EAAE,IAAA,gBAAW,EAAsB,yBAAyB,CAAC;QAC3E,sBAAsB,EAAE,IAAA,gBAAW,EAAW,kCAAkC,CAAC;KAClF;IAED,UAAU;IACV,OAAO,EAAE;QACP,OAAO,EAAE,IAAA,gBAAW,EAAc,kBAAkB,CAAC;KACtD;IAED,OAAO;IACP,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;SAC/D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;YAC9D,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAA,gBAAW,EAAoB,iCAAiC,CAAC;aAC9E;SACF;KACF;IAED,uBAAuB;IACvB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAA,gBAAW,EAA0B,iBAAiB,CAAC;QAC/D,QAAQ,EAAE,IAAA,gBAAW,EAAe,mBAAmB,CAAC;QACxD,OAAO,EAAE,IAAA,gBAAW,EAAkB,kBAAkB,CAAC;QACzD,MAAM,EAAE,IAAA,gBAAW,EAAa,iBAAiB,CAAC;QAClD,OAAO,EAAE,IAAA,gBAAW,EAA2C,kBAAkB,CAAC;QAClF,MAAM,EAAE,IAAA,gBAAW,EAAqD,iBAAiB,CAAC;QAC1F,IAAI,EAAE,IAAA,gBAAW,EAAa,eAAe,CAAC;KAC/C;CACO,CAAC"}
@@ -1,11 +1,12 @@
1
1
  export declare type OkoEvent = Record<string, any>;
2
2
  /**
3
- * Отправка аналитики в око.
3
+ * Получив объект события, запустит его отправку в ОКО (если на странице есть ОКО).
4
4
  * @param eventData Данные события для отправки.
5
5
  */
6
6
  export declare const okoPush: (eventData: OkoEvent) => void;
7
7
  /**
8
8
  * Хук, возвращающий функцию, которая отправит аналитику в ОКО.
9
+ * Не позволяет менять данные для отправки.
9
10
  * @param data Данные события для отправки в ОКО.
10
11
  * @return Функция.
11
12
  */
@@ -4,7 +4,7 @@ exports.useOkoPush = exports.okoPush = void 0;
4
4
  const react_1 = require("react");
5
5
  const lodash_1 = require("lodash");
6
6
  /**
7
- * Отправка аналитики в око.
7
+ * Получив объект события, запустит его отправку в ОКО (если на странице есть ОКО).
8
8
  * @param eventData Данные события для отправки.
9
9
  */
10
10
  const okoPush = (eventData) => {
@@ -15,6 +15,7 @@ const okoPush = (eventData) => {
15
15
  exports.okoPush = okoPush;
16
16
  /**
17
17
  * Хук, возвращающий функцию, которая отправит аналитику в ОКО.
18
+ * Не позволяет менять данные для отправки.
18
19
  * @param data Данные события для отправки в ОКО.
19
20
  * @return Функция.
20
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"oko.js","sourceRoot":"","sources":["../../../../src/utils/browser/analytics/oko.ts"],"names":[],"mappings":";;;AAAA,iCAA+B;AAC/B,mCAA6C;AAI7C;;;GAGG;AACI,MAAM,OAAO,GAAG,CAAC,SAAmB,EAAE,EAAE;IAC7C,MAAM,GAAG,GAAQ,MAAM,CAAC;IAExB,qFAAqF;IACrF,IAAA,mBAAU,EAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF;;;;GAIG;AACI,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAA,cAAM,GAAY,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,cAAM,GAAc,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;KAC/B;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,OAAmB,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,KAAK,CACT;YACE,gDAAgD;YAChD,wFAAwF;SACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAtBW,QAAA,UAAU,cAsBrB"}
1
+ {"version":3,"file":"oko.js","sourceRoot":"","sources":["../../../../src/utils/browser/analytics/oko.ts"],"names":[],"mappings":";;;AAAA,iCAA+B;AAC/B,mCAA6C;AAI7C;;;GAGG;AACI,MAAM,OAAO,GAAG,CAAC,SAAmB,EAAE,EAAE;IAC7C,MAAM,GAAG,GAAQ,MAAM,CAAC;IAExB,qFAAqF;IACrF,IAAA,mBAAU,EAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF;;;;;GAKG;AACI,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAA,cAAM,GAAY,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,cAAM,GAAc,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;KAC/B;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,OAAmB,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,KAAK,CACT;YACE,gDAAgD;YAChD,wFAAwF;SACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAtBW,QAAA,UAAU,cAsBrB"}
@@ -1,4 +1,12 @@
1
+ /**
2
+ * Интерфейс объекта-обертки для безопасной работы с WebStorage.
3
+ */
1
4
  export interface StorageUtils extends Pick<Storage, 'clear' | 'getItem' | 'key' | 'removeItem' | 'setItem' | 'length'> {
2
5
  isAvailable: () => boolean;
3
6
  }
7
+ /**
8
+ * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
9
+ * @param getStorage Функция, которая должна вернуть целевое хранилище.
10
+ * @return Объект-обертка для безопасной работы с браузерным хранилищем.
11
+ */
4
12
  export declare function createStorageUtils(getStorage: () => Storage): StorageUtils;
@@ -2,6 +2,11 @@
2
2
  /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.createStorageUtils = void 0;
5
+ /**
6
+ * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
7
+ * @param getStorage Функция, которая должна вернуть целевое хранилище.
8
+ * @return Объект-обертка для безопасной работы с браузерным хранилищем.
9
+ */
5
10
  function createStorageUtils(getStorage) {
6
11
  function isAvailable() {
7
12
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/browser/storage/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAOvD,SAAgB,kBAAkB,CAAC,UAAyB;IAC1D,SAAS,WAAW;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAExD,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,UAAU,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAEjC,OAAO,IAAI,CAAC;SACb;QAAC,MAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;SACtB;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY;QAC3B,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,GAAG,CAAC,KAAa;QACxB,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,UAAU,CAAC,IAAY;QAC9B,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;QAC1C,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAED,SAAS,MAAM;QACb,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC;SAC5B;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO;QACL,WAAW;QAEX,KAAK;QACL,OAAO;QACP,GAAG;QACH,UAAU;QACV,OAAO;QACP,IAAI,MAAM;YACR,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAnED,gDAmEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/browser/storage/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAUvD;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,UAAyB;IAC1D,SAAS,WAAW;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAExD,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,UAAU,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAEjC,OAAO,IAAI,CAAC;SACb;QAAC,MAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;SACtB;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY;QAC3B,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,GAAG,CAAC,KAAa;QACxB,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,UAAU,CAAC,IAAY;QAC9B,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;QAC1C,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAED,SAAS,MAAM;QACb,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC;SAC5B;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO;QACL,WAAW;QAEX,KAAK;QACL,OAAO;QACP,GAAG;QACH,UAAU;QACV,OAAO;QACP,IAAI,MAAM;YACR,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAnED,gDAmEC"}
@@ -1,14 +1,17 @@
1
1
  import React from 'react';
2
+ /**
3
+ * Опции компонентов ErrorBoundary и SafeSuspense.
4
+ */
2
5
  export interface Props {
3
- /** Дочерний компонент. */
6
+ /** Дочерний элемент. */
4
7
  children: NonNullable<React.ReactNode> | null;
5
- /** Запасной элемент, если возникла ошибка. */
8
+ /** Содержимое, которое будет выведено если возникла ошибка. */
6
9
  fallback: NonNullable<React.ReactNode> | null;
7
- /** Функция для логирования ошибки. */
10
+ /** Функция для логирования ошибок. */
8
11
  onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
9
12
  }
10
13
  /**
11
- * Обработчик ошибок в React-компонентах.
14
+ * Компонент-предохранитель. Обработчик ошибок в React-компонентах.
12
15
  */
13
16
  export declare class ErrorBoundary extends React.Component<Props, {
14
17
  hasError: boolean;
@@ -17,11 +20,11 @@ export declare class ErrorBoundary extends React.Component<Props, {
17
20
  * @param props Свойства.
18
21
  */
19
22
  constructor(props: Props);
20
- /** @inheritdoc */
23
+ /** @inheritDoc */
21
24
  static getDerivedStateFromError(): {
22
25
  hasError: boolean;
23
26
  };
24
- /** @inheritdoc */
27
+ /** @inheritDoc */
25
28
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
26
29
  /**
27
30
  * Рендер.
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SafeSuspense = exports.ErrorBoundary = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  /**
9
- * Обработчик ошибок в React-компонентах.
9
+ * Компонент-предохранитель. Обработчик ошибок в React-компонентах.
10
10
  */
11
11
  class ErrorBoundary extends react_1.default.Component {
12
12
  /**
@@ -16,11 +16,11 @@ class ErrorBoundary extends react_1.default.Component {
16
16
  super(props);
17
17
  this.state = { hasError: false };
18
18
  }
19
- /** @inheritdoc */
19
+ /** @inheritDoc */
20
20
  static getDerivedStateFromError() {
21
21
  return { hasError: true };
22
22
  }
23
- /** @inheritdoc */
23
+ /** @inheritDoc */
24
24
  componentDidCatch(error, errorInfo) {
25
25
  // @todo добавить возможность брать onError из специального контекста (это упростит передачу из di-контейнера)
26
26
  const { onError } = this.props;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/react/error-handlers/index.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAa1B;;GAEG;AACH,MAAa,aAAc,SAAQ,eAAK,CAAC,SAAuC;IAC9E;;OAEG;IACH,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,wBAAwB;QAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,KAAY,EAAE,SAA0B;QACxD,8GAA8G;QAC9G,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,CAAC;CACF;AAhCD,sCAgCC;AAED;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CACtE,8BAAC,eAAK,CAAC,QAAQ,IAAC,QAAQ,EAAE,QAAQ;IAChC,8BAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAChD,QAAQ,CACK,CACD,CAClB,CAAC;AANW,QAAA,YAAY,gBAMvB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/react/error-handlers/index.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAgB1B;;GAEG;AACH,MAAa,aAAc,SAAQ,eAAK,CAAC,SAAuC;IAC9E;;OAEG;IACH,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,wBAAwB;QAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,KAAY,EAAE,SAA0B;QACxD,8GAA8G;QAC9G,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,CAAC;CACF;AAhCD,sCAgCC;AAED;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CACtE,8BAAC,eAAK,CAAC,QAAQ,IAAC,QAAQ,EAAE,QAAQ;IAChC,8BAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAChD,QAAQ,CACK,CACD,CAClB,CAAC;AANW,QAAA,YAAY,gBAMvB"}
@@ -1,10 +1,19 @@
1
1
  import type { PayloadAction, Draft } from '@reduxjs/toolkit';
2
+ /**
3
+ * Статус загрузки данных.
4
+ */
2
5
  export declare type Status = 'initial' | 'fetching' | 'success' | 'failure';
6
+ /**
7
+ * Базовая структура хранилища удаленных данных.
8
+ */
3
9
  export interface RemoteDataState<TData, TError> {
4
10
  data: TData;
5
11
  error: TError;
6
12
  status: Status;
7
13
  }
14
+ /**
15
+ * Возможные статусы загрузки данных.
16
+ */
8
17
  export declare const STATUS: Record<Status, Status>;
9
18
  /**
10
19
  * Возвращает набор обработчиков для работы с удаленными данными.
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRemoteDataReducers = exports.STATUS = void 0;
4
+ /**
5
+ * Возможные статусы загрузки данных.
6
+ */
4
7
  exports.STATUS = {
5
8
  initial: 'initial',
6
9
  fetching: 'fetching',
@@ -1 +1 @@
1
- {"version":3,"file":"remote-data.js","sourceRoot":"","sources":["../../../src/utils/redux/remote-data.ts"],"names":[],"mappings":";;;AAUa,QAAA,MAAM,GAA2B;IAC5C,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF;;;GAGG;AACI,MAAM,wBAAwB,GAAG,GAAwC,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE;QAC3B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAgC,EAAE,EAAE;QAC7D,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAiC,EAAE,EAAE;QAC9D,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAZU,QAAA,wBAAwB,4BAYlC"}
1
+ {"version":3,"file":"remote-data.js","sourceRoot":"","sources":["../../../src/utils/redux/remote-data.ts"],"names":[],"mappings":";;;AAgBA;;GAEG;AACU,QAAA,MAAM,GAA2B;IAC5C,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF;;;GAGG;AACI,MAAM,wBAAwB,GAAG,GAAwC,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE;QAC3B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAgC,EAAE,EAAE;QAC7D,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAiC,EAAE,EAAE;QAC9D,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAZU,QAAA,wBAAwB,4BAYlC"}
@@ -10,6 +10,7 @@ import { Action } from '@reduxjs/toolkit';
10
10
  export declare function takeChain<Deps extends any[], Task extends (...someArgs: [...Deps, Action[]]) => any>(timeout: number, types: string[], task: Task, ...deps: Deps): import("redux-saga/effects").ForkEffect<unknown>;
11
11
  /**
12
12
  * Генерирует эффект по таймауту.
13
+ * @internal
13
14
  * @param timeout Время задержки в мс.
14
15
  * @param types Массив с типами ожидаемых экшенов.
15
16
  * @param task Генератор.
@@ -18,6 +19,7 @@ export declare function takeChain<Deps extends any[], Task extends (...someArgs:
18
19
  export declare function generateTakeChain<Deps extends any[], Task extends (...someArgs: [...Deps, Action[]]) => any>(timeout: number, types: string[], task: Task, deps: Deps): Generator<any, void, any>;
19
20
  /**
20
21
  * Вызывает экшен с заданной задержкой.
22
+ * @internal
21
23
  * @param timeout Время задержки в мс.
22
24
  * @param action Тип экшена.
23
25
  */
@@ -16,6 +16,7 @@ function takeChain(timeout, types, task, ...deps) {
16
16
  exports.takeChain = takeChain;
17
17
  /**
18
18
  * Генерирует эффект по таймауту.
19
+ * @internal
19
20
  * @param timeout Время задержки в мс.
20
21
  * @param types Массив с типами ожидаемых экшенов.
21
22
  * @param task Генератор.
@@ -45,6 +46,7 @@ function* generateTakeChain(timeout, types, task, deps) {
45
46
  exports.generateTakeChain = generateTakeChain;
46
47
  /**
47
48
  * Вызывает экшен с заданной задержкой.
49
+ * @internal
48
50
  * @param timeout Время задержки в мс.
49
51
  * @param action Тип экшена.
50
52
  */