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

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 (94) hide show
  1. package/cache/types.d.ts +1 -0
  2. package/config/index.d.ts +3 -0
  3. package/config/index.js +8 -0
  4. package/config/index.js.map +1 -0
  5. package/config/source.d.ts +11 -0
  6. package/config/{browser.js → source.js} +6 -7
  7. package/config/source.js.map +1 -0
  8. package/di/application.js +33 -29
  9. package/di/application.js.map +1 -1
  10. package/di/errors.d.ts +7 -4
  11. package/di/errors.js +18 -7
  12. package/di/errors.js.map +1 -1
  13. package/di/preset.d.ts +1 -1
  14. package/di/preset.js +0 -4
  15. package/di/preset.js.map +1 -1
  16. package/di/token.js +1 -1
  17. package/di/token.js.map +1 -1
  18. package/di/types.d.ts +0 -2
  19. package/http/errors.d.ts +16 -0
  20. package/http/errors.js +26 -0
  21. package/http/errors.js.map +1 -0
  22. package/http/index.d.ts +4 -0
  23. package/http/index.js +14 -0
  24. package/http/index.js.map +1 -0
  25. package/http/types.d.ts +2 -0
  26. package/{error-tracking → http}/types.js.map +1 -1
  27. package/http-server/types.d.ts +2 -9
  28. package/http-server/utils.d.ts +7 -1
  29. package/http-server/utils.js +22 -3
  30. package/http-server/utils.js.map +1 -1
  31. package/log/errors.d.ts +23 -0
  32. package/log/errors.js +31 -0
  33. package/log/errors.js.map +1 -0
  34. package/log/handler/pino.d.ts +2 -2
  35. package/log/handler/sentry.d.ts +2 -2
  36. package/log/handler/sentry.js +3 -3
  37. package/log/handler/sentry.js.map +1 -1
  38. package/log/index.d.ts +2 -1
  39. package/log/index.js +4 -1
  40. package/log/index.js.map +1 -1
  41. package/log/logger.js +6 -8
  42. package/log/logger.js.map +1 -1
  43. package/log/types.d.ts +31 -8
  44. package/metrics/node.d.ts +0 -6
  45. package/metrics/node.js +1 -20
  46. package/metrics/node.js.map +1 -1
  47. package/package.json +33 -28
  48. package/preset/browser/index.d.ts +9 -2
  49. package/preset/browser/index.js +34 -21
  50. package/preset/browser/index.js.map +1 -1
  51. package/preset/node/{response.d.ts → handler.d.ts} +7 -4
  52. package/preset/node/{response.js → handler.js} +45 -33
  53. package/preset/node/handler.js.map +1 -0
  54. package/preset/node/index.d.ts +15 -9
  55. package/preset/node/index.js +161 -67
  56. package/preset/node/index.js.map +1 -1
  57. package/preset/parts/types.d.ts +6 -0
  58. package/preset/parts/utils.d.ts +2 -2
  59. package/preset/parts/utils.js +10 -8
  60. package/preset/parts/utils.js.map +1 -1
  61. package/tokens.d.ts +36 -20
  62. package/tokens.js +41 -27
  63. package/tokens.js.map +1 -1
  64. package/utils/function.d.ts +1 -1
  65. package/utils/redux/index.d.ts +2 -2
  66. package/utils/redux/index.js +1 -2
  67. package/utils/redux/index.js.map +1 -1
  68. package/utils/redux/remote-data.d.ts +5 -21
  69. package/utils/redux/remote-data.js +1 -20
  70. package/utils/redux/remote-data.js.map +1 -1
  71. package/utils/redux-saga/middleware.js.map +1 -1
  72. package/utils/ssr/index.d.ts +1 -1
  73. package/utils/ssr/index.js +1 -1
  74. package/utils/webpack/env/index.d.ts +2 -2
  75. package/utils/webpack/env/index.js.map +1 -1
  76. package/utils/webpack/env/utils.js +5 -5
  77. package/utils/webpack/env/utils.js.map +1 -1
  78. package/config/browser.d.ts +0 -6
  79. package/config/browser.js.map +0 -1
  80. package/config/node.d.ts +0 -6
  81. package/config/node.js +0 -30
  82. package/config/node.js.map +0 -1
  83. package/error-tracking/index.d.ts +0 -25
  84. package/error-tracking/index.js +0 -34
  85. package/error-tracking/index.js.map +0 -1
  86. package/error-tracking/types.d.ts +0 -20
  87. package/http-server/middleware/log.d.ts +0 -10
  88. package/http-server/middleware/log.js +0 -43
  89. package/http-server/middleware/log.js.map +0 -1
  90. package/preset/node/response.js.map +0 -1
  91. package/tracing/index.d.ts +0 -10
  92. package/tracing/index.js +0 -21
  93. package/tracing/index.js.map +0 -1
  94. /package/{error-tracking → http}/types.js +0 -0
