@sima-land/isomorph 11.0.0-alpha.2 → 11.0.0-alpha.22

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 (181) hide show
  1. package/cache/types.d.ts +24 -2
  2. package/config/{index.d.ts → base.d.ts} +2 -2
  3. package/config/{index.js → base.js} +3 -3
  4. package/config/base.js.map +1 -0
  5. package/config/browser.d.ts +1 -1
  6. package/config/browser.js +11 -2
  7. package/config/browser.js.map +1 -1
  8. package/config/node.d.ts +1 -1
  9. package/config/node.js +17 -6
  10. package/config/node.js.map +1 -1
  11. package/config/types.d.ts +3 -0
  12. package/di/application.d.ts +10 -0
  13. package/{container → di}/application.js +30 -8
  14. package/di/application.js.map +1 -0
  15. package/di/container.d.ts +6 -0
  16. package/di/container.js +52 -0
  17. package/di/container.js.map +1 -0
  18. package/di/errors.d.ts +32 -0
  19. package/di/errors.js +48 -0
  20. package/di/errors.js.map +1 -0
  21. package/di/index.d.ts +6 -0
  22. package/di/index.js +17 -0
  23. package/di/index.js.map +1 -0
  24. package/di/preset.d.ts +9 -0
  25. package/di/preset.js +31 -0
  26. package/di/preset.js.map +1 -0
  27. package/di/token.d.ts +7 -0
  28. package/di/token.js +39 -0
  29. package/di/token.js.map +1 -0
  30. package/di/types.d.ts +88 -0
  31. package/{container → di}/types.js +0 -0
  32. package/{tracer → di}/types.js.map +1 -1
  33. package/error-tracking/index.d.ts +24 -0
  34. package/error-tracking/index.js +32 -0
  35. package/error-tracking/index.js.map +1 -0
  36. package/error-tracking/types.d.ts +19 -0
  37. package/{error-tracker → error-tracking}/types.js +0 -0
  38. package/{container → error-tracking}/types.js.map +1 -1
  39. package/http-client/middleware/cookie.d.ts +1 -0
  40. package/http-client/middleware/cookie.js +2 -1
  41. package/http-client/middleware/cookie.js.map +1 -1
  42. package/http-client/middleware/headers.d.ts +13 -0
  43. package/http-client/middleware/headers.js +24 -0
  44. package/http-client/middleware/headers.js.map +1 -0
  45. package/http-client/middleware/logging.d.ts +16 -0
  46. package/http-client/middleware/logging.js +109 -0
  47. package/http-client/middleware/logging.js.map +1 -0
  48. package/http-client/middleware/tracing.d.ts +3 -3
  49. package/http-client/middleware/tracing.js +22 -9
  50. package/http-client/middleware/tracing.js.map +1 -1
  51. package/http-client/sauce/index.d.ts +3 -1
  52. package/http-client/sauce/index.js +15 -2
  53. package/http-client/sauce/index.js.map +1 -1
  54. package/http-client/utils.d.ts +6 -7
  55. package/http-client/utils.js +24 -14
  56. package/http-client/utils.js.map +1 -1
  57. package/http-server/errors.d.ts +11 -0
  58. package/http-server/errors.js +18 -0
  59. package/http-server/errors.js.map +1 -0
  60. package/http-server/handler/health-check.d.ts +1 -1
  61. package/http-server/handler/health-check.js +1 -1
  62. package/http-server/middleware/metrics.js +2 -2
  63. package/http-server/middleware/metrics.js.map +1 -1
  64. package/http-server/middleware/tracing.d.ts +8 -2
  65. package/http-server/middleware/tracing.js +19 -1
  66. package/http-server/middleware/tracing.js.map +1 -1
  67. package/http-server/template/index.js +6 -0
  68. package/http-server/template/index.js.map +1 -1
  69. package/http-server/types.d.ts +2 -0
  70. package/http-server/utils.d.ts +11 -5
  71. package/http-server/utils.js +32 -16
  72. package/http-server/utils.js.map +1 -1
  73. package/logger/handler/console.d.ts +1 -1
  74. package/logger/handler/console.js +12 -2
  75. package/logger/handler/console.js.map +1 -1
  76. package/logger/handler/sentry.d.ts +3 -3
  77. package/logger/handler/sentry.js +13 -7
  78. package/logger/handler/sentry.js.map +1 -1
  79. package/logger/index.d.ts +2 -6
  80. package/logger/index.js +2 -27
  81. package/logger/index.js.map +1 -1
  82. package/logger/logger.d.ts +6 -0
  83. package/logger/logger.js +31 -0
  84. package/logger/logger.js.map +1 -0
  85. package/logger/types.d.ts +16 -0
  86. package/metrics/constants.d.ts +3 -0
  87. package/metrics/constants.js +3 -0
  88. package/metrics/constants.js.map +1 -1
  89. package/metrics/node.d.ts +7 -0
  90. package/metrics/node.js +1 -0
  91. package/metrics/node.js.map +1 -1
  92. package/package.json +31 -25
  93. package/preset/browser/index.d.ts +12 -0
  94. package/preset/browser/index.js +69 -0
  95. package/preset/browser/index.js.map +1 -0
  96. package/preset/node/index.d.ts +14 -6
  97. package/preset/node/index.js +94 -36
  98. package/preset/node/index.js.map +1 -1
  99. package/preset/node/response.d.ts +14 -8
  100. package/preset/node/response.js +95 -27
  101. package/preset/node/response.js.map +1 -1
  102. package/preset/types.d.ts +7 -6
  103. package/preset/utils.d.ts +15 -0
  104. package/preset/utils.js +26 -0
  105. package/preset/utils.js.map +1 -0
  106. package/tokens.d.ts +35 -18
  107. package/tokens.js +32 -17
  108. package/tokens.js.map +1 -1
  109. package/tracing/index.d.ts +9 -0
  110. package/tracing/index.js +20 -0
  111. package/tracing/index.js.map +1 -0
  112. package/utils/browser/analytics/oko.d.ts +2 -1
  113. package/utils/browser/analytics/oko.js +2 -1
  114. package/utils/browser/analytics/oko.js.map +1 -1
  115. package/utils/browser/storage/index.d.ts +8 -0
  116. package/utils/browser/storage/index.js +5 -0
  117. package/utils/browser/storage/index.js.map +1 -1
  118. package/utils/react/error-handlers/index.d.ts +9 -6
  119. package/utils/react/error-handlers/index.js +4 -3
  120. package/utils/react/error-handlers/index.js.map +1 -1
  121. package/utils/redux/remote-data.d.ts +9 -0
  122. package/utils/redux/remote-data.js +3 -0
  123. package/utils/redux/remote-data.js.map +1 -1
  124. package/utils/redux-saga/index.d.ts +3 -0
  125. package/utils/redux-saga/index.js +8 -0
  126. package/utils/redux-saga/index.js.map +1 -0
  127. package/utils/redux-saga/middleware.d.ts +9 -0
  128. package/utils/redux-saga/middleware.js +87 -0
  129. package/utils/redux-saga/middleware.js.map +1 -0
  130. package/utils/redux-saga/take-chain.d.ts +2 -0
  131. package/utils/redux-saga/take-chain.js +2 -0
  132. package/utils/redux-saga/take-chain.js.map +1 -1
  133. package/utils/redux-saga/types.d.ts +6 -0
  134. package/{saga-runner → utils/redux-saga}/types.js +0 -0
  135. package/{error-tracker → utils/redux-saga}/types.js.map +1 -1
  136. package/utils/ssr/index.d.ts +41 -0
  137. package/utils/ssr/index.js +54 -0
  138. package/utils/ssr/index.js.map +1 -0
  139. package/utils/webpack/index.d.ts +23 -0
  140. package/utils/webpack/index.js +68 -0
  141. package/utils/webpack/index.js.map +1 -0
  142. package/utils/webpack/module-federation/index.d.ts +4 -1
  143. package/utils/webpack/module-federation/index.js +4 -2
  144. package/utils/webpack/module-federation/index.js.map +1 -1
  145. package/utils/webpack/module-federation/types.d.ts +4 -0
  146. package/utils/webpack/module-federation/utils.d.ts +1 -0
  147. package/utils/webpack/module-federation/utils.js +1 -0
  148. package/utils/webpack/module-federation/utils.js.map +1 -1
  149. package/config/index.js.map +0 -1
  150. package/config/utils.d.ts +0 -5
  151. package/config/utils.js +0 -12
  152. package/config/utils.js.map +0 -1
  153. package/container/application.d.ts +0 -25
  154. package/container/application.js.map +0 -1
  155. package/container/index.d.ts +0 -18
  156. package/container/index.js +0 -74
  157. package/container/index.js.map +0 -1
  158. package/container/types.d.ts +0 -14
  159. package/error-tracker/browser.d.ts +0 -8
  160. package/error-tracker/browser.js +0 -40
  161. package/error-tracker/browser.js.map +0 -1
  162. package/error-tracker/node.d.ts +0 -8
  163. package/error-tracker/node.js +0 -40
  164. package/error-tracker/node.js.map +0 -1
  165. package/error-tracker/types.d.ts +0 -18
  166. package/error-tracker/utils.d.ts +0 -12
  167. package/error-tracker/utils.js +0 -19
  168. package/error-tracker/utils.js.map +0 -1
  169. package/preset/index.d.ts +0 -7
  170. package/preset/index.js +0 -25
  171. package/preset/index.js.map +0 -1
  172. package/saga-runner/index.d.ts +0 -8
  173. package/saga-runner/index.js +0 -79
  174. package/saga-runner/index.js.map +0 -1
  175. package/saga-runner/types.d.ts +0 -10
  176. package/saga-runner/types.js.map +0 -1
  177. package/tracer/node.d.ts +0 -10
  178. package/tracer/node.js +0 -38
  179. package/tracer/node.js.map +0 -1
  180. package/tracer/types.d.ts +0 -2
  181. package/tracer/types.js +0 -3
