@sima-land/isomorph 11.0.0-alpha.35 → 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 (132) hide show
  1. package/http/errors.d.ts +12 -0
  2. package/http/errors.js +17 -1
  3. package/http/errors.js.map +1 -1
  4. package/http/index.d.ts +2 -2
  5. package/http/index.js +3 -1
  6. package/http/index.js.map +1 -1
  7. package/package.json +7 -6
  8. package/preset/isomorphic/constants.d.ts +7 -0
  9. package/preset/isomorphic/constants.js +11 -0
  10. package/preset/isomorphic/constants.js.map +1 -0
  11. package/preset/isomorphic/providers/index.d.ts +22 -0
  12. package/preset/isomorphic/providers/index.js +38 -0
  13. package/preset/isomorphic/providers/index.js.map +1 -0
  14. package/preset/isomorphic/types.d.ts +43 -0
  15. package/{http-client → preset/isomorphic}/types.js.map +1 -1
  16. package/preset/{parts/utils.d.ts → isomorphic/utils/index.d.ts} +14 -6
  17. package/preset/{parts/utils.js → isomorphic/utils/index.js} +31 -5
  18. package/preset/isomorphic/utils/index.js.map +1 -0
  19. package/preset/node/handler/index.d.ts +10 -0
  20. package/preset/node/handler/index.js +38 -0
  21. package/preset/node/handler/index.js.map +1 -0
  22. package/preset/node/handler/providers/index.d.ts +35 -0
  23. package/preset/node/handler/providers/index.js +184 -0
  24. package/preset/node/handler/providers/index.js.map +1 -0
  25. package/preset/node/handler/utils/index.d.ts +46 -0
  26. package/preset/node/handler/utils/index.js +81 -0
  27. package/preset/node/handler/utils/index.js.map +1 -0
  28. package/preset/node/index.d.ts +2 -29
  29. package/preset/node/index.js +6 -289
  30. package/preset/node/index.js.map +1 -1
  31. package/preset/node/node/index.d.ts +8 -0
  32. package/preset/node/node/index.js +49 -0
  33. package/preset/node/node/index.js.map +1 -0
  34. package/preset/node/node/providers/index.d.ts +112 -0
  35. package/preset/node/node/providers/index.js +392 -0
  36. package/preset/node/node/providers/index.js.map +1 -0
  37. package/{http-client/middleware/tracing.d.ts → preset/node/node/utils/http-client/index.d.ts} +9 -0
  38. package/{http-client/middleware/tracing.js → preset/node/node/utils/http-client/index.js} +32 -3
  39. package/preset/node/node/utils/http-client/index.js.map +1 -0
  40. package/preset/node/node/utils/http-server/index.d.ts +7 -0
  41. package/preset/node/node/utils/http-server/index.js +21 -0
  42. package/preset/node/node/utils/http-server/index.js.map +1 -0
  43. package/preset/web/index.d.ts +8 -0
  44. package/preset/web/index.js +30 -0
  45. package/preset/web/index.js.map +1 -0
  46. package/preset/web/providers/index.d.ts +35 -0
  47. package/preset/{browser → web/providers}/index.js +32 -32
  48. package/preset/web/providers/index.js.map +1 -0
  49. package/tokens.d.ts +11 -11
  50. package/tokens.js +1 -2
  51. package/tokens.js.map +1 -1
  52. package/utils/axios/index.d.ts +4 -0
  53. package/utils/axios/index.js +13 -0
  54. package/utils/axios/index.js.map +1 -0
  55. package/utils/axios/middleware/cookie.d.ts +8 -0
  56. package/utils/axios/middleware/cookie.js +26 -0
  57. package/utils/axios/middleware/cookie.js.map +1 -0
  58. package/utils/axios/middleware/log.js.map +1 -0
  59. package/{http-client → utils/axios}/sauce/index.d.ts +1 -1
  60. package/{http-client → utils/axios}/sauce/index.js +1 -1
  61. package/utils/axios/sauce/index.js.map +1 -0
  62. package/{http-client/utils.d.ts → utils/axios/utils/index.d.ts} +0 -7
  63. package/{http-client/utils.js → utils/axios/utils/index.js} +2 -28
  64. package/utils/axios/utils/index.js.map +1 -0
  65. package/utils/express/handler/health-check.js.map +1 -0
  66. package/utils/express/index.d.ts +2 -0
  67. package/utils/express/index.js +8 -0
  68. package/utils/express/index.js.map +1 -0
  69. package/utils/express/utils/index.d.ts +7 -0
  70. package/utils/express/utils/index.js +20 -0
  71. package/utils/express/utils/index.js.map +1 -0
  72. package/utils/react/error-handlers/index.d.ts +1 -1
  73. package/utils/react/error-handlers/index.js.map +1 -1
  74. package/utils/web/analytics/data-layer.js +16 -0
  75. package/utils/web/analytics/data-layer.js.map +1 -0
  76. package/utils/web/analytics/oko.d.ts +6 -0
  77. package/utils/web/analytics/oko.js +16 -0
  78. package/utils/web/analytics/oko.js.map +1 -0
  79. package/utils/{browser → web}/storage/index.d.ts +1 -0
  80. package/utils/{browser → web}/storage/index.js +1 -0
  81. package/utils/web/storage/index.js.map +1 -0
  82. package/http-client/middleware/cookie.d.ts +0 -20
  83. package/http-client/middleware/cookie.js +0 -64
  84. package/http-client/middleware/cookie.js.map +0 -1
  85. package/http-client/middleware/headers.d.ts +0 -13
  86. package/http-client/middleware/headers.js +0 -25
  87. package/http-client/middleware/headers.js.map +0 -1
  88. package/http-client/middleware/log.js.map +0 -1
  89. package/http-client/middleware/tracing.js.map +0 -1
  90. package/http-client/sauce/index.js.map +0 -1
  91. package/http-client/types.d.ts +0 -6
  92. package/http-client/utils.js.map +0 -1
  93. package/http-server/constants.d.ts +0 -4
  94. package/http-server/constants.js +0 -8
  95. package/http-server/constants.js.map +0 -1
  96. package/http-server/errors.d.ts +0 -11
  97. package/http-server/errors.js +0 -18
  98. package/http-server/errors.js.map +0 -1
  99. package/http-server/handler/health-check.js.map +0 -1
  100. package/http-server/middleware/tracing.d.ts +0 -14
  101. package/http-server/middleware/tracing.js +0 -51
  102. package/http-server/middleware/tracing.js.map +0 -1
  103. package/http-server/types.d.ts +0 -20
  104. package/http-server/types.js +0 -3
  105. package/http-server/types.js.map +0 -1
  106. package/http-server/utils.d.ts +0 -43
  107. package/http-server/utils.js +0 -134
  108. package/http-server/utils.js.map +0 -1
  109. package/preset/browser/index.d.ts +0 -17
  110. package/preset/browser/index.js.map +0 -1
  111. package/preset/node/handler.d.ts +0 -20
  112. package/preset/node/handler.js +0 -208
  113. package/preset/node/handler.js.map +0 -1
  114. package/preset/parts/providers.d.ts +0 -7
  115. package/preset/parts/providers.js +0 -26
  116. package/preset/parts/providers.js.map +0 -1
  117. package/preset/parts/types.d.ts +0 -14
  118. package/preset/parts/types.js +0 -3
  119. package/preset/parts/types.js.map +0 -1
  120. package/preset/parts/utils.js.map +0 -1
  121. package/utils/browser/analytics/data-layer.js +0 -14
  122. package/utils/browser/analytics/data-layer.js.map +0 -1
  123. package/utils/browser/analytics/oko.d.ts +0 -13
  124. package/utils/browser/analytics/oko.js +0 -40
  125. package/utils/browser/analytics/oko.js.map +0 -1
  126. package/utils/browser/storage/index.js.map +0 -1
  127. /package/{http-client → preset/isomorphic}/types.js +0 -0
  128. /package/{http-client → utils/axios}/middleware/log.d.ts +0 -0
  129. /package/{http-client → utils/axios}/middleware/log.js +0 -0
  130. /package/{http-server → utils/express}/handler/health-check.d.ts +0 -0
  131. /package/{http-server → utils/express}/handler/health-check.js +0 -0
  132. /package/utils/{browser → web}/analytics/data-layer.d.ts +0 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.okoPush = void 0;