package/cache/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Простейший интерфейс кэша.
3
+ * @todo Рассмотреть web-стандарт CacheStorage.
3
4
  */
4
5
  export interface Cache {
5
6
  /**
@@ -0,0 +1,3 @@
1
+ export { ConfigSource, BaseConfig } from './types';
2
+ export { createConfigSource } from './source';
3
+ export { createBaseConfig } from './base';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBaseConfig = exports.createConfigSource = void 0;
4
+ var source_1 = require("./source");
5
+ Object.defineProperty(exports, "createConfigSource", { enumerable: true, get: function () { return source_1.createConfigSource; } });
6
+ var base_1 = require("./base");
7
+ Object.defineProperty(exports, "createBaseConfig", { enumerable: true, get: function () { return base_1.createBaseConfig; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;AACA,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,+BAA0C;AAAjC,wGAAA,gBAAgB,OAAA"}
@@ -0,0 +1,11 @@
1
+ import type { ConfigSource } from './types';
2
+ interface Dictionary {
3
+ readonly [key: string]: string | undefined;
4
+ }
5
+ /**
6
+ * Возвращает новый источник конфигурации.
7
+ * @param dictionary Опции.
8
+ * @return Источник.
9
+ */
10
+ export declare function createConfigSource(dictionary: Dictionary): ConfigSource;
11
+ export {};
@@ -3,15 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createConfigSource = void 0;
4
4
  const env_1 = require("@humanwhocodes/env");
5
5
  /**
6
- * Возвращает новый источник конфигурации для браузера.
6
+ * Возвращает новый источник конфигурации.
7
+ * @param dictionary Опции.
7
8
  * @return Источник.
8
9
  */
9
- function createConfigSource() {
10
+ function createConfigSource(dictionary) {
10
11
  const source = {};
11
- // докидываем process если он предоставлен сборкой
12
- if (typeof process !== 'undefined') {
13
- Object.assign(source, process.env);
14
- }
12
+ // берем все переменные из предоставленной среды
13
+ Object.assign(source, dictionary);
15
14
  // докидываем зашиваемые переменные окружения
16
15
  if (typeof __ISOMORPH_ENV__ !== 'undefined') {
17
16
  Object.assign(source, __ISOMORPH_ENV__);
@@ -19,4 +18,4 @@ function createConfigSource() {
19
18
  return new env_1.Env(source);
20
19
  }
21
20
  exports.createConfigSource = createConfigSource;
22
- //# sourceMappingURL=browser.js.map
21
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/config/source.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAQzC;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,UAAsB;IACvD,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,gDAAgD;IAChD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAElC,6CAA6C;IAC7C,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACzC;IAED,OAAO,IAAI,SAAG,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAZD,gDAYC"}
package/di/application.js CHANGED
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createApplication = exports.CURRENT_APP = void 0;
4
4
  const errors_1 = require("./errors");
5
5
  const token_1 = require("./token");
6
- const container_1 = require("./container");
7
6
  /**
8
7
  * Токен, с помощью которого можно достать из приложения само приложение.
9
8
  */
@@ -14,55 +13,60 @@ exports.CURRENT_APP = (0, token_1.createToken)('application/self');
14
13
  class ApplicationImplementation {
15
14
  constructor() {
16
15
  this.providers = new Map();
16
+ this.components = new Map();
17
17
  this.presets = [];
18
+ this.initialized = false;
19
+ }
20
+ toString() {
21
+ return 'Application';
18
22
  }
19
23
  bind(token) {
20
- if (this.providers.has(token)) {
21
- throw new errors_1.AlreadyBoundError(token);
24
+ if (this.providers.has(token._key)) {
25
+ throw new errors_1.AlreadyBoundError(token, this.toString());
22
26
  }
23
27
  return {
24
28
  toValue: value => {
25
- this.providers.set(token, () => value);
29
+ this.providers.set(token._key, () => value);
26
30
  },
27
31
  toProvider: provider => {
28
- this.providers.set(token, provider);
32
+ this.providers.set(token._key, provider);
29
33
  },
30
34
  };
31
35
  }
32
36
  get(token) {
33
- try {
34
- return this.getContainer().get(token);
35
- }
36
- catch (error) {
37
- if (error instanceof errors_1.NothingBoundError && error.token === token && this.parent) {
38
- return this.parent.get(token);
39
- }
40
- else {
41
- throw error;
37
+ if (!this.initialized) {
38
+ this.bind(exports.CURRENT_APP).toValue(this);
39
+ for (const preset of this.presets) {
40
+ preset.apply(this);
42
41
  }
42
+ this.initialized = true;
43
43
  }
44
+ return this.resolve(token, []);
44
45
  }
45
- getContainer() {
46
- if (!this.container) {
47
- this.container = this.configureContainer();
46
+ resolve(token, chain) {
47
+ const nextChain = () => [...chain, token];
48
+ if (chain.includes(token)) {
49
+ throw new errors_1.CircularDependencyError(nextChain(), this.toString());
48
50
  }
49
- return this.container;
50
- }
51
- configureContainer() {
52
- const container = (0, container_1.createContainer)();
53
- container.set(exports.CURRENT_APP, () => this);
54
- for (const preset of this.presets) {
55
- preset.apply(this);
51
+ if (this.components.has(token._key)) {
52
+ return this.components.get(token._key);
53
+ }
54
+ if (this.providers.has(token._key)) {
55
+ const provider = this.providers.get(token._key);
56
+ const component = provider(otherToken => this.resolve(otherToken, nextChain()));
57
+ // ВАЖНО: всегда как singleton
58
+ this.components.set(token._key, component);
59
+ return component;
56
60
  }
57
- const resolve = token => this.get(token);
58
- for (const [token, provider] of this.providers) {
59
- container.set(token, () => provider(resolve));
61
+ if (this.parent) {
62
+ // ВАЖНО: передаём именно chain а не nextChain()
63
+ return this.parent.resolve(token, chain);
60
64
  }
61
- return container;
65
+ throw new errors_1.NothingBoundError(token, this.toString());
62
66
  }
63
67
  attach(parent) {
64
68
  if (this.parent) {
65
- throw Error('Cannot reattach application');
69
+ throw new Error('Cannot reattach application');
66
70
  }
67
71
  this.parent = parent;
68
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/di/application.ts"],"names":[],"mappings":";;;AAWA,qCAAgE;AAChE,mCAAsC;AACtC,2CAA8C;AAE9C;;GAEG;AACU,QAAA,WAAW,GAAG,IAAA,mBAAW,EAAc,kBAAkB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,yBAAyB;IAM7B;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAI,KAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,0BAAiB,CAAC,KAAK,CAAC,CAAC;SACpC;QAED,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAI,KAAe;QACpB,IAAI;YACF,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACvC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,0BAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC/B;iBAAM;gBACL,MAAM,KAAK,CAAC;aACb;SACF;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,kBAAkB;QACxB,MAAM,SAAS,GAAG,IAAA,2BAAe,GAAE,CAAC;QAEpC,SAAS,CAAC,GAAG,CAAC,mBAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACpB;QAED,MAAM,OAAO,GAAY,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAElD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC9C,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/C;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,MAAmB;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CACJ,MAAmB,EACnB,EAA0C;QAE1C,EAAE,CAAC,GAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;;GAGG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,yBAAyB,EAAE,CAAC;AACzC,CAAC;AAFD,8CAEC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/di/application.ts"],"names":[],"mappings":"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"}
package/di/errors.d.ts CHANGED
@@ -3,12 +3,13 @@ import type { Token } from './types';
3
3
  * Ошибка, сообщающая, что в контейнере нет сервиса по заданному ключу.
4
4
  */
5
5
  export declare class NothingBoundError extends Error {
6
- readonly token: Token<any>;
6
+ readonly token: Token<unknown>;
7
7
  /**
8
8
  * Конструктор.
9
9
  * @param token Токен.
10
+ * @param containerName Имя контейнера.
10
11
  */
11
- constructor(token: Token<any>);
12
+ constructor(token: Token<unknown>, containerName?: string);
12
13
  }
13
14
  /**
14
15
  * Ошибка, сообщающая, что в контейнере уже зарегистрирован компонент под таким токеном.
@@ -17,8 +18,9 @@ export declare class AlreadyBoundError extends Error {
17
18
  /**
18
19
  * Конструктор.
19
20
  * @param token Токен.
21
+ * @param containerName Имя контейнера.
20
22
  */
21
- constructor(token: Token<any>);
23
+ constructor(token: Token<unknown>, containerName?: string);
22
24
  }
23
25
  /**
24
26
  * Ошибка, сообщающая, что обнаружена циклическая зависимость.
@@ -27,6 +29,7 @@ export declare class CircularDependencyError extends Error {
27
29
  /**
28
30
  * Конструктор.
29
31
  * @param trace Список токенов, в котором обнаружен цикл.
32
+ * @param containerName Имя контейнера.
30
33
  */
31
- constructor(trace: Token<any>[]);
34
+ constructor(trace: Token<unknown>[], containerName?: string);
32
35
  }
package/di/errors.js CHANGED
@@ -8,9 +8,10 @@ class NothingBoundError extends Error {
8
8
  /**
9
9
  * Конструктор.
10
10
  * @param token Токен.
11
+ * @param containerName Имя контейнера.
11
12
  */
12
- constructor(token) {
13
- super(`Nothing bound to ${String(token)}`);
13
+ constructor(token, containerName) {
14
+ super(`Nothing bound to ${String(token)} in ${display(containerName)}`);
14
15
  this.name = 'NothingBoundError';
15
16
  this.token = token;
16
17
  }
@@ -23,9 +24,10 @@ class AlreadyBoundError extends Error {
23
24
  /**
24
25
  * Конструктор.
25
26
  * @param token Токен.
27
+ * @param containerName Имя контейнера.
26
28
  */
27
- constructor(token) {
28
- super(`Cannot rebind token, already bound: ${String(token)}`);
29
+ constructor(token, containerName) {
30
+ super(`Cannot rebind token in ${display(containerName)}, already bound: ${String(token)}`);
29
31
  this.name = 'AlreadyBoundError';
30
32
  }
31
33
  }
@@ -37,12 +39,21 @@ class CircularDependencyError extends Error {
37
39
  /**
38
40
  * Конструктор.
39
41
  * @param trace Список токенов, в котором обнаружен цикл.
42
+ * @param containerName Имя контейнера.
40
43
  */
41
- constructor(trace) {
42
- const names = trace.map(token => String(token._key)).join(' >> ');
43
- super(`Circular dependency found, trace: ${names}`);
44
+ constructor(trace, containerName) {
45
+ const names = trace.map(String).join(' >> ');
46
+ super(`Circular dependency found in ${display(containerName)}, trace: ${names}`);
44
47
  this.name = 'CircularDependencyError';
45
48
  }
46
49
  }
47
50
  exports.CircularDependencyError = CircularDependencyError;
51
+ /**
52
+ * Вернёт переданное имя контейнера или заглушку.
53
+ * @param containerName Имя.
54
+ * @return Имя или заглушка.
55
+ */
56
+ function display(containerName) {
57
+ return containerName ?? '[unknown container]';
58
+ }
48
59
  //# sourceMappingURL=errors.js.map
package/di/errors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/di/errors.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAG1C;;;OAGG;IACH,YAAY,KAAiB;QAC3B,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAZD,8CAYC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAC1C;;;OAGG;IACH,YAAY,KAAiB;QAC3B,KAAK,CAAC,uCAAuC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AATD,8CASC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IAChD;;;OAGG;IACH,YAAY,KAAmB;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAVD,0DAUC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/di/errors.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAG1C;;;;OAIG;IACH,YAAY,KAAqB,EAAE,aAAsB;QACvD,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAbD,8CAaC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAC1C;;;;OAIG;IACH,YAAY,KAAqB,EAAE,aAAsB;QACvD,KAAK,CAAC,0BAA0B,OAAO,CAAC,aAAa,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAVD,8CAUC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IAChD;;;;OAIG;IACH,YAAY,KAAuB,EAAE,aAAsB;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,gCAAgC,OAAO,CAAC,aAAa,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAXD,0DAWC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,aAAsB;IACrC,OAAO,aAAa,IAAI,qBAAqB,CAAC;AAChD,CAAC"}
package/di/preset.d.ts CHANGED
@@ -5,5 +5,5 @@ type PresetEntry<T = any> = [Token<T>, Provider<T>];
5
5
  * @param defaults Предустановленные зависимости.
6
6
  * @return Preset.
7
7
  */
8
- export declare function createPreset(defaults: PresetEntry[]): Preset;
8
+ export declare function createPreset(defaults?: PresetEntry[]): Preset;
9
9
  export {};
package/di/preset.js CHANGED
@@ -5,10 +5,6 @@ class PresetImplementation {
5
5
  constructor(defaults) {
6
6
  this.registry = new Map(defaults);
7
7
  }
8
- override(token, provider) {
9
- this.registry.set(token, provider);
10
- return this;
11
- }
12
8
  set(token, provider) {
13
9
  this.registry.set(token, provider);
14
10
  return this;
package/di/preset.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","sourceRoot":"","sources":["../../src/di/preset.ts"],"names":[],"mappings":";;;AAKA,MAAM,oBAAoB;IAGxB,YAAY,QAA+B;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAA4B,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,QAAQ,CAAI,KAAe,EAAE,QAAqB;QAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAI,KAAe,EAAE,QAAqB;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAgB;QACpB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACtC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,QAAuB;IAClD,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAFD,oCAEC"}
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../../src/di/preset.ts"],"names":[],"mappings":";;;AAKA,MAAM,oBAAoB;IAGxB,YAAY,QAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAA4B,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,GAAG,CAAI,KAAe,EAAE,QAAqB;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAgB;QACpB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACtC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,QAAwB;IACnD,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAFD,oCAEC"}
package/di/token.js CHANGED
@@ -24,7 +24,7 @@ class TokenImplementation {
24
24
  * @inheritdoc
25
25
  */
26
26
  toString() {
27
- return `Token(${this._key.description})`;
27
+ return `Token(${this._key.description ?? 'unknown'})`;
28
28
  }
29
29
  }
30
30
  /**
package/di/token.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/di/token.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAM,mBAAmB;IAGvB;;;OAGG;IACH,YAAY,IAAa;QACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAA0B;QACjC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC;IAC3C,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAY,IAAa;IAClD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,kCAEC"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/di/token.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAM,mBAAmB;IAGvB;;;OAGG;IACH,YAAY,IAAa;QACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAA0B;QACjC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,GAAG,CAAC;IACxD,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAY,IAAa;IAClD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,kCAEC"}
package/di/types.d.ts CHANGED
@@ -79,8 +79,6 @@ export interface Application {
79
79
  * Пресет - набор провайдеров (с возможностью их добавлять/переопределять) который можно применить к DI-приложению.
80
80
  */
81
81
  export interface Preset {
82
- /** @deprecated */
83
- override: <T>(token: Token<T>, provider: Provider<T>) => this;
84
82
  /** Добавляет провайдер в пресет. */
85
83
  set: <T>(token: Token<T>, provider: Provider<T>) => this;
86
84
  /** Применяет пресет к переданному приложению. */
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Ошибка валидации статуса ответа.
3
+ */
4
+ export declare class StatusError extends Error {
5
+ readonly response: Response;
6
+ /**
7
+ * @param response Ответ.
8
+ */
9
+ constructor(response: Response);
10
+ /**
11
+ * Определяет, является ли переданное значение ошибкой валидации статуса.
12
+ * @param value Значение.
13
+ * @return Результат.
14
+ */
15
+ static is(value: unknown): value is StatusError;
16
+ }
package/http/errors.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusError = void 0;
4
+ /**
5
+ * Ошибка валидации статуса ответа.
6
+ */
7
+ class StatusError extends Error {
8
+ /**
9
+ * @param response Ответ.
10
+ */
11
+ constructor(response) {
12
+ super(`HTTP Request failed with status ${response.status}`);
13
+ this.name = 'StatusError';
14
+ this.response = response;
15
+ }
16
+ /**
17
+ * Определяет, является ли переданное значение ошибкой валидации статуса.
18
+ * @param value Значение.
19
+ * @return Результат.
20
+ */
21
+ static is(value) {
22
+ return value?.name === 'StatusError';
23
+ }
24
+ }
25
+ exports.StatusError = StatusError;
26
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/http/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAGpC;;OAEG;IACH,YAAY,QAAkB;QAC5B,KAAK,CAAC,mCAAmC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAQ,KAAa,EAAE,IAAI,KAAK,aAAa,CAAC;IAChD,CAAC;CACF;AApBD,kCAoBC"}
@@ -0,0 +1,4 @@
1
+ export type { Handler, Enhancer, Middleware, LogData, DoneLogData, FailLogData, LogHandler, LogHandlerFactory, } from './types';
2
+ export { configureFetch, applyMiddleware } from '@krutoo/fetch-tools';
3
+ export { log, cookie, defaultHeaders, validateStatus } from '@krutoo/fetch-tools/middleware';
4
+ export { StatusError } from './errors';
package/http/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusError = exports.validateStatus = exports.defaultHeaders = exports.cookie = exports.log = exports.applyMiddleware = exports.configureFetch = void 0;
4
+ var fetch_tools_1 = require("@krutoo/fetch-tools");
5
+ Object.defineProperty(exports, "configureFetch", { enumerable: true, get: function () { return fetch_tools_1.configureFetch; } });
6
+ Object.defineProperty(exports, "applyMiddleware", { enumerable: true, get: function () { return fetch_tools_1.applyMiddleware; } });
7
+ var middleware_1 = require("@krutoo/fetch-tools/middleware");
8
+ Object.defineProperty(exports, "log", { enumerable: true, get: function () { return middleware_1.log; } });
9
+ Object.defineProperty(exports, "cookie", { enumerable: true, get: function () { return middleware_1.cookie; } });
10
+ Object.defineProperty(exports, "defaultHeaders", { enumerable: true, get: function () { return middleware_1.defaultHeaders; } });
11
+ Object.defineProperty(exports, "validateStatus", { enumerable: true, get: function () { return middleware_1.validateStatus; } });
12
+ var errors_1 = require("./errors");
13
+ Object.defineProperty(exports, "StatusError", { enumerable: true, get: function () { return errors_1.StatusError; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;AAUA,mDAAsE;AAA7D,6GAAA,cAAc,OAAA;AAAE,8GAAA,eAAe,OAAA;AACxC,6DAA6F;AAApF,iGAAA,GAAG,OAAA;AAAE,oGAAA,MAAM,OAAA;AAAE,4GAAA,cAAc,OAAA;AAAE,4GAAA,cAAc,OAAA;AACpD,mCAAuC;AAA9B,qGAAA,WAAW,OAAA"}
@@ -0,0 +1,2 @@
1
+ export type { Handler, Enhancer, Middleware, CookieStore } from '@krutoo/fetch-tools';
2
+ export type { LogData, DoneLogData, FailLogData, LogHandler, LogHandlerFactory, } from '@krutoo/fetch-tools/middleware';
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/error-tracking/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
- import type { Request, Response, NextFunction, Handler, ErrorRequestHandler } from 'express';
2
- export interface ResponseContext {
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ export interface HandlerContext {
3
3
  req: Request;
4
4
  res: Response;
5
5
  next: NextFunction;
@@ -26,10 +26,3 @@ export interface ConventionalJson {
26
26
  critical_css?: string;
27
27
  meta?: any;
28
28
  }
29
- export interface DefaultMiddleware {
30
- start: Handler[];
31
- logging: Handler[];
32
- tracing: Handler[];
33
- metrics: Handler[];
34
- finish: Array<Handler | ErrorRequestHandler>;
35
- }
@@ -1,6 +1,12 @@
1
- import type { Request, Response } from 'express';
1
+ import type { Handler, Request, Response } from 'express';
2
2
  import type { PageAssets, PageTemplate, PageTemplateData } from './types';
3
3
  import type { BaseConfig } from '../config/types';
4
+ /**
5
+ * Объединяет промежуточные слои в один.
6
+ * @param list Промежуточные слои.
7
+ * @return Промежуточный слой.
8
+ */
9
+ export declare function composeMiddleware(list: Handler[]): Handler;
4
10
  /**
5
11
  * Определяет IP входящего запроса.
6
12
  * @param req Входящий запрос.
@@ -1,7 +1,26 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PageResponse = exports.getRequestHeaders = exports.getServiceHeaders = exports.getXClientIp = void 0;
4
- const net_1 = require("net");
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;
5
24
  /**
6
25
  * Определяет IP входящего запроса.
7
26
  * @param req Входящий запрос.
@@ -9,7 +28,7 @@ const net_1 = require("net");
9
28
  */
10
29
  function getXClientIp(req) {
11
30
  const headerValue = req.get('x-client-ip') || req.get('x-forwarded-for') || req.socket.remoteAddress || '';
12
- return (0, net_1.isIP)(headerValue) ? headerValue : '';
31
+ return node_net_1.default.isIP(headerValue) ? headerValue : '';
13
32
  }
14
33
  exports.getXClientIp = getXClientIp;
15
34
  /**
@@ -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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"}
@@ -0,0 +1,23 @@
1
+ import { ErrorDetails, BreadcrumbDetails } from './types';
2
+ /**
3
+ * Ошибка с данными.
4
+ */
5
+ export declare class DetailedError extends Error {
6
+ data: ErrorDetails;
7
+ /**
8
+ * @param message Сообщение.
9
+ * @param data Данные.
10
+ */
11
+ constructor(message?: string, data?: ErrorDetails);
12
+ }
13
+ /**
14
+ * Хлебная крошка.
15
+ */
16
+ export declare class Breadcrumb {
17
+ type: string;
18
+ data: BreadcrumbDetails;
19
+ /**
20
+ * @param data Данные.
21
+ */
22
+ constructor(data: BreadcrumbDetails);
23
+ }
package/log/errors.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Breadcrumb = exports.DetailedError = void 0;
4
+ /**
5
+ * Ошибка с данными.
6
+ */
7
+ class DetailedError extends Error {
8
+ /**
9
+ * @param message Сообщение.
10
+ * @param data Данные.
11
+ */
12
+ constructor(message, data = {}) {
13
+ super(message);
14
+ this.data = data;
15
+ }
16
+ }
17
+ exports.DetailedError = DetailedError;
18
+ /**
19
+ * Хлебная крошка.
20
+ */
21
+ class Breadcrumb {
22
+ /**
23
+ * @param data Данные.
24
+ */
25
+ constructor(data) {
26
+ this.type = 'breadcrumb';
27
+ this.data = data;
28
+ }
29
+ }
30
+ exports.Breadcrumb = Breadcrumb;
31
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/log/errors.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IAGtC;;;OAGG;IACH,YAAY,OAAgB,EAAE,OAAqB,EAAE;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,sCAWC;AAED;;GAEG;AACH,MAAa,UAAU;IAIrB;;OAEG;IACH,YAAY,IAAuB;QACjC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,gCAWC"}
@@ -1,8 +1,8 @@
1
- import type { LoggerEventHandler } from '../types';
1
+ import type { LogHandler } from '../types';
2
2
  import type pino from 'pino';
3
3
  /**
4
4
  * Возвращает новый handler для logger'а для вывода событий в терминал.
5
5
  * @param pinoInstance Конфиг.
6
6
  * @return Handler.
7
7
  */
8
- export declare function createPinoHandler(pinoInstance: pino.Logger): LoggerEventHandler;
8
+ export declare function createPinoHandler(pinoInstance: pino.Logger): LogHandler;
@@ -1,8 +1,8 @@
1
- import type { LoggerEventHandler } from '../types';
1
+ import type { LogHandler } from '../types';
2
2
  import type { Hub } from '@sentry/types';
3
3
  /**
4
4
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
5
5
  * @param hubInit Sentry Hub или функция которая его вернёт.
6
6
  * @return Handler.
7
7
  */
8
- export declare function createSentryHandler(hubInit: Hub | (() => Hub)): LoggerEventHandler;
8
+ export declare function createSentryHandler(hubInit: Hub | (() => Hub)): LogHandler;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSentryHandler = void 0;
4
- const error_tracking_1 = require("../../error-tracking");
4
+ const log_1 = require("../../log");
5
5
  /**
6
6
  * Возвращает новый handler для logger'а для отправки событий в Sentry.
7
7
  * @param hubInit Sentry Hub или функция которая его вернёт.
@@ -17,7 +17,7 @@ function createSentryHandler(hubInit) {
17
17
  // error
18
18
  if (event.type === 'error') {
19
19
  const error = event.data;
20
- if (error instanceof error_tracking_1.SentryError) {
20
+ if (error instanceof log_1.DetailedError) {
21
21
  const { level, context, extra } = error.data;
22
22
  hub.withScope(scope => {
23
23
  if (level) {
@@ -40,7 +40,7 @@ function createSentryHandler(hubInit) {
40
40
  }
41
41
  }
42
42
  // breadcrumb
43
- if (event.data instanceof error_tracking_1.SentryBreadcrumb) {
43
+ if (event.data instanceof log_1.Breadcrumb) {
44
44
  const breadcrumb = event.data.data;
45
45
  hub.addBreadcrumb(breadcrumb);
46
46
  }