@@ -1,8 +1,14 @@
1
- import type { Tracer } from '../../tracer/types';
2
- import type { Handler } from 'express';
1
+ import { Tracer } from '@opentelemetry/api';
2
+ import type { Request, Handler } from 'express';
3
3
  /**
4
4
  * Возвращает новый middleware для трассировки стадий входящего запроса.
5
5
  * @param tracer Tracer.
6
6
  * @return Middleware.
7
7
  */
8
8
  export declare function tracingMiddleware(tracer: Tracer): Handler;
9
+ /**
10
+ * Возвращает набор стандартных атрибутов для спана.
11
+ * @param req Входящий http-запрос.
12
+ * @return Атрибуты.
13
+ */
14
+ export declare function getConventionalRequestAttrs(req: Request): Record<string, string | undefined>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tracingMiddleware = void 0;
3
+ exports.getConventionalRequestAttrs = exports.tracingMiddleware = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  const api_1 = require("@opentelemetry/api");
6
6
  /**
@@ -12,6 +12,7 @@ function tracingMiddleware(tracer) {
12
12
  return (req, res, next) => {
13
13
  const externalContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, req.headers);
14
14
  const rootSpan = tracer.startSpan('response', undefined, externalContext);
15
+ rootSpan.setAttributes(getConventionalRequestAttrs(req));
15
16
  const rootContext = api_1.trace.setSpan(externalContext, rootSpan);
16
17
  res.locals.tracing = {
17
18
  rootSpan,
@@ -30,4 +31,21 @@ function tracingMiddleware(tracer) {
30
31
  };
31
32
  }
32
33
  exports.tracingMiddleware = tracingMiddleware;
34
+ /**
35
+ * Возвращает набор стандартных атрибутов для спана.
36
+ * @param req Входящий http-запрос.
37
+ * @return Атрибуты.
38
+ */
39
+ function getConventionalRequestAttrs(req) {
40
+ const result = {
41
+ 'request.path': req.originalUrl,
42
+ };
43
+ for (const headerName in req.headers) {
44
+ if (headerName.toLowerCase().startsWith('simaland-')) {
45
+ result[headerName] = req.header(headerName);
46
+ }
47
+ }
48
+ return result;
49
+ }
50
+ exports.getConventionalRequestAttrs = getConventionalRequestAttrs;
33
51
  //# sourceMappingURL=tracing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/http-server/middleware/tracing.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,4CAAsE;AAItE;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,eAAe,GAAG,iBAAW,CAAC,OAAO,CAAC,kBAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,WAAK,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAE7D,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG;YACnB,QAAQ;YACR,WAAW;SACZ,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,EAAE,GAAG,EAAE;YACxC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,EAAE,GAAG,EAAE;YACzC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,QAAQ,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAzBD,8CAyBC"}
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/http-server/middleware/tracing.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,4CAA8E;AAG9E;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,eAAe,GAAG,iBAAW,CAAC,OAAO,CAAC,kBAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAE1E,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG,WAAK,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAE7D,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG;YACnB,QAAQ;YACR,WAAW;SACZ,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,EAAE,GAAG,EAAE;YACxC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,EAAE,GAAG,EAAE;YACzC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,QAAQ,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AA5BD,8CA4BC;AAED;;;;GAIG;AACH,SAAgB,2BAA2B,CAAC,GAAY;IACtD,MAAM,MAAM,GAAuC;QACjD,cAAc,EAAE,GAAG,CAAC,WAAW;KAChC,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,OAAO,EAAE;QACpC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YACpD,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAC7C;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,kEAYC"}
@@ -21,9 +21,15 @@ exports.pageTemplate = (0, ejs_1.compile)(`
21
21
  line-height: inherit;
22
22
  }
23
23
  </style>
24
+ <% if (assets.criticalCss) { %>
25
+ <link rel="stylesheet" href="<%= assets.criticalCss %>">
26
+ <% } %>
24
27
  <% if (assets.css) { %>
25
28
  <link rel="stylesheet" href="<%= assets.css %>">
26
29
  <% } %>
30
+ <% if (assets.criticalJs) { %>
31
+ <script src="<%= assets.criticalJs %>"></script>
32
+ <% } %>
27
33
  </head>
28
34
  <body>
29
35
  <%- markup %>
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http-server/template/index.ts"],"names":[],"mappings":";;;AAAA,6BAA8B;AAEjB,QAAA,YAAY,GAAG,IAAA,aAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BnC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http-server/template/index.ts"],"names":[],"mappings":";;;AAAA,6BAA8B;AAEjB,QAAA,YAAY,GAAG,IAAA,aAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCnC,CAAC,CAAC"}
@@ -7,6 +7,8 @@ export interface ResponseContext {
7
7
  export interface PageAssets {
8
8
  js: string;
9
9
  css: string;
10
+ criticalJs?: string;
11
+ criticalCss?: string;
10
12
  }
11
13
  export interface PageTemplateData {
12
14
  markup: string;
@@ -1,5 +1,6 @@
1
1
  import type { Request, Response } from 'express';
2
- import type { PageTemplate, PageTemplateData } from './types';
2
+ import type { PageAssets, PageTemplate, PageTemplateData } from './types';
3
+ import type { BaseConfig } from '../config/types';
3
4
  /**
4
5
  * Определяет IP входящего запроса.
5
6
  * @param req Входящий запрос.
@@ -12,18 +13,23 @@ export declare function getXClientIp(req: Request): string;
12
13
  * @return Служебные заголовки.
13
14
  */
14
15
  export declare function getServiceHeaders(req: Request): Record<string, string | undefined>;
16
+ /**
17
+ * Формирует заголовки для исходящих запросов с сервера по соглашению.
18
+ * @param config Конфиг.
19
+ * @param request Входящий запрос.
20
+ * @return Заголовки для исходящих запросов.
21
+ */
22
+ export declare function getRequestHeaders(config: BaseConfig, request: Request): Record<string, string>;
15
23
  export declare class PageResponse {
16
24
  private type;
17
25
  private html;
18
- private assets;
26
+ private _assets;
19
27
  private _template;
20
- static create(): PageResponse;
21
28
  static defineFormat(req: Request): PageResponse['type'];
22
29
  static defaultTemplate({ markup }: PageTemplateData): string;
23
30
  constructor();
24
31
  markup(html: string): this;
25
- script(url: string): this;
26
- styles(url: string): this;
32
+ assets(assets: PageAssets): this;
27
33
  format(type: PageResponse['type']): this;
28
34
  template(template: PageTemplate): this;
29
35
  send(res: Response): void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PageResponse = exports.getServiceHeaders = exports.getXClientIp = void 0;
3
+ exports.PageResponse = exports.getRequestHeaders = exports.getServiceHeaders = exports.getXClientIp = void 0;
4
4
  const net_1 = require("net");
5
5
  /**
6
6
  * Определяет IP входящего запроса.
@@ -27,17 +27,29 @@ function getServiceHeaders(req) {
27
27
  return result;
28
28
  }
29
29
  exports.getServiceHeaders = getServiceHeaders;
30
+ /**
31
+ * Формирует заголовки для исходящих запросов с сервера по соглашению.
32
+ * @param config Конфиг.
33
+ * @param request Входящий запрос.
34
+ * @return Заголовки для исходящих запросов.
35
+ */
36
+ function getRequestHeaders(config, request) {
37
+ return {
38
+ 'X-Client-Ip': getXClientIp(request),
39
+ 'User-Agent': `simaland-${config.appName}/${config.appVersion}`,
40
+ Cookie: request.get('cookie') || '',
41
+ ...getServiceHeaders(request),
42
+ };
43
+ }
44
+ exports.getRequestHeaders = getRequestHeaders;
30
45
  /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
31
46
  class PageResponse {
32
47
  constructor() {
33
48
  this.type = 'html';
34
49
  this.html = '';
35
- this.assets = { js: '', css: '' };
50
+ this._assets = { js: '', css: '' };
36
51
  this._template = PageResponse.defaultTemplate;
37
52
  }
38
- static create() {
39
- return new PageResponse();
40
- }
41
53
  static defineFormat(req) {
42
54
  let result = 'html';
43
55
  if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
@@ -52,12 +64,8 @@ class PageResponse {
52
64
  this.html = html;
53
65
  return this;
54
66
  }
55
- script(url) {
56
- this.assets.js = url;
57
- return this;
58
- }
59
- styles(url) {
60
- this.assets.css = url;
67
+ assets(assets) {
68
+ this._assets = assets;
61
69
  return this;
62
70
  }
63
71
  format(type) {
@@ -72,21 +80,29 @@ class PageResponse {
72
80
  const templateData = {
73
81
  type: this.type,
74
82
  markup: this.html,
75
- assets: this.assets,
83
+ assets: this._assets,
76
84
  };
77
85
  switch (this.type) {
78
86
  case 'json': {
79
87
  const result = {
80
88
  markup: this._template(templateData),
81
- bundle_js: this.assets.js,
82
- bundle_css: this.assets.css,
89
+ bundle_js: this._assets.js,
90
+ bundle_css: this._assets.css,
91
+ critical_js: this._assets.criticalJs,
92
+ critical_css: this._assets.criticalCss,
83
93
  };
84
94
  res.json(result);
85
95
  break;
86
96
  }
87
97
  case 'html': {
88
- res.setHeader('simaland-bundle-js', this.assets.js);
89
- res.setHeader('simaland-bundle-css', this.assets.css);
98
+ res.setHeader('simaland-bundle-js', this._assets.js);
99
+ res.setHeader('simaland-bundle-css', this._assets.css);
100
+ if (this._assets.criticalJs) {
101
+ res.setHeader('simaland-critical-js', this._assets.criticalJs);
102
+ }
103
+ if (this._assets.criticalCss) {
104
+ res.setHeader('simaland-critical-css', this._assets.criticalCss);
105
+ }
90
106
  res.send(this._template(templateData));
91
107
  break;
92
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":";;;AAEA,6BAA2B;AAE3B;;;;GAIG;AACH,SAAgB,YAAY,CAAC,GAAY;IACvC,MAAM,WAAW,GACf,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IAEzF,OAAO,IAAA,UAAI,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AALD,oCAKC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAuC,EAAE,CAAC;IAEtD,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC/C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAChD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC/B;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAVD,8CAUC;AAED,uDAAuD;AACvD,MAAa,YAAY;IAwBvB;QACE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC;IAChD,CAAC;IAvBD,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,GAAY;QAC9B,IAAI,MAAM,GAAyB,MAAM,CAAC;QAE1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YAC3E,MAAM,GAAG,MAAM,CAAC;SACjB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAoB;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;IASD,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAA0B;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,QAAsB;QAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAa;QAChB,MAAM,YAAY,GAAqB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,MAAM,CAAC,CAAC;gBACX,MAAM,MAAM,GAAqB;oBAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;oBACpC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;oBACzB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;iBAC5B,CAAC;gBAEF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,MAAM;aACP;YACD,KAAK,MAAM,CAAC,CAAC;gBACX,GAAG,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEtD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvC,MAAM;aACP;YACD;gBACE,MAAM,KAAK,CAAC,2BAA2B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC/D;IACH,CAAC;CACF;AArFD,oCAqFC;AACD,sDAAsD"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { BaseConfig } from '../../config/types';
2
- import { LoggerEventHandler } from '../types';
2
+ import type { LoggerEventHandler } from '../types';
3
3
  /**
4
4
  * Возвращает новый handler для logger'а для вывода событий в терминал.
5
5
  * @param config Конфиг.
@@ -20,12 +20,22 @@ function createConsoleHandler(config) {
20
20
  level: label => ({ level: label }),
21
21
  },
22
22
  }
23
- : (0, pino_pretty_1.default)({ colorize: true }));
24
- return function (event) {
23
+ : (0, pino_pretty_1.default)({
24
+ colorize: true,
25
+ translateTime: 'yyyy-mm-dd HH:MM:ss.l o',
26
+ }));
27
+ return function handler(event) {
25
28
  switch (event.type) {
29
+ case 'log':
26
30
  case 'info':
27
31
  logger.info(event.data);
28
32
  break;
33
+ case 'warn':
34
+ logger.warn(event.data);
35
+ break;
36
+ case 'debug':
37
+ logger.debug(event.data);
38
+ break;
29
39
  case 'error':
30
40
  logger.error(event.data);
31
41
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logger/handler/console.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AACxB,8DAAqC;AAGrC;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAA,cAAI,EACjB,MAAM;QACJ,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACnC;SACF;QACH,CAAC,CAAC,IAAA,qBAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACnC,CAAC;IAEF,OAAO,UAAU,KAAK;QACpB,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;SACT;IACH,CAAC,CAAC;AACJ,CAAC;AAxBD,oDAwBC"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logger/handler/console.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AACxB,8DAAqC;AAErC;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAA,cAAI,EACjB,MAAM;QACJ,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACnC;SACF;QACH,CAAC,CAAC,IAAA,qBAAU,EAAC;YACT,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,yBAAyB;SACzC,CAAC,CACP,CAAC;IAEF,OAAO,SAAS,OAAO,CAAC,KAAK;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;SACT;IACH,CAAC,CAAC;AACJ,CAAC;AAlCD,oDAkCC"}
@@ -1,8 +1,8 @@
1
- import type { SentryLib } from '../../error-tracker/types';
2
1
  import type { LoggerEventHandler } from '../types';
2
+ import type { Hub } from '@sentry/types';
3
3
  /**
4
4
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
5
- * @param sentry Набор данных для работы с Sentry.
5
+ * @param hub Sentry Hub.
6
6
  * @return Handler.
7
7
  */
8
- export declare function createSentryHandler(sentry: SentryLib): LoggerEventHandler;
8
+ export declare function createSentryHandler(hub: Hub): LoggerEventHandler;
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSentryHandler = void 0;
4
- const utils_1 = require("../../error-tracker/utils");
4
+ const error_tracking_1 = require("../../error-tracking");
5
5
  /**
6
6
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
7
- * @param sentry Набор данных для работы с Sentry.
7
+ * @param hub Sentry Hub.
8
8
  * @return Handler.
9
9
  */
10
- function createSentryHandler(sentry) {
10
+ function createSentryHandler(hub) {
11
11
  return event => {
12
+ // error
12
13
  if (event.type === 'error') {
13
14
  const error = event.data;
14
- if (error instanceof utils_1.SentryError) {
15
+ if (error instanceof error_tracking_1.SentryError) {
15
16
  const { level, context, extra } = error.data;
16
- sentry.withScope(scope => {
17
+ hub.withScope(scope => {
17
18
  if (level) {
18
19
  scope.setLevel(level);
19
20
  }
@@ -23,13 +24,18 @@ function createSentryHandler(sentry) {
23
24
  if (extra) {
24
25
  scope.setExtra(extra.key, extra.data);
25
26
  }
26
- sentry.client.captureException(error);
27
+ hub.captureException(error);
27
28
  });
28
29
  }
29
30
  else {
30
- sentry.client.captureException(error);
31
+ hub.captureException(error);
31
32
  }
32
33
  }
34
+ // breadcrumb
35
+ if (event.data instanceof error_tracking_1.SentryBreadcrumb) {
36
+ const breadcrumb = event.data.data;
37
+ hub.addBreadcrumb(breadcrumb);
38
+ }
33
39
  };
34
40
  }
35
41
  exports.createSentryHandler = createSentryHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/logger/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAExD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,MAAiB;IACnD,OAAO,KAAK,CAAC,EAAE;QACb,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,IAAI,KAAK,YAAY,mBAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE7C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACvB,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACvB;oBAED,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;qBAC7C;oBAED,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;qBACvC;oBAED,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACvC;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AA5BD,kDA4BC"}
1
+ {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/logger/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,yDAAqE;AAErE;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,GAAQ;IAC1C,OAAO,KAAK,CAAC,EAAE;QACb,QAAQ;QACR,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,IAAI,KAAK,YAAY,4BAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE7C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACpB,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACvB;oBAED,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;qBAC7C;oBAED,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;qBACvC;oBAED,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC7B;SACF;QAED,aAAa;QACb,IAAI,KAAK,CAAC,IAAI,YAAY,iCAAgB,EAAE;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAEnC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;AACJ,CAAC;AApCD,kDAoCC"}
package/logger/index.d.ts CHANGED
@@ -1,6 +1,2 @@
1
- import type { Logger } from './types';
2
- /**
3
- * Возвращает новый logger - объект для журналирования событий подобно console.
4
- * @return Logger.
5
- */
6
- export declare function createLogger(): Logger;
1
+ export { Logger, LoggerEvent, LoggerEventType, LoggerEventHandler } from './types';
2
+ export { createLogger } from './logger';
package/logger/index.js CHANGED
@@ -1,31 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLogger = void 0;
4
- /**
5
- * Возвращает новый logger - объект для журналирования событий подобно console.
6
- * @return Logger.
7
- */
8
- function createLogger() {
9
- const handlers = [];
10
- // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
11
- function createMethod(type) {
12
- return function (data) {
13
- const event = { type, data };
14
- for (const handler of handlers) {
15
- handler(event);
16
- }
17
- };
18
- }
19
- return {
20
- log: createMethod('log'),
21
- info: createMethod('info'),
22
- warn: createMethod('warn'),
23
- error: createMethod('error'),
24
- debug: createMethod('debug'),
25
- subscribe: handler => {
26
- handlers.push(handler);
27
- },
28
- };
29
- }
30
- exports.createLogger = createLogger;
4
+ var logger_1 = require("./logger");
5
+ Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
31
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8DAA8D;IAC9D,SAAS,YAAY,CAAC,IAAqB;QACzC,OAAO,UAAU,IAAS;YACxB,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAE5B,SAAS,EAAE,OAAO,CAAC,EAAE;YACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAxBD,oCAwBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
@@ -0,0 +1,6 @@
1
+ import type { Logger } from './types';
2
+ /**
3
+ * Возвращает новый logger - объект для журналирования событий подобно console.
4
+ * @return Logger.
5
+ */
6
+ export declare function createLogger(): Logger;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogger = void 0;
4
+ /**
5
+ * Возвращает новый logger - объект для журналирования событий подобно console.
6
+ * @return Logger.
7
+ */
8
+ function createLogger() {
9
+ const handlers = [];
10
+ // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
11
+ function createMethod(type) {
12
+ return function (data) {
13
+ const event = { type, data };
14
+ for (const handler of handlers) {
15
+ handler(event);
16
+ }
17
+ };
18
+ }
19
+ return {
20
+ log: createMethod('log'),
21
+ info: createMethod('info'),
22
+ warn: createMethod('warn'),
23
+ error: createMethod('error'),
24
+ debug: createMethod('debug'),
25
+ subscribe: handler => {
26
+ handlers.push(handler);
27
+ },
28
+ };
29
+ }
30
+ exports.createLogger = createLogger;
31
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8DAA8D;IAC9D,SAAS,YAAY,CAAC,IAAqB;QACzC,OAAO,UAAU,IAAS;YACxB,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAE5B,SAAS,EAAE,OAAO,CAAC,EAAE;YACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAxBD,oCAwBC"}
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.2",
3
+ "version": "11.0.0-alpha.22",
4
4
  "description": "Tiny framework for fast start frontend microservices",
5
5
  "author": "www.sima-land.ru team",
6
6
  "license": "Apache-2.0",
@@ -15,50 +15,56 @@
15
15
  "test": "jest",
16
16
  "test:coverage": "jest --clearCache && jest --coverage"
17
17
  },
18
+ "engines": {
19
+ "node": ">=16.15.1"
20
+ },
18
21
  "devDependencies": {
19
- "@sima-land/linters": "^2.1.2",
20
- "@swc/jest": "^0.2.20",
22
+ "@sima-land/linters": "^2.1.5",
23
+ "@swc/jest": "^0.2.22",
21
24
  "@testing-library/react": "^12.1.3",
22
25
  "@types/ejs": "^3.1.1",
23
26
  "@types/express": "^4.17.13",
24
- "@types/jest": "^27.4.1",
25
- "@types/lodash": "^4.14.182",
27
+ "@types/jest": "^28.1.7",
28
+ "@types/jsesc": "^3.0.1",
29
+ "@types/lodash": "^4.14.184",
26
30
  "@types/react": "^17.0.40",
27
31
  "@types/react-dom": "^17.0.13",
28
32
  "@types/webpack": "^5.28.0",
29
- "husky": "^7.0.4",
30
- "jest": "^27.5.1",
31
- "typescript": "^4.6.2"
33
+ "husky": "^8.0.1",
34
+ "jest": "^28.1.3",
35
+ "jest-environment-jsdom": "^28.1.3",
36
+ "typescript": "^4.7.4"
32
37
  },
33
38
  "dependencies": {
34
- "@humanwhocodes/env": "^2.2.0",
35
- "@opentelemetry/api": "^1.0.4",
36
- "@opentelemetry/exporter-jaeger": "^1.0.1",
37
- "@opentelemetry/instrumentation": "^0.27.0",
38
- "@opentelemetry/instrumentation-express": "^0.28.0",
39
- "@opentelemetry/instrumentation-http": "^0.27.0",
40
- "@opentelemetry/resources": "^1.0.1",
41
- "@opentelemetry/sdk-trace-node": "^1.0.1",
42
- "@opentelemetry/semantic-conventions": "^1.0.1",
39
+ "@humanwhocodes/env": "^2.2.2",
40
+ "@opentelemetry/api": "^1.1.0",
41
+ "@opentelemetry/exporter-jaeger": "^1.5.0",
42
+ "@opentelemetry/instrumentation": "^0.31.0",
43
+ "@opentelemetry/instrumentation-express": "^0.30.0",
44
+ "@opentelemetry/instrumentation-http": "^0.31.0",
45
+ "@opentelemetry/resources": "^1.5.0",
46
+ "@opentelemetry/sdk-trace-node": "^1.5.0",
47
+ "@opentelemetry/semantic-conventions": "^1.5.0",
43
48
  "@opentelemetry/tracing": "^0.24.0",
44
- "@sentry/browser": "^6.19.3",
45
- "@sentry/node": "^6.19.3",
49
+ "@sentry/browser": "^7.11.1",
50
+ "@sentry/node": "^7.11.1",
46
51
  "dotenv": "^16.0.0",
47
52
  "ejs": "^3.1.8",
48
53
  "express": "^4.17.3",
54
+ "jsesc": "^3.0.2",
49
55
  "middleware-axios": "^2.1.2",
50
- "pino": "^7.9.1",
51
- "pino-pretty": "^7.5.4",
56
+ "pino": "^8.4.2",
57
+ "pino-pretty": "^9.0.1",
52
58
  "prom-client": "^14.0.1",
53
- "webpack": "^5.72.0"
59
+ "webpack": "^5.74.0"
54
60
  },
55
61
  "peerDependencies": {
56
- "@reduxjs/toolkit": "^1.8.0",
62
+ "@reduxjs/toolkit": "^1.8.5",
57
63
  "axios": "^0.24.0",
58
64
  "lodash": "^4.17.21",
59
65
  "react": "^17.0.2",
60
66
  "react-dom": "^17.0.2",
61
- "react-redux": "^7.2.6",
62
- "redux-saga": "^1.1.3"
67
+ "react-redux": "^8.0.2",
68
+ "redux-saga": "^1.2.1"
63
69
  }
64
70
  }