@sima-land/isomorph 11.0.0-alpha.3 → 11.0.0-alpha.6

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 (68) hide show
  1. package/config/{index.d.ts → base.d.ts} +0 -0
  2. package/config/{index.js → base.js} +1 -1
  3. package/config/base.js.map +1 -0
  4. package/di/application.d.ts +6 -0
  5. package/{container → di}/application.js +16 -8
  6. package/di/application.js.map +1 -0
  7. package/di/container.d.ts +6 -0
  8. package/di/container.js +49 -0
  9. package/di/container.js.map +1 -0
  10. package/di/errors.d.ts +21 -0
  11. package/di/errors.js +33 -0
  12. package/di/errors.js.map +1 -0
  13. package/di/index.d.ts +6 -0
  14. package/di/index.js +16 -0
  15. package/di/index.js.map +1 -0
  16. package/{preset/index.d.ts → di/preset.d.ts} +3 -1
  17. package/{preset/index.js → di/preset.js} +1 -1
  18. package/di/preset.js.map +1 -0
  19. package/di/token.d.ts +7 -0
  20. package/di/token.js +17 -0
  21. package/di/token.js.map +1 -0
  22. package/di/types.d.ts +32 -0
  23. package/{container → di}/types.js +0 -0
  24. package/{preset → di}/types.js.map +1 -1
  25. package/error-tracker/types.d.ts +2 -1
  26. package/error-tracker/utils.d.ts +11 -1
  27. package/error-tracker/utils.js +13 -1
  28. package/error-tracker/utils.js.map +1 -1
  29. package/http-client/middleware/logging.d.ts +15 -0
  30. package/http-client/middleware/logging.js +91 -0
  31. package/http-client/middleware/logging.js.map +1 -0
  32. package/http-server/middleware/tracing.d.ts +7 -1
  33. package/http-server/middleware/tracing.js +19 -1
  34. package/http-server/middleware/tracing.js.map +1 -1
  35. package/logger/handler/sentry.js +8 -0
  36. package/logger/handler/sentry.js.map +1 -1
  37. package/package.json +3 -1
  38. package/preset/browser/index.d.ts +1 -0
  39. package/preset/browser/index.js +44 -0
  40. package/preset/browser/index.js.map +1 -0
  41. package/preset/node/index.d.ts +4 -3
  42. package/preset/node/index.js +21 -19
  43. package/preset/node/index.js.map +1 -1
  44. package/preset/node/response.d.ts +6 -3
  45. package/preset/node/response.js +9 -5
  46. package/preset/node/response.js.map +1 -1
  47. package/tokens.d.ts +20 -18
  48. package/tokens.js +21 -19
  49. package/tokens.js.map +1 -1
  50. package/tracing/utils.d.ts +9 -0
  51. package/tracing/utils.js +22 -0
  52. package/tracing/utils.js.map +1 -0
  53. package/utils/react/error-handlers/index.js +1 -0
  54. package/utils/react/error-handlers/index.js.map +1 -1
  55. package/utils/ssr/index.d.ts +30 -0
  56. package/utils/ssr/index.js +51 -0
  57. package/utils/ssr/index.js.map +1 -0
  58. package/config/index.js.map +0 -1
  59. package/container/application.d.ts +0 -25
  60. package/container/application.js.map +0 -1
  61. package/container/index.d.ts +0 -18
  62. package/container/index.js +0 -74
  63. package/container/index.js.map +0 -1
  64. package/container/types.d.ts +0 -14
  65. package/container/types.js.map +0 -1
  66. package/preset/index.js.map +0 -1
  67. package/preset/types.d.ts +0 -7
  68. package/preset/types.js +0 -3
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ 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 browser_2 = require("../../error-tracker/browser");
10
+ const logger_1 = require("../../logger");
11
+ const sentry_1 = require("../../logger/handler/sentry");
12
+ const saga_runner_1 = require("../../saga-runner");
13
+ const browser_3 = require("@sentry/browser");
14
+ function PresetBrowser() {
15
+ return (0, di_1.createPreset)([
16
+ [tokens_1.KnownToken.Config.source, browser_1.createConfigSource],
17
+ [tokens_1.KnownToken.Config.base, provideBaseConfig],
18
+ [tokens_1.KnownToken.logger, provideLogger],
19
+ [tokens_1.KnownToken.sagaRunner, provideSagaRunner],
20
+ ]);
21
+ }
22
+ exports.PresetBrowser = PresetBrowser;
23
+ function provideBaseConfig(resolve) {
24
+ const source = resolve(tokens_1.KnownToken.Config.source);
25
+ return (0, base_1.createBaseConfig)(source);
26
+ }
27
+ function provideLogger(resolve) {
28
+ const source = resolve(tokens_1.KnownToken.Config.source);
29
+ // @todo брать клиент и библиотеку из di-контейнера
30
+ const sentry = (0, browser_2.createSentryLib)({
31
+ dsn: source.get('SENTRY_CLIENT_DSN'),
32
+ release: source.get('SENTRY_RELEASE'),
33
+ environment: source.get('SENTRY_ENVIRONMENT'),
34
+ integrations: browser_3.defaultIntegrations,
35
+ });
36
+ const logger = (0, logger_1.createLogger)();
37
+ logger.subscribe((0, sentry_1.createSentryHandler)(sentry));
38
+ return logger;
39
+ }
40
+ function provideSagaRunner(resolve) {
41
+ const logger = resolve(tokens_1.KnownToken.logger);
42
+ return (0, saga_runner_1.createSagaRunner)(logger);
43
+ }
44
+ //# 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,yDAA8D;AAC9D,yCAA4C;AAC5C,wDAAkE;AAClE,mDAAqD;AACrD,6CAAsD;AAKtD,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,UAAU,EAAE,iBAAiB,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC;AAPD,sCAOC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC;QAC7B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACrC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC7C,YAAY,EAAE,6BAAmB;KAClC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,MAAM,CAAC,SAAS,CAAC,IAAA,4BAAmB,EAAC,MAAM,CAAC,CAAC,CAAC;IAE9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -1,10 +1,10 @@
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
- import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
7
4
  import type { DefaultMiddleware } from '../../http-server/types';