4
+ /**
5
+ * Получив объект события, запустит его отправку в ОКО (если на странице есть ОКО).
6
+ * @param eventData Данные события для отправки.
7
+ */
8
+ function okoPush(eventData) {
9
+ const target = window;
10
+ if (typeof target.oko?.push === 'function') {
11
+ // копируем объект так как window.oko.push меняет свой аргумент в процессе выполнения
12
+ target.oko.push({ ...eventData });
13
+ }
14
+ }
15
+ exports.okoPush = okoPush;
16
+ //# sourceMappingURL=oko.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oko.js","sourceRoot":"","sources":["../../../../src/utils/web/analytics/oko.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,OAAO,CAAC,SAAmB;IACzC,MAAM,MAAM,GAAQ,MAAM,CAAC;IAE3B,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,UAAU,EAAE;QAC1C,qFAAqF;QACrF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;KACnC;AACH,CAAC;AAPD,0BAOC"}
@@ -8,5 +8,6 @@ export interface StorageUtils extends Pick<Storage, 'clear' | 'getItem' | 'key'
8
8
  * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
9
9
  * @param getStorage Функция, которая должна вернуть целевое хранилище.
10
10
  * @return Объект-обертка для безопасной работы с браузерным хранилищем.
11
+ * @todo Пересмотреть и перенести из browser?
11
12
  */
