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

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 (181) 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 +17 -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 +109 -0
  47. package/http-client/middleware/logging.js.map +1 -0
  48. package/http-client/middleware/tracing.d.ts +3 -3
  49. package/http-client/middleware/tracing.js +22 -9
  50. package/http-client/middleware/tracing.js.map +1 -1
  51. package/http-client/sauce/index.d.ts +3 -1
  52. package/http-client/sauce/index.js +15 -2
  53. package/http-client/sauce/index.js.map +1 -1
  54. package/http-client/utils.d.ts +6 -7
  55. package/http-client/utils.js +24 -14
  56. package/http-client/utils.js.map +1 -1
  57. package/http-server/errors.d.ts +11 -0
  58. package/http-server/errors.js +18 -0
  59. package/http-server/errors.js.map +1 -0
  60. package/http-server/handler/health-check.d.ts +1 -1
  61. package/http-server/handler/health-check.js +1 -1
  62. package/http-server/middleware/metrics.js +2 -2
  63. package/http-server/middleware/metrics.js.map +1 -1
  64. package/http-server/middleware/tracing.d.ts +8 -2
  65. package/http-server/middleware/tracing.js +19 -1
  66. package/http-server/middleware/tracing.js.map +1 -1
  67. package/http-server/template/index.js +6 -0
  68. package/http-server/template/index.js.map +1 -1
  69. package/http-server/types.d.ts +2 -0
  70. package/http-server/utils.d.ts +11 -5
  71. package/http-server/utils.js +32 -16
  72. package/http-server/utils.js.map +1 -1
  73. package/logger/handler/console.d.ts +1 -1
  74. package/logger/handler/console.js +12 -2
  75. package/logger/handler/console.js.map +1 -1
  76. package/logger/handler/sentry.d.ts +3 -3
  77. package/logger/handler/sentry.js +13 -7
  78. package/logger/handler/sentry.js.map +1 -1
  79. package/logger/index.d.ts +2 -6
  80. package/logger/index.js +2 -27
  81. package/logger/index.js.map +1 -1
  82. package/logger/logger.d.ts +6 -0
  83. package/logger/logger.js +31 -0
  84. package/logger/logger.js.map +1 -0
  85. package/logger/types.d.ts +16 -0
  86. package/metrics/constants.d.ts +3 -0
  87. package/metrics/constants.js +3 -0
  88. package/metrics/constants.js.map +1 -1
  89. package/metrics/node.d.ts +7 -0
  90. package/metrics/node.js +1 -0
  91. package/metrics/node.js.map +1 -1
  92. package/package.json +31 -25
  93. package/preset/browser/index.d.ts +12 -0
  94. package/preset/browser/index.js +69 -0
  95. package/preset/browser/index.js.map +1 -0
  96. package/preset/node/index.d.ts +14 -6
  97. package/preset/node/index.js +94 -36
  98. package/preset/node/index.js.map +1 -1
  99. package/preset/node/response.d.ts +14 -8
  100. package/preset/node/response.js +95 -27
  101. package/preset/node/response.js.map +1 -1
  102. package/preset/types.d.ts +7 -6
  103. package/preset/utils.d.ts +15 -0
  104. package/preset/utils.js +26 -0
  105. package/preset/utils.js.map +1 -0
  106. package/tokens.d.ts +35 -18
  107. package/tokens.js +32 -17
  108. package/tokens.js.map +1 -1
  109. package/tracing/index.d.ts +9 -0
  110. package/tracing/index.js +20 -0
  111. package/tracing/index.js.map +1 -0
  112. package/utils/browser/analytics/oko.d.ts +2 -1
  113. package/utils/browser/analytics/oko.js +2 -1
  114. package/utils/browser/analytics/oko.js.map +1 -1
  115. package/utils/browser/storage/index.d.ts +8 -0
  116. package/utils/browser/storage/index.js +5 -0
  117. package/utils/browser/storage/index.js.map +1 -1
  118. package/utils/react/error-handlers/index.d.ts +9 -6
  119. package/utils/react/error-handlers/index.js +4 -3
  120. package/utils/react/error-handlers/index.js.map +1 -1
  121. package/utils/redux/remote-data.d.ts +9 -0
  122. package/utils/redux/remote-data.js +3 -0
  123. package/utils/redux/remote-data.js.map +1 -1
  124. package/utils/redux-saga/index.d.ts +3 -0
  125. package/utils/redux-saga/index.js +8 -0
  126. package/utils/redux-saga/index.js.map +1 -0
  127. package/utils/redux-saga/middleware.d.ts +9 -0
  128. package/utils/redux-saga/middleware.js +87 -0
  129. package/utils/redux-saga/middleware.js.map +1 -0
  130. package/utils/redux-saga/take-chain.d.ts +2 -0
  131. package/utils/redux-saga/take-chain.js +2 -0
  132. package/utils/redux-saga/take-chain.js.map +1 -1
  133. package/utils/redux-saga/types.d.ts +6 -0
  134. package/{saga-runner → utils/redux-saga}/types.js +0 -0
  135. package/{error-tracker → utils/redux-saga}/types.js.map +1 -1
  136. package/utils/ssr/index.d.ts +41 -0
  137. package/utils/ssr/index.js +54 -0
  138. package/utils/ssr/index.js.map +1 -0
  139. package/utils/webpack/index.d.ts +23 -0
  140. package/utils/webpack/index.js +68 -0
  141. package/utils/webpack/index.js.map +1 -0
  142. package/utils/webpack/module-federation/index.d.ts +4 -1
  143. package/utils/webpack/module-federation/index.js +4 -2
  144. package/utils/webpack/module-federation/index.js.map +1 -1
  145. package/utils/webpack/module-federation/types.d.ts +4 -0
  146. package/utils/webpack/module-federation/utils.d.ts +1 -0
  147. package/utils/webpack/module-federation/utils.js +1 -0
  148. package/utils/webpack/module-federation/utils.js.map +1 -1
  149. package/config/index.js.map +0 -1
  150. package/config/utils.d.ts +0 -5
  151. package/config/utils.js +0 -12
  152. package/config/utils.js.map +0 -1
  153. package/container/application.d.ts +0 -25
  154. package/container/application.js.map +0 -1
  155. package/container/index.d.ts +0 -18
  156. package/container/index.js +0 -74
  157. package/container/index.js.map +0 -1
  158. package/container/types.d.ts +0 -14
  159. package/error-tracker/browser.d.ts +0 -8
  160. package/error-tracker/browser.js +0 -40
  161. package/error-tracker/browser.js.map +0 -1
  162. package/error-tracker/node.d.ts +0 -8
  163. package/error-tracker/node.js +0 -40
  164. package/error-tracker/node.js.map +0 -1
  165. package/error-tracker/types.d.ts +0 -18
  166. package/error-tracker/utils.d.ts +0 -12
  167. package/error-tracker/utils.js +0 -19
  168. package/error-tracker/utils.js.map +0 -1
  169. package/preset/index.d.ts +0 -7
  170. package/preset/index.js +0 -25
  171. package/preset/index.js.map +0 -1
  172. package/saga-runner/index.d.ts +0 -8
  173. package/saga-runner/index.js +0 -79
  174. package/saga-runner/index.js.map +0 -1
  175. package/saga-runner/types.d.ts +0 -10
  176. package/saga-runner/types.js.map +0 -1
  177. package/tracer/node.d.ts +0 -10
  178. package/tracer/node.js +0 -38
  179. package/tracer/node.js.map +0 -1
  180. package/tracer/types.d.ts +0 -2
  181. package/tracer/types.js +0 -3
