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

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 (177) hide show
  1. package/cache/types.d.ts +24 -2
  2. package/config/{index.d.ts → base.d.ts} +2 -2
  3. package/config/{index.js → base.js} +3 -3
  4. package/config/base.js.map +1 -0
  5. package/config/browser.d.ts +1 -1
  6. package/config/browser.js +11 -2
  7. package/config/browser.js.map +1 -1
  8. package/config/node.d.ts +1 -1
  9. package/config/node.js +16 -6
  10. package/config/node.js.map +1 -1
  11. package/config/types.d.ts +3 -0
  12. package/di/application.d.ts +10 -0
  13. package/{container → di}/application.js +30 -8
  14. package/di/application.js.map +1 -0
  15. package/di/container.d.ts +6 -0
  16. package/di/container.js +52 -0
  17. package/di/container.js.map +1 -0
  18. package/di/errors.d.ts +32 -0
  19. package/di/errors.js +48 -0
  20. package/di/errors.js.map +1 -0
  21. package/di/index.d.ts +6 -0
  22. package/di/index.js +17 -0
  23. package/di/index.js.map +1 -0
  24. package/di/preset.d.ts +9 -0
  25. package/di/preset.js +31 -0
  26. package/di/preset.js.map +1 -0
  27. package/di/token.d.ts +7 -0
  28. package/di/token.js +39 -0
  29. package/di/token.js.map +1 -0
  30. package/di/types.d.ts +88 -0
  31. package/{container → di}/types.js +0 -0
  32. package/{tracer → di}/types.js.map +1 -1
  33. package/error-tracking/index.d.ts +24 -0
  34. package/error-tracking/index.js +32 -0
  35. package/error-tracking/index.js.map +1 -0
  36. package/error-tracking/types.d.ts +19 -0
  37. package/{error-tracker → error-tracking}/types.js +0 -0
  38. package/{container → error-tracking}/types.js.map +1 -1
  39. package/http-client/middleware/cookie.d.ts +1 -0
  40. package/http-client/middleware/cookie.js +2 -1
  41. package/http-client/middleware/cookie.js.map +1 -1
  42. package/http-client/middleware/headers.d.ts +13 -0
  43. package/http-client/middleware/headers.js +24 -0
  44. package/http-client/middleware/headers.js.map +1 -0
  45. package/http-client/middleware/logging.d.ts +16 -0
  46. package/http-client/middleware/logging.js +111 -0
  47. package/http-client/middleware/logging.js.map +1 -0
  48. package/http-client/middleware/tracing.js +9 -1
  49. package/http-client/middleware/tracing.js.map +1 -1
  50. package/http-client/sauce/index.d.ts +3 -1
  51. package/http-client/sauce/index.js +15 -2
  52. package/http-client/sauce/index.js.map +1 -1
  53. package/http-server/errors.d.ts +11 -0
  54. package/http-server/errors.js +18 -0
  55. package/http-server/errors.js.map +1 -0
  56. package/http-server/handler/health-check.d.ts +1 -1
  57. package/http-server/handler/health-check.js +1 -1
  58. package/http-server/middleware/metrics.js +2 -2
  59. package/http-server/middleware/metrics.js.map +1 -1
  60. package/http-server/middleware/tracing.d.ts +8 -2
  61. package/http-server/middleware/tracing.js +19 -1
  62. package/http-server/middleware/tracing.js.map +1 -1
  63. package/http-server/template/index.js +6 -0
  64. package/http-server/template/index.js.map +1 -1
  65. package/http-server/types.d.ts +2 -0
  66. package/http-server/utils.d.ts +3 -5
  67. package/http-server/utils.js +16 -15
  68. package/http-server/utils.js.map +1 -1
  69. package/logger/handler/console.d.ts +1 -1
  70. package/logger/handler/console.js +8 -1
  71. package/logger/handler/console.js.map +1 -1
  72. package/logger/handler/sentry.d.ts +3 -3
  73. package/logger/handler/sentry.js +13 -7
  74. package/logger/handler/sentry.js.map +1 -1
  75. package/logger/index.d.ts +2 -6
  76. package/logger/index.js +2 -27
  77. package/logger/index.js.map +1 -1
  78. package/logger/logger.d.ts +6 -0
  79. package/logger/logger.js +31 -0
  80. package/logger/logger.js.map +1 -0
  81. package/logger/types.d.ts +16 -0
  82. package/metrics/constants.d.ts +3 -0
  83. package/metrics/constants.js +3 -0
  84. package/metrics/constants.js.map +1 -1
  85. package/metrics/node.d.ts +7 -0
  86. package/metrics/node.js +1 -0
  87. package/metrics/node.js.map +1 -1
  88. package/package.json +4 -2
  89. package/preset/browser/index.d.ts +12 -0
  90. package/preset/browser/index.js +67 -0
  91. package/preset/browser/index.js.map +1 -0
  92. package/preset/node/index.d.ts +14 -6
  93. package/preset/node/index.js +92 -36
  94. package/preset/node/index.js.map +1 -1
  95. package/preset/node/response.d.ts +14 -8
  96. package/preset/node/response.js +87 -27
  97. package/preset/node/response.js.map +1 -1
  98. package/preset/types.d.ts +7 -6
  99. package/preset/utils.d.ts +15 -0
  100. package/preset/utils.js +26 -0
  101. package/preset/utils.js.map +1 -0
  102. package/tokens.d.ts +35 -18
  103. package/tokens.js +31 -17
  104. package/tokens.js.map +1 -1
  105. package/tracing/index.d.ts +9 -0
  106. package/tracing/index.js +20 -0
  107. package/tracing/index.js.map +1 -0
  108. package/utils/browser/analytics/oko.d.ts +2 -1
  109. package/utils/browser/analytics/oko.js +2 -1
  110. package/utils/browser/analytics/oko.js.map +1 -1
  111. package/utils/browser/storage/index.d.ts +8 -0
  112. package/utils/browser/storage/index.js +5 -0
  113. package/utils/browser/storage/index.js.map +1 -1
  114. package/utils/react/error-handlers/index.d.ts +9 -6
  115. package/utils/react/error-handlers/index.js +4 -3
  116. package/utils/react/error-handlers/index.js.map +1 -1
  117. package/utils/redux/remote-data.d.ts +9 -0
  118. package/utils/redux/remote-data.js +3 -0
  119. package/utils/redux/remote-data.js.map +1 -1
  120. package/utils/redux-saga/index.d.ts +3 -0
  121. package/utils/redux-saga/index.js +8 -0
  122. package/utils/redux-saga/index.js.map +1 -0
  123. package/utils/redux-saga/middleware.d.ts +9 -0
  124. package/utils/redux-saga/middleware.js +87 -0
  125. package/utils/redux-saga/middleware.js.map +1 -0
  126. package/utils/redux-saga/take-chain.d.ts +2 -0
  127. package/utils/redux-saga/take-chain.js +2 -0
  128. package/utils/redux-saga/take-chain.js.map +1 -1
  129. package/utils/redux-saga/types.d.ts +6 -0
  130. package/{saga-runner → utils/redux-saga}/types.js +0 -0
  131. package/{error-tracker → utils/redux-saga}/types.js.map +1 -1
  132. package/utils/ssr/index.d.ts +41 -0
  133. package/utils/ssr/index.js +54 -0
  134. package/utils/ssr/index.js.map +1 -0
  135. package/utils/webpack/index.d.ts +23 -0
  136. package/utils/webpack/index.js +66 -0
  137. package/utils/webpack/index.js.map +1 -0
  138. package/utils/webpack/module-federation/index.d.ts +4 -1
  139. package/utils/webpack/module-federation/index.js +4 -2
  140. package/utils/webpack/module-federation/index.js.map +1 -1
  141. package/utils/webpack/module-federation/types.d.ts +4 -0
  142. package/utils/webpack/module-federation/utils.d.ts +1 -0
  143. package/utils/webpack/module-federation/utils.js +1 -0
  144. package/utils/webpack/module-federation/utils.js.map +1 -1
  145. package/config/index.js.map +0 -1
  146. package/config/utils.d.ts +0 -5
  147. package/config/utils.js +0 -12
  148. package/config/utils.js.map +0 -1
  149. package/container/application.d.ts +0 -25
  150. package/container/application.js.map +0 -1
  151. package/container/index.d.ts +0 -18
  152. package/container/index.js +0 -74
  153. package/container/index.js.map +0 -1
  154. package/container/types.d.ts +0 -14
  155. package/error-tracker/browser.d.ts +0 -8
  156. package/error-tracker/browser.js +0 -40
  157. package/error-tracker/browser.js.map +0 -1
  158. package/error-tracker/node.d.ts +0 -8
  159. package/error-tracker/node.js +0 -40
  160. package/error-tracker/node.js.map +0 -1
  161. package/error-tracker/types.d.ts +0 -18
  162. package/error-tracker/utils.d.ts +0 -12
  163. package/error-tracker/utils.js +0 -19
  164. package/error-tracker/utils.js.map +0 -1
  165. package/preset/index.d.ts +0 -7
  166. package/preset/index.js +0 -25
  167. package/preset/index.js.map +0 -1
  168. package/saga-runner/index.d.ts +0 -8
  169. package/saga-runner/index.js +0 -79
  170. package/saga-runner/index.js.map +0 -1
  171. package/saga-runner/types.d.ts +0 -10
  172. package/saga-runner/types.js.map +0 -1
  173. package/tracer/node.d.ts +0 -10
  174. package/tracer/node.js +0 -38
  175. package/tracer/node.js.map +0 -1
  176. package/tracer/types.d.ts +0 -2
  177. package/tracer/types.js +0 -3
