@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.
- package/cache/types.d.ts +24 -2
- package/config/{index.d.ts → base.d.ts} +2 -2
- package/config/{index.js → base.js} +3 -3
- package/config/base.js.map +1 -0
- package/config/browser.d.ts +1 -1
- package/config/browser.js +11 -2
- package/config/browser.js.map +1 -1
- package/config/node.d.ts +1 -1
- package/config/node.js +17 -6
- package/config/node.js.map +1 -1
- package/config/types.d.ts +3 -0
- package/di/application.d.ts +10 -0
- package/{container → di}/application.js +30 -8
- package/di/application.js.map +1 -0
- package/di/container.d.ts +6 -0
- package/di/container.js +52 -0
- package/di/container.js.map +1 -0
- package/di/errors.d.ts +32 -0
- package/di/errors.js +48 -0
- package/di/errors.js.map +1 -0
- package/di/index.d.ts +6 -0
- package/di/index.js +17 -0
- package/di/index.js.map +1 -0
- package/di/preset.d.ts +9 -0
- package/di/preset.js +31 -0
- package/di/preset.js.map +1 -0
- package/di/token.d.ts +7 -0
- package/di/token.js +39 -0
- package/di/token.js.map +1 -0
- package/di/types.d.ts +88 -0
- package/{container → di}/types.js +0 -0
- package/{tracer → di}/types.js.map +1 -1
- package/error-tracking/index.d.ts +24 -0
- package/error-tracking/index.js +32 -0
- package/error-tracking/index.js.map +1 -0
- package/error-tracking/types.d.ts +19 -0
- package/{error-tracker → error-tracking}/types.js +0 -0
- package/{container → error-tracking}/types.js.map +1 -1
- package/http-client/middleware/cookie.d.ts +1 -0
- package/http-client/middleware/cookie.js +2 -1
- package/http-client/middleware/cookie.js.map +1 -1
- package/http-client/middleware/headers.d.ts +13 -0
- package/http-client/middleware/headers.js +24 -0
- package/http-client/middleware/headers.js.map +1 -0
- package/http-client/middleware/logging.d.ts +16 -0
- package/http-client/middleware/logging.js +109 -0
- package/http-client/middleware/logging.js.map +1 -0
- package/http-client/middleware/tracing.d.ts +3 -3
- package/http-client/middleware/tracing.js +22 -9
- package/http-client/middleware/tracing.js.map +1 -1
- package/http-client/sauce/index.d.ts +3 -1
- package/http-client/sauce/index.js +15 -2
- package/http-client/sauce/index.js.map +1 -1
- package/http-client/utils.d.ts +6 -7
- package/http-client/utils.js +24 -14
- package/http-client/utils.js.map +1 -1
- package/http-server/errors.d.ts +11 -0
- package/http-server/errors.js +18 -0
- package/http-server/errors.js.map +1 -0
- package/http-server/handler/health-check.d.ts +1 -1
- package/http-server/handler/health-check.js +1 -1
- package/http-server/middleware/metrics.js +2 -2
- package/http-server/middleware/metrics.js.map +1 -1
- package/http-server/middleware/tracing.d.ts +8 -2
- package/http-server/middleware/tracing.js +19 -1
- package/http-server/middleware/tracing.js.map +1 -1
- package/http-server/template/index.js +6 -0
- package/http-server/template/index.js.map +1 -1
- package/http-server/types.d.ts +2 -0
- package/http-server/utils.d.ts +11 -5
- package/http-server/utils.js +32 -16
- package/http-server/utils.js.map +1 -1
- package/logger/handler/console.d.ts +1 -1
- package/logger/handler/console.js +12 -2
- package/logger/handler/console.js.map +1 -1
- package/logger/handler/sentry.d.ts +3 -3
- package/logger/handler/sentry.js +13 -7
- package/logger/handler/sentry.js.map +1 -1
- package/logger/index.d.ts +2 -6
- package/logger/index.js +2 -27
- package/logger/index.js.map +1 -1
- package/logger/logger.d.ts +6 -0
- package/logger/logger.js +31 -0
- package/logger/logger.js.map +1 -0
- package/logger/types.d.ts +16 -0
- package/metrics/constants.d.ts +3 -0
- package/metrics/constants.js +3 -0
- package/metrics/constants.js.map +1 -1
- package/metrics/node.d.ts +7 -0
- package/metrics/node.js +1 -0
- package/metrics/node.js.map +1 -1
- package/package.json +31 -25
- package/preset/browser/index.d.ts +12 -0
- package/preset/browser/index.js +69 -0
- package/preset/browser/index.js.map +1 -0
- package/preset/node/index.d.ts +14 -6
- package/preset/node/index.js +94 -36
- package/preset/node/index.js.map +1 -1
- package/preset/node/response.d.ts +14 -8
- package/preset/node/response.js +95 -27
- package/preset/node/response.js.map +1 -1
- package/preset/types.d.ts +7 -6
- package/preset/utils.d.ts +15 -0
- package/preset/utils.js +26 -0
- package/preset/utils.js.map +1 -0
- package/tokens.d.ts +35 -18
- package/tokens.js +32 -17
- package/tokens.js.map +1 -1
- package/tracing/index.d.ts +9 -0
- package/tracing/index.js +20 -0
- package/tracing/index.js.map +1 -0
- package/utils/browser/analytics/oko.d.ts +2 -1
- package/utils/browser/analytics/oko.js +2 -1
- package/utils/browser/analytics/oko.js.map +1 -1
- package/utils/browser/storage/index.d.ts +8 -0
- package/utils/browser/storage/index.js +5 -0
- package/utils/browser/storage/index.js.map +1 -1
- package/utils/react/error-handlers/index.d.ts +9 -6
- package/utils/react/error-handlers/index.js +4 -3
- package/utils/react/error-handlers/index.js.map +1 -1
- package/utils/redux/remote-data.d.ts +9 -0
- package/utils/redux/remote-data.js +3 -0
- package/utils/redux/remote-data.js.map +1 -1
- package/utils/redux-saga/index.d.ts +3 -0
- package/utils/redux-saga/index.js +8 -0
- package/utils/redux-saga/index.js.map +1 -0
- package/utils/redux-saga/middleware.d.ts +9 -0
- package/utils/redux-saga/middleware.js +87 -0
- package/utils/redux-saga/middleware.js.map +1 -0
- package/utils/redux-saga/take-chain.d.ts +2 -0
- package/utils/redux-saga/take-chain.js +2 -0
- package/utils/redux-saga/take-chain.js.map +1 -1
- package/utils/redux-saga/types.d.ts +6 -0
- package/{saga-runner → utils/redux-saga}/types.js +0 -0
- package/{error-tracker → utils/redux-saga}/types.js.map +1 -1
- package/utils/ssr/index.d.ts +41 -0
- package/utils/ssr/index.js +54 -0
- package/utils/ssr/index.js.map +1 -0
- package/utils/webpack/index.d.ts +23 -0
- package/utils/webpack/index.js +68 -0
- package/utils/webpack/index.js.map +1 -0
- package/utils/webpack/module-federation/index.d.ts +4 -1
- package/utils/webpack/module-federation/index.js +4 -2
- package/utils/webpack/module-federation/index.js.map +1 -1
- package/utils/webpack/module-federation/types.d.ts +4 -0
- package/utils/webpack/module-federation/utils.d.ts +1 -0
- package/utils/webpack/module-federation/utils.js +1 -0
- package/utils/webpack/module-federation/utils.js.map +1 -1
- package/config/index.js.map +0 -1
- package/config/utils.d.ts +0 -5
- package/config/utils.js +0 -12
- package/config/utils.js.map +0 -1
- package/container/application.d.ts +0 -25
- package/container/application.js.map +0 -1
- package/container/index.d.ts +0 -18
- package/container/index.js +0 -74
- package/container/index.js.map +0 -1
- package/container/types.d.ts +0 -14
- package/error-tracker/browser.d.ts +0 -8
- package/error-tracker/browser.js +0 -40
- package/error-tracker/browser.js.map +0 -1
- package/error-tracker/node.d.ts +0 -8
- package/error-tracker/node.js +0 -40
- package/error-tracker/node.js.map +0 -1
- package/error-tracker/types.d.ts +0 -18
- package/error-tracker/utils.d.ts +0 -12
- package/error-tracker/utils.js +0 -19
- package/error-tracker/utils.js.map +0 -1
- package/preset/index.d.ts +0 -7
- package/preset/index.js +0 -25
- package/preset/index.js.map +0 -1
- package/saga-runner/index.d.ts +0 -8
- package/saga-runner/index.js +0 -79
- package/saga-runner/index.js.map +0 -1
- package/saga-runner/types.d.ts +0 -10
- package/saga-runner/types.js.map +0 -1
- package/tracer/node.d.ts +0 -10
- package/tracer/node.js +0 -38
- package/tracer/node.js.map +0 -1
- package/tracer/types.d.ts +0 -2
- package/tracer/types.js +0 -3
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import
|
|
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,
|
|
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
|
|
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"}
|
package/http-server/types.d.ts
CHANGED
package/http-server/utils.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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;
|
package/http-server/utils.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
56
|
-
this.
|
|
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.
|
|
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.
|
|
82
|
-
bundle_css: this.
|
|
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.
|
|
89
|
-
res.setHeader('simaland-bundle-css', this.
|
|
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
|
}
|
package/http-server/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,12 +20,22 @@ function createConsoleHandler(config) {
|
|
|
20
20
|
level: label => ({ level: label }),
|
|
21
21
|
},
|
|
22
22
|
}
|
|
23
|
-
: (0, pino_pretty_1.default)({
|
|
24
|
-
|
|
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":";;;;;;
|
|
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
|
|
5
|
+
* @param hub Sentry Hub.
|
|
6
6
|
* @return Handler.
|
|
7
7
|
*/
|
|
8
|
-
export declare function createSentryHandler(
|
|
8
|
+
export declare function createSentryHandler(hub: Hub): LoggerEventHandler;
|
package/logger/handler/sentry.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createSentryHandler = void 0;
|
|
4
|
-
const
|
|
4
|
+
const error_tracking_1 = require("../../error-tracking");
|
|
5
5
|
/**
|
|
6
6
|
* Возвращает новый handler для logger'а для отправки событий в Sentry.
|
|
7
|
-
* @param
|
|
7
|
+
* @param hub Sentry Hub.
|
|
8
8
|
* @return Handler.
|
|
9
9
|
*/
|
|
10
|
-
function createSentryHandler(
|
|
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
|
|
15
|
+
if (error instanceof error_tracking_1.SentryError) {
|
|
15
16
|
const { level, context, extra } = error.data;
|
|
16
|
-
|
|
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
|
-
|
|
27
|
+
hub.captureException(error);
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
else {
|
|
30
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/logger/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
|
package/logger/logger.js
ADDED
|
@@ -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;
|
package/metrics/constants.d.ts
CHANGED
package/metrics/constants.js
CHANGED
|
@@ -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'],
|
package/metrics/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/metrics/constants.ts"],"names":[],"mappings":";;;
|
|
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() {
|
package/metrics/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/metrics/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA+C;AAC/C,wDAA0C;AAC1C,2CAAiD;
|
|
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.
|
|
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.
|
|
20
|
-
"@swc/jest": "^0.2.
|
|
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": "^
|
|
25
|
-
"@types/
|
|
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": "^
|
|
30
|
-
"jest": "^
|
|
31
|
-
"
|
|
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.
|
|
35
|
-
"@opentelemetry/api": "^1.0
|
|
36
|
-
"@opentelemetry/exporter-jaeger": "^1.0
|
|
37
|
-
"@opentelemetry/instrumentation": "^0.
|
|
38
|
-
"@opentelemetry/instrumentation-express": "^0.
|
|
39
|
-
"@opentelemetry/instrumentation-http": "^0.
|
|
40
|
-
"@opentelemetry/resources": "^1.0
|
|
41
|
-
"@opentelemetry/sdk-trace-node": "^1.0
|
|
42
|
-
"@opentelemetry/semantic-conventions": "^1.0
|
|
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": "^
|
|
45
|
-
"@sentry/node": "^
|
|
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": "^
|
|
51
|
-
"pino-pretty": "^
|
|
56
|
+
"pino": "^8.4.2",
|
|
57
|
+
"pino-pretty": "^9.0.1",
|
|
52
58
|
"prom-client": "^14.0.1",
|
|
53
|
-
"webpack": "^5.
|
|
59
|
+
"webpack": "^5.74.0"
|
|
54
60
|
},
|
|
55
61
|
"peerDependencies": {
|
|
56
|
-
"@reduxjs/toolkit": "^1.8.
|
|
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": "^
|
|
62
|
-
"redux-saga": "^1.1
|
|
67
|
+
"react-redux": "^8.0.2",
|
|
68
|
+
"redux-saga": "^1.2.1"
|
|
63
69
|
}
|
|
64
70
|
}
|