5
+ import { Provider, Preset } from '../../di';
6
+ import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
7
+ import { Resource } from '@opentelemetry/resources';
8
8
  /**
9
9
  * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
10
10
  * @return Preset.
@@ -15,4 +15,5 @@ export declare const provideLogger: Provider<Logger>;
15
15
  export declare const provideTracer: Provider<Tracer>;
16
16
  export declare const provideSpanExporter: Provider<SpanExporter>;
17
17
  export declare const provideTracerProvider: Provider<BasicTracerProvider>;
18
+ export declare const provideTracerProviderResource: Provider<Resource>;
18
19
  export declare const provideDefaultMiddleware: Provider<DefaultMiddleware>;
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.provideDefaultMiddleware = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.provideLogger = exports.provideBaseConfig = exports.PresetNode = void 0;
6
+ exports.provideDefaultMiddleware = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.provideLogger = exports.provideBaseConfig = exports.PresetNode = void 0;
7
+ const di_1 = require("../../di");
7
8
  const tracing_1 = require("@opentelemetry/tracing");
8
9
  const tokens_1 = require("../../tokens");
9
- const __1 = require("..");
10
10
  const node_1 = require("../../config/node");
11
- const config_1 = require("../../config");
11
+ const base_1 = require("../../config/base");
12
12
  const logger_1 = require("../../logger");
13
13
  const console_1 = require("../../logger/handler/console");
14
14
  const sentry_1 = require("../../logger/handler/sentry");
@@ -22,21 +22,21 @@ const middleware_axios_1 = require("middleware-axios");
22
22
  const express_1 = __importDefault(require("express"));
23
23
  const node_4 = require("@sentry/node");
24
24
  const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
25
- const resources_1 = require("@opentelemetry/resources");
26
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
27
25
  const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
26
+ const utils_1 = require("../../tracing/utils");
28
27
  /**
29
28
  * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
30
29
  * @return Preset.
31
30
  */