package/tokens.d.ts CHANGED
@@ -1,41 +1,58 @@
1
1
  /// <reference types="react" />
2
2
  import type { Application } from 'express';
3
3
  import type { DefaultMiddleware, PageAssets, PageTemplate, ResponseContext } from './http-server/types';
4
- import type { SagaRunner } from './saga-runner/types';
4
+ import type { SagaExtendedMiddleware } from './utils/redux-saga';
5
5
  import type { Logger } from './logger/types';
6
6
  import type { HttpClientFactory } from './http-client/types';
7
7
  import type { BaseConfig } from './config/types';
8
- import type { Tracer } from './tracer/types';
8
+ import type { Tracer } from '@opentelemetry/api';
9
9
  import type { Cache } from './cache/types';
10
+ import type { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
11
+ import type { Resource } from '@opentelemetry/resources';
12
+ import { BridgeClientSide, BridgeServerSide } from './utils/ssr';
13
+ import { StrictMap, KnownHttpApiKey } from './preset/types';
10
14
  export declare const KnownToken: {
11
15
  readonly Config: {
12
- readonly source: import("./container/types").Token<import("@humanwhocodes/env").Env>;
13
- readonly base: import("./container/types").Token<BaseConfig>;
16
+ readonly source: import("./di").Token<import("@humanwhocodes/env").Env>;
17
+ readonly base: import("./di").Token<BaseConfig>;
18
+ };
19
+ readonly cache: import("./di").Token<Cache>;
20
+ readonly logger: import("./di").Token<Logger>;
21
+ readonly sagaMiddleware: import("./di").Token<SagaExtendedMiddleware>;
22
+ readonly Tracing: {
23
+ readonly tracer: import("./di").Token<Tracer>;
24
+ readonly spanExporter: import("./di").Token<SpanExporter>;
25
+ readonly tracerProvider: import("./di").Token<BasicTracerProvider>;
26
+ readonly tracerProviderResource: import("./di").Token<Resource>;
14
27
  };
15
- readonly cache: import("./container/types").Token<Cache>;
16
- readonly logger: import("./container/types").Token<Logger>;
17
- readonly tracer: import("./container/types").Token<Tracer>;
18
28
  readonly Metrics: {
19
- readonly httpApp: import("./container/types").Token<Application>;
29
+ readonly httpApp: import("./di").Token<Application>;
20
30
  };
21
31
  readonly Http: {
22
32
  readonly Client: {
23
- readonly factory: import("./container/types").Token<HttpClientFactory>;
33
+ readonly factory: import("./di").Token<HttpClientFactory>;
24
34
  };
25
35
  readonly Server: {
26
- readonly factory: import("./container/types").Token<() => Application>;
36
+ readonly factory: import("./di").Token<() => Application>;
27
37
  readonly Defaults: {
28
- readonly middleware: import("./container/types").Token<DefaultMiddleware>;
38
+ readonly middleware: import("./di").Token<DefaultMiddleware>;
29
39
  };
30
40
  };
41
+ readonly Api: {
42
+ readonly knownHosts: import("./di").Token<StrictMap<KnownHttpApiKey>>;
43
+ };
31
44
  };
32
45
  readonly Response: {
33
- readonly template: import("./container/types").Token<PageTemplate>;
34
- readonly context: import("./container/types").Token<ResponseContext>;
35
- readonly assets: import("./container/types").Token<PageAssets>;
36
- readonly prepare: import("./container/types").Token<() => JSX.Element | Promise<JSX.Element>>;
37
- readonly render: import("./container/types").Token<(element: JSX.Element) => string | Promise<string>>;
38
- readonly main: import("./container/types").Token<() => void>;
39
- readonly sagaRunner: import("./container/types").Token<SagaRunner>;
46
+ readonly params: import("./di").Token<Record<string, unknown>>;
47
+ readonly template: import("./di").Token<PageTemplate>;
48
+ readonly context: import("./di").Token<ResponseContext>;
49
+ readonly assets: import("./di").Token<PageAssets>;
50
+ readonly prepare: import("./di").Token<() => JSX.Element | Promise<JSX.Element>>;
51
+ readonly render: import("./di").Token<(element: JSX.Element) => string | Promise<string>>;
52
+ readonly main: import("./di").Token<() => void>;
53
+ };
54
+ readonly SsrBridge: {
55
+ readonly clientSide: import("./di").Token<BridgeClientSide<unknown>>;
56
+ readonly serverSide: import("./di").Token<BridgeServerSide>;
40
57
  };
41
58
  };
package/tokens.js CHANGED
@@ -1,44 +1,59 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KnownToken = void 0;
4
- const container_1 = require("./container");
4
+ const di_1 = require("./di");
5
5
  exports.KnownToken = {
6
6
  // config
7
7
  Config: {
8
- source: (0, container_1.createToken)('config.source'),
9
- base: (0, container_1.createToken)('config.base'),
8
+ source: (0, di_1.createToken)('config.source'),
9
+ base: (0, di_1.createToken)('config.base'),
10
10
  },
11
11
  // cache
12
- cache: (0, container_1.createToken)('cache'),
12
+ cache: (0, di_1.createToken)('cache'),
13
13
  // logging
14
- logger: (0, container_1.createToken)('logger'),
14
+ logger: (0, di_1.createToken)('logger'),
15
+ // saga runner
16
+ sagaMiddleware: (0, di_1.createToken)('saga-middleware'),
15
17
  // tracing
16
- tracer: (0, container_1.createToken)('tracer'),
18
+ Tracing: {
19
+ tracer: (0, di_1.createToken)('tracing.tracer'),
20
+ spanExporter: (0, di_1.createToken)('tracing.span-exporter'),
21
+ tracerProvider: (0, di_1.createToken)('tracing.tracer-provider'),
22
+ tracerProviderResource: (0, di_1.createToken)('tracing.tracer-provider-resource'),
23
+ },
17
24
  // metrics
18
25
  Metrics: {
19
- httpApp: (0, container_1.createToken)('metrics.http-app'),
26
+ httpApp: (0, di_1.createToken)('metrics.http-app'),
20
27
  },
21
28
  // http
22
29
  Http: {
23
30
  Client: {
24
- factory: (0, container_1.createToken)('http.client.factory'),
31
+ factory: (0, di_1.createToken)('http.client.factory'),
25
32
  },
26
33
  Server: {
27
- factory: (0, container_1.createToken)('http.server.factory'),
34
+ factory: (0, di_1.createToken)('http.server.factory'),
28
35
  Defaults: {
29
- middleware: (0, container_1.createToken)('http.server.defaults.middleware'),
36
+ middleware: (0, di_1.createToken)('http.server.defaults.middleware'),
30
37
  },
31
38
  },
39
+ Api: {
40
+ knownHosts: (0, di_1.createToken)('http.api.known-hosts'),
41
+ },
32
42
  },
33
43
  // scope: page response
34
44
  Response: {
35
- template: (0, container_1.createToken)('response/template'),
36
- context: (0, container_1.createToken)('response/context'),
37
- assets: (0, container_1.createToken)('response/assets'),
38
- prepare: (0, container_1.createToken)('response/prepare'),
39
- render: (0, container_1.createToken)('response/render'),
40
- main: (0, container_1.createToken)('response/main'),
41
- sagaRunner: (0, container_1.createToken)('response/saga-runner'),
45
+ params: (0, di_1.createToken)('response/params'),
46
+ template: (0, di_1.createToken)('response/template'),
47
+ context: (0, di_1.createToken)('response/context'),
48
+ assets: (0, di_1.createToken)('response/assets'),
49
+ prepare: (0, di_1.createToken)('response/prepare'),
50
+ render: (0, di_1.createToken)('response/render'),
51
+ main: (0, di_1.createToken)('response/main'),
52
+ },
53
+ // SSR
54
+ SsrBridge: {
55
+ clientSide: (0, di_1.createToken)('ssr-bridge/client-side'),
56
+ serverSide: (0, di_1.createToken)('ssr-bridge/server-side'),
42
57
  },
43
58
  };
44
59
  //# sourceMappingURL=tokens.js.map
package/tokens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAe7B,QAAA,UAAU,GAAG;IACxB,SAAS;IACT,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,uBAAW,EAAe,eAAe,CAAC;QAClD,IAAI,EAAE,IAAA,uBAAW,EAAa,aAAa,CAAC;KAC7C;IAED,QAAQ;IACR,KAAK,EAAE,IAAA,uBAAW,EAAQ,OAAO,CAAC;IAElC,UAAU;IACV,MAAM,EAAE,IAAA,uBAAW,EAAS,QAAQ,CAAC;IAErC,UAAU;IACV,MAAM,EAAE,IAAA,uBAAW,EAAS,QAAQ,CAAC;IAErC,UAAU;IACV,OAAO,EAAE;QACP,OAAO,EAAE,IAAA,uBAAW,EAAc,kBAAkB,CAAC;KACtD;IAED,OAAO;IACP,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,uBAAW,EAAoB,qBAAqB,CAAC;SAC/D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,uBAAW,EAAoB,qBAAqB,CAAC;YAC9D,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAA,uBAAW,EAAoB,iCAAiC,CAAC;aAC9E;SACF;KACF;IAED,uBAAuB;IACvB,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAA,uBAAW,EAAe,mBAAmB,CAAC;QACxD,OAAO,EAAE,IAAA,uBAAW,EAAkB,kBAAkB,CAAC;QACzD,MAAM,EAAE,IAAA,uBAAW,EAAa,iBAAiB,CAAC;QAClD,OAAO,EAAE,IAAA,uBAAW,EAA2C,kBAAkB,CAAC;QAClF,MAAM,EAAE,IAAA,uBAAW,EAAqD,iBAAiB,CAAC;QAC1F,IAAI,EAAE,IAAA,uBAAW,EAAa,eAAe,CAAC;QAC9C,UAAU,EAAE,IAAA,uBAAW,EAAa,sBAAsB,CAAC;KAC5D;CACO,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,6BAAmC;AAmBtB,QAAA,UAAU,GAAG;IACxB,SAAS;IACT,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,gBAAW,EAAe,eAAe,CAAC;QAClD,IAAI,EAAE,IAAA,gBAAW,EAAa,aAAa,CAAC;KAC7C;IAED,QAAQ;IACR,KAAK,EAAE,IAAA,gBAAW,EAAQ,OAAO,CAAC;IAElC,UAAU;IACV,MAAM,EAAE,IAAA,gBAAW,EAAS,QAAQ,CAAC;IAErC,cAAc;IACd,cAAc,EAAE,IAAA,gBAAW,EAAyB,iBAAiB,CAAC;IAEtE,UAAU;IACV,OAAO,EAAE;QACP,MAAM,EAAE,IAAA,gBAAW,EAAS,gBAAgB,CAAC;QAC7C,YAAY,EAAE,IAAA,gBAAW,EAAe,uBAAuB,CAAC;QAChE,cAAc,EAAE,IAAA,gBAAW,EAAsB,yBAAyB,CAAC;QAC3E,sBAAsB,EAAE,IAAA,gBAAW,EAAW,kCAAkC,CAAC;KAClF;IAED,UAAU;IACV,OAAO,EAAE;QACP,OAAO,EAAE,IAAA,gBAAW,EAAc,kBAAkB,CAAC;KACtD;IAED,OAAO;IACP,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;SAC/D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,gBAAW,EAAoB,qBAAqB,CAAC;YAC9D,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAA,gBAAW,EAAoB,iCAAiC,CAAC;aAC9E;SACF;QACD,GAAG,EAAE;YACH,UAAU,EAAE,IAAA,gBAAW,EAA6B,sBAAsB,CAAC;SAC5E;KACF;IAED,uBAAuB;IACvB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAA,gBAAW,EAA0B,iBAAiB,CAAC;QAC/D,QAAQ,EAAE,IAAA,gBAAW,EAAe,mBAAmB,CAAC;QACxD,OAAO,EAAE,IAAA,gBAAW,EAAkB,kBAAkB,CAAC;QACzD,MAAM,EAAE,IAAA,gBAAW,EAAa,iBAAiB,CAAC;QAClD,OAAO,EAAE,IAAA,gBAAW,EAA2C,kBAAkB,CAAC;QAClF,MAAM,EAAE,IAAA,gBAAW,EAAqD,iBAAiB,CAAC;QAC1F,IAAI,EAAE,IAAA,gBAAW,EAAa,eAAe,CAAC;KAC/C;IAED,MAAM;IACN,SAAS,EAAE;QACT,UAAU,EAAE,IAAA,gBAAW,EAA4B,wBAAwB,CAAC;QAC5E,UAAU,EAAE,IAAA,gBAAW,EAAmB,wBAAwB,CAAC;KACpE;CACO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { BaseConfig } from '../config/types';
2
+ import { Resource } from '@opentelemetry/resources';
3
+ /**
4
+ * Возвращает ресурс для BasicTracerProvider, заполненный данными по соглашению.
5
+ * Может быть дополнен с помощью метода merge.
6
+ * @param config Конфиг.
7
+ * @return Ресурс для провайдера.
8
+ */
9
+ export declare function getConventionalResource(config: BaseConfig): Resource;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConventionalResource = void 0;
4
+ const resources_1 = require("@opentelemetry/resources");
5
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
6
+ /**
7
+ * Возвращает ресурс для BasicTracerProvider, заполненный данными по соглашению.
8
+ * Может быть дополнен с помощью метода merge.
9
+ * @param config Конфиг.
10
+ * @return Ресурс для провайдера.
11
+ */
12
+ function getConventionalResource(config) {
13
+ return new resources_1.Resource({
14
+ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: config.appName,
15
+ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,
16
+ [semantic_conventions_1.SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env,
17
+ });
18
+ }
19
+ exports.getConventionalResource = getConventionalResource;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracing/index.ts"],"names":[],"mappings":";;;AACA,wDAAoD;AACpD,8EAAiF;AAEjF;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,MAAkB;IACxD,OAAO,IAAI,oBAAQ,CAAC;QAClB,CAAC,iDAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO;QACzD,CAAC,iDAA0B,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,UAAU;QAC/D,CAAC,iDAA0B,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,GAAG;KAChE,CAAC,CAAC;AACL,CAAC;AAND,0DAMC"}
@@ -1,11 +1,12 @@
1
1
  export declare type OkoEvent = Record<string, any>;
2
2
  /**
3
- * Отправка аналитики в око.
3
+ * Получив объект события, запустит его отправку в ОКО (если на странице есть ОКО).
4
4
  * @param eventData Данные события для отправки.
5
5
  */
6
6
  export declare const okoPush: (eventData: OkoEvent) => void;
7
7
  /**
8
8
  * Хук, возвращающий функцию, которая отправит аналитику в ОКО.
9
+ * Не позволяет менять данные для отправки.
9
10
  * @param data Данные события для отправки в ОКО.
10
11
  * @return Функция.
11
12
  */
@@ -4,7 +4,7 @@ exports.useOkoPush = exports.okoPush = void 0;
4
4
  const react_1 = require("react");
5
5
  const lodash_1 = require("lodash");
6
6
  /**
7
- * Отправка аналитики в око.
7
+ * Получив объект события, запустит его отправку в ОКО (если на странице есть ОКО).
8
8
  * @param eventData Данные события для отправки.
9
9
  */
10
10
  const okoPush = (eventData) => {
@@ -15,6 +15,7 @@ const okoPush = (eventData) => {
15
15
  exports.okoPush = okoPush;
16
16
  /**
17
17
  * Хук, возвращающий функцию, которая отправит аналитику в ОКО.
18
+ * Не позволяет менять данные для отправки.
18
19
  * @param data Данные события для отправки в ОКО.
19
20
  * @return Функция.
20
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"oko.js","sourceRoot":"","sources":["../../../../src/utils/browser/analytics/oko.ts"],"names":[],"mappings":";;;AAAA,iCAA+B;AAC/B,mCAA6C;AAI7C;;;GAGG;AACI,MAAM,OAAO,GAAG,CAAC,SAAmB,EAAE,EAAE;IAC7C,MAAM,GAAG,GAAQ,MAAM,CAAC;IAExB,qFAAqF;IACrF,IAAA,mBAAU,EAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF;;;;GAIG;AACI,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAA,cAAM,GAAY,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,cAAM,GAAc,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;KAC/B;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,OAAmB,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,KAAK,CACT;YACE,gDAAgD;YAChD,wFAAwF;SACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAtBW,QAAA,UAAU,cAsBrB"}
1
+ {"version":3,"file":"oko.js","sourceRoot":"","sources":["../../../../src/utils/browser/analytics/oko.ts"],"names":[],"mappings":";;;AAAA,iCAA+B;AAC/B,mCAA6C;AAI7C;;;GAGG;AACI,MAAM,OAAO,GAAG,CAAC,SAAmB,EAAE,EAAE;IAC7C,MAAM,GAAG,GAAQ,MAAM,CAAC;IAExB,qFAAqF;IACrF,IAAA,mBAAU,EAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF;;;;;GAKG;AACI,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAA,cAAM,GAAY,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,cAAM,GAAc,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;KAC/B;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,OAAmB,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,KAAK,CACT;YACE,gDAAgD;YAChD,wFAAwF;SACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAtBW,QAAA,UAAU,cAsBrB"}
@@ -1,4 +1,12 @@
1
+ /**
2
+ * Интерфейс объекта-обертки для безопасной работы с WebStorage.
3
+ */
1
4
  export interface StorageUtils extends Pick<Storage, 'clear' | 'getItem' | 'key' | 'removeItem' | 'setItem' | 'length'> {
2
5
  isAvailable: () => boolean;
3
6
  }
7
+ /**
8
+ * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
9
+ * @param getStorage Функция, которая должна вернуть целевое хранилище.
10
+ * @return Объект-обертка для безопасной работы с браузерным хранилищем.
11
+ */
4
12
  export declare function createStorageUtils(getStorage: () => Storage): StorageUtils;
@@ -2,6 +2,11 @@
2
2
  /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.createStorageUtils = void 0;
5
+ /**
6
+ * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
7
+ * @param getStorage Функция, которая должна вернуть целевое хранилище.
8
+ * @return Объект-обертка для безопасной работы с браузерным хранилищем.
9
+ */
5
10
  function createStorageUtils(getStorage) {
6
11
  function isAvailable() {
7
12
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/browser/storage/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAOvD,SAAgB,kBAAkB,CAAC,UAAyB;IAC1D,SAAS,WAAW;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAExD,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/browser/storage/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAUvD;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,UAAyB;IAC1D,SAAS,WAAW;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAExD,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,14 +1,17 @@
1
1
  import React from 'react';
2
+ /**
3
+ * Опции компонентов ErrorBoundary и SafeSuspense.
4
+ */
2
5
  export interface Props {
3
- /** Дочерний компонент. */
6
+ /** Дочерний элемент. */
4
7
  children: NonNullable<React.ReactNode> | null;
5
- /** Запасной элемент, если возникла ошибка. */
8
+ /** Содержимое, которое будет выведено если возникла ошибка. */
6
9
  fallback: NonNullable<React.ReactNode> | null;
7
- /** Функция для логирования ошибки. */
10
+ /** Функция для логирования ошибок. */
8
11
  onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
9
12
  }
10
13
  /**
11
- * Обработчик ошибок в React-компонентах.
14
+ * Компонент-предохранитель. Обработчик ошибок в React-компонентах.
12
15
  */
13
16
  export declare class ErrorBoundary extends React.Component<Props, {
14
17
  hasError: boolean;
@@ -17,11 +20,11 @@ export declare class ErrorBoundary extends React.Component<Props, {
17
20
  * @param props Свойства.
18
21
  */
19
22
  constructor(props: Props);
20
- /** @inheritdoc */
23
+ /** @inheritDoc */
21
24
  static getDerivedStateFromError(): {
22
25
  hasError: boolean;
23
26
  };
24
- /** @inheritdoc */
27
+ /** @inheritDoc */
25
28
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
26
29
  /**
27
30
  * Рендер.
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SafeSuspense = exports.ErrorBoundary = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  /**
9
- * Обработчик ошибок в React-компонентах.
9
+ * Компонент-предохранитель. Обработчик ошибок в React-компонентах.
10
10
  */
11
11
  class ErrorBoundary extends react_1.default.Component {
12
12
  /**
@@ -16,12 +16,13 @@ class ErrorBoundary extends react_1.default.Component {
16
16
  super(props);
17
17
  this.state = { hasError: false };
18
18
  }
19
- /** @inheritdoc */
19
+ /** @inheritDoc */
20
20
  static getDerivedStateFromError() {
21
21
  return { hasError: true };
22
22
  }
23
- /** @inheritdoc */
23
+ /** @inheritDoc */
24
24
  componentDidCatch(error, errorInfo) {
25
+ // @todo добавить возможность брать onError из специального контекста (это упростит передачу из di-контейнера)
25
26
  const { onError } = this.props;
26
27
  onError?.(error, errorInfo);
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/react/error-handlers/index.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAa1B;;GAEG;AACH,MAAa,aAAc,SAAQ,eAAK,CAAC,SAAuC;IAC9E;;OAEG;IACH,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,wBAAwB;QAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,KAAY,EAAE,SAA0B;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,CAAC;CACF;AA/BD,sCA+BC;AAED;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CACtE,8BAAC,eAAK,CAAC,QAAQ,IAAC,QAAQ,EAAE,QAAQ;IAChC,8BAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAChD,QAAQ,CACK,CACD,CAClB,CAAC;AANW,QAAA,YAAY,gBAMvB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/react/error-handlers/index.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAgB1B;;GAEG;AACH,MAAa,aAAc,SAAQ,eAAK,CAAC,SAAuC;IAC9E;;OAEG;IACH,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,wBAAwB;QAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,KAAY,EAAE,SAA0B;QACxD,8GAA8G;QAC9G,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,CAAC;CACF;AAhCD,sCAgCC;AAED;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CACtE,8BAAC,eAAK,CAAC,QAAQ,IAAC,QAAQ,EAAE,QAAQ;IAChC,8BAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAChD,QAAQ,CACK,CACD,CAClB,CAAC;AANW,QAAA,YAAY,gBAMvB"}
@@ -1,10 +1,19 @@
1
1
  import type { PayloadAction, Draft } from '@reduxjs/toolkit';
2
+ /**
3
+ * Статус загрузки данных.
4
+ */
2
5
  export declare type Status = 'initial' | 'fetching' | 'success' | 'failure';
6
+ /**
7
+ * Базовая структура хранилища удаленных данных.
8
+ */
3
9
  export interface RemoteDataState<TData, TError> {
4
10
  data: TData;
5
11
  error: TError;
6
12
  status: Status;
7
13
  }
14
+ /**
15
+ * Возможные статусы загрузки данных.
16
+ */
8
17
  export declare const STATUS: Record<Status, Status>;
9
18
  /**
10
19
  * Возвращает набор обработчиков для работы с удаленными данными.
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRemoteDataReducers = exports.STATUS = void 0;
4
+ /**
5
+ * Возможные статусы загрузки данных.
6
+ */
4
7
  exports.STATUS = {
5
8
  initial: 'initial',
6
9
  fetching: 'fetching',
@@ -1 +1 @@
1
- {"version":3,"file":"remote-data.js","sourceRoot":"","sources":["../../../src/utils/redux/remote-data.ts"],"names":[],"mappings":";;;AAUa,QAAA,MAAM,GAA2B;IAC5C,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF;;;GAGG;AACI,MAAM,wBAAwB,GAAG,GAAwC,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE;QAC3B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAgC,EAAE,EAAE;QAC7D,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAiC,EAAE,EAAE;QAC9D,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAZU,QAAA,wBAAwB,4BAYlC"}
1
+ {"version":3,"file":"remote-data.js","sourceRoot":"","sources":["../../../src/utils/redux/remote-data.ts"],"names":[],"mappings":";;;AAgBA;;GAEG;AACU,QAAA,MAAM,GAA2B;IAC5C,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF;;;GAGG;AACI,MAAM,wBAAwB,GAAG,GAAwC,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE;QAC3B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAgC,EAAE,EAAE;QAC7D,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC,KAAe,EAAE,MAAiC,EAAE,EAAE;QAC9D,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,MAAM,GAAG,cAAM,CAAC,OAAO,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAZU,QAAA,wBAAwB,4BAYlC"}
@@ -0,0 +1,3 @@
1
+ export type { SagaExtendedMiddleware } from './types';
2
+ export { takeChain } from './take-chain';
3
+ export { createSagaMiddleware } from './middleware';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSagaMiddleware = exports.takeChain = void 0;
4
+ var take_chain_1 = require("./take-chain");
5
+ Object.defineProperty(exports, "takeChain", { enumerable: true, get: function () { return take_chain_1.takeChain; } });
6
+ var middleware_1 = require("./middleware");
7
+ Object.defineProperty(exports, "createSagaMiddleware", { enumerable: true, get: function () { return middleware_1.createSagaMiddleware; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/index.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,9 @@
1
+ import { SagaExtendedMiddleware } from './types';
2
+ import { Logger } from '../../logger';
3
+ /**
4
+ * Возвращает расширенную версию SagaMiddleware.
5
+ * @param logger Logger.
6
+ * @return Middleware.
7
+ */
8
+ declare function createSagaExtendedMiddleware(logger: Logger): SagaExtendedMiddleware;
9
+ export { createSagaExtendedMiddleware as createSagaMiddleware };
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.createSagaMiddleware = void 0;
27
+ const redux_saga_1 = __importStar(require("redux-saga"));
28
+ const error_tracking_1 = require("../../error-tracking");
29
+ /**
30
+ * Возвращает расширенную версию SagaMiddleware.
31
+ * @param logger Logger.
32
+ * @return Middleware.
33
+ */
34
+ function createSagaExtendedMiddleware(logger) {
35
+ const privates = {};
36
+ const sagaMiddleware = (0, redux_saga_1.default)({
37
+ onError: (error, { sagaStack }) => {
38
+ logger.error(
39
+ // @todo убрать отсюда упоминание sentry, вынести в провайдер, возможно заменить аргумент logger на onError
40
+ new error_tracking_1.SentryError(error.message, {
41
+ extra: {
42
+ key: 'Saga stack',
43
+ data: sagaStack,
44
+ },
45
+ }));
46
+ },
47
+ });
48
+ const middleware = api => {
49
+ privates.api = api;
50
+ return sagaMiddleware(api);
51
+ };
52
+ middleware.timeout = function timeout(milliseconds) {
53
+ privates.timeout = milliseconds;
54
+ return middleware;
55
+ };
56
+ middleware.run = async function run(saga, ...args) {
57
+ const { api, timeout } = privates;
58
+ const promises = [];
59
+ let ready = false;
60
+ let timerId;
61
+ if (!api) {
62
+ throw Error('Middleware is not applied to the store');
63
+ }
64
+ promises.push(sagaMiddleware
65
+ .run(saga, ...args)
66
+ .toPromise()
67
+ .then(() => {
68
+ ready = true;
69
+ timerId !== undefined && clearTimeout(timerId);
70
+ }));
71
+ if (typeof timeout === 'number' && Number.isFinite(timeout)) {
72
+ promises.push(new Promise(resolve => {
73
+ timerId = setTimeout(() => {
74
+ if (!ready) {
75
+ logger.error(Error(`Сага прервана по таймауту (${timeout} миллисекунд)`));
76
+ api.dispatch(redux_saga_1.END);
77
+ }
78
+ resolve();
79
+ }, timeout);
80
+ }));
81
+ }
82
+ await Promise.race(promises);
83
+ };
84
+ return middleware;
85
+ }
86
+ exports.createSagaMiddleware = createSagaExtendedMiddleware;
87
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yDAA6D;AAC7D,yDAAmD;AAEnD;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,MAAc;IAClD,MAAM,QAAQ,GAGV,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,IAAA,oBAAoB,EAAC;QAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK;YACV,2GAA2G;YAC3G,IAAI,4BAAW,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC7B,KAAK,EAAE;oBACL,GAAG,EAAE,YAAY;oBACjB,IAAI,EAAE,SAAS;iBAChB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAA2B,GAAG,CAAC,EAAE;QAC/C,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;QACnB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,UAAU,CAAC,OAAO,GAAG,SAAS,OAAO,CAAC,YAAoB;QACxD,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,GAAG,KAAK,UAAU,GAAG,CACjC,IAAO,EACP,GAAG,IAAmB;QAEtB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAClC,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,OAAuB,CAAC;QAE5B,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;SACvD;QAED,QAAQ,CAAC,IAAI,CACX,cAAc;aACX,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;aAClB,SAAS,EAAE;aACX,IAAI,CAAC,GAAG,EAAE;YACT,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,KAAK,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC,CACL,CAAC;QAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC3D,QAAQ,CAAC,IAAI,CACX,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAC1B,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxB,IAAI,CAAC,KAAK,EAAE;wBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,OAAO,eAAe,CAAC,CAAC,CAAC;wBAC1E,GAAG,CAAC,QAAQ,CAAC,gBAAG,CAAC,CAAC;qBACnB;oBAED,OAAO,EAAE,CAAC;gBACZ,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC,CAAC,CACH,CAAC;SACH;QAED,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAEwC,4DAAoB"}
@@ -10,6 +10,7 @@ import { Action } from '@reduxjs/toolkit';
10
10
  export declare function takeChain<Deps extends any[], Task extends (...someArgs: [...Deps, Action[]]) => any>(timeout: number, types: string[], task: Task, ...deps: Deps): import("redux-saga/effects").ForkEffect<unknown>;
11
11
  /**
12
12
  * Генерирует эффект по таймауту.
13
+ * @internal
13
14
  * @param timeout Время задержки в мс.
14
15
  * @param types Массив с типами ожидаемых экшенов.
15
16
  * @param task Генератор.
@@ -18,6 +19,7 @@ export declare function takeChain<Deps extends any[], Task extends (...someArgs:
18
19
  export declare function generateTakeChain<Deps extends any[], Task extends (...someArgs: [...Deps, Action[]]) => any>(timeout: number, types: string[], task: Task, deps: Deps): Generator<any, void, any>;
19
20
  /**
20
21
  * Вызывает экшен с заданной задержкой.
22
+ * @internal
21
23
  * @param timeout Время задержки в мс.
22
24
  * @param action Тип экшена.
23
25
  */
@@ -16,6 +16,7 @@ function takeChain(timeout, types, task, ...deps) {
16
16
  exports.takeChain = takeChain;
17
17
  /**
18
18
  * Генерирует эффект по таймауту.
19
+ * @internal
19
20
  * @param timeout Время задержки в мс.
20
21
  * @param types Массив с типами ожидаемых экшенов.
21
22
  * @param task Генератор.
@@ -45,6 +46,7 @@ function* generateTakeChain(timeout, types, task, deps) {
45
46
  exports.generateTakeChain = generateTakeChain;
46
47
  /**
47
48
  * Вызывает экшен с заданной задержкой.
49
+ * @internal
48
50
  * @param timeout Время задержки в мс.
49
51
  * @param action Тип экшена.
50
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"take-chain.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/take-chain.ts"],"names":[],"mappings":";;;AACA,gDAAkE;AAElE;;;;;;;GAOG;AACH,SAAgB,SAAS,CAGvB,OAAe,EAAE,KAAe,EAAE,IAAU,EAAE,GAAG,IAAU;IAC3D,OAAO,IAAA,cAAI,EAAC,iBAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AALD,8BAKC;AAED;;;;;;GAMG;AACH,QAAe,CAAC,CAAC,iBAAiB,CAGhC,OAAe,EAAE,KAAe,EAAE,IAAU,EAAE,IAAU;IACxD,OAAO,IAAI,EAAE;QACX,MAAM,WAAW,GAAW,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAW,MAAM,IAAA,cAAI,EAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,IAAA,cAAI,EAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAE7C,OAAO,IAAI,EAAE;YACX,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,cAAI,EAAC;gBACtC,MAAM,EAAE,IAAA,cAAI,EAAC,KAAK,CAAC;gBACnB,QAAQ,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAExC,IACE,QAAQ;gBACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAClF;gBACA,wBAAwB;gBACxB,MAAM,IAAA,cAAI,EAAC,IAAW,EAAE,GAAG,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACnD,MAAM;aACP;SACF;KACF;AACH,CAAC;AA7BD,8CA6BC;AAED;;;;GAIG;AACH,QAAe,CAAC,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc;IACzD,MAAM,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC;IACrB,MAAM,IAAA,aAAG,EAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAHD,gCAGC"}
1
+ {"version":3,"file":"take-chain.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/take-chain.ts"],"names":[],"mappings":";;;AACA,gDAAkE;AAElE;;;;;;;GAOG;AACH,SAAgB,SAAS,CAGvB,OAAe,EAAE,KAAe,EAAE,IAAU,EAAE,GAAG,IAAU;IAC3D,OAAO,IAAA,cAAI,EAAC,iBAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AALD,8BAKC;AAED;;;;;;;GAOG;AACH,QAAe,CAAC,CAAC,iBAAiB,CAGhC,OAAe,EAAE,KAAe,EAAE,IAAU,EAAE,IAAU;IACxD,OAAO,IAAI,EAAE;QACX,MAAM,WAAW,GAAW,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAW,MAAM,IAAA,cAAI,EAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,IAAA,cAAI,EAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAE7C,OAAO,IAAI,EAAE;YACX,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,cAAI,EAAC;gBACtC,MAAM,EAAE,IAAA,cAAI,EAAC,KAAK,CAAC;gBACnB,QAAQ,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAExC,IACE,QAAQ;gBACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAClF;gBACA,wBAAwB;gBACxB,MAAM,IAAA,cAAI,EAAC,IAAW,EAAE,GAAG,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACnD,MAAM;aACP;SACF;KACF;AACH,CAAC;AA7BD,8CA6BC;AAED;;;;;GAKG;AACH,QAAe,CAAC,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc;IACzD,MAAM,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC;IACrB,MAAM,IAAA,aAAG,EAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAHD,gCAGC"}
@@ -0,0 +1,6 @@
1
+ import type { Middleware } from '@reduxjs/toolkit';
2
+ import type { Saga } from 'redux-saga';
3
+ export interface SagaExtendedMiddleware extends Middleware {
4
+ timeout(milliseconds: number): this;
5
+ run: <S extends Saga>(saga: S, ...args: Parameters<S>) => Promise<void>;
6
+ }
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/error-tracker/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/redux-saga/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Данные для SSR, сформированные на сервере.
4
+ */
5
+ export interface BridgeServerSide {
6
+ rootElementId: string;
7
+ serverDataKey: string;
8
+ }
9
+ /**
10
+ * Данные для SSR, доступные на стороне клиента (в браузере).
11
+ */
12
+ export interface BridgeClientSide<T> {
13
+ rootElement: HTMLElement;
14
+ serverSideData: T;
15
+ }
16
+ /**
17
+ * Набор методов для связывания серверного и клиентского приложений.
18
+ */
19
+ export declare const SsrBridge: {
20
+ /**
21
+ * Вызывается на сервере.
22
+ * @param serviceKey Идентификатор корневого элемента.
23
+ * @return Идентификатор корневого элемента и ключ для глобально.
24
+ */
25
+ readonly prepare: (serviceKey: string) => BridgeServerSide;
26
+ /**
27
+ * Вызывается на клиенте.
28
+ * @param serviceKey Идентификатор корневого элемента.
29
+ * @return Корневой элемент и начальное состояние.
30
+ */
31
+ readonly resolve: <T = any>(serviceKey: string) => BridgeClientSide<T>;
32
+ };
33
+ /**
34
+ * Скрипт, формирующий глобально доступные на странице данные.
35
+ * @param props Свойства.
36
+ * @return Элемент.
37
+ */
38
+ export declare function GlobalDataScript({ property, value, }: {
39
+ property: string;
40
+ value: Record<any, any>;
41
+ }): JSX.Element;