@sima-land/isomorph 11.0.0-alpha.34 → 11.0.0-alpha.36

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 (154) hide show
  1. package/config/index.d.ts +1 -1
  2. package/config/source.d.ts +1 -5
  3. package/config/source.js.map +1 -1
  4. package/config/types.d.ts +6 -0
  5. package/di/index.d.ts +1 -1
  6. package/http/errors.d.ts +12 -0
  7. package/http/errors.js +17 -1
  8. package/http/errors.js.map +1 -1
  9. package/http/index.d.ts +3 -3
  10. package/http/index.js +3 -1
  11. package/http/index.js.map +1 -1
  12. package/package.json +14 -14
  13. package/preset/isomorphic/constants.d.ts +7 -0
  14. package/preset/isomorphic/constants.js +11 -0
  15. package/preset/isomorphic/constants.js.map +1 -0
  16. package/preset/isomorphic/providers/index.d.ts +22 -0
  17. package/preset/isomorphic/providers/index.js +38 -0
  18. package/preset/isomorphic/providers/index.js.map +1 -0
  19. package/preset/isomorphic/types.d.ts +43 -0
  20. package/{http-client → preset/isomorphic}/types.js.map +1 -1
  21. package/preset/{parts/utils.d.ts → isomorphic/utils/index.d.ts} +14 -6
  22. package/preset/{parts/utils.js → isomorphic/utils/index.js} +31 -5
  23. package/preset/isomorphic/utils/index.js.map +1 -0
  24. package/preset/node/handler/index.d.ts +10 -0
  25. package/preset/node/handler/index.js +38 -0
  26. package/preset/node/handler/index.js.map +1 -0
  27. package/preset/node/handler/providers/index.d.ts +35 -0
  28. package/preset/node/handler/providers/index.js +184 -0
  29. package/preset/node/handler/providers/index.js.map +1 -0
  30. package/preset/node/handler/utils/index.d.ts +46 -0
  31. package/preset/node/handler/utils/index.js +81 -0
  32. package/preset/node/handler/utils/index.js.map +1 -0
  33. package/preset/node/index.d.ts +2 -29
  34. package/preset/node/index.js +6 -255
  35. package/preset/node/index.js.map +1 -1
  36. package/preset/node/node/index.d.ts +8 -0
  37. package/preset/node/node/index.js +49 -0
  38. package/preset/node/node/index.js.map +1 -0
  39. package/preset/node/node/providers/index.d.ts +112 -0
  40. package/preset/node/node/providers/index.js +392 -0
  41. package/preset/node/node/providers/index.js.map +1 -0
  42. package/{http-client/middleware/tracing.d.ts → preset/node/node/utils/http-client/index.d.ts} +9 -0
  43. package/{http-client/middleware/tracing.js → preset/node/node/utils/http-client/index.js} +32 -3
  44. package/preset/node/node/utils/http-client/index.js.map +1 -0
  45. package/preset/node/node/utils/http-server/index.d.ts +7 -0
  46. package/preset/node/node/utils/http-server/index.js +21 -0
  47. package/preset/node/node/utils/http-server/index.js.map +1 -0
  48. package/preset/web/index.d.ts +8 -0
  49. package/preset/web/index.js +30 -0
  50. package/preset/web/index.js.map +1 -0
  51. package/preset/web/providers/index.d.ts +35 -0
  52. package/preset/{browser → web/providers}/index.js +37 -33
  53. package/preset/web/providers/index.js.map +1 -0
  54. package/tokens.d.ts +20 -19
  55. package/tokens.js +11 -8
  56. package/tokens.js.map +1 -1
  57. package/utils/axios/index.d.ts +4 -0
  58. package/utils/axios/index.js +13 -0
  59. package/utils/axios/index.js.map +1 -0
  60. package/utils/axios/middleware/cookie.d.ts +8 -0
  61. package/utils/axios/middleware/cookie.js +26 -0
  62. package/utils/axios/middleware/cookie.js.map +1 -0
  63. package/utils/axios/middleware/log.js.map +1 -0
  64. package/{http-client → utils/axios}/sauce/index.d.ts +1 -1
  65. package/{http-client → utils/axios}/sauce/index.js +1 -1
  66. package/utils/axios/sauce/index.js.map +1 -0
  67. package/{http-client/utils.d.ts → utils/axios/utils/index.d.ts} +0 -7
  68. package/{http-client/utils.js → utils/axios/utils/index.js} +2 -28
  69. package/utils/axios/utils/index.js.map +1 -0
  70. package/utils/express/handler/health-check.js.map +1 -0
  71. package/utils/express/index.d.ts +2 -0
  72. package/utils/express/index.js +8 -0
  73. package/utils/express/index.js.map +1 -0
  74. package/utils/express/utils/index.d.ts +7 -0
  75. package/utils/express/utils/index.js +20 -0
  76. package/utils/express/utils/index.js.map +1 -0
  77. package/utils/react/error-handlers/index.d.ts +3 -3
  78. package/utils/react/error-handlers/index.js +1 -1
  79. package/utils/react/error-handlers/index.js.map +1 -1
  80. package/utils/react/index.d.ts +2 -0
  81. package/utils/react/index.js +7 -0
  82. package/utils/react/index.js.map +1 -0
  83. package/utils/ssr/index.d.ts +1 -2
  84. package/utils/web/analytics/data-layer.js +16 -0
  85. package/utils/web/analytics/data-layer.js.map +1 -0
  86. package/utils/web/analytics/oko.d.ts +6 -0
  87. package/utils/web/analytics/oko.js +16 -0
  88. package/utils/web/analytics/oko.js.map +1 -0
  89. package/utils/{browser → web}/storage/index.d.ts +1 -0
  90. package/utils/{browser → web}/storage/index.js +1 -0
  91. package/utils/web/storage/index.js.map +1 -0
  92. package/http-client/middleware/cookie.d.ts +0 -20
  93. package/http-client/middleware/cookie.js +0 -64
  94. package/http-client/middleware/cookie.js.map +0 -1
  95. package/http-client/middleware/headers.d.ts +0 -13
  96. package/http-client/middleware/headers.js +0 -25
  97. package/http-client/middleware/headers.js.map +0 -1
  98. package/http-client/middleware/log.js.map +0 -1
  99. package/http-client/middleware/tracing.js.map +0 -1
  100. package/http-client/sauce/index.js.map +0 -1
  101. package/http-client/types.d.ts +0 -6
  102. package/http-client/utils.js.map +0 -1
  103. package/http-server/constants.d.ts +0 -4
  104. package/http-server/constants.js +0 -8
  105. package/http-server/constants.js.map +0 -1
  106. package/http-server/errors.d.ts +0 -11
  107. package/http-server/errors.js +0 -18
  108. package/http-server/errors.js.map +0 -1
  109. package/http-server/handler/health-check.js.map +0 -1
  110. package/http-server/middleware/metrics.d.ts +0 -23
  111. package/http-server/middleware/metrics.js +0 -60
  112. package/http-server/middleware/metrics.js.map +0 -1
  113. package/http-server/middleware/tracing.d.ts +0 -14
  114. package/http-server/middleware/tracing.js +0 -51
  115. package/http-server/middleware/tracing.js.map +0 -1
  116. package/http-server/template/index.d.ts +0 -1
  117. package/http-server/template/index.js +0 -41
  118. package/http-server/template/index.js.map +0 -1
  119. package/http-server/types.d.ts +0 -28
  120. package/http-server/types.js +0 -3
  121. package/http-server/types.js.map +0 -1
  122. package/http-server/utils.d.ts +0 -45
  123. package/http-server/utils.js +0 -144
  124. package/http-server/utils.js.map +0 -1
  125. package/metrics/constants.d.ts +0 -7
  126. package/metrics/constants.js +0 -11
  127. package/metrics/constants.js.map +0 -1
  128. package/metrics/node.d.ts +0 -19
  129. package/metrics/node.js +0 -56
  130. package/metrics/node.js.map +0 -1
  131. package/preset/browser/index.d.ts +0 -17
  132. package/preset/browser/index.js.map +0 -1
  133. package/preset/node/handler.d.ts +0 -24
  134. package/preset/node/handler.js +0 -165
  135. package/preset/node/handler.js.map +0 -1
  136. package/preset/parts/providers.d.ts +0 -7
  137. package/preset/parts/providers.js +0 -26
  138. package/preset/parts/providers.js.map +0 -1
  139. package/preset/parts/types.d.ts +0 -14
  140. package/preset/parts/types.js +0 -3
  141. package/preset/parts/types.js.map +0 -1
  142. package/preset/parts/utils.js.map +0 -1
  143. package/utils/browser/analytics/data-layer.js +0 -14
  144. package/utils/browser/analytics/data-layer.js.map +0 -1
  145. package/utils/browser/analytics/oko.d.ts +0 -13
  146. package/utils/browser/analytics/oko.js +0 -40
  147. package/utils/browser/analytics/oko.js.map +0 -1
  148. package/utils/browser/storage/index.js.map +0 -1
  149. /package/{http-client → preset/isomorphic}/types.js +0 -0
  150. /package/{http-client → utils/axios}/middleware/log.d.ts +0 -0
  151. /package/{http-client → utils/axios}/middleware/log.js +0 -0
  152. /package/{http-server → utils/express}/handler/health-check.d.ts +0 -0
  153. /package/{http-server → utils/express}/handler/health-check.js +0 -0
  154. /package/utils/{browser → web}/analytics/data-layer.d.ts +0 -0
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.provideSpecificParams = exports.providePageHelmet = exports.providePageRender = exports.provideHandlerMain = exports.provideHttpClientFactory = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const http_1 = require("../../../../http");
6
+ const tokens_1 = require("../../../../tokens");
7
+ const http_client_1 = require("../../node/utils/http-client");
8
+ const middleware_axios_1 = require("middleware-axios");
9
+ const utils_1 = require("../../../isomorphic/utils");
10
+ const axios_1 = require("../../../../utils/axios");
11
+ const constants_1 = require("../../../isomorphic/constants");
12
+ const react_1 = require("react");
13
+ const utils_2 = require("../utils");
14
+ const server_1 = require("react-dom/server");
15
+ /**
16
+ * Провайдер фабрики http-клиентов.
17
+ * @param resolve Функция для получения зависимости по токену.
18
+ * @return Фабрика.
19
+ */
20
+ function provideHttpClientFactory(resolve) {
21
+ // @todo а что если привести все зависимости к виду:
22
+ // const getAppConfig = resolve.lazy(KnownToken.Config.base);
23
+ const appConfig = resolve(tokens_1.KnownToken.Config.base);
24
+ const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
25
+ const context = resolve(tokens_1.KnownToken.Http.Handler.context);
26
+ const logHandler = resolve(tokens_1.KnownToken.Http.Client.Middleware.Log.handler);
27
+ // @todo добавить при необходимости (но тогда в логе будет значительно больше ошибок)
28
+ // можно не отсылать ошибки из клиента если ответ от сервера уже ушел (writableEnded)
29
+ // const controller = new AbortController();
30
+ // context.res.on('finish', () => {
31
+ // controller.abort();
32
+ // });
33
+ // ВАЖНО: для всех клиентов в рамках обработчика должно быть одно хранилище cookie
34
+ const cookieStore = (0, http_1.createCookieStore)(context.req.header('cookie'));
35
+ cookieStore.subscribe(() => {
36
+ if (!context.res.writableEnded) {
37
+ context.res.setHeader('cookie', cookieStore.getCookies());
38
+ }
39
+ });
40
+ const defaultHeaders = (0, http_client_1.getRequestHeaders)(appConfig, context.req);
41
+ return (config = {}) => {
42
+ const client = (0, middleware_axios_1.create)({
43
+ ...config,
44
+ headers: {
45
+ ...defaultHeaders,
46
+ // @todo убрать as any
47
+ ...config.headers,
48
+ },
49
+ });
50
+ client.use(utils_1.HttpStatus.axiosMiddleware());
51
+ client.use((0, http_client_1.tracingMiddleware)(tracer, context.res.locals.tracing.rootContext));
52
+ client.use((0, axios_1.logMiddleware)(logHandler));
53
+ client.use((0, axios_1.cookieMiddleware)(cookieStore));
54
+ return client;
55
+ };
56
+ }
57
+ exports.provideHttpClientFactory = provideHttpClientFactory;
58
+ /**
59
+ * Провайдер главной функции обработчика входящего http-запроса.
60
+ * @param resolve Функция для получения зависимости по токену.
61
+ * @return Главная функция.
62
+ */
63
+ function provideHandlerMain(resolve) {
64
+ const config = resolve(tokens_1.KnownToken.Config.base);
65
+ const logger = resolve(tokens_1.KnownToken.logger);
66
+ const assetsInit = resolve(tokens_1.KnownToken.Http.Handler.Page.assets);
67
+ const render = resolve(tokens_1.KnownToken.Http.Handler.Page.render);
68
+ const extras = resolve(tokens_1.KnownToken.Http.Handler.Response.specificExtras);
69
+ const Helmet = resolve(tokens_1.KnownToken.Http.Handler.Page.helmet);
70
+ const { req, res } = resolve(tokens_1.KnownToken.Http.Handler.context);
71
+ const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;
72
+ /**
73
+ * Рендер JSX-элемента в строку.
74
+ * @param element Элемент.
75
+ * @return Строка.
76
+ */
77
+ const elementToString = (element) => {
78
+ res.emit(constants_1.RESPONSE_EVENT_TYPE.renderStart);
79
+ const result = (0, server_1.renderToString)(element);
80
+ res.emit(constants_1.RESPONSE_EVENT_TYPE.renderFinish);
81
+ return result;
82
+ };
83
+ return async function main() {
84
+ try {
85
+ const assets = await getAssets();
86
+ const meta = extras.getMeta();
87
+ const jsx = ((0, jsx_runtime_1.jsx)(utils_2.HelmetContext.Provider, { value: { title: config.appName, assets }, children: (0, jsx_runtime_1.jsx)(Helmet, { children: await render() }) }));
88
+ switch ((0, utils_2.getResponseFormat)(req)) {
89
+ case 'html': {
90
+ res.setHeader('simaland-bundle-js', assets.js);
91
+ res.setHeader('simaland-bundle-css', assets.css);
92
+ if (assets.criticalJs) {
93
+ res.setHeader('simaland-critical-js', assets.criticalJs);
94
+ }
95
+ if (assets.criticalCss) {
96
+ res.setHeader('simaland-critical-css', assets.criticalCss);
97
+ }
98
+ if (meta) {
99
+ res.setHeader('simaland-meta', JSON.stringify(meta));
100
+ }
101
+ // ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css
102
+ // ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу
103
+ if (config.env === 'development') {
104
+ res.send(`<!DOCTYPE html>${elementToString(jsx)}`);
105
+ }
106
+ else {
107
+ res.send(elementToString(jsx));
108
+ }
109
+ break;
110
+ }
111
+ case 'json': {
112
+ res.json({
113
+ markup: elementToString(jsx),
114
+ bundle_js: assets.js,
115
+ bundle_css: assets.css,
116
+ critical_js: assets.criticalJs,
117
+ critical_css: assets.criticalCss,
118
+ meta,
119
+ });
120
+ break;
121
+ }
122
+ }
123
+ }
124
+ catch (error) {
125
+ let message;
126
+ let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500
127
+ if (error instanceof Error) {
128
+ message = error.message;
129
+ if (error instanceof http_1.ResponseError) {
130
+ statusCode = error.statusCode;
131
+ }
132
+ }
133
+ else {
134
+ message = String(error);
135
+ }
136
+ res.status(statusCode).send(message);
137
+ logger.error(error);
138
+ }
139
+ };
140
+ }
141
+ exports.provideHandlerMain = provideHandlerMain;
142
+ /**
143
+ * Провайдер render-функции.
144
+ * @return Render-Функция.
145
+ */
146
+ function providePageRender() {
147
+ return () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h1", { children: "Hello, world!" }), (0, jsx_runtime_1.jsx)("p", { children: "This is a stub page. Define the render component in your handler" })] }));
148
+ }
149
+ exports.providePageRender = providePageRender;
150
+ /**
151
+ * Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.
152
+ * @param resolve Функция для получения зависимости по токену.
153
+ * @return Helmet-компонент.
154
+ */
155
+ function providePageHelmet(resolve) {
156
+ const config = resolve(tokens_1.KnownToken.Config.base);
157
+ const { req } = resolve(tokens_1.KnownToken.Http.Handler.context);
158
+ return config.env === 'development' && (0, utils_2.getResponseFormat)(req) === 'html'
159
+ ? utils_2.RegularHelmet
160
+ : react_1.Fragment;
161
+ }
162
+ exports.providePageHelmet = providePageHelmet;
163
+ /**
164
+ * Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.
165
+ * @param resolve Функция для получения зависимости по токену.
166
+ * @return Параметры.
167
+ */
168
+ function provideSpecificParams(resolve) {
169
+ const context = resolve(tokens_1.KnownToken.Http.Handler.context);
170
+ try {
171
+ const headerValue = context.req.header('simaland-params');
172
+ /**
173
+ * Node.js переводит в ASCII.
174
+ * @see {https://github.com/nodejs/node/issues/17390}
175
+ */
176
+ const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';
177
+ return processedValue ? JSON.parse(processedValue) : {};
178
+ }
179
+ catch {
180
+ return {};
181
+ }
182
+ }
183
+ exports.provideSpecificParams = provideSpecificParams;
184
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/preset/node/handler/providers/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { ReactNode } from 'react';
2
+ import { PageAssets } from '../../../isomorphic/types';
3
+ import { Handler, Request } from 'express';
4
+ import { Application, Resolve } from '../../../../di';
5
+ export declare const HelmetContext: import("react").Context<{
6
+ title?: string | undefined;
7
+ assets?: PageAssets | undefined;
8
+ }>;
9
+ /**
10
+ * Простой Helmet-компонент.
11
+ * Выведет html, head и body.
12
+ * @param props Свойства.
13
+ * @return Элемент.
14
+ */
15
+ export declare function RegularHelmet({ children }: {
16
+ children?: ReactNode;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ /**
19
+ * Специфичные для наших микросервисов дополнительные данные ответа.
20
+ */
21
+ export declare class SpecificExtras {
22
+ private _meta;
23
+ /**
24
+ * Установит мета-данные.
25
+ * @param meta Данные.
26
+ * @return Контекст.
27
+ */
28
+ setMeta(meta: any): this;
29
+ /**
30
+ * Вернет установленные мета-данные.
31
+ * @return Данные.
32
+ */
33
+ getMeta(): unknown;
34
+ }
35
+ /**
36
+ * Определит формат ответа.
37
+ * @param req Запрос.
38
+ * @return Формат.
39
+ */
40
+ export declare function getResponseFormat(req: Request): 'html' | 'json';
41
+ /**
42
+ * Возвращает express-handler, создающий дочернее di-приложение при запросе.
43
+ * @param getApp Должна вернуть di-приложения запроса.
44
+ * @return Обработчик.
45
+ */
46
+ export declare function HandlerProvider(getApp: () => Application): (resolve: Resolve) => Handler;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandlerProvider = exports.getResponseFormat = exports.SpecificExtras = exports.RegularHelmet = exports.HelmetContext = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const di_1 = require("../../../../di");
7
+ const tokens_1 = require("../../../../tokens");
8
+ exports.HelmetContext = (0, react_1.createContext)({});
9
+ const resetCSS = `
10
+ * {
11
+ box-sizing: border-box;
12
+ }
13
+ body {
14
+ font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,Arial,sans-serif;
15
+ margin: 0;
16
+ }
17
+ `;
18
+ /**
19
+ * Простой Helmet-компонент.
20
+ * Выведет html, head и body.
21
+ * @param props Свойства.
22
+ * @return Элемент.
23
+ */
24
+ function RegularHelmet({ children }) {
25
+ const { title, assets } = (0, react_1.useContext)(exports.HelmetContext);
26
+ return ((0, jsx_runtime_1.jsxs)("html", { children: [(0, jsx_runtime_1.jsxs)("head", { children: [(0, jsx_runtime_1.jsx)("meta", { charSet: 'UTF-8' }), (0, jsx_runtime_1.jsx)("meta", { httpEquiv: 'X-UA-Compatible', content: 'IE=edge' }), (0, jsx_runtime_1.jsx)("meta", { name: 'viewport', content: 'width=device-width, initial-scale=1' }), (0, jsx_runtime_1.jsx)("title", { children: title ?? 'Document' }), (0, jsx_runtime_1.jsx)("link", { href: 'https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap', rel: 'stylesheet' }), (0, jsx_runtime_1.jsx)("style", { dangerouslySetInnerHTML: { __html: resetCSS } }), assets?.criticalCss && (0, jsx_runtime_1.jsx)("link", { rel: 'stylesheet', href: assets.criticalCss }), assets?.css && (0, jsx_runtime_1.jsx)("link", { rel: 'stylesheet', href: assets.css }), assets?.criticalJs && (0, jsx_runtime_1.jsx)("script", { src: assets.criticalJs })] }), (0, jsx_runtime_1.jsxs)("body", { children: [children, assets?.js && (0, jsx_runtime_1.jsx)("script", { src: assets.js })] })] }));
27
+ }
28
+ exports.RegularHelmet = RegularHelmet;
29
+ /**
30
+ * Специфичные для наших микросервисов дополнительные данные ответа.
31
+ */
32
+ class SpecificExtras {
33
+ /**
34
+ * Установит мета-данные.
35
+ * @param meta Данные.
36
+ * @return Контекст.
37
+ */
38
+ setMeta(meta) {
39
+ this._meta = meta;
40
+ return this;
41
+ }
42
+ /**
43
+ * Вернет установленные мета-данные.
44
+ * @return Данные.
45
+ */
46
+ getMeta() {
47
+ return this._meta;
48
+ }
49
+ }
50
+ exports.SpecificExtras = SpecificExtras;
51
+ /**
52
+ * Определит формат ответа.
53
+ * @param req Запрос.
54
+ * @return Формат.
55
+ */
56
+ function getResponseFormat(req) {
57
+ let result = 'html';
58
+ if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
59
+ result = 'json';
60
+ }
61
+ return result;
62
+ }
63
+ exports.getResponseFormat = getResponseFormat;
64
+ /**
65
+ * Возвращает express-handler, создающий дочернее di-приложение при запросе.
66
+ * @param getApp Должна вернуть di-приложения запроса.
67
+ * @return Обработчик.
68
+ */
69
+ function HandlerProvider(getApp) {
70
+ return function provider(resolve) {
71
+ const parent = resolve(di_1.CURRENT_APP);
72
+ return function handler(req, res, next) {
73
+ const app = getApp();
74
+ app.attach(parent);
75
+ app.bind(tokens_1.KnownToken.Http.Handler.context).toValue({ req, res, next });
76
+ app.get(tokens_1.KnownToken.Http.Handler.main)();
77
+ };
78
+ };
79
+ }
80
+ exports.HandlerProvider = HandlerProvider;
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/preset/node/handler/utils/index.tsx"],"names":[],"mappings":";;;;AAAA,iCAA6D;AAG7D,uCAAmE;AACnE,+CAAgD;AAEnC,QAAA,aAAa,GAAG,IAAA,qBAAa,EAA0C,EAAE,CAAC,CAAC;AAExF,MAAM,QAAQ,GAAG;;;;;;;;CAQhB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,EAAE,QAAQ,EAA4B;IAClE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,qBAAa,CAAC,CAAC;IAEpD,OAAO,CACL,6CACE,6CACE,iCAAM,OAAO,EAAC,OAAO,GAAG,EACxB,iCAAM,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAC,SAAS,GAAG,EACtD,iCAAM,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,qCAAqC,GAAG,EACtE,4CAAQ,KAAK,IAAI,UAAU,GAAS,EACpC,iCACE,IAAI,EAAC,yJAA6J,EAClK,GAAG,EAAC,YAAY,GAChB,EACF,kCAAO,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAI,EAEvD,MAAM,EAAE,WAAW,IAAI,iCAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAE,MAAM,CAAC,WAAW,GAAI,EAC1E,MAAM,EAAE,GAAG,IAAI,iCAAM,GAAG,EAAC,YAAY,EAAC,IAAI,EAAE,MAAM,CAAC,GAAG,GAAI,EAC1D,MAAM,EAAE,UAAU,IAAI,mCAAQ,GAAG,EAAE,MAAM,CAAC,UAAU,GAAI,IACpD,EACP,6CACG,QAAQ,EACR,MAAM,EAAE,EAAE,IAAI,mCAAQ,GAAG,EAAE,MAAM,CAAC,EAAE,GAAI,IACpC,IACF,CACR,CAAC;AACJ,CAAC;AA1BD,sCA0BC;AAED;;GAEG;AACH,MAAa,cAAc;IAGzB;;;;OAIG;IACH,OAAO,CAAC,IAAS;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AApBD,wCAoBC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAY;IAC5C,IAAI,MAAM,GAAoB,MAAM,CAAC;IAErC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC3E,MAAM,GAAG,MAAM,CAAC;KACjB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,8CAQC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,MAAyB;IACvD,OAAO,SAAS,QAAQ,CAAC,OAAgB;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAW,CAAC,CAAC;QAEpC,OAAO,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;YACpC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YAErB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,mBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,GAAG,CAAC,GAAG,CAAC,mBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAZD,0CAYC"}
@@ -1,29 +1,2 @@
1
- import type { Logger, LogHandler } from '../../log/types';
2
- import { BridgeServerSide } from '../../utils/ssr';
3
- import { ConfigSource } from '../../config';
4
- import { Resolve, Preset } from '../../di';
5
- import { StrictMap, KnownHttpApiKey, PresetTuner } from '../parts/types';
6
- import { Application, Handler } from 'express';
7
- import type { Tracer } from '@opentelemetry/api';
8
- import { BasicTracerProvider, SpanExporter } from '@opentelemetry/sdk-trace-base';
9
- import { Resource } from '@opentelemetry/resources';
10
- /**
11
- * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
12
- * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
13
- * @return Preset.
14
- */
15
- export declare function PresetNode(customize?: PresetTuner): Preset;
16
- export declare function provideConfigSource(): ConfigSource;
17
- export declare function provideLogger(resolve: Resolve): Logger;
18
- export declare function provideSentryHandler(resolve: Resolve): LogHandler;
19
- export declare function providePinoHandler(resolve: Resolve): LogHandler;
20
- export declare function provideTracer(resolve: Resolve): Tracer;
21
- export declare function provideSpanExporter(resolve: Resolve): SpanExporter;
22
- export declare function provideTracerProvider(resolve: Resolve): BasicTracerProvider;
23
- export declare function provideTracerProviderResource(resolve: Resolve): Resource;
24
- export declare function provideHttpServerLogMiddleware(resolve: Resolve): Handler;
25
- export declare function provideHttpServerMetricsMiddleware(resolve: Resolve): Handler;
26
- export declare function provideHttpServerTracingMiddleware(resolve: Resolve): Handler;
27
- export declare function provideBridgeServerSide(resolve: Resolve): BridgeServerSide;
28
- export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;
29
- export declare function provideMetricsHttpApp(): Application;
1
+ export { PresetNode } from './node';
2
+ export { PresetHandler, HandlerProvider } from './handler';
@@ -1,258 +1,9 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
2
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.provideMetricsHttpApp = exports.provideKnownHttpApiHosts = exports.provideBridgeServerSide = exports.provideHttpServerTracingMiddleware = exports.provideHttpServerMetricsMiddleware = exports.provideHttpServerLogMiddleware = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.providePinoHandler = exports.provideSentryHandler = exports.provideLogger = exports.provideConfigSource = exports.PresetNode = void 0;
30
- const ssr_1 = require("../../utils/ssr");
31
- const config_1 = require("../../config");
32
- const log_1 = require("../../log");
33
- const pino_1 = require("../../log/handler/pino");
34
- const sentry_1 = require("../../log/handler/sentry");
35
- const metrics_1 = require("../../http-server/middleware/metrics");
36
- const utils_1 = require("../parts/utils");
37
- const tokens_1 = require("../../tokens");
38
- const providers_1 = require("../parts/providers");
39
- const di_1 = require("../../di");
40
- const tracing_1 = require("../../http-server/middleware/tracing");
41
- // nodejs specific packages
42
- const node_os_1 = __importDefault(require("node:os"));
43
- const node_path_1 = __importDefault(require("node:path"));
44
- // nodejs libraries (not isomorphic)
45
- const dotenv_1 = require("dotenv");
46
- const middleware_axios_1 = require("middleware-axios");
47
- const node_1 = require("@sentry/node");
48
- const PromClient = __importStar(require("prom-client"));
49
- const express_1 = __importDefault(require("express"));
50
- const pino_2 = __importDefault(require("pino"));
51
- const pino_pretty_1 = __importDefault(require("pino-pretty"));
52
- const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
53
- const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
54
- const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
55
- const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
56
- const resources_1 = require("@opentelemetry/resources");
57
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
58
- const health_check_1 = require("../../http-server/handler/health-check");
59
- const utils_2 = require("../../http-server/utils");
60
- const node_2 = require("../../metrics/node");
61
- const number_1 = require("../../utils/number");
62
- /**
63
- * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
64
- * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
65
- * @return Preset.
66
- */
67
- function PresetNode(customize) {
68
- // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
69
- const preset = (0, di_1.createPreset)();
70
- // config
71
- preset.set(tokens_1.KnownToken.Config.source, provideConfigSource);
72
- preset.set(tokens_1.KnownToken.Config.base, providers_1.provideBaseConfig);
73
- // log
74
- preset.set(tokens_1.KnownToken.logger, provideLogger);
75
- // tracing
76
- preset.set(tokens_1.KnownToken.Tracing.tracer, provideTracer);
77
- preset.set(tokens_1.KnownToken.Tracing.spanExporter, provideSpanExporter);
78
- preset.set(tokens_1.KnownToken.Tracing.tracerProvider, provideTracerProvider);
79
- preset.set(tokens_1.KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource);
80
- // metrics
81
- preset.set(tokens_1.KnownToken.Metrics.httpApp, provideMetricsHttpApp);
82
- // http client
83
- preset.set(tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create);
84
- // http server
85
- preset.set(tokens_1.KnownToken.Http.Server.factory, () => express_1.default);
86
- preset.set(tokens_1.KnownToken.Http.Server.Handler.healthCheck, () => (0, health_check_1.healthCheck)());
87
- preset.set(tokens_1.KnownToken.Http.Server.Middleware.request, () => node_1.Handlers.requestHandler());
88
- preset.set(tokens_1.KnownToken.Http.Server.Middleware.log, provideHttpServerLogMiddleware);
89
- preset.set(tokens_1.KnownToken.Http.Server.Middleware.metrics, provideHttpServerMetricsMiddleware);
90
- preset.set(tokens_1.KnownToken.Http.Server.Middleware.tracing, provideHttpServerTracingMiddleware);
91
- preset.set(tokens_1.KnownToken.Http.Server.Middleware.error, () => node_1.Handlers.errorHandler());
92
- // http api
93
- preset.set(tokens_1.KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);
94
- // ssr bridge
95
- preset.set(tokens_1.KnownToken.SsrBridge.serverSide, provideBridgeServerSide);
96
- if (customize) {
97
- customize({ override: preset.set.bind(preset) });
98
- }
99
- return preset;
100
- }
101
- exports.PresetNode = PresetNode;
102
- function provideConfigSource() {
103
- const envName = process.env.NODE_ENV;
104
- // подключаем соответствующий среде файл со значениями по умолчанию
105
- if (envName) {
106
- (0, dotenv_1.config)({ path: node_path_1.default.resolve(process.cwd(), `./.env.${envName}`) });
107
- }
108
- return (0, config_1.createConfigSource)(process.env);
109
- }
110
- exports.provideConfigSource = provideConfigSource;
111
- function provideLogger(resolve) {
112
- const logger = (0, log_1.createLogger)();
113
- // @todo возможно надо придумать как не давать вызывать провайдеры внутри провайдеров
114
- logger.subscribe(providePinoHandler(resolve));
115
- logger.subscribe(provideSentryHandler(resolve));
116
- return logger;
117
- }
118
- exports.provideLogger = provideLogger;
119
- function provideSentryHandler(resolve) {
120
- const source = resolve(tokens_1.KnownToken.Config.source);
121
- // экспериментально пробуем не использовать вручную созданный клиент
122
- (0, node_1.init)({
123
- dsn: source.require('SENTRY_DSN'),
124
- release: source.require('SENTRY_RELEASE'),
125
- environment: source.require('SENTRY_ENVIRONMENT'),
126
- });
127
- // ВАЖНО: передаем функцию чтобы брать текущий hub в момент вызова метода logger'а
128
- // это нужно чтобы хлебные крошки в ошибках Sentry группировались по запросам
129
- return (0, sentry_1.createSentryHandler)(node_1.getCurrentHub);
130
- }
131
- exports.provideSentryHandler = provideSentryHandler;
132
- function providePinoHandler(resolve) {
133
- const config = resolve(tokens_1.KnownToken.Config.base);
134
- const pinoLogger = (0, pino_2.default)(config.env === 'production'
135
- ? {
136
- formatters: {
137
- // ВАЖНО: для Fluent необходимо наличие поля level: string
138
- level: label => ({ level: label }),
139
- },
140
- }
141
- : (0, pino_pretty_1.default)({
142
- colorize: true,
143
- translateTime: 'yyyy-mm-dd HH:MM:ss.l o',
144
- }));
145
- return (0, pino_1.createPinoHandler)(pinoLogger);
146
- }
147
- exports.providePinoHandler = providePinoHandler;
148
- function provideTracer(resolve) {
149
- const config = resolve(tokens_1.KnownToken.Config.base);
150
- const provider = resolve(tokens_1.KnownToken.Tracing.tracerProvider);
151
- return provider.getTracer(config.appName, config.appVersion);
152
- }
153
- exports.provideTracer = provideTracer;
154
- function provideSpanExporter(resolve) {
155
- const source = resolve(tokens_1.KnownToken.Config.source);
156
- const host = source.require('JAEGER_AGENT_HOST');
157
- const port = source.require('JAEGER_AGENT_PORT');
158
- return new exporter_trace_otlp_http_1.OTLPTraceExporter({
159
- url: port ? `${host}:${port}` : host,
160
- });
161
- }
162
- exports.provideSpanExporter = provideSpanExporter;
163
- function provideTracerProvider(resolve) {
164
- const exporter = resolve(tokens_1.KnownToken.Tracing.spanExporter);
165
- const resource = resolve(tokens_1.KnownToken.Tracing.tracerProviderResource);
166
- const provider = new sdk_trace_node_1.NodeTracerProvider({ resource });
167
- provider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor(exporter));
168
- provider.register({ propagator: new propagator_jaeger_1.JaegerPropagator() });
169
- return provider;
170
- }
171
- exports.provideTracerProvider = provideTracerProvider;
172
- function provideTracerProviderResource(resolve) {
173
- const config = resolve(tokens_1.KnownToken.Config.base);
174
- return new resources_1.Resource({
175
- [semantic_conventions_1.SemanticResourceAttributes.HOST_NAME]: node_os_1.default.hostname(),
176
- [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: config.appName,
177
- [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,
178
- [semantic_conventions_1.SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env,
179
- });
180
- }
181
- exports.provideTracerProviderResource = provideTracerProviderResource;
182
- function provideHttpServerLogMiddleware(resolve) {
183
- const config = resolve(tokens_1.KnownToken.Config.base);
184
- const logger = resolve(tokens_1.KnownToken.logger);
185
- return (req, res, next) => {
186
- const start = process.hrtime.bigint();
187
- const remoteIp = (0, utils_2.getXClientIp)(req);
188
- const startMsg = {
189
- type: 'http.request[incoming]',
190
- version: config.appVersion,
191
- route: req.originalUrl,
192
- method: req.method,
193
- remote_ip: remoteIp,
194
- };
195
- logger.info(startMsg);
196
- res.once('finish', () => {
197
- const finish = process.hrtime.bigint();
198
- const finishMsg = {
199
- type: 'http.response[outgoing]',
200
- version: config.appVersion,
201
- route: req.originalUrl,
202
- method: req.method,
203
- status: res.statusCode,
204
- remote_ip: remoteIp,
205
- latency: (0, number_1.toMilliseconds)(finish - start),
206
- };
207
- logger.info(finishMsg);
208
- });
209
- next();
210
- };
211
- }
212
- exports.provideHttpServerLogMiddleware = provideHttpServerLogMiddleware;
213
- function provideHttpServerMetricsMiddleware(resolve) {
214
- const config = resolve(tokens_1.KnownToken.Config.base);
215
- const metrics = (0, node_2.createDefaultMetrics)();
216
- return (0, utils_2.composeMiddleware)([
217
- (0, metrics_1.responseMetricsMiddleware)(config, {
218
- counter: metrics.requestCount,
219
- histogram: metrics.responseDuration,
220
- }),
221
- (0, metrics_1.renderMetricsMiddleware)(config, {
222
- histogram: metrics.renderDuration,
223
- }),
224
- ]);
225
- }
226
- exports.provideHttpServerMetricsMiddleware = provideHttpServerMetricsMiddleware;
227
- function provideHttpServerTracingMiddleware(resolve) {
228
- const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
229
- return (0, tracing_1.tracingMiddleware)(tracer);
230
- }
231
- exports.provideHttpServerTracingMiddleware = provideHttpServerTracingMiddleware;
232
- function provideBridgeServerSide(resolve) {
233
- const config = resolve(tokens_1.KnownToken.Config.base);
234
- return ssr_1.SsrBridge.prepare(config.appName);
235
- }
236
- exports.provideBridgeServerSide = provideBridgeServerSide;
237
- function provideKnownHttpApiHosts(resolve) {
238
- const source = resolve(tokens_1.KnownToken.Config.source);
239
- return new utils_1.HttpApiHostPool({
240
- ilium: 'API_URL_ILIUM',
241
- simaV3: 'API_URL_SIMALAND_V3',
242
- simaV4: 'API_URL_SIMALAND_V4',
243
- simaV6: 'API_URL_SIMALAND_V6',
244
- }, source);
245
- }
246
- exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
247
- function provideMetricsHttpApp() {
248
- PromClient.collectDefaultMetrics();
249
- const app = (0, express_1.default)();
250
- app.get('/', async function (req, res) {
251
- const metrics = await PromClient.register.metrics();
252
- res.setHeader('Content-Type', PromClient.register.contentType);
253
- res.send(metrics);
254
- });
255
- return app;
256
- }
257
- exports.provideMetricsHttpApp = provideMetricsHttpApp;
3
+ exports.HandlerProvider = exports.PresetHandler = exports.PresetNode = void 0;
4
+ var node_1 = require("./node");
5
+ Object.defineProperty(exports, "PresetNode", { enumerable: true, get: function () { return node_1.PresetNode; } });
6
+ var handler_1 = require("./handler");
7
+ Object.defineProperty(exports, "PresetHandler", { enumerable: true, get: function () { return handler_1.PresetHandler; } });
8
+ Object.defineProperty(exports, "HandlerProvider", { enumerable: true, get: function () { return handler_1.HandlerProvider; } });
258
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,qCAA2D;AAAlD,wGAAA,aAAa,OAAA;AAAE,0GAAA,eAAe,OAAA"}