@sima-land/isomorph 11.0.0-alpha.33 → 11.0.0-alpha.35
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 +1 -0
- package/config/index.d.ts +3 -0
- package/config/index.js +8 -0
- package/config/index.js.map +1 -0
- package/config/source.d.ts +7 -0
- package/config/{browser.js → source.js} +6 -7
- package/config/source.js.map +1 -0
- package/config/types.d.ts +6 -0
- package/di/application.js +33 -29
- package/di/application.js.map +1 -1
- package/di/errors.d.ts +7 -4
- package/di/errors.js +18 -7
- package/di/errors.js.map +1 -1
- package/di/index.d.ts +1 -1
- package/di/preset.d.ts +1 -1
- package/di/preset.js +0 -4
- package/di/preset.js.map +1 -1
- package/di/token.js +1 -1
- package/di/token.js.map +1 -1
- package/di/types.d.ts +0 -2
- package/http/errors.d.ts +16 -0
- package/http/errors.js +26 -0
- package/http/errors.js.map +1 -0
- package/http/index.d.ts +4 -0
- package/http/index.js +14 -0
- package/http/index.js.map +1 -0
- package/http/types.d.ts +2 -0
- package/{error-tracking → http}/types.js.map +1 -1
- package/http-server/types.d.ts +2 -17
- package/http-server/utils.d.ts +9 -5
- package/http-server/utils.js +27 -18
- package/http-server/utils.js.map +1 -1
- package/log/errors.d.ts +23 -0
- package/log/errors.js +31 -0
- package/log/errors.js.map +1 -0
- package/log/handler/pino.d.ts +2 -2
- package/log/handler/sentry.d.ts +2 -2
- package/log/handler/sentry.js +3 -3
- package/log/handler/sentry.js.map +1 -1
- package/log/index.d.ts +2 -1
- package/log/index.js +4 -1
- package/log/index.js.map +1 -1
- package/log/logger.js +6 -8
- package/log/logger.js.map +1 -1
- package/log/types.d.ts +31 -8
- package/package.json +37 -33
- package/preset/browser/index.d.ts +9 -2
- package/preset/browser/index.js +38 -21
- package/preset/browser/index.js.map +1 -1
- package/preset/node/{response.d.ts → handler.d.ts} +7 -8
- package/preset/node/handler.js +208 -0
- package/preset/node/handler.js.map +1 -0
- package/preset/node/index.d.ts +15 -9
- package/preset/node/index.js +195 -67
- package/preset/node/index.js.map +1 -1
- package/preset/parts/types.d.ts +6 -0
- package/preset/parts/utils.d.ts +2 -2
- package/preset/parts/utils.js +10 -8
- package/preset/parts/utils.js.map +1 -1
- package/tokens.d.ts +38 -21
- package/tokens.js +45 -27
- package/tokens.js.map +1 -1
- package/utils/function.d.ts +1 -1
- package/utils/react/error-handlers/index.d.ts +2 -2
- package/utils/react/error-handlers/index.js +1 -1
- package/utils/react/error-handlers/index.js.map +1 -1
- package/utils/react/index.d.ts +2 -0
- package/utils/react/index.js +7 -0
- package/utils/react/index.js.map +1 -0
- package/utils/redux/index.d.ts +2 -2
- package/utils/redux/index.js +1 -2
- package/utils/redux/index.js.map +1 -1
- package/utils/redux/remote-data.d.ts +5 -21
- package/utils/redux/remote-data.js +1 -20
- package/utils/redux/remote-data.js.map +1 -1
- package/utils/redux-saga/middleware.js.map +1 -1
- package/utils/ssr/index.d.ts +2 -3
- package/utils/ssr/index.js +1 -1
- package/utils/webpack/env/index.d.ts +2 -2
- package/utils/webpack/env/index.js.map +1 -1
- package/utils/webpack/env/utils.js +5 -5
- package/utils/webpack/env/utils.js.map +1 -1
- package/config/browser.d.ts +0 -6
- package/config/browser.js.map +0 -1
- package/config/node.d.ts +0 -6
- package/config/node.js +0 -30
- package/config/node.js.map +0 -1
- package/error-tracking/index.d.ts +0 -25
- package/error-tracking/index.js +0 -34
- package/error-tracking/index.js.map +0 -1
- package/error-tracking/types.d.ts +0 -20
- package/http-server/middleware/log.d.ts +0 -10
- package/http-server/middleware/log.js +0 -43
- package/http-server/middleware/log.js.map +0 -1
- package/http-server/middleware/metrics.d.ts +0 -23
- package/http-server/middleware/metrics.js +0 -60
- package/http-server/middleware/metrics.js.map +0 -1
- package/http-server/template/index.d.ts +0 -1
- package/http-server/template/index.js +0 -41
- package/http-server/template/index.js.map +0 -1
- package/metrics/constants.d.ts +0 -7
- package/metrics/constants.js +0 -11
- package/metrics/constants.js.map +0 -1
- package/metrics/node.d.ts +0 -25
- package/metrics/node.js +0 -75
- package/metrics/node.js.map +0 -1
- package/preset/node/response.js +0 -153
- package/preset/node/response.js.map +0 -1
- package/tracing/index.d.ts +0 -10
- package/tracing/index.js +0 -21
- package/tracing/index.js.map +0 -1
- /package/{error-tracking → http}/types.js +0 -0
package/log/errors.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Breadcrumb = exports.DetailedError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Ошибка с данными.
|
|
6
|
+
*/
|
|
7
|
+
class DetailedError extends Error {
|
|
8
|
+
/**
|
|
9
|
+
* @param message Сообщение.
|
|
10
|
+
* @param data Данные.
|
|
11
|
+
*/
|
|
12
|
+
constructor(message, data = {}) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.data = data;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.DetailedError = DetailedError;
|
|
18
|
+
/**
|
|
19
|
+
* Хлебная крошка.
|
|
20
|
+
*/
|
|
21
|
+
class Breadcrumb {
|
|
22
|
+
/**
|
|
23
|
+
* @param data Данные.
|
|
24
|
+
*/
|
|
25
|
+
constructor(data) {
|
|
26
|
+
this.type = 'breadcrumb';
|
|
27
|
+
this.data = data;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.Breadcrumb = Breadcrumb;
|
|
31
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/log/errors.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IAGtC;;;OAGG;IACH,YAAY,OAAgB,EAAE,OAAqB,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,sCAWC;AAED;;GAEG;AACH,MAAa,UAAU;IAIrB;;OAEG;IACH,YAAY,IAAuB;QACjC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,gCAWC"}
|
package/log/handler/pino.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LogHandler } from '../types';
|
|
2
2
|
import type pino from 'pino';
|
|
3
3
|
/**
|
|
4
4
|
* Возвращает новый handler для logger'а для вывода событий в терминал.
|
|
5
5
|
* @param pinoInstance Конфиг.
|
|
6
6
|
* @return Handler.
|
|
7
7
|
*/
|
|
8
|
-
export declare function createPinoHandler(pinoInstance: pino.Logger):
|
|
8
|
+
export declare function createPinoHandler(pinoInstance: pino.Logger): LogHandler;
|
package/log/handler/sentry.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LogHandler } from '../types';
|
|
2
2
|
import type { Hub } from '@sentry/types';
|
|
3
3
|
/**
|
|
4
4
|
* Возвращает новый handler для logger'а для отправки событий в Sentry.
|
|
5
5
|
* @param hubInit Sentry Hub или функция которая его вернёт.
|
|
6
6
|
* @return Handler.
|
|
7
7
|
*/
|
|
8
|
-
export declare function createSentryHandler(hubInit: Hub | (() => Hub)):
|
|
8
|
+
export declare function createSentryHandler(hubInit: Hub | (() => Hub)): LogHandler;
|
package/log/handler/sentry.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createSentryHandler = void 0;
|
|
4
|
-
const
|
|
4
|
+
const log_1 = require("../../log");
|
|
5
5
|
/**
|
|
6
6
|
* Возвращает новый handler для logger'а для отправки событий в Sentry.
|
|
7
7
|
* @param hubInit Sentry Hub или функция которая его вернёт.
|
|
@@ -17,7 +17,7 @@ function createSentryHandler(hubInit) {
|
|
|
17
17
|
// error
|
|
18
18
|
if (event.type === 'error') {
|
|
19
19
|
const error = event.data;
|
|
20
|
-
if (error instanceof
|
|
20
|
+
if (error instanceof log_1.DetailedError) {
|
|
21
21
|
const { level, context, extra } = error.data;
|
|
22
22
|
hub.withScope(scope => {
|
|
23
23
|
if (level) {
|
|
@@ -40,7 +40,7 @@ function createSentryHandler(hubInit) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
// breadcrumb
|
|
43
|
-
if (event.data instanceof
|
|
43
|
+
if (event.data instanceof log_1.Breadcrumb) {
|
|
44
44
|
const breadcrumb = event.data.data;
|
|
45
45
|
hub.addBreadcrumb(breadcrumb);
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/log/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/log/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,mCAAsD;AAEtD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,OAA0B;IAC5D,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAEvE,OAAO,KAAK,CAAC,EAAE;QACb,uEAAuE;QACvE,+EAA+E;QAC/E,2EAA2E;QAC3E,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QAErB,QAAQ;QACR,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,IAAI,KAAK,YAAY,mBAAa,EAAE;gBAClC,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,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAE1D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;4BACvB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;yBACvC;qBACF;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,gBAAU,EAAE;YACpC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAEnC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;AACJ,CAAC;AA/CD,kDA+CC"}
|
package/log/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { Logger,
|
|
1
|
+
export { Logger, LogEvent, LogLevel, LogHandler, ErrorDetails, BreadcrumbDetails, ContextData, } from './types';
|
|
2
2
|
export { createLogger } from './logger';
|
|
3
|
+
export { DetailedError, Breadcrumb } from './errors';
|
package/log/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createLogger = void 0;
|
|
3
|
+
exports.Breadcrumb = exports.DetailedError = exports.createLogger = void 0;
|
|
4
4
|
var logger_1 = require("./logger");
|
|
5
5
|
Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
|
|
6
|
+
var errors_1 = require("./errors");
|
|
7
|
+
Object.defineProperty(exports, "DetailedError", { enumerable: true, get: function () { return errors_1.DetailedError; } });
|
|
8
|
+
Object.defineProperty(exports, "Breadcrumb", { enumerable: true, get: function () { return errors_1.Breadcrumb; } });
|
|
6
9
|
//# sourceMappingURL=index.js.map
|
package/log/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":";;;AAUA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,mCAAqD;AAA5C,uGAAA,aAAa,OAAA;AAAE,oGAAA,UAAU,OAAA"}
|
package/log/logger.js
CHANGED
|
@@ -8,14 +8,12 @@ exports.createLogger = void 0;
|
|
|
8
8
|
function createLogger() {
|
|
9
9
|
const handlers = [];
|
|
10
10
|
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
}
|
|
11
|
+
const createMethod = (type) => (data) => {
|
|
12
|
+
const event = { type, data };
|
|
13
|
+
for (const handler of handlers) {
|
|
14
|
+
handler(event);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
19
17
|
return {
|
|
20
18
|
log: createMethod('log'),
|
|
21
19
|
info: createMethod('info'),
|
package/log/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAElC,8DAA8D;IAC9D,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;QACrD,MAAM,KAAK,GAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;SAChB;IACH,CAAC,CAAC;IAEF,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;AAvBD,oCAuBC"}
|
package/log/types.d.ts
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
+
import type { SeverityLevel, Context, Extra, Breadcrumb } from '@sentry/types';
|
|
1
2
|
/**
|
|
2
3
|
* Тип события.
|
|
3
4
|
*/
|
|
4
|
-
export type
|
|
5
|
+
export type LogLevel = 'error' | 'log' | 'info' | 'warn' | 'debug';
|
|
5
6
|
/**
|
|
6
7
|
* Интерфейс события.
|
|
7
8
|
*/
|
|
8
|
-
export interface
|
|
9
|
-
type:
|
|
9
|
+
export interface LogEvent {
|
|
10
|
+
type: LogLevel;
|
|
10
11
|
data: unknown;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* Интерфейс функции-обработчика события.
|
|
14
15
|
*/
|
|
15
|
-
export interface
|
|
16
|
-
(event:
|
|
16
|
+
export interface LogHandler {
|
|
17
|
+
(event: LogEvent): void;
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
|
-
*
|
|
20
|
+
* Logger.
|
|
20
21
|
* Поддерживает наиболее распространенные события жизненного цикла программы.
|
|
21
22
|
*/
|
|
22
23
|
export interface Logger {
|
|
@@ -25,11 +26,33 @@ export interface Logger {
|
|
|
25
26
|
info(data: any): void;
|
|
26
27
|
warn(data: any): void;
|
|
27
28
|
debug(data: any): void;
|
|
28
|
-
subscribe(handler:
|
|
29
|
+
subscribe(handler: LogHandler): void;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Контекст ошибки.
|
|
33
|
+
*/
|
|
34
|
+
export interface ContextData {
|
|
35
|
+
key: string;
|
|
36
|
+
data: Context | null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Детали ошибки.
|
|
40
|
+
*/
|
|
41
|
+
export interface ErrorDetails {
|
|
42
|
+
level?: SeverityLevel;
|
|
43
|
+
context?: ContextData | ContextData[];
|
|
44
|
+
extra?: {
|
|
45
|
+
key: string;
|
|
46
|
+
data: Extra | null;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Детали хлебной крошки.
|
|
51
|
+
*/
|
|
52
|
+
export type BreadcrumbDetails = Breadcrumb;
|
|
30
53
|
/**
|
|
31
54
|
* Структура данных, которую необходимо выводить в терминал по соглашению внутри компании.
|
|
32
|
-
* @todo Убрать в preset'
|
|
55
|
+
* @todo Убрать в preset'ы.
|
|
33
56
|
*/
|
|
34
57
|
export interface ConventionalFluentInfo {
|
|
35
58
|
version: string;
|
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.35",
|
|
4
4
|
"description": "Tiny framework for fast start frontend microservices",
|
|
5
5
|
"author": "www.sima-land.ru team",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -18,52 +18,56 @@
|
|
|
18
18
|
"node": ">=16.15.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
+
"@babel/core": "^7.22.5",
|
|
22
|
+
"@babel/preset-env": "^7.22.5",
|
|
23
|
+
"@babel/preset-react": "^7.22.5",
|
|
24
|
+
"@babel/preset-typescript": "^7.22.5",
|
|
21
25
|
"@sima-land/linters": "^2.1.5",
|
|
22
|
-
"@
|
|
23
|
-
"@
|
|
24
|
-
"@types/ejs": "^3.1.1",
|
|
25
|
-
"@types/express": "^4.17.13",
|
|
26
|
+
"@testing-library/react": "^14.0.0",
|
|
27
|
+
"@types/express": "^4.17.17",
|
|
26
28
|
"@types/jest": "^28.1.7",
|
|
27
29
|
"@types/jsesc": "^3.0.1",
|
|
28
|
-
"@types/lodash": "^4.14.
|
|
29
|
-
"@types/react": "^
|
|
30
|
-
"@types/react-dom": "^
|
|
31
|
-
"@types/webpack": "^5.28.
|
|
32
|
-
"
|
|
30
|
+
"@types/lodash": "^4.14.194",
|
|
31
|
+
"@types/react": "^18.2.14",
|
|
32
|
+
"@types/react-dom": "^18.2.6",
|
|
33
|
+
"@types/webpack": "^5.28.1",
|
|
34
|
+
"babel-jest": "^29.5.0",
|
|
35
|
+
"husky": "^8.0.3",
|
|
33
36
|
"jest": "^28.1.3",
|
|
34
37
|
"jest-environment-jsdom": "^28.1.3",
|
|
38
|
+
"prettier": "^2.8.8",
|
|
35
39
|
"typescript": "^4.9.4"
|
|
36
40
|
},
|
|
37
41
|
"dependencies": {
|
|
38
42
|
"@humanwhocodes/env": "^2.2.2",
|
|
39
|
-
"@
|
|
40
|
-
"@opentelemetry/
|
|
41
|
-
"@opentelemetry/
|
|
42
|
-
"@opentelemetry/
|
|
43
|
-
"@opentelemetry/
|
|
44
|
-
"@opentelemetry/resources": "^1.
|
|
45
|
-
"@opentelemetry/sdk-
|
|
46
|
-
"@opentelemetry/sdk-trace-
|
|
47
|
-
"@opentelemetry/
|
|
48
|
-
"@
|
|
49
|
-
"@sentry/
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"express": "^4.
|
|
43
|
+
"@krutoo/fetch-tools": "^0.0.7",
|
|
44
|
+
"@opentelemetry/api": "^1.4.1",
|
|
45
|
+
"@opentelemetry/exporter-prometheus": "^0.38.0",
|
|
46
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.39.1",
|
|
47
|
+
"@opentelemetry/propagator-jaeger": "^1.12.0",
|
|
48
|
+
"@opentelemetry/resources": "^1.12.0",
|
|
49
|
+
"@opentelemetry/sdk-metrics": "^1.12.0",
|
|
50
|
+
"@opentelemetry/sdk-trace-base": "^1.12.0",
|
|
51
|
+
"@opentelemetry/sdk-trace-node": "^1.12.0",
|
|
52
|
+
"@opentelemetry/semantic-conventions": "^1.12.0",
|
|
53
|
+
"@sentry/browser": "^7.51.2",
|
|
54
|
+
"@sentry/node": "^7.51.2",
|
|
55
|
+
"dotenv": "^16.3.1",
|
|
56
|
+
"express": "^4.18.2",
|
|
53
57
|
"jsesc": "^3.0.2",
|
|
54
58
|
"middleware-axios": "^2.1.5",
|
|
55
|
-
"pino": "^8.
|
|
59
|
+
"pino": "^8.14.1",
|
|
56
60
|
"pino-pretty": "^9.1.1",
|
|
57
|
-
"prom-client": "^14.0
|
|
58
|
-
"webpack": "^5.
|
|
61
|
+
"prom-client": "^14.2.0",
|
|
62
|
+
"webpack": "^5.82.0"
|
|
59
63
|
},
|
|
60
64
|
"peerDependencies": {
|
|
61
|
-
"@reduxjs/toolkit": "^1.9.
|
|
62
|
-
"axios": "^1.
|
|
65
|
+
"@reduxjs/toolkit": "^1.9.5",
|
|
66
|
+
"axios": "^1.4.0",
|
|
63
67
|
"lodash": "^4.17.21",
|
|
64
|
-
"react": "^17.0.
|
|
65
|
-
"react-dom": "^17.0.
|
|
66
|
-
"react-redux": "^8.0.
|
|
67
|
-
"redux-saga": "^1.2.
|
|
68
|
+
"react": "^17.0 || ^18.0",
|
|
69
|
+
"react-dom": "^17.0 || ^18.0",
|
|
70
|
+
"react-redux": "^8.0.5",
|
|
71
|
+
"redux-saga": "^1.2.3"
|
|
68
72
|
}
|
|
69
73
|
}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { Resolve, Preset } from '../../di';
|
|
2
|
+
import { ConfigSource } from '../../config';
|
|
2
3
|
import { Logger } from '../../log';
|
|
3
4
|
import { BridgeClientSide } from '../../utils/ssr';
|
|
4
|
-
import { StrictMap, KnownHttpApiKey } from '../parts/types';
|
|
5
|
+
import { StrictMap, KnownHttpApiKey, PresetTuner } from '../parts/types';
|
|
5
6
|
import { HttpClientFactory } from '../../http-client/types';
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов в браузере.
|
|
9
|
+
* @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
|
|
10
|
+
* @return Preset.
|
|
11
|
+
*/
|
|
12
|
+
export declare function PresetBrowser(customize?: PresetTuner): Preset;
|
|
13
|
+
export declare function provideConfigSource(): ConfigSource;
|
|
7
14
|
export declare function provideLogger(resolve: Resolve): Logger;
|
|
8
15
|
export declare function provideBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown>;
|
|
9
16
|
export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;
|
package/preset/browser/index.js
CHANGED
|
@@ -1,42 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.provideHttpClientFactory = exports.provideKnownHttpApiHosts = exports.provideBridgeClientSide = exports.provideLogger = exports.PresetBrowser = void 0;
|
|
3
|
+
exports.provideHttpClientFactory = exports.provideKnownHttpApiHosts = exports.provideBridgeClientSide = exports.provideLogger = exports.provideConfigSource = exports.PresetBrowser = void 0;
|
|
4
4
|
/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
|
|
5
5
|
const di_1 = require("../../di");
|
|
6
6
|
const tokens_1 = require("../../tokens");
|
|
7
|
-
const
|
|
7
|
+
const config_1 = require("../../config");
|
|
8
8
|
const log_1 = require("../../log");
|
|
9
9
|
const sentry_1 = require("../../log/handler/sentry");
|
|
10
|
-
const
|
|
10
|
+
const browser_1 = require("@sentry/browser");
|
|
11
11
|
const middleware_axios_1 = require("middleware-axios");
|
|
12
12
|
const ssr_1 = require("../../utils/ssr");
|
|
13
13
|
const utils_1 = require("../parts/utils");
|
|
14
14
|
const log_2 = require("../../http-client/middleware/log");
|
|
15
15
|
const providers_1 = require("../parts/providers");
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов в браузере.
|
|
18
|
+
* @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
|
|
19
|
+
* @return Preset.
|
|
20
|
+
*/
|
|
21
|
+
function PresetBrowser(customize) {
|
|
22
|
+
// ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
|
|
23
|
+
const preset = (0, di_1.createPreset)();
|
|
24
|
+
preset.set(tokens_1.KnownToken.Config.source, provideConfigSource);
|
|
25
|
+
preset.set(tokens_1.KnownToken.Config.base, providers_1.provideBaseConfig);
|
|
26
|
+
preset.set(tokens_1.KnownToken.logger, provideLogger);
|
|
27
|
+
preset.set(tokens_1.KnownToken.sagaMiddleware, providers_1.provideSagaMiddleware);
|
|
28
|
+
preset.set(tokens_1.KnownToken.Http.Client.factory, provideHttpClientFactory);
|
|
29
|
+
preset.set(tokens_1.KnownToken.Http.Client.Middleware.Log.handler, providers_1.provideHttpClientLogHandler);
|
|
30
|
+
preset.set(tokens_1.KnownToken.SsrBridge.clientSide, provideBridgeClientSide);
|
|
31
|
+
preset.set(tokens_1.KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);
|
|
32
|
+
if (customize) {
|
|
33
|
+
customize({ override: preset.set.bind(preset) });
|
|
34
|
+
}
|
|
35
|
+
return preset;
|
|
27
36
|
}
|
|
28
37
|
exports.PresetBrowser = PresetBrowser;
|
|
38
|
+
function provideConfigSource() {
|
|
39
|
+
// ВАЖНО: по умолчанию рассчитываем на process.env который предоставляется сборщиком (например webpack)
|
|
40
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
41
|
+
return (0, config_1.createConfigSource)(process.env);
|
|
42
|
+
}
|
|
43
|
+
return (0, config_1.createConfigSource)({});
|
|
44
|
+
}
|
|
45
|
+
exports.provideConfigSource = provideConfigSource;
|
|
29
46
|
function provideLogger(resolve) {
|
|
30
47
|
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
31
|
-
const client = new
|
|
32
|
-
transport:
|
|
33
|
-
stackParser:
|
|
48
|
+
const client = new browser_1.BrowserClient({
|
|
49
|
+
transport: browser_1.makeFetchTransport,
|
|
50
|
+
stackParser: browser_1.defaultStackParser,
|
|
34
51
|
dsn: source.require('PUBLIC_SENTRY_DSN'),
|
|
35
52
|
release: source.require('SENTRY_RELEASE'),
|
|
36
53
|
environment: source.require('PUBLIC_SENTRY_ENVIRONMENT'),
|
|
37
|
-
integrations: [...
|
|
54
|
+
integrations: [...browser_1.defaultIntegrations],
|
|
38
55
|
});
|
|
39
|
-
const hub = new
|
|
56
|
+
const hub = new browser_1.Hub(client);
|
|
40
57
|
hub.setTag('url', window.location.href);
|
|
41
58
|
const logger = (0, log_1.createLogger)();
|
|
42
59
|
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
@@ -59,10 +76,10 @@ function provideKnownHttpApiHosts(resolve) {
|
|
|
59
76
|
}
|
|
60
77
|
exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
|
|
61
78
|
function provideHttpClientFactory(resolve) {
|
|
62
|
-
const logHandler = resolve(tokens_1.KnownToken.Http.Client.
|
|
79
|
+
const logHandler = resolve(tokens_1.KnownToken.Http.Client.Middleware.Log.handler);
|
|
63
80
|
return function createHttpClient(config = {}) {
|
|
64
81
|
const client = (0, middleware_axios_1.create)(config);
|
|
65
|
-
client.use(utils_1.HttpStatus.
|
|
82
|
+
client.use(utils_1.HttpStatus.axiosMiddleware());
|
|
66
83
|
client.use((0, log_2.logMiddleware)(logHandler));
|
|
67
84
|
return client;
|
|
68
85
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,iCAAyD;AACzD,yCAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { PageTemplate } from '../../http-server/types';
|
|
3
1
|
import type { Handler } from 'express';
|
|
4
2
|
import { Application, Preset, Resolve } from '../../di';
|
|
5
3
|
import { HttpClientFactory } from '../../http-client/types';
|
|
4
|
+
import { PresetTuner } from '../parts/types';
|
|
6
5
|
/**
|
|
7
6
|
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
7
|
+
* @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
|
|
8
|
+
* @todo Возможно стоит переименовать в PresetPageHandler.
|
|
8
9
|
* @return Preset.
|
|
9
10
|
*/
|
|
10
|
-
export declare function
|
|
11
|
+
export declare function PresetHandler(customize?: PresetTuner): Preset;
|
|
11
12
|
export declare function provideHttpClientFactory(resolve: Resolve): HttpClientFactory;
|
|
12
|
-
export declare function provideRender(resolve: Resolve): (element: JSX.Element) => string;
|
|
13
|
-
export declare function provideTemplate(resolve: Resolve): PageTemplate;
|
|
14
13
|
export declare function provideMain(resolve: Resolve): VoidFunction;
|
|
15
|
-
export declare function
|
|
14
|
+
export declare function provideSpecificParams(resolve: Resolve): Record<string, unknown>;
|
|
16
15
|
/**
|
|
17
16
|
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
18
|
-
* @param
|
|
17
|
+
* @param getApp Должна вернуть di-приложения запроса.
|
|
19
18
|
* @return Обработчик.
|
|
20
19
|
*/
|
|
21
|
-
export declare function HandlerProvider(
|
|
20
|
+
export declare function HandlerProvider(getApp: () => Application): (resolve: Resolve) => Handler;
|