12
13
  export declare function createStorageUtils(getStorage: () => Storage): StorageUtils;
@@ -6,6 +6,7 @@ exports.createStorageUtils = void 0;
6
6
  * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
7
7
  * @param getStorage Функция, которая должна вернуть целевое хранилище.
8
8
  * @return Объект-обертка для безопасной работы с браузерным хранилищем.
9
+ * @todo Пересмотреть и перенести из browser?
9
10
  */
10
11
  function createStorageUtils(getStorage) {
11
12
  function isAvailable() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/web/storage/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAUvD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,UAAyB;IAC1D,SAAS,WAAW;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,qBAAqB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAElD,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,UAAU,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAEjC,OAAO,IAAI,CAAC;SACb;QAAC,MAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;SACtB;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY;QAC3B,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,GAAG,CAAC,KAAa;QACxB,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,UAAU,CAAC,IAAY;QAC9B,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;QAC1C,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAED,SAAS,MAAM;QACb,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC;SAC5B;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO;QACL,WAAW;QAEX,KAAK;QACL,OAAO;QACP,GAAG;QACH,UAAU;QACV,OAAO;QACP,IAAI,MAAM;YACR,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAnED,gDAmEC"}
@@ -1,20 +0,0 @@
1
- import type { Request, Response } from 'express';
2
- import type { Middleware } from 'middleware-axios';
3
- export interface CookieStore {
4
- set: (seCookie: string[]) => void;
5
- asHeader: () => string;
6
- }
7
- /**
8
- * Возвращает новый middleware для работы с cookie на сервере.
9
- * @param request Входящий запрос.
10
- * @param response Исходящий ответ.
11
- * @return Middleware.
12
- */
13
- export declare function collectCookieMiddleware(request: Request, response: Response): Middleware<any>;
14
- /**
15
- * Возвращает новое хранилище cookie.
16
- * @internal
17
- * @param initialCookie Начальное значение cookie.
18
- * @return Хранилище cookie.
19
- */
20
- export declare function createCookieStore(initialCookie?: string): CookieStore;
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createCookieStore = exports.collectCookieMiddleware = void 0;
4
- /**
5
- * Возвращает новый middleware для работы с cookie на сервере.
6
- * @param request Входящий запрос.
7
- * @param response Исходящий ответ.
8
- * @return Middleware.
9
- */
10
- function collectCookieMiddleware(request, response) {
11
- const store = createCookieStore(request.get('cookie'));
12
- return async function collectCookie(config, next) {
13
- const result = await next({
14
- ...config,
15
- headers: {
16
- ...config.headers,
17
- Cookie: store.asHeader(),
18
- },
19
- });
20
- if (result.headers['set-cookie'] && !response.writableEnded) {
21
- store.set(result.headers['set-cookie']);
22
- response.setHeader('cookie', store.asHeader());
23
- }
24
- };
25
- }
26
- exports.collectCookieMiddleware = collectCookieMiddleware;
27
- /**
28
- * Возвращает новое хранилище cookie.
29
- * @internal
30
- * @param initialCookie Начальное значение cookie.
31
- * @return Хранилище cookie.
32
- */
33
- function createCookieStore(initialCookie) {
34
- const data = {};
35
- // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
36
- function setItem(cookieItem) {
37
- const [cookieName, cookieValue] = cookieItem.split('=').map(item => item.trim());
38
- if (cookieName && cookieValue) {
39
- data[cookieName] = { name: cookieName, value: cookieValue };
40
- }
41
- }
42
- if (initialCookie && initialCookie.length) {
43
- for (const item of initialCookie.split(';')) {
44
- setItem(item);
45
- }
46
- }
47
- // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
48
- function set(setCookieHeaderValues) {
49
- for (const item of setCookieHeaderValues) {
50
- // отделяем значение от директив
51
- const [cookie] = item.split(';');
52
- setItem(cookie);
53
- }
54
- }
55
- // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
56
- function asHeader() {
57
- return Object.values(data)
58
- .map(cookie => `${cookie.name}=${cookie.value}`)
59
- .join('; ');
60
- }
61
- return { set, asHeader };
62
- }
63
- exports.createCookieStore = createCookieStore;
64
- //# sourceMappingURL=cookie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/http-client/middleware/cookie.ts"],"names":[],"mappings":";;;AAQA;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,OAAgB,EAAE,QAAkB;IAC1E,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvD,OAAO,KAAK,UAAU,aAAa,CAAC,MAAM,EAAE,IAAI;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;YACxB,GAAG,MAAM;YACT,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,OAAO;gBACjB,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE;aACzB;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YAC3D,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YACxC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAChD;IACH,CAAC,CAAC;AACJ,CAAC;AAjBD,0DAiBC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,aAAsB;IACtD,MAAM,IAAI,GAAoD,EAAE,CAAC;IAEjE,8DAA8D;IAC9D,SAAS,OAAO,CAAC,UAAkB;QACjC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjF,IAAI,UAAU,IAAI,WAAW,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;SAC7D;IACH,CAAC;IAED,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;QACzC,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;SACf;KACF;IAED,8DAA8D;IAC9D,SAAS,GAAG,CAAC,qBAA+B;QAC1C,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE;YACxC,gCAAgC;YAChC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,CAAC;SACjB;IACH,CAAC;IAED,8DAA8D;IAC9D,SAAS,QAAQ;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;aACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAnCD,8CAmCC"}
@@ -1,13 +0,0 @@
1
- import type { Request } from 'express';
2
- import type { Middleware } from 'middleware-axios';
3
- export interface PassHeadersOptions {
4
- predicate: (headerName: string, headerValue: string) => boolean;
5
- }
6
- /**
7
- * Возвращает новый промежуточный слой для проброса заголовков входящего запроса во все исходящие запросы.
8
- * Принудительно игнорирует заголовок Cookie.
9
- * @param req Request.
10
- * @param options Опции.
11
- * @return Промежуточный слой.
12
- */
13
- export declare function passHeadersMiddleware(req: Request, { predicate }?: PassHeadersOptions): Middleware<any>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.passHeadersMiddleware = void 0;
4
- /**
5
- * Возвращает новый промежуточный слой для проброса заголовков входящего запроса во все исходящие запросы.
6
- * Принудительно игнорирует заголовок Cookie.
7
- * @param req Request.
8
- * @param options Опции.
9
- * @return Промежуточный слой.
10
- */
11
- function passHeadersMiddleware(req, { predicate } = { predicate: () => true }) {
12
- return async function passHeaders(config, next) {
13
- const headers = { ...config.headers };
14
- for (const headerName in req.headers) {
15
- const headerValue = req.headers[headerName];
16
- if (typeof headerValue === 'string' && predicate(headerName, headerValue)) {
17
- headers[headerName] = headerValue;
18
- }
19
- }
20
- // ВАЖНО: не ждем ответа тк он может упасть + нам не важен результат
21
- next({ ...config, headers });
22
- };
23
- }
24
- exports.passHeadersMiddleware = passHeadersMiddleware;
25
- //# sourceMappingURL=headers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/http-client/middleware/headers.ts"],"names":[],"mappings":";;;AAQA;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,GAAY,EACZ,EAAE,SAAS,KAAyB,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;IAE7D,OAAO,KAAK,UAAU,WAAW,CAAC,MAAM,EAAE,IAAI;QAC5C,MAAM,OAAO,GAA2B,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAE9D,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,OAAO,EAAE;YACpC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE5C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;gBACzE,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;aACnC;SACF;QAED,oEAAoE;QACpE,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAlBD,sDAkBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/http-client/middleware/log.ts"],"names":[],"mappings":";;;AA4BA;;;;GAIG;AACH,SAAgB,aAAa,CAAC,WAAqC;IACjE,OAAO,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;QAC9C,MAAM,MAAM,GAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAEtF,IAAI;YACF,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;SACtD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAE5C,8DAA8D;YAC9D,MAAM,KAAK,CAAC;SACb;IACH,CAAC,CAAC;AACJ,CAAC;AAlBD,sCAkBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/http-client/middleware/tracing.ts"],"names":[],"mappings":";;;AAEA,4CAAqE;AACrE,8EAAyE;AACzE,oCAAsC;AAEtC;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAc,EAAE,WAAoB;IACpE,OAAO,KAAK,UAAU,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,MAAM,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAE/E,IAAI,CAAC,aAAa,CAAC;YACjB,CAAC,yCAAkB,CAAC,QAAQ,CAAC,EAAE,GAAG;YAClC,CAAC,yCAAkB,CAAC,WAAW,CAAC,EAAE,MAAM;YACxC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC/B,GAAG,QAAQ,CAAC,MAAM;gBAClB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC;YACF,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAW,CAAC;gBAClD,GAAG,MAAM,CAAC,OAAO;aAClB,CAAC;YAEF,mCAAmC;YACnC,GAAG,CAAC,OAAO,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;SAC1C,CAAC,CAAC;QAEH,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;SACpB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,oBAAc,CAAC,KAAK;gBAC1B,OAAO,EAAE,qBAAqB;aAC/B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,EAAE,CAAC;YAEX,mBAAmB;YACnB,MAAM,KAAK,CAAC;SACb;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AArCD,8CAqCC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,MAA0B,EAC1B,QAAuB;IAMvB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAEzD,wDAAwD;IACxD,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAErE,OAAO;QACL,MAAM;QACN,GAAG,EAAE,IAAA,kBAAU,EAAC,OAAO,EAAE,GAAG,CAAC;QAC7B,OAAO;KACR,CAAC;AACJ,CAAC;AAnBD,wCAmBC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACtF,CAAC;AAJD,kCAIC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http-client/sauce/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4D;AAC5D,mDAA+D;AAoC/D;;;;GAIG;AACH,SAAgB,KAAK,CAAC,QAA8C;IAClE,OAAO;QACL,OAAO,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACxD,GAAG,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;QAChD,MAAM,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACtD,IAAI,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAClD,OAAO,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACxD,IAAI,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAClD,GAAG,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;QAChD,KAAK,EAAE,IAAA,sBAAW,EAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;KACrD,CAAC;AACJ,CAAC;AAXD,sBAWC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAI,IAAkC;IACpE,IAAI,IAAI,CAAC,EAAE,EAAE;QACX,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC3B,CAAC;KACH;SAAM;QACL,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,eAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS;YAC5E,MAAM,EAAE,eAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS;YAChF,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;KACH;AACH,CAAC;AAfD,4CAeC"}
@@ -1,6 +0,0 @@
1
- import type { AxiosRequestConfig } from 'axios';
2
- import type { AxiosInstanceWrapper } from 'middleware-axios';
3
- export type HttpClient = AxiosInstanceWrapper;
4
- export interface HttpClientFactory {
5
- (config?: AxiosRequestConfig): HttpClient;
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-client/utils.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,SAAgB,UAAU,CACxB,UAAyC,EAAE,EAC3C,MAAiC,EAAE;IAEnC,IAAI,MAAc,CAAC;IAEnB,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;YAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YACnE,MAAM;QACR,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;YAC3B,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM;QACR,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;YAC3B,MAAM,GAAG,GAAG,CAAC;YACb,MAAM;QACR,KAAK,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC;QACtB;YACE,MAAM,GAAG,SAAS,CAAC;YACnB,MAAM;KACT;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAvBD,gCAuBC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,MAA0B,EAC1B,QAAuB;IAEvB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC;IAEzD,OAAO;QACL,MAAM;QACN,GAAG,YAAY;QACf,GAAG,MAAM;QACT,OAAO,EAAE;YACP,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,EAAmC,CAAC;YACzE,GAAG,MAAM,CAAC,OAAO;SAClB;KACF,CAAC;AACJ,CAAC;AAhBD,gDAgBC"}
@@ -1,4 +0,0 @@
1
- export declare const RESPONSE_EVENT: {
2
- readonly renderStart: symbol;
3
- readonly renderFinish: symbol;
4
- };
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RESPONSE_EVENT = void 0;
4
- exports.RESPONSE_EVENT = {
5
- renderStart: Symbol('render:start'),
6
- renderFinish: Symbol('render:finish'),
7
- };
8
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/http-server/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC;CAC7B,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Ошибка в процессе серверного рендеринга.
3
- */
4
- export declare class SSRError extends Error {
5
- statusCode: number;
6
- /**
7
- * @param message Сообщение.
8
- * @param statusCode Код ответа.
9
- */
10
- constructor(message: string, statusCode?: number);
11
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SSRError = void 0;
4
- /**
5
- * Ошибка в процессе серверного рендеринга.
6
- */
7
- class SSRError extends Error {
8
- /**
9
- * @param message Сообщение.
10
- * @param statusCode Код ответа.
11
- */
12
- constructor(message, statusCode = 500) {
13
- super(message);
14
- this.statusCode = statusCode;
15
- }
16
- }
17
- exports.SSRError = SSRError;
18
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/http-server/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAGjC;;;OAGG;IACH,YAAY,OAAe,EAAE,UAAU,GAAG,GAAG;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAXD,4BAWC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../../src/http-server/handler/health-check.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,WAAW;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAClB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAND,kCAMC"}
@@ -1,14 +0,0 @@
1
- import { Tracer } from '@opentelemetry/api';
2
- import type { Request, Handler } from 'express';
3
- /**
4
- * Возвращает новый middleware для трассировки стадий входящего запроса.
5
- * @param tracer Tracer.
6
- * @return Middleware.
7
- */
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,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getConventionalRequestAttrs = exports.tracingMiddleware = void 0;
4
- const constants_1 = require("../constants");
5
- const api_1 = require("@opentelemetry/api");
6
- /**
7
- * Возвращает новый middleware для трассировки стадий входящего запроса.
8
- * @param tracer Tracer.
9
- * @return Middleware.
10
- */
11
- function tracingMiddleware(tracer) {
12
- return function tracing(req, res, next) {
13
- const externalContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, req.headers);
14
- const rootSpan = tracer.startSpan('response', undefined, externalContext);
15
- rootSpan.setAttributes(getConventionalRequestAttrs(req));
16
- const rootContext = api_1.trace.setSpan(externalContext, rootSpan);
17
- res.locals.tracing = {
18
- rootSpan,
19
- rootContext,
20
- };
21
- res.once(constants_1.RESPONSE_EVENT.renderStart, () => {
22
- res.locals.tracing.renderSpan = tracer.startSpan('render', undefined, rootContext);
23
- });
24
- res.once(constants_1.RESPONSE_EVENT.renderFinish, () => {
25
- res.locals.tracing.renderSpan.end();
26
- });
27
- res.once('finish', () => {
28
- rootSpan.end();
29
- });
30
- next();
31
- };
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;
51
- //# sourceMappingURL=tracing.js.map
@@ -1 +0,0 @@
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,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QACpC,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"}
@@ -1,20 +0,0 @@
1
- import type { Request, Response, NextFunction } from 'express';
2
- export interface HandlerContext {
3
- req: Request;
4
- res: Response;
5
- next: NextFunction;
6
- }
7
- export interface PageAssets {
8
- js: string;
9
- css: string;
10
- criticalJs?: string;
11
- criticalCss?: string;
12
- }
13
- export interface ConventionalJson {
14
- markup: string;
15
- bundle_js: string;
16
- bundle_css: string;
17
- critical_js?: string;
18
- critical_css?: string;
19
- meta?: any;
20
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http-server/types.ts"],"names":[],"mappings":""}
@@ -1,43 +0,0 @@
1
- import type { Handler, Request, Response } from 'express';
2
- import type { PageAssets } from './types';
3
- import type { BaseConfig } from '../config/types';
4
- /**
5
- * Объединяет промежуточные слои в один.
6
- * @param list Промежуточные слои.
7
- * @return Промежуточный слой.
8
- */
9
- export declare function composeMiddleware(list: Handler[]): Handler;
10
- /**
11
- * Определяет IP входящего запроса.
12
- * @param req Входящий запрос.
13
- * @return IP.
14
- */
15
- export declare function getXClientIp(req: Request): string;
16
- /**
17
- * Определяет служебные заголовки по соглашению.
18
- * @param req Входящий запрос.
19
- * @return Служебные заголовки.
20
- */
21
- export declare function getServiceHeaders(req: Request): Record<string, string | undefined>;
22
- /**
23
- * Формирует заголовки для исходящих запросов с сервера по соглашению.
24
- * @todo Убрать в preset'ы?
25
- * @param config Конфиг.
26
- * @param request Входящий запрос.
27
- * @return Заголовки для исходящих запросов.
28
- */
29
- export declare function getRequestHeaders(config: BaseConfig, request: Request): Record<string, string>;
30
- export declare class PageResponse {
31
- private type;
32
- private html;
33
- private _meta;
34
- private _assets;
35
- static defineFormat(req: Request): PageResponse['type'];
36
- constructor();
37
- markup(html: string): this;
38
- assets(assets: PageAssets): this;
39
- format(type: PageResponse['type']): this;
40
- meta(meta: any): this;
41
- getMeta(): unknown;
42
- send(res: Response): void;
43
- }
@@ -1,134 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PageResponse = exports.getRequestHeaders = exports.getServiceHeaders = exports.getXClientIp = exports.composeMiddleware = void 0;
7
- const node_net_1 = __importDefault(require("node:net"));
8
- /**
9
- * Объединяет промежуточные слои в один.
10
- * @param list Промежуточные слои.
11
- * @return Промежуточный слой.
12
- */
13
- function composeMiddleware(list) {
14
- return list.reduce((a, b) => (req, res, next) => {
15
- a(req, res, err => {
16
- if (err) {
17
- return next(err);
18
- }
19
- b(req, res, next);
20
- });
21
- });
22
- }
23
- exports.composeMiddleware = composeMiddleware;
24
- /**
25
- * Определяет IP входящего запроса.
26
- * @param req Входящий запрос.
27
- * @return IP.
28
- */
29
- function getXClientIp(req) {
30
- const headerValue = req.get('x-client-ip') || req.get('x-forwarded-for') || req.socket.remoteAddress || '';
31
- return node_net_1.default.isIP(headerValue) ? headerValue : '';
32
- }
33
- exports.getXClientIp = getXClientIp;
34
- /**
35
- * Определяет служебные заголовки по соглашению.
36
- * @param req Входящий запрос.
37
- * @return Служебные заголовки.
38
- */
39
- function getServiceHeaders(req) {
40
- const result = {};
41
- for (const [key] of Object.entries(req.headers)) {
42
- if (key.toLowerCase().indexOf('simaland-') === 0) {
43
- result[key] = req.header(key);
44
- }
45
- }
46
- return result;
47
- }
48
- exports.getServiceHeaders = getServiceHeaders;
49
- /**
50
- * Формирует заголовки для исходящих запросов с сервера по соглашению.
51
- * @todo Убрать в preset'ы?
52
- * @param config Конфиг.
53
- * @param request Входящий запрос.
54
- * @return Заголовки для исходящих запросов.
55
- */
56
- function getRequestHeaders(config, request) {
57
- return {
58
- 'X-Client-Ip': getXClientIp(request),
59
- 'User-Agent': `simaland-${config.appName}/${config.appVersion}`,
60
- Cookie: request.get('cookie') || '',
61
- ...getServiceHeaders(request),
62
- };
63
- }
64
- exports.getRequestHeaders = getRequestHeaders;
65
- /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
66
- class PageResponse {
67
- static defineFormat(req) {
68
- let result = 'html';
69
- if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
70
- result = 'json';
71
- }
72
- return result;
73
- }
74
- constructor() {
75
- this.type = 'html';
76
- this.html = '';
77
- this._assets = { js: '', css: '' };
78
- }
79
- markup(html) {
80
- this.html = html;
81
- return this;
82
- }
83
- assets(assets) {
84
- this._assets = assets;
85
- return this;
86
- }
87
- format(type) {
88
- this.type = type;
89
- return this;
90
- }
91
- meta(meta) {
92
- this._meta = meta;
93
- return this;
94
- }
95
- getMeta() {
96
- return this._meta;
97
- }
98
- send(res) {
99
- switch (this.type) {
100
- case 'json': {
101
- const result = {
102
- markup: this.html,
103
- bundle_js: this._assets.js,
104
- bundle_css: this._assets.css,
105
- critical_js: this._assets.criticalJs,
106
- critical_css: this._assets.criticalCss,
107
- meta: this._meta,
108
- };
109
- res.json(result);
110
- break;
111
- }
112
- case 'html': {
113
- res.setHeader('simaland-bundle-js', this._assets.js);
114
- res.setHeader('simaland-bundle-css', this._assets.css);
115
- if (this._assets.criticalJs) {
116
- res.setHeader('simaland-critical-js', this._assets.criticalJs);
117
- }
118
- if (this._assets.criticalCss) {
119
- res.setHeader('simaland-critical-css', this._assets.criticalCss);
120
- }
121
- if (this._meta) {
122
- res.setHeader('simaland-meta', JSON.stringify(this._meta));
123
- }
124
- res.send(this.markup);
125
- break;
126
- }
127
- default:
128
- throw Error(`Unknown response format ${String(this.type)}`);
129
- }
130
- }
131
- }
132
- exports.PageResponse = PageResponse;
133
- /* eslint-enable require-jsdoc, jsdoc/require-jsdoc */
134
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { Resolve, Preset } from '../../di';
2
- import { ConfigSource } from '../../config';
3
- import { Logger } from '../../log';
4
- import { BridgeClientSide } from '../../utils/ssr';
5
- import { StrictMap, KnownHttpApiKey, PresetTuner } from '../parts/types';
6
- import { HttpClientFactory } from '../../http-client/types';
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;
14
- export declare function provideLogger(resolve: Resolve): Logger;
15
- export declare function provideBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown>;
16
- export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;
17
- export declare function provideHttpClientFactory(resolve: Resolve): HttpClientFactory;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { Handler } from 'express';
2
- import { Application, Preset, Resolve } from '../../di';
3
- import { HttpClientFactory } from '../../http-client/types';
4
- import { PresetTuner } from '../parts/types';
5
- /**
6
- * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
7
- * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
8
- * @todo Возможно стоит переименовать в PresetPageHandler.
9
- * @return Preset.
10
- */
11
- export declare function PresetHandler(customize?: PresetTuner): Preset;
12
- export declare function provideHttpClientFactory(resolve: Resolve): HttpClientFactory;
13
- export declare function provideMain(resolve: Resolve): VoidFunction;
14
- export declare function provideSpecificParams(resolve: Resolve): Record<string, unknown>;
15
- /**
16
- * Возвращает express-handler, создающий дочернее di-приложение при запросе.
17
- * @param getApp Должна вернуть di-приложения запроса.
18
- * @return Обработчик.
19
- */
20
- export declare function HandlerProvider(getApp: () => Application): (resolve: Resolve) => Handler;