32
31
  function PresetNode() {
33
- return (0, __1.createPreset)([
32
+ return (0, di_1.createPreset)([
34
33
  [tokens_1.KnownToken.Config.source, node_1.createConfigSource],
35
34
  [tokens_1.KnownToken.Config.base, exports.provideBaseConfig],
36
35
  [tokens_1.KnownToken.logger, exports.provideLogger],
37
36
  [tokens_1.KnownToken.Tracing.tracer, exports.provideTracer],
38
37
  [tokens_1.KnownToken.Tracing.spanExporter, exports.provideSpanExporter],
39
38
  [tokens_1.KnownToken.Tracing.tracerProvider, exports.provideTracerProvider],
39
+ [tokens_1.KnownToken.Tracing.tracerProviderResource, exports.provideTracerProviderResource],
40
40
  [tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
41
41
  [tokens_1.KnownToken.Http.Server.factory, () => express_1.default],
42
42
  [tokens_1.KnownToken.Http.Server.Defaults.middleware, exports.provideDefaultMiddleware],
@@ -46,14 +46,15 @@ function PresetNode() {
46
46
  exports.PresetNode = PresetNode;
47
47
  const provideBaseConfig = resolve => {
48
48
  const source = resolve(tokens_1.KnownToken.Config.source);
49
- return (0, config_1.createBaseConfig)(source);
49
+ return (0, base_1.createBaseConfig)(source);
50
50
  };
51
51
  exports.provideBaseConfig = provideBaseConfig;
52
52
  const provideLogger = resolve => {
53
53
  const source = resolve(tokens_1.KnownToken.Config.source);
54
54
  const config = resolve(tokens_1.KnownToken.Config.base);
55
+ // @todo брать клиент и библиотеку из контейнера
55
56
  const sentry = (0, node_2.createSentryLib)({
56
- dsn: source.get('SENTRY_DSN'),
57
+ dsn: source.get('SENTRY_SERVER_DSN'),
57
58
  release: source.get('SENTRY_RELEASE'),
58
59
  environment: source.get('SENTRY_ENVIRONMENT'),
59
60
  });
@@ -79,22 +80,23 @@ const provideSpanExporter = resolve => {
79
80
  };
80
81
  exports.provideSpanExporter = provideSpanExporter;
81
82
  const provideTracerProvider = resolve => {
82
- const config = resolve(tokens_1.KnownToken.Config.base);
83
83
  const exporter = resolve(tokens_1.KnownToken.Tracing.spanExporter);
84
+ const resource = resolve(tokens_1.KnownToken.Tracing.tracerProviderResource);
84
85
  const provider = new sdk_trace_node_1.NodeTracerProvider({
85
- resource: new resources_1.Resource({
86
- [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: config.appName,
87
- [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,
88
- [semantic_conventions_1.SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env,
89
- }),
86
+ resource,
87
+ });
88
+ provider.addSpanProcessor(new tracing_1.BatchSpanProcessor(exporter)); // @todo разобраться с as any
89
+ provider.register({
90
+ propagator: new propagator_jaeger_1.JaegerPropagator(),
90
91
  });
91
- // @todo разобраться с as any
92
- provider.addSpanProcessor(new tracing_1.BatchSpanProcessor(exporter));
93
- provider.register({ propagator: new propagator_jaeger_1.JaegerPropagator() });
94
- // @todo разобраться с as any
95
- return provider;
92
+ return provider; // @todo разобраться с as any
96
93
  };
97
94
  exports.provideTracerProvider = provideTracerProvider;
95
+ const provideTracerProviderResource = resolve => {
96
+ const config = resolve(tokens_1.KnownToken.Config.base);
97
+ return (0, utils_1.getConventionalResource)(config);
98
+ };
99
+ exports.provideTracerProviderResource = provideTracerProviderResource;
98
100
  const provideDefaultMiddleware = resolve => {
99
101
  const config = resolve(tokens_1.KnownToken.Config.base);
100
102
  const logger = resolve(tokens_1.KnownToken.logger);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":";;;;;;AAKA,iCAA0D;AAC1D,oDAA+F;AAC/F,yCAAmD;AACnD,4CAAuD;AACvD,4CAAqD;AACrD,yCAA4C;AAC5C,0DAAoE;AACpE,wDAAkE;AAClE,mDAA2D;AAC3D,kEAAyE;AACzE,kEAAyE;AACzE,kEAG8C;AAC9C,6CAAgF;AAChF,oEAAgE;AAChE,uDAA0C;AAC1C,sDAA8B;AAC9B,uCAAwC;AACxC,kEAAmE;AAEnE,wEAAoE;AACpE,+CAA8D;AAE9D;;;GAGG;AACH,SAAgB,UAAU;IACxB,OAAO,IAAA,iBAAY,EAAC;QAClB,CAAC,mBAAK,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAkB,CAAC;QACzC,CAAC,mBAAK,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAiB,CAAC;QACtC,CAAC,mBAAK,CAAC,MAAM,EAAE,qBAAa,CAAC;QAC7B,CAAC,mBAAK,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAa,CAAC;QACrC,CAAC,mBAAK,CAAC,OAAO,CAAC,YAAY,EAAE,2BAAmB,CAAC;QACjD,CAAC,mBAAK,CAAC,OAAO,CAAC,cAAc,EAAE,6BAAqB,CAAC;QACrD,CAAC,mBAAK,CAAC,OAAO,CAAC,sBAAsB,EAAE,qCAA6B,CAAC;QACrE,CAAC,mBAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAM,CAAC;QACzC,CAAC,mBAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAO,CAAC;QAC1C,CAAC,mBAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,gCAAwB,CAAC;QACjE,CAAC,mBAAK,CAAC,OAAO,CAAC,OAAO,EAAE,2BAAoB,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAdD,gCAcC;AAEM,MAAM,iBAAiB,GAAyB,OAAO,CAAC,EAAE;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B;AAEK,MAAM,aAAa,GAAqB,OAAO,CAAC,EAAE;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1C,gDAAgD;IAChD,MAAM,MAAM,GAAG,IAAA,sBAAe,EAAC;QAC7B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACrC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAC9B,MAAM,CAAC,SAAS,CAAC,IAAA,8BAAoB,EAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,CAAC,IAAA,4BAAmB,EAAC,MAAM,CAAC,CAAC,CAAC;IAE9C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB;AAEK,MAAM,aAAa,GAAqB,OAAO,CAAC,EAAE;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEvD,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/D,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEK,MAAM,mBAAmB,GAA2B,OAAO,CAAC,EAAE;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACzC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,SAAS;KACjE,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AAEK,MAAM,qBAAqB,GAAkC,OAAO,CAAC,EAAE;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,IAAI,mCAAkB,CAAC;QACtC,QAAQ;KACT,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,CAAC,IAAI,4BAAkB,CAAC,QAAQ,CAAQ,CAAC,CAAC,CAAC,6BAA6B;IAEjG,QAAQ,CAAC,QAAQ,CAAC;QAChB,UAAU,EAAE,IAAI,oCAAgB,EAAE;KACnC,CAAC,CAAC;IAEH,OAAO,QAAe,CAAC,CAAC,6BAA6B;AACvD,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC;AAEK,MAAM,6BAA6B,GAAuB,OAAO,CAAC,EAAE;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1C,OAAO,IAAA,+BAAuB,EAAC,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AAJW,QAAA,6BAA6B,iCAIxC;AAEK,MAAM,wBAAwB,GAAgC,OAAO,CAAC,EAAE;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAA,2BAAoB,GAAE,CAAC;IAEvC,OAAO;QACL,KAAK,EAAE,CAAC,eAAQ,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC,IAAA,2BAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC,IAAA,2BAAiB,EAAC,MAAM,CAAC,CAAC;QACpC,OAAO,EAAE;YACP,IAAA,mCAAyB,EAAC,MAAM,EAAE;gBAChC,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,SAAS,EAAE,OAAO,CAAC,gBAAgB;aACpC,CAAC;YACF,IAAA,iCAAuB,EAAC,MAAM,EAAE;gBAC9B,SAAS,EAAE,OAAO,CAAC,cAAc;aAClC,CAAC;SACH;QACD,MAAM,EAAE,CAAC,eAAQ,CAAC,YAAY,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,wBAAwB,4BAsBnC"}
@@ -1,10 +1,8 @@
1
1
  /// <reference types="react" />
2
- import type { Preset } from '../types';
3
- import type { Provider, Resolve } from '../../container/types';
4
2
  import type { SagaRunner } from '../../saga-runner/types';
5
3
  import type { PageTemplate } from '../../http-server/types';
6
4
  import type { Handler } from 'express';
7
- import { Application } from '../../container/application';
5
+ import { Application, Preset, Provider, Resolve } from '../../di';
8
6
  /**
9
7
  * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
10
8
  * @return Preset.
@@ -14,4 +12,9 @@ export declare const provideSagaRunner: Provider<SagaRunner>;
14
12
  export declare const provideRender: Provider<(el: JSX.Element) => string | Promise<string>>;
15
13
  export declare const provideTemplate: Provider<PageTemplate>;
16
14
  export declare const provideMain: Provider<() => void>;
15
+ /**
16
+ * Возвращает express-handler, создающий дочернее di-приложение при запросе.
17
+ * @param appFactory Фабрика di-приложения запроса.
18
+ * @return Обработчик.
19
+ */
17
20
  export declare function HandlerProvider(appFactory: () => Application): (resolve: Resolve) => Handler;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HandlerProvider = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideSagaRunner = exports.PresetResponse = void 0;
4
- const application_1 = require("../../container/application");
4
+ const di_1 = require("../../di");
5
5
  const tokens_1 = require("../../tokens");
6
- const __1 = require("..");
7
6
  const server_1 = require("react-dom/server");
8
7
  const saga_runner_1 = require("../../saga-runner");
9
8
  const constants_1 = require("../../http-server/constants");
@@ -14,8 +13,8 @@ const utils_1 = require("../../http-server/utils");
14
13
  * @return Preset.
15
14
  */
16
15
  function PresetResponse() {
17
- return (0, __1.createPreset)([
18
- [tokens_1.KnownToken.Response.sagaRunner, exports.provideSagaRunner],
16
+ return (0, di_1.createPreset)([
17
+ [tokens_1.KnownToken.sagaRunner, exports.provideSagaRunner],
19
18
  [tokens_1.KnownToken.Response.render, exports.provideRender],
20
19
  [tokens_1.KnownToken.Response.template, exports.provideTemplate],
21
20
  [tokens_1.KnownToken.Response.main, exports.provideMain],
@@ -63,9 +62,14 @@ const provideMain = resolve => {
63
62
  };
64
63
  };
65
64
  exports.provideMain = provideMain;
65
+ /**
66
+ * Возвращает express-handler, создающий дочернее di-приложение при запросе.
67
+ * @param appFactory Фабрика di-приложения запроса.
68
+ * @return Обработчик.
69
+ */
66
70
  function HandlerProvider(appFactory) {
67
71
  return function provider(resolve) {
68
- const parent = resolve(application_1.Application.self);
72
+ const parent = resolve(di_1.CURRENT_APP);
69
73
  return function handler(req, res, next) {
70
74
  const app = appFactory();
71
75
  app.attach(parent);
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":";;;AAMA,6DAA0D;AAC1D,yCAA0C;AAC1C,0BAAkC;AAClC,6CAAkD;AAClD,mDAAqD;AACrD,2DAA6D;AAC7D,yDAA0D;AAC1D,mDAAuD;AAEvD;;;GAGG;AACH,SAAgB,cAAc;IAC5B,OAAO,IAAA,gBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,yBAAiB,CAAC;QACnD,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAa,CAAC;QAC3C,CAAC,mBAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,uBAAe,CAAC;QAC/C,CAAC,mBAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAW,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAPD,wCAOC;AAEM,MAAM,iBAAiB,GAAyB,OAAO,CAAC,EAAE;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,aAAa,GAA4D,OAAO,CAAC,EAAE;IAC9F,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO,SAAS,MAAM,CAAC,OAAoB;QACzC,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;QAEvC,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB;AAEK,MAAM,eAAe,GAA2B,OAAO,CAAC,EAAE;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,SAAS,QAAQ,CAAC,IAAI;QAC3B,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM;YACzB,CAAC,CAAC,IAAA,uBAAY,EAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,eAAe,mBAQ1B;AAEK,MAAM,WAAW,GAAyB,OAAO,CAAC,EAAE;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvD,OAAO,KAAK,UAAU,IAAI;QACxB,oBAAY,CAAC,MAAM,EAAE;aAClB,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;aACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;aACjB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;aAClB,MAAM,CAAC,oBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC9C,QAAQ,CAAC,QAAQ,CAAC;aAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,WAAW,eAgBtB;AAEF,SAAgB,eAAe,CAAC,UAA6B;IAC3D,OAAO,SAAS,QAAQ,CAAC,OAAgB;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,yBAAW,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;YACpC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;YAEzB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,GAAG,CAAC,GAAG,CAAC,mBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAZD,0CAYC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":";;;AAIA,iCAA6F;AAC7F,yCAA0C;AAC1C,6CAAkD;AAClD,mDAAqD;AACrD,2DAA6D;AAC7D,yDAA0D;AAC1D,mDAAuD;AAEvD;;;GAGG;AACH,SAAgB,cAAc;IAC5B,OAAO,IAAA,iBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,UAAU,EAAE,yBAAiB,CAAC;QAC1C,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAa,CAAC;QAC3C,CAAC,mBAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,uBAAe,CAAC;QAC/C,CAAC,mBAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAW,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAPD,wCAOC;AAEM,MAAM,iBAAiB,GAAyB,OAAO,CAAC,EAAE;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,aAAa,GAA4D,OAAO,CAAC,EAAE;IAC9F,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO,SAAS,MAAM,CAAC,OAAoB;QACzC,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;QAEvC,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB;AAEK,MAAM,eAAe,GAA2B,OAAO,CAAC,EAAE;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,SAAS,QAAQ,CAAC,IAAI;QAC3B,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM;YACzB,CAAC,CAAC,IAAA,uBAAY,EAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,eAAe,mBAQ1B;AAEK,MAAM,WAAW,GAAyB,OAAO,CAAC,EAAE;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvD,OAAO,KAAK,UAAU,IAAI;QACxB,oBAAY,CAAC,MAAM,EAAE;aAClB,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;aACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;aACjB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;aAClB,MAAM,CAAC,oBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC9C,QAAQ,CAAC,QAAQ,CAAC;aAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,WAAW,eAgBtB;AAEF;;;;GAIG;AACH,SAAgB,eAAe,CAAC,UAA6B;IAC3D,OAAO,SAAS,QAAQ,CAAC,OAAgB;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAW,CAAC,CAAC;QAEpC,OAAO,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;YACpC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;YAEzB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,GAAG,CAAC,GAAG,CAAC,mBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAZD,0CAYC"}
package/tokens.d.ts CHANGED
@@ -8,39 +8,41 @@ import type { BaseConfig } from './config/types';
8
8
  import type { Tracer } from '@opentelemetry/api';
9
9
  import type { Cache } from './cache/types';
10
10
  import type { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
11
+ import type { Resource } from '@opentelemetry/resources';
11
12
  export declare const KnownToken: {
12
13
  readonly Config: {
13
- readonly source: import("./container/types").Token<import("@humanwhocodes/env").Env>;
14
- readonly base: import("./container/types").Token<BaseConfig>;
14
+ readonly source: import("./di").Token<import("@humanwhocodes/env").Env>;
15
+ readonly base: import("./di").Token<BaseConfig>;
15
16
  };
16
- readonly cache: import("./container/types").Token<Cache>;
17
- readonly logger: import("./container/types").Token<Logger>;
17
+ readonly cache: import("./di").Token<Cache>;
18
+ readonly logger: import("./di").Token<Logger>;
19
+ readonly sagaRunner: import("./di").Token<SagaRunner>;
18
20
  readonly Tracing: {
19
- readonly tracer: import("./container/types").Token<Tracer>;
20
- readonly spanExporter: import("./container/types").Token<SpanExporter>;
21
- readonly tracerProvider: import("./container/types").Token<BasicTracerProvider>;
21
+ readonly tracer: import("./di").Token<Tracer>;
22
+ readonly spanExporter: import("./di").Token<SpanExporter>;
23
+ readonly tracerProvider: import("./di").Token<BasicTracerProvider>;
24
+ readonly tracerProviderResource: import("./di").Token<Resource>;
22
25
  };
23
26
  readonly Metrics: {
24
- readonly httpApp: import("./container/types").Token<Application>;
27
+ readonly httpApp: import("./di").Token<Application>;
25
28
  };
26
29
  readonly Http: {
27
30
  readonly Client: {
28
- readonly factory: import("./container/types").Token<HttpClientFactory>;
31
+ readonly factory: import("./di").Token<HttpClientFactory>;
29
32
  };
30
33
  readonly Server: {
31
- readonly factory: import("./container/types").Token<() => Application>;
34
+ readonly factory: import("./di").Token<() => Application>;
32
35
  readonly Defaults: {
33
- readonly middleware: import("./container/types").Token<DefaultMiddleware>;
36
+ readonly middleware: import("./di").Token<DefaultMiddleware>;
34
37
  };
35
38
  };
36
39
  };
37
40
  readonly Response: {
38
- readonly template: import("./container/types").Token<PageTemplate>;
39
- readonly context: import("./container/types").Token<ResponseContext>;
40
- readonly assets: import("./container/types").Token<PageAssets>;
41
- readonly prepare: import("./container/types").Token<() => JSX.Element | Promise<JSX.Element>>;
42
- readonly render: import("./container/types").Token<(element: JSX.Element) => string | Promise<string>>;
43
- readonly main: import("./container/types").Token<() => void>;
44
- readonly sagaRunner: import("./container/types").Token<SagaRunner>;
41
+ readonly template: import("./di").Token<PageTemplate>;
42
+ readonly context: import("./di").Token<ResponseContext>;
43
+ readonly assets: import("./di").Token<PageAssets>;
44
+ readonly prepare: import("./di").Token<() => JSX.Element | Promise<JSX.Element>>;
45
+ readonly render: import("./di").Token<(element: JSX.Element) => string | Promise<string>>;
46
+ readonly main: import("./di").Token<() => void>;
45
47
  };
46
48
  };
package/tokens.js CHANGED
@@ -1,48 +1,50 @@
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
+ sagaRunner: (0, di_1.createToken)('saga-runner'),
15
17
  // tracing
16
18
  Tracing: {
17
- tracer: (0, container_1.createToken)('tracing.tracer'),
18
- spanExporter: (0, container_1.createToken)('tracing.span-exporter'),
19
- tracerProvider: (0, container_1.createToken)('tracing.tracer-provider'),
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'),
20
23
  },
21
24
  // metrics
22
25
  Metrics: {
23
- httpApp: (0, container_1.createToken)('metrics.http-app'),
26
+ httpApp: (0, di_1.createToken)('metrics.http-app'),
24
27
  },
25
28
  // http
26
29
  Http: {
27
30
  Client: {
28
- factory: (0, container_1.createToken)('http.client.factory'),
31
+ factory: (0, di_1.createToken)('http.client.factory'),
29
32
  },
30
33
  Server: {
31
- factory: (0, container_1.createToken)('http.server.factory'),
34
+ factory: (0, di_1.createToken)('http.server.factory'),
32
35
  Defaults: {
33
- middleware: (0, container_1.createToken)('http.server.defaults.middleware'),
36
+ middleware: (0, di_1.createToken)('http.server.defaults.middleware'),
34
37
  },
35
38
  },
36
39
  },
37
40
  // scope: page response
38
41
  Response: {
39
- template: (0, container_1.createToken)('response/template'),
40
- context: (0, container_1.createToken)('response/context'),
41
- assets: (0, container_1.createToken)('response/assets'),
42
- prepare: (0, container_1.createToken)('response/prepare'),
43
- render: (0, container_1.createToken)('response/render'),
44
- main: (0, container_1.createToken)('response/main'),
45
- sagaRunner: (0, container_1.createToken)('response/saga-runner'),
42
+ template: (0, di_1.createToken)('response/template'),
43
+ context: (0, di_1.createToken)('response/context'),
44
+ assets: (0, di_1.createToken)('response/assets'),
45
+ prepare: (0, di_1.createToken)('response/prepare'),
46
+ render: (0, di_1.createToken)('response/render'),
47
+ main: (0, di_1.createToken)('response/main'),
46
48
  },
47
49
  };
48
50
  //# 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;AAgB7B,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,OAAO,EAAE;QACP,MAAM,EAAE,IAAA,uBAAW,EAAS,gBAAgB,CAAC;QAC7C,YAAY,EAAE,IAAA,uBAAW,EAAe,uBAAuB,CAAC;QAChE,cAAc,EAAE,IAAA,uBAAW,EAAsB,yBAAyB,CAAC;KAC5E;IAED,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;AAiBtB,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,UAAU,EAAE,IAAA,gBAAW,EAAa,aAAa,CAAC;IAElD,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;KACF;IAED,uBAAuB;IACvB,QAAQ,EAAE;QACR,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;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,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConventionalResource = void 0;
4
+ const os_1 = require("os");
5
+ const resources_1 = require("@opentelemetry/resources");
6
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
7
+ /**
8
+ * Возвращает ресурс для BasicTracerProvider, заполненный данными по соглашению.
9
+ * Может быть дополнен с помощью метода merge.
10
+ * @param config Конфиг.
11
+ * @return Ресурс для провайдера.
12
+ */
13
+ function getConventionalResource(config) {
14
+ return new resources_1.Resource({
15
+ [semantic_conventions_1.SemanticResourceAttributes.HOST_NAME]: (0, os_1.hostname)(),
16
+ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: config.appName,
17
+ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,
18
+ [semantic_conventions_1.SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env,
19
+ });
20
+ }
21
+ exports.getConventionalResource = getConventionalResource;
22
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tracing/utils.ts"],"names":[],"mappings":";;;AACA,2BAA8B;AAC9B,wDAAoD;AACpD,8EAAiF;AAEjF;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,MAAkB;IACxD,OAAO,IAAI,oBAAQ,CAAC;QAClB,CAAC,iDAA0B,CAAC,SAAS,CAAC,EAAE,IAAA,aAAQ,GAAE;QAClD,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;AAPD,0DAOC"}
@@ -22,6 +22,7 @@ class ErrorBoundary extends react_1.default.Component {
22
22
  }
23
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;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,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"}
@@ -0,0 +1,30 @@
1
+ /// <reference types="react" />
2
+ export declare const SsrBridge: {
3
+ /**
4
+ * Вызывается на сервере.
5
+ * @param serviceKey Идентификатор корневого элемента.
6
+ * @return Идентификатор корневого элемента и ключ для глобально.
7
+ */
8
+ readonly prepare: (serviceKey: string) => {
9
+ rootElementId: string;
10
+ serverDataKey: string;
11
+ };
12
+ /**
13
+ * Вызывается на клиенте.
14
+ * @param serviceKey Идентификатор корневого элемента.
15
+ * @return Корневой элемент и начальное состояние.
16
+ */
17
+ readonly resolve: <T = any>(serviceKey: string) => {
18
+ rootElement: HTMLElement;
19
+ serverSideData: T;
20
+ };
21
+ };
22
+ /**
23
+ * Скрипт, формирующий глобально доступные на странице данные.
24
+ * @param props Свойства.
25
+ * @return Элемент.
26
+ */
27
+ export declare function GlobalDataScript({ property, value, }: {
28
+ property: string;
29
+ value: Record<any, any>;
30
+ }): JSX.Element;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GlobalDataScript = exports.SsrBridge = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const jsesc_1 = __importDefault(require("jsesc"));
9
+ exports.SsrBridge = {
10
+ /**
11
+ * Вызывается на сервере.
12
+ * @param serviceKey Идентификатор корневого элемента.
13
+ * @return Идентификатор корневого элемента и ключ для глобально.
14
+ */
15
+ prepare(serviceKey) {
16
+ return {
17
+ rootElementId: `${serviceKey}__root`,
18
+ serverDataKey: `${serviceKey}__serverData`,
19
+ };
20
+ },
21
+ /**
22
+ * Вызывается на клиенте.
23
+ * @param serviceKey Идентификатор корневого элемента.
24
+ * @return Корневой элемент и начальное состояние.
25
+ */
26
+ resolve(serviceKey) {
27
+ const rootElement = document.getElementById(`${serviceKey}__root`);
28
+ const serverSideData = window[`${serviceKey}__serverData`];
29
+ if (!rootElement) {
30
+ throw Error('SSR: Не был найден корневой элемент');
31
+ }
32
+ return { rootElement, serverSideData };
33
+ },
34
+ };
35
+ /**
36
+ * Скрипт, формирующий глобально доступные на странице данные.
37
+ * @param props Свойства.
38
+ * @return Элемент.
39
+ */
40
+ function GlobalDataScript({ property, value, }) {
41
+ const json = (0, jsesc_1.default)(JSON.stringify(value), {
42
+ json: true,
43
+ isScriptContext: true,
44
+ });
45
+ return (react_1.default.createElement("script", { dangerouslySetInnerHTML: {
46
+ // @todo возможно стоит также экранировать символы в "property"
47
+ __html: `window["${property}"] = JSON.parse(${json});`,
48
+ } }));
49
+ }
50
+ exports.GlobalDataScript = GlobalDataScript;
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/ssr/index.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,kDAA0B;AAEb,QAAA,SAAS,GAAG;IACvB;;;;OAIG;IACH,OAAO,CAAC,UAAkB;QAIxB,OAAO;YACL,aAAa,EAAE,GAAG,UAAU,QAAQ;YACpC,aAAa,EAAE,GAAG,UAAU,cAAc;SAC3C,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CACL,UAAkB;QAKlB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU,QAAQ,CAAC,CAAC;QACnE,MAAM,cAAc,GAAI,MAAc,CAAC,GAAG,UAAU,cAAc,CAAC,CAAC;QAEpE,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACpD;QAED,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACzC,CAAC;CACO,CAAC;AAEX;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,KAAK,GAIN;IACC,MAAM,IAAI,GAAG,IAAA,eAAK,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACxC,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,OAAO,CACL,0CACE,uBAAuB,EAAE;YACvB,+DAA+D;YAC/D,MAAM,EAAE,WAAW,QAAQ,mBAAmB,IAAI,IAAI;SACvD,GACD,CACH,CAAC;AACJ,CAAC;AApBD,4CAoBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,MAAoB;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEjD,OAAO;QACL,GAAG;QACH,OAAO;QACP,UAAU;KACX,CAAC;AACJ,CAAC;AAVD,4CAUC"}
@@ -1,25 +0,0 @@
1
- import type { Provider, Token } from './types';
2
- import type { Preset } from '../preset/types';
3
- declare type ExtractType<T extends readonly Token<any>[]> = {
4
- [index in keyof T]: T[index] extends T[number] ? ReturnType<T[index]['_resolve']> : never;
5
- };
6
- interface Binding<T> {
7
- toValue: (value: T) => void;
8
- toProvider: (provider: Provider<T>) => void;
9
- }
10
- export declare class Application {
11
- private container?;
12
- private parent?;
13
- private presets;
14
- private providers;
15
- static readonly self: Token<never>;
16
- constructor();
17
- bind<T>(token: Token<T>): Binding<T>;
18
- get<T>(token: Token<T>): T;
19
- private getContainer;
20
- private configureContainer;
21
- attach(parent: Application): void;
22
- preset(preset: Preset): void;
23
- invoke<Tokens extends readonly Token<any>[]>(tokens: [...Tokens], fn: (...args: ExtractType<Tokens>) => void): void;
24
- }
25
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/container/application.ts"],"names":[],"mappings":";;;AAGA,wBAAoE;AAWpE,MAAa,WAAW;IAQtB;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAI,KAAe;QACrB,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,oBAAiB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACrD,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,kBAAe,GAAE,CAAC;QAEpC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAE5C,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,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;;AA3EH,kCA4EC;AAtEiB,gBAAI,GAAG,IAAA,cAAW,EAAC,kBAAkB,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- import type { Container, Token } from './types';
2
- /**
3
- * Возвращает новый токен.
4
- * @param name Имя токена для отладки в случае ошибок.
5
- * @return Токен.
6
- */
7
- export declare function createToken<T = never>(name?: string): Token<T>;
8
- export declare class NothingBoundError extends Error {
9
- constructor(key: symbol);
10
- }
11
- export declare class CircularDependencyError extends Error {
12
- constructor(trace: Token<any>[]);
13
- }
14
- /**
15
- * Возвращает новый DI-контейнер.
16
- * @return DI-контейнер.
17
- */
18
- export declare function createContainer(): Container;