@@ -32,12 +32,9 @@ class PageResponse {
32
32
  constructor() {
33
33
  this.type = 'html';
34
34
  this.html = '';
35
- this.assets = { js: '', css: '' };
35
+ this._assets = { js: '', css: '' };
36
36
  this._template = PageResponse.defaultTemplate;
37
37
  }
38
- static create() {
39
- return new PageResponse();
40
- }
41
38
  static defineFormat(req) {
42
39
  let result = 'html';
43
40
  if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
@@ -52,12 +49,8 @@ class PageResponse {
52
49
  this.html = html;
53
50
  return this;
54
51
  }
55
- script(url) {
56
- this.assets.js = url;
57
- return this;
58
- }
59
- styles(url) {
60
- this.assets.css = url;
52
+ assets(assets) {
53
+ this._assets = assets;
61
54
  return this;
62
55
  }
63
56
  format(type) {
@@ -72,21 +65,29 @@ class PageResponse {
72
65
  const templateData = {
73
66
  type: this.type,
74
67
  markup: this.html,
75
- assets: this.assets,
68
+ assets: this._assets,
76
69
  };
77
70
  switch (this.type) {
78
71
  case 'json': {
79
72
  const result = {
80
73
  markup: this._template(templateData),
81
- bundle_js: this.assets.js,
82
- bundle_css: this.assets.css,
74
+ bundle_js: this._assets.js,
75
+ bundle_css: this._assets.css,
76
+ critical_js: this._assets.criticalJs,
77
+ critical_css: this._assets.criticalCss,
83
78
  };
84
79
  res.json(result);
85
80
  break;
86
81
  }
87
82
  case 'html': {
88
- res.setHeader('simaland-bundle-js', this.assets.js);
89
- res.setHeader('simaland-bundle-css', this.assets.css);
83
+ res.setHeader('simaland-bundle-js', this._assets.js);
84
+ res.setHeader('simaland-bundle-css', this._assets.css);
85
+ if (this._assets.criticalJs) {
86
+ res.setHeader('simaland-critical-js', this._assets.criticalJs);
87
+ }
88
+ if (this._assets.criticalCss) {
89
+ res.setHeader('simaland-critical-css', this._assets.criticalCss);
90
+ }
90
91
  res.send(this._template(templateData));
91
92
  break;
92
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { BaseConfig } from '../../config/types';
2
- import { LoggerEventHandler } from '../types';
2
+ import type { LoggerEventHandler } from '../types';
3
3
  /**
4
4
  * Возвращает новый handler для logger'а для вывода событий в терминал.
5
5
  * @param config Конфиг.
@@ -21,11 +21,18 @@ function createConsoleHandler(config) {
21
21
  },
22
22
  }
23
23
  : (0, pino_pretty_1.default)({ colorize: true }));
24
- return function (event) {
24
+ return function handler(event) {
25
25
  switch (event.type) {
26
+ case 'log':
26
27
  case 'info':
27
28
  logger.info(event.data);
28
29
  break;
30
+ case 'warn':
31
+ logger.warn(event.data);
32
+ break;
33
+ case 'debug':
34
+ logger.debug(event.data);
35
+ break;
29
36
  case 'error':
30
37
  logger.error(event.data);
31
38
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logger/handler/console.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AACxB,8DAAqC;AAGrC;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAA,cAAI,EACjB,MAAM;QACJ,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACnC;SACF;QACH,CAAC,CAAC,IAAA,qBAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACnC,CAAC;IAEF,OAAO,UAAU,KAAK;QACpB,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;SACT;IACH,CAAC,CAAC;AACJ,CAAC;AAxBD,oDAwBC"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logger/handler/console.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AACxB,8DAAqC;AAErC;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAA,cAAI,EACjB,MAAM;QACJ,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACnC;SACF;QACH,CAAC,CAAC,IAAA,qBAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACnC,CAAC;IAEF,OAAO,SAAS,OAAO,CAAC,KAAK;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;SACT;IACH,CAAC,CAAC;AACJ,CAAC;AA/BD,oDA+BC"}
@@ -1,8 +1,8 @@
1
- import type { SentryLib } from '../../error-tracker/types';
2
1
  import type { LoggerEventHandler } from '../types';
2
+ import type { Hub } from '@sentry/types';
3
3
  /**
4
4
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
5
- * @param sentry Набор данных для работы с Sentry.
5
+ * @param hub Sentry Hub.
6
6
  * @return Handler.
7
7
  */
8
- export declare function createSentryHandler(sentry: SentryLib): LoggerEventHandler;
8
+ export declare function createSentryHandler(hub: Hub): LoggerEventHandler;
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSentryHandler = void 0;
4
- const utils_1 = require("../../error-tracker/utils");
4
+ const error_tracking_1 = require("../../error-tracking");
5
5
  /**
6
6
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
7
- * @param sentry Набор данных для работы с Sentry.
7
+ * @param hub Sentry Hub.
8
8
  * @return Handler.
9
9
  */
10
- function createSentryHandler(sentry) {
10
+ function createSentryHandler(hub) {
11
11
  return event => {
12
+ // error
12
13
  if (event.type === 'error') {
13
14
  const error = event.data;
14
- if (error instanceof utils_1.SentryError) {
15
+ if (error instanceof error_tracking_1.SentryError) {
15
16
  const { level, context, extra } = error.data;
16
- sentry.withScope(scope => {
17
+ hub.withScope(scope => {
17
18
  if (level) {
18
19
  scope.setLevel(level);
19
20
  }
@@ -23,13 +24,18 @@ function createSentryHandler(sentry) {
23
24
  if (extra) {
24
25
  scope.setExtra(extra.key, extra.data);
25
26
  }
26
- sentry.client.captureException(error);
27
+ hub.captureException(error);
27
28
  });
28
29
  }
29
30
  else {
30
- sentry.client.captureException(error);
31
+ hub.captureException(error);
31
32
  }
32
33
  }
34
+ // breadcrumb
35
+ if (event.data instanceof error_tracking_1.SentryBreadcrumb) {
36
+ const breadcrumb = event.data.data;
37
+ hub.addBreadcrumb(breadcrumb);
38
+ }
33
39
  };
34
40
  }
35
41
  exports.createSentryHandler = createSentryHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/logger/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAExD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,MAAiB;IACnD,OAAO,KAAK,CAAC,EAAE;QACb,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,IAAI,KAAK,YAAY,mBAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE7C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACvB,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACvB;oBAED,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;qBAC7C;oBAED,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;qBACvC;oBAED,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACvC;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AA5BD,kDA4BC"}
1
+ {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/logger/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,yDAAqE;AAErE;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,GAAQ;IAC1C,OAAO,KAAK,CAAC,EAAE;QACb,QAAQ;QACR,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,IAAI,KAAK,YAAY,4BAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE7C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACpB,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACvB;oBAED,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;qBAC7C;oBAED,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;qBACvC;oBAED,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC7B;SACF;QAED,aAAa;QACb,IAAI,KAAK,CAAC,IAAI,YAAY,iCAAgB,EAAE;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAEnC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;AACJ,CAAC;AApCD,kDAoCC"}
package/logger/index.d.ts CHANGED
@@ -1,6 +1,2 @@
1
- import type { Logger } from './types';
2
- /**
3
- * Возвращает новый logger - объект для журналирования событий подобно console.
4
- * @return Logger.
5
- */
6
- export declare function createLogger(): Logger;
1
+ export { Logger, LoggerEvent, LoggerEventType, LoggerEventHandler } from './types';
2
+ export { createLogger } from './logger';
package/logger/index.js CHANGED
@@ -1,31 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLogger = void 0;
4
- /**
5
- * Возвращает новый logger - объект для журналирования событий подобно console.
6
- * @return Logger.
7
- */
8
- function createLogger() {
9
- const handlers = [];
10
- // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
11
- function createMethod(type) {
12
- return function (data) {
13
- const event = { type, data };
14
- for (const handler of handlers) {
15
- handler(event);
16
- }
17
- };
18
- }
19
- return {
20
- log: createMethod('log'),
21
- info: createMethod('info'),
22
- warn: createMethod('warn'),
23
- error: createMethod('error'),
24
- debug: createMethod('debug'),
25
- subscribe: handler => {
26
- handlers.push(handler);
27
- },
28
- };
29
- }
30
- exports.createLogger = createLogger;
4
+ var logger_1 = require("./logger");
5
+ Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
31
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8DAA8D;IAC9D,SAAS,YAAY,CAAC,IAAqB;QACzC,OAAO,UAAU,IAAS;YACxB,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAE5B,SAAS,EAAE,OAAO,CAAC,EAAE;YACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAxBD,oCAwBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
@@ -0,0 +1,6 @@
1
+ import type { Logger } from './types';
2
+ /**
3
+ * Возвращает новый logger - объект для журналирования событий подобно console.
4
+ * @return Logger.
5
+ */
6
+ export declare function createLogger(): Logger;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogger = void 0;
4
+ /**
5
+ * Возвращает новый logger - объект для журналирования событий подобно console.
6
+ * @return Logger.
7
+ */
8
+ function createLogger() {
9
+ const handlers = [];
10
+ // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
11
+ function createMethod(type) {
12
+ return function (data) {
13
+ const event = { type, data };
14
+ for (const handler of handlers) {
15
+ handler(event);
16
+ }
17
+ };
18
+ }
19
+ return {
20
+ log: createMethod('log'),
21
+ info: createMethod('info'),
22
+ warn: createMethod('warn'),
23
+ error: createMethod('error'),
24
+ debug: createMethod('debug'),
25
+ subscribe: handler => {
26
+ handlers.push(handler);
27
+ },
28
+ };
29
+ }
30
+ exports.createLogger = createLogger;
31
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8DAA8D;IAC9D,SAAS,YAAY,CAAC,IAAqB;QACzC,OAAO,UAAU,IAAS;YACxB,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAE5B,SAAS,EAAE,OAAO,CAAC,EAAE;YACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAxBD,oCAwBC"}
package/logger/types.d.ts CHANGED
@@ -1,11 +1,24 @@
1
+ /**
2
+ * Тип события.
3
+ */
1
4
  export declare type LoggerEventType = 'error' | 'log' | 'info' | 'warn' | 'debug';
5
+ /**
6
+ * Интерфейс события.
7
+ */
2
8
  export interface LoggerEvent {
3
9
  type: LoggerEventType;
4
10
  data: unknown;
5
11
  }
12
+ /**
13
+ * Интерфейс функции-обработчика события.
14
+ */
6
15
  export interface LoggerEventHandler {
7
16
  (event: LoggerEvent): void;
8
17
  }
18
+ /**
19
+ * Интерфейс логгера.
20
+ * Поддерживает наиболее распространенные события жизненного цикла программы.
21
+ */
9
22
  export interface Logger {
10
23
  error(data: any): void;
11
24
  log(data: any): void;
@@ -14,6 +27,9 @@ export interface Logger {
14
27
  debug(data: any): void;
15
28
  subscribe(handler: LoggerEventHandler): void;
16
29
  }
30
+ /**
31
+ * Структура данных, которую необходимо выводить в терминал по соглашению внутри компании.
32
+ */
17
33
  export interface ConventionalFluentInfo {
18
34
  version: string;
19
35
  latency: number;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Константы лейблов для метрик по соглашению.
3
+ */
1
4
  export declare const ConventionalLabels: {
2
5
  readonly HTTP_RESPONSE: readonly ["version", "route", "code", "method"];
3
6
  readonly SSR: readonly ["version", "route", "method"];
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConventionalLabels = void 0;
4
+ /**
5
+ * Константы лейблов для метрик по соглашению.
6
+ */
4
7
  exports.ConventionalLabels = {
5
8
  HTTP_RESPONSE: ['version', 'route', 'code', 'method'],
6
9
  SSR: ['version', 'route', 'method'],
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/metrics/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAChC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;IACrD,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/metrics/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;IACrD,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;CAC3B,CAAC"}
package/metrics/node.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  import { Application } from 'express';
2
2
  import * as PromClient from 'prom-client';
3
3
  import { ConventionalLabels } from './constants';
4
+ /**
5
+ * Распространенные метрики для Node.js приложения.
6
+ */
4
7
  export interface DefaultNodeMetrics {
8
+ /** Счетчик входящих запросов. */
5
9
  requestCount: PromClient.Counter<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
10
+ /** Гистограмма длительности ответа. */
6
11
  responseDuration: PromClient.Histogram<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
12
+ /** Гистограмма длительности SSR. */
7
13
  renderDuration: PromClient.Histogram<typeof ConventionalLabels.SSR[number]>;
8
14
  }
9
15
  /**
@@ -13,6 +19,7 @@ export interface DefaultNodeMetrics {
13
19
  export declare function createMetricsHttpApp(): Application;
14
20
  /**
15
21
  * Возвращает набор готовых метрик по умолчанию для приложений.
22
+ * @todo Возможно стоит унести это в пресет.
16
23
  * @return Набор метрик.
17
24
  */
18
25
  export declare function createDefaultMetrics(): DefaultNodeMetrics;
package/metrics/node.js CHANGED
@@ -47,6 +47,7 @@ function createMetricsHttpApp() {
47
47
  exports.createMetricsHttpApp = createMetricsHttpApp;
48
48
  /**
49
49
  * Возвращает набор готовых метрик по умолчанию для приложений.
50
+ * @todo Возможно стоит унести это в пресет.
50
51
  * @return Набор метрик.
51
52
  */
52
53
  function createDefaultMetrics() {
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/metrics/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA+C;AAC/C,wDAA0C;AAC1C,2CAAiD;AAQjD;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG;QACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEpD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAbD,oDAaC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,OAAO;QACL,YAAY,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,8BAAkB,CAAC,aAAa;SAC7C,CAAC;QACF,gBAAgB,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,0CAA0C;YAChD,UAAU,EAAE,8BAAkB,CAAC,aAAa;YAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;SACtD,CAAC;QACF,cAAc,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,8BAAkB,CAAC,GAAG;YAClC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;SACjD,CAAC;KACH,CAAC;AACJ,CAAC;AApBD,oDAoBC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/metrics/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA+C;AAC/C,wDAA0C;AAC1C,2CAAiD;AAgBjD;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG;QACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEpD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAbD,oDAaC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,OAAO;QACL,YAAY,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,8BAAkB,CAAC,aAAa;SAC7C,CAAC;QACF,gBAAgB,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,0CAA0C;YAChD,UAAU,EAAE,8BAAkB,CAAC,aAAa;YAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;SACtD,CAAC;QACF,cAAc,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,8BAAkB,CAAC,GAAG;YAClC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;SACjD,CAAC;KACH,CAAC;AACJ,CAAC;AApBD,oDAoBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sima-land/isomorph",
3
- "version": "11.0.0-alpha.2",
3
+ "version": "11.0.0-alpha.20",
4
4
  "description": "Tiny framework for fast start frontend microservices",
5
5
  "author": "www.sima-land.ru team",
6
6
  "license": "Apache-2.0",
@@ -22,6 +22,7 @@
22
22
  "@types/ejs": "^3.1.1",
23
23
  "@types/express": "^4.17.13",
24
24
  "@types/jest": "^27.4.1",
25
+ "@types/jsesc": "^3.0.1",
25
26
  "@types/lodash": "^4.14.182",
26
27
  "@types/react": "^17.0.40",
27
28
  "@types/react-dom": "^17.0.13",
@@ -32,7 +33,7 @@
32
33
  },
33
34
  "dependencies": {
34
35
  "@humanwhocodes/env": "^2.2.0",
35
- "@opentelemetry/api": "^1.0.4",
36
+ "@opentelemetry/api": "^1.1.0",
36
37
  "@opentelemetry/exporter-jaeger": "^1.0.1",
37
38
  "@opentelemetry/instrumentation": "^0.27.0",
38
39
  "@opentelemetry/instrumentation-express": "^0.28.0",
@@ -46,6 +47,7 @@
46
47
  "dotenv": "^16.0.0",
47
48
  "ejs": "^3.1.8",
48
49
  "express": "^4.17.3",
50
+ "jsesc": "^3.0.2",
49
51
  "middleware-axios": "^2.1.2",
50
52
  "pino": "^7.9.1",
51
53
  "pino-pretty": "^7.5.4",
@@ -0,0 +1,12 @@
1
+ import { Resolve } from '../../di';
2
+ import { Logger } from '../../logger';
3
+ import { SagaExtendedMiddleware } from '../../utils/redux-saga';
4
+ import type { BaseConfig } from '../../config/types';
5
+ import { BridgeClientSide } from '../../utils/ssr';
6
+ import { StrictMap, KnownHttpApiKey } from '../types';
7
+ export declare function PresetBrowser(): import("../../di").Preset;
8
+ export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
9
+ export declare function provideLogger(resolve: Resolve): Logger;
10
+ export declare function provideSagaMiddleware(resolve: Resolve): SagaExtendedMiddleware;
11
+ export declare function provideBridgeClientSide(resolve: Resolve): BridgeClientSide<unknown>;
12
+ export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.provideKnownHttpApiHosts = exports.provideBridgeClientSide = exports.provideSagaMiddleware = exports.provideLogger = exports.provideBaseConfig = exports.PresetBrowser = void 0;
4
+ /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
5
+ const di_1 = require("../../di");
6
+ const tokens_1 = require("../../tokens");
7
+ const base_1 = require("../../config/base");
8
+ const browser_1 = require("../../config/browser");
9
+ const logger_1 = require("../../logger");
10
+ const sentry_1 = require("../../logger/handler/sentry");
11
+ const redux_saga_1 = require("../../utils/redux-saga");
12
+ const browser_2 = require("@sentry/browser");
13
+ const middleware_axios_1 = require("middleware-axios");
14
+ const ssr_1 = require("../../utils/ssr");
15
+ const utils_1 = require("../utils");
16
+ function PresetBrowser() {
17
+ return (0, di_1.createPreset)([
18
+ [tokens_1.KnownToken.Config.source, browser_1.createConfigSource],
19
+ [tokens_1.KnownToken.Config.base, provideBaseConfig],
20
+ [tokens_1.KnownToken.logger, provideLogger],
21
+ [tokens_1.KnownToken.sagaMiddleware, provideSagaMiddleware],
22
+ [tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
23
+ [tokens_1.KnownToken.SsrBridge.clientSide, provideBridgeClientSide],
24
+ [tokens_1.KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts],
25
+ ]);
26
+ }
27
+ exports.PresetBrowser = PresetBrowser;
28
+ function provideBaseConfig(resolve) {
29
+ const source = resolve(tokens_1.KnownToken.Config.source);
30
+ return (0, base_1.createBaseConfig)(source);
31
+ }
32
+ exports.provideBaseConfig = provideBaseConfig;
33
+ function provideLogger(resolve) {
34
+ const source = resolve(tokens_1.KnownToken.Config.source);
35
+ const client = new browser_2.BrowserClient({
36
+ dsn: source.require('SENTRY_CLIENT_DSN'),
37
+ release: source.require('SENTRY_RELEASE'),
38
+ environment: source.require('SENTRY_ENVIRONMENT'),
39
+ integrations: [...browser_2.defaultIntegrations],
40
+ });
41
+ const hub = new browser_2.Hub(client);
42
+ const logger = (0, logger_1.createLogger)();
43
+ logger.subscribe((0, sentry_1.createSentryHandler)(hub));
44
+ return logger;
45
+ }
46
+ exports.provideLogger = provideLogger;
47
+ function provideSagaMiddleware(resolve) {
48
+ const logger = resolve(tokens_1.KnownToken.logger);
49
+ return (0, redux_saga_1.createSagaMiddleware)(logger);
50
+ }
51
+ exports.provideSagaMiddleware = provideSagaMiddleware;
52
+ function provideBridgeClientSide(resolve) {
53
+ const config = resolve(tokens_1.KnownToken.Config.base);
54
+ return ssr_1.SsrBridge.resolve(config.appName);
55
+ }
56
+ exports.provideBridgeClientSide = provideBridgeClientSide;
57
+ function provideKnownHttpApiHosts(resolve) {
58
+ const source = resolve(tokens_1.KnownToken.Config.source);
59
+ return new utils_1.HttpApiHostPool({
60
+ ilium: 'PUBLIC_API_URL_ILIUM',
61
+ simaV3: 'PUBLIC_API_URL_SIMALAND_V3',
62
+ simaV4: 'PUBLIC_API_URL_SIMALAND_V4',
63
+ simaV6: 'PUBLIC_API_URL_SIMALAND_V6',
64
+ }, source);
65
+ }
66
+ exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,iCAAiD;AACjD,yCAA0C;AAC1C,4CAAqD;AACrD,kDAA0D;AAC1D,yCAAoD;AACpD,wDAAkE;AAClE,uDAAsF;AACtF,6CAA0E;AAC1E,uDAA0C;AAE1C,yCAA8D;AAE9D,oCAA2C;AAE3C,SAAgB,aAAa;IAC3B,OAAO,IAAA,iBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,4BAAkB,CAAC;QAC9C,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC3C,CAAC,mBAAU,CAAC,MAAM,EAAE,aAAa,CAAC;QAClC,CAAC,mBAAU,CAAC,cAAc,EAAE,qBAAqB,CAAC;QAClD,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAM,CAAC;QAC9C,CAAC,mBAAU,CAAC,SAAS,CAAC,UAAU,EAAE,uBAAuB,CAAC;QAC1D,CAAC,mBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAwB,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC;AAVD,sCAUC;AAED,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAJD,8CAIC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAI,uBAAa,CAAC;QAC/B,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACjD,YAAY,EAAE,CAAC,GAAG,6BAAmB,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,MAAM,CAAC,SAAS,CAAC,IAAA,4BAAmB,EAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,sCAiBC;AAED,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,IAAA,iCAAoB,EAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAJD,sDAIC;AAED,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,eAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAJD,0DAIC;AAED,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAI,uBAAe,CACxB;QACE,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE,4BAA4B;KACrC,EACD,MAAM,CACP,CAAC;AACJ,CAAC;AAZD,4DAYC"}
@@ -1,15 +1,23 @@
1
- import type { Preset } from '../types';
2
- import type { Provider } from '../../container/types';
3
1
  import type { BaseConfig } from '../../config/types';
4
2
  import type { Logger } from '../../logger/types';
5
3
  import type { Tracer } from '@opentelemetry/api';
6
4
  import type { DefaultMiddleware } from '../../http-server/types';
5
+ import { Resolve, Preset } from '../../di';
6
+ import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
7
+ import { Resource } from '@opentelemetry/resources';
8
+ import { BridgeServerSide } from '../../utils/ssr';
9
+ import { StrictMap, KnownHttpApiKey } from '../types';
7
10
  /**
8
11
  * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
9
12
  * @return Preset.
10
13
  */
11
14
  export declare function PresetNode(): Preset;
12
- export declare const provideBaseConfig: Provider<BaseConfig>;
13
- export declare const provideLogger: Provider<Logger>;
14
- export declare const provideTracer: Provider<Tracer>;
15
- export declare const provideDefaultMiddleware: Provider<DefaultMiddleware>;
15
+ export declare function provideBaseConfig(resolve: Resolve): BaseConfig;
16
+ export declare function provideLogger(resolve: Resolve): Logger;
17
+ export declare function provideTracer(resolve: Resolve): Tracer;
18
+ export declare function provideSpanExporter(resolve: Resolve): SpanExporter;
19
+ export declare function provideTracerProvider(resolve: Resolve): BasicTracerProvider;
20
+ export declare function provideTracerProviderResource(resolve: Resolve): Resource;
21
+ export declare function provideDefaultMiddleware(resolve: Resolve): DefaultMiddleware;
22
+ export declare function provideBridgeServerSide(resolve: Resolve): BridgeServerSide;
23
+ export declare function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey>;