@sima-land/isomorph 9.0.7 → 11.0.0-alpha.0
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.
- package/LICENSE +201 -0
- package/dist/cache/types.d.ts +7 -0
- package/dist/cache/types.js +3 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/config/browser.d.ts +6 -0
- package/dist/config/browser.js +13 -0
- package/dist/config/browser.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +20 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/node.d.ts +6 -0
- package/dist/config/node.js +19 -0
- package/dist/config/node.js.map +1 -0
- package/dist/config/types.d.ts +7 -0
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/utils.d.ts +5 -0
- package/dist/config/utils.js +12 -0
- package/dist/config/utils.js.map +1 -0
- package/dist/container/application.d.ts +25 -0
- package/dist/container/application.js +63 -0
- package/dist/container/application.js.map +1 -0
- package/dist/container/index.d.ts +18 -0
- package/dist/container/index.js +74 -0
- package/dist/container/index.js.map +1 -0
- package/dist/container/types.d.ts +14 -0
- package/dist/container/types.js +3 -0
- package/dist/container/types.js.map +1 -0
- package/dist/error-tracker/browser.d.ts +8 -0
- package/dist/error-tracker/browser.js +40 -0
- package/dist/error-tracker/browser.js.map +1 -0
- package/dist/error-tracker/node.d.ts +8 -0
- package/dist/error-tracker/node.js +40 -0
- package/dist/error-tracker/node.js.map +1 -0
- package/dist/error-tracker/types.d.ts +18 -0
- package/dist/error-tracker/types.js +3 -0
- package/dist/error-tracker/types.js.map +1 -0
- package/dist/error-tracker/utils.d.ts +12 -0
- package/dist/error-tracker/utils.js +19 -0
- package/dist/error-tracker/utils.js.map +1 -0
- package/dist/http-client/middleware/cookie.d.ts +19 -0
- package/dist/http-client/middleware/cookie.js +62 -0
- package/dist/http-client/middleware/cookie.js.map +1 -0
- package/dist/http-client/middleware/tracing.d.ts +32 -0
- package/dist/http-client/middleware/tracing.js +67 -0
- package/dist/http-client/middleware/tracing.js.map +1 -0
- package/dist/http-client/types.d.ts +6 -0
- package/dist/http-client/types.js +3 -0
- package/dist/http-client/types.js.map +1 -0
- package/dist/http-client/utils.d.ts +36 -0
- package/dist/http-client/utils.js +49 -0
- package/dist/http-client/utils.js.map +1 -0
- package/dist/http-server/constants.d.ts +4 -0
- package/dist/http-server/constants.js +8 -0
- package/dist/http-server/constants.js.map +1 -0
- package/dist/http-server/handler/health-check.d.ts +6 -0
- package/dist/http-server/handler/health-check.js +15 -0
- package/dist/http-server/handler/health-check.js.map +1 -0
- package/dist/http-server/middleware/logging.d.ts +10 -0
- package/dist/http-server/middleware/logging.js +31 -0
- package/dist/http-server/middleware/logging.js.map +1 -0
- package/dist/http-server/middleware/metrics.d.ts +23 -0
- package/dist/http-server/middleware/metrics.js +60 -0
- package/dist/http-server/middleware/metrics.js.map +1 -0
- package/dist/http-server/middleware/tracing.d.ts +8 -0
- package/dist/http-server/middleware/tracing.js +32 -0
- package/dist/http-server/middleware/tracing.js.map +1 -0
- package/dist/http-server/types.d.ts +25 -0
- package/dist/http-server/types.js +3 -0
- package/dist/http-server/types.js.map +1 -0
- package/dist/http-server/utils.d.ts +26 -0
- package/dist/http-server/utils.js +88 -0
- package/dist/http-server/utils.js.map +1 -0
- package/dist/logger/handler/console.d.ts +8 -0
- package/dist/logger/handler/console.js +36 -0
- package/dist/logger/handler/console.js.map +1 -0
- package/dist/logger/handler/sentry.d.ts +8 -0
- package/dist/logger/handler/sentry.js +36 -0
- package/dist/logger/handler/sentry.js.map +1 -0
- package/dist/logger/index.d.ts +6 -0
- package/dist/logger/index.js +31 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/types.d.ts +24 -0
- package/dist/logger/types.js +3 -0
- package/dist/logger/types.js.map +1 -0
- package/dist/metrics/constants.d.ts +4 -0
- package/dist/metrics/constants.js +8 -0
- package/dist/metrics/constants.js.map +1 -0
- package/dist/metrics/node.d.ts +18 -0
- package/dist/metrics/node.js +74 -0
- package/dist/metrics/node.js.map +1 -0
- package/dist/preset/index.d.ts +7 -0
- package/dist/preset/index.js +23 -0
- package/dist/preset/index.js.map +1 -0
- package/dist/preset/node/index.d.ts +15 -0
- package/dist/preset/node/index.js +90 -0
- package/dist/preset/node/index.js.map +1 -0
- package/dist/preset/node/response.d.ts +12 -0
- package/dist/preset/node/response.js +52 -0
- package/dist/preset/node/response.js.map +1 -0
- package/dist/preset/types.d.ts +7 -0
- package/dist/preset/types.js +3 -0
- package/dist/preset/types.js.map +1 -0
- package/dist/saga-runner/index.d.ts +8 -0
- package/dist/saga-runner/index.js +77 -0
- package/dist/saga-runner/index.js.map +1 -0
- package/dist/saga-runner/types.d.ts +10 -0
- package/dist/saga-runner/types.js +3 -0
- package/dist/saga-runner/types.js.map +1 -0
- package/dist/tokens.d.ts +40 -0
- package/dist/tokens.js +43 -0
- package/dist/tokens.js.map +1 -0
- package/dist/tracer/node.d.ts +10 -0
- package/dist/tracer/node.js +38 -0
- package/dist/tracer/node.js.map +1 -0
- package/dist/tracer/types.d.ts +2 -0
- package/dist/tracer/types.js +3 -0
- package/dist/tracer/types.js.map +1 -0
- package/dist/utils/browser/analytics/data-layer.d.ts +5 -0
- package/dist/utils/browser/analytics/data-layer.js +15 -0
- package/dist/utils/browser/analytics/data-layer.js.map +1 -0
- package/{helpers/analytics/index.d.ts → dist/utils/browser/analytics/oko.d.ts} +1 -6
- package/{helpers/analytics/index.js → dist/utils/browser/analytics/oko.js} +11 -20
- package/dist/utils/browser/analytics/oko.js.map +1 -0
- package/dist/utils/browser/storage/index.d.ts +4 -0
- package/dist/utils/browser/storage/index.js +63 -0
- package/dist/utils/browser/storage/index.js.map +1 -0
- package/dist/utils/number.d.ts +6 -0
- package/dist/utils/number.js +13 -0
- package/dist/utils/number.js.map +1 -0
- package/dist/utils/react/error-handlers/index.d.ts +38 -0
- package/dist/utils/react/error-handlers/index.js +47 -0
- package/dist/utils/react/error-handlers/index.js.map +1 -0
- package/dist/utils/redux/remote-data.d.ts +23 -0
- package/dist/utils/redux/remote-data.js +28 -0
- package/dist/utils/redux/remote-data.js.map +1 -0
- package/dist/utils/redux-saga/take-chain.d.ts +24 -0
- package/dist/utils/redux-saga/take-chain.js +56 -0
- package/dist/utils/redux-saga/take-chain.js.map +1 -0
- package/dist/utils/webpack/module-federation/index.d.ts +21 -0
- package/dist/utils/webpack/module-federation/index.js +74 -0
- package/dist/utils/webpack/module-federation/index.js.map +1 -0
- package/dist/utils/webpack/module-federation/types.d.ts +26 -0
- package/dist/utils/webpack/module-federation/types.js +3 -0
- package/dist/utils/webpack/module-federation/types.js.map +1 -0
- package/dist/utils/webpack/module-federation/utils.d.ts +15 -0
- package/dist/utils/webpack/module-federation/utils.js +36 -0
- package/dist/utils/webpack/module-federation/utils.js.map +1 -0
- package/package.json +50 -68
- package/readme.md +23 -0
- package/src/cache/types.ts +7 -0
- package/src/config/browser.ts +10 -0
- package/src/config/index.ts +18 -0
- package/src/config/node.ts +18 -0
- package/src/config/types.ts +9 -0
- package/src/config/utils.ts +7 -0
- package/src/container/application.ts +91 -0
- package/src/container/index.ts +79 -0
- package/src/container/types.ts +17 -0
- package/src/error-tracker/browser.ts +14 -0
- package/src/error-tracker/node.ts +14 -0
- package/src/error-tracker/types.ts +22 -0
- package/src/error-tracker/utils.ts +18 -0
- package/src/http-client/middleware/cookie.ts +73 -0
- package/src/{helpers/api/middlewares/trace-request-middleware.ts → http-client/middleware/tracing.ts} +28 -35
- package/src/http-client/types.ts +8 -0
- package/src/http-client/utils.ts +76 -0
- package/src/http-server/constants.ts +4 -0
- package/src/http-server/handler/health-check.ts +13 -0
- package/src/http-server/middleware/logging.ts +34 -0
- package/src/http-server/middleware/metrics.ts +87 -0
- package/src/http-server/middleware/tracing.ts +35 -0
- package/src/http-server/types.ts +29 -0
- package/src/http-server/utils.ts +105 -0
- package/src/logger/handler/console.ts +35 -0
- package/src/logger/handler/sentry.ts +38 -0
- package/src/logger/index.ts +31 -0
- package/src/logger/types.ts +28 -0
- package/src/metrics/constants.ts +4 -0
- package/src/metrics/node.ts +54 -0
- package/src/preset/index.ts +24 -0
- package/src/preset/node/index.ts +101 -0
- package/src/preset/node/response.ts +57 -0
- package/src/preset/types.ts +9 -0
- package/src/saga-runner/index.ts +59 -0
- package/src/saga-runner/types.ts +13 -0
- package/src/tokens.ts +54 -0
- package/src/tracer/node.ts +40 -0
- package/src/tracer/types.ts +3 -0
- package/src/utils/browser/analytics/__test__/data-layer.test.ts +50 -0
- package/src/utils/browser/analytics/__test__/oko.test.tsx +143 -0
- package/src/utils/browser/analytics/data-layer.ts +12 -0
- package/src/{helpers/analytics/index.ts → utils/browser/analytics/oko.ts} +10 -15
- package/src/utils/browser/storage/index.ts +75 -0
- package/src/utils/number.ts +8 -0
- package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
- package/src/utils/react/error-handlers/__test__/index.test.tsx +64 -0
- package/src/utils/react/error-handlers/index.tsx +62 -0
- package/src/utils/redux/__test__/remote-data.test.ts +50 -0
- package/src/utils/redux/remote-data.ts +34 -0
- package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
- package/src/utils/redux-saga/take-chain.ts +65 -0
- package/src/utils/webpack/module-federation/__test__/index.test.ts +246 -0
- package/src/utils/webpack/module-federation/index.ts +92 -0
- package/src/utils/webpack/module-federation/types.ts +44 -0
- package/src/utils/webpack/module-federation/utils.ts +43 -0
- package/cache/helpers.d.ts +0 -4
- package/cache/helpers.js +0 -39
- package/cache/helpers.js.map +0 -1
- package/cache/local-storage.d.ts +0 -34
- package/cache/local-storage.js +0 -90
- package/cache/local-storage.js.map +0 -1
- package/cache/redis.d.ts +0 -10
- package/cache/redis.js +0 -54
- package/cache/redis.js.map +0 -1
- package/cache/wrap-in-trace.d.ts +0 -8
- package/cache/wrap-in-trace.js +0 -68
- package/cache/wrap-in-trace.js.map +0 -1
- package/config/create.d.ts +0 -8
- package/config/create.js +0 -32
- package/config/create.js.map +0 -1
- package/config/helpers.d.ts +0 -11
- package/config/helpers.js +0 -71
- package/config/helpers.js.map +0 -1
- package/config/validate.d.ts +0 -18
- package/config/validate.js +0 -107
- package/config/validate.js.map +0 -1
- package/container/create-inject.d.ts +0 -7
- package/container/create-inject.js +0 -36
- package/container/create-inject.js.map +0 -1
- package/container/get-dependencies.d.ts +0 -13
- package/container/get-dependencies.js +0 -54
- package/container/get-dependencies.js.map +0 -1
- package/container/index.d.ts +0 -15
- package/container/index.js +0 -175
- package/container/index.js.map +0 -1
- package/container/is-container.d.ts +0 -7
- package/container/is-container.js +0 -17
- package/container/is-container.js.map +0 -1
- package/container/service-not-found-error.d.ts +0 -10
- package/container/service-not-found-error.js +0 -18
- package/container/service-not-found-error.js.map +0 -1
- package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
- package/create-proxy/create-proxy-middleware/index.js +0 -47
- package/create-proxy/create-proxy-middleware/index.js.map +0 -1
- package/create-proxy/index.d.ts +0 -12
- package/create-proxy/index.js +0 -25
- package/create-proxy/index.js.map +0 -1
- package/create-response-sender/index.d.ts +0 -8
- package/create-response-sender/index.js +0 -42
- package/create-response-sender/index.js.map +0 -1
- package/get-dynamic-data/index.d.ts +0 -8
- package/get-dynamic-data/index.js +0 -23
- package/get-dynamic-data/index.js.map +0 -1
- package/graceful-shutdown/index.d.ts +0 -26
- package/graceful-shutdown/index.js +0 -87
- package/graceful-shutdown/index.js.map +0 -1
- package/helpers/add-error-handling/index.d.ts +0 -1
- package/helpers/add-error-handling/index.js +0 -42
- package/helpers/add-error-handling/index.js.map +0 -1
- package/helpers/analytics/index.js.map +0 -1
- package/helpers/api/create-enhancer.d.ts +0 -12
- package/helpers/api/create-enhancer.js +0 -52
- package/helpers/api/create-enhancer.js.map +0 -1
- package/helpers/api/create-instance.d.ts +0 -11
- package/helpers/api/create-instance.js +0 -39
- package/helpers/api/create-instance.js.map +0 -1
- package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
- package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
- package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
- package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
- package/helpers/api/middlewares/count-api-response-time.js +0 -39
- package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
- package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
- package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
- package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
- package/helpers/api/middlewares/helpers.d.ts +0 -11
- package/helpers/api/middlewares/helpers.js +0 -27
- package/helpers/api/middlewares/helpers.js.map +0 -1
- package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
- package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
- package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
- package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
- package/helpers/api/middlewares/prepare-request-headers.js +0 -20
- package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
- package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
- package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
- package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
- package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
- package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
- package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
- package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
- package/helpers/api/middlewares/trace-request-middleware.js +0 -69
- package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
- package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
- package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
- package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
- package/helpers/api/server-adapter/constants.d.ts +0 -5
- package/helpers/api/server-adapter/constants.js +0 -16
- package/helpers/api/server-adapter/constants.js.map +0 -1
- package/helpers/api/server-adapter/helpers.d.ts +0 -26
- package/helpers/api/server-adapter/helpers.js +0 -208
- package/helpers/api/server-adapter/helpers.js.map +0 -1
- package/helpers/api/server-adapter/index.d.ts +0 -10
- package/helpers/api/server-adapter/index.js +0 -118
- package/helpers/api/server-adapter/index.js.map +0 -1
- package/helpers/development/use-dot-env.d.ts +0 -6
- package/helpers/development/use-dot-env.js +0 -11
- package/helpers/development/use-dot-env.js.map +0 -1
- package/helpers/get-params/index.d.ts +0 -4
- package/helpers/get-params/index.js +0 -51
- package/helpers/get-params/index.js.map +0 -1
- package/helpers/http/request-getters.d.ts +0 -5
- package/helpers/http/request-getters.js +0 -49
- package/helpers/http/request-getters.js.map +0 -1
- package/helpers/http/statuses-validator.d.ts +0 -3
- package/helpers/http/statuses-validator.js +0 -25
- package/helpers/http/statuses-validator.js.map +0 -1
- package/helpers/logger/create-pino-instance/index.d.ts +0 -6
- package/helpers/logger/create-pino-instance/index.js +0 -39
- package/helpers/logger/create-pino-instance/index.js.map +0 -1
- package/helpers/logger/format-time/index.d.ts +0 -6
- package/helpers/logger/format-time/index.js +0 -9
- package/helpers/logger/format-time/index.js.map +0 -1
- package/helpers/metrics/index.d.ts +0 -23
- package/helpers/metrics/index.js +0 -42
- package/helpers/metrics/index.js.map +0 -1
- package/helpers/prometheus/index.d.ts +0 -4
- package/helpers/prometheus/index.js +0 -13
- package/helpers/prometheus/index.js.map +0 -1
- package/helpers/prometheus/measure-middleware.d.ts +0 -5
- package/helpers/prometheus/measure-middleware.js +0 -69
- package/helpers/prometheus/measure-middleware.js.map +0 -1
- package/helpers/prometheus/metric-adapter.d.ts +0 -36
- package/helpers/prometheus/metric-adapter.js +0 -98
- package/helpers/prometheus/metric-adapter.js.map +0 -1
- package/helpers/react/error-handlers/index.d.ts +0 -40
- package/helpers/react/error-handlers/index.js +0 -52
- package/helpers/react/error-handlers/index.js.map +0 -1
- package/helpers/redux/constants.d.ts +0 -5
- package/helpers/redux/constants.js +0 -14
- package/helpers/redux/constants.js.map +0 -1
- package/helpers/redux/create-compose-middleware.d.ts +0 -15
- package/helpers/redux/create-compose-middleware.js +0 -23
- package/helpers/redux/create-compose-middleware.js.map +0 -1
- package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
- package/helpers/redux/get-dev-compose-creator.js +0 -13
- package/helpers/redux/get-dev-compose-creator.js.map +0 -1
- package/helpers/redux/prepare-on-ready.d.ts +0 -9
- package/helpers/redux/prepare-on-ready.js +0 -16
- package/helpers/redux/prepare-on-ready.js.map +0 -1
- package/helpers/redux/remote-data.d.ts +0 -40
- package/helpers/redux/remote-data.js +0 -91
- package/helpers/redux/remote-data.js.map +0 -1
- package/helpers/redux/selector/statuses.d.ts +0 -23
- package/helpers/redux/selector/statuses.js +0 -34
- package/helpers/redux/selector/statuses.js.map +0 -1
- package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
- package/helpers/redux/wait-on-store-readiness.js +0 -29
- package/helpers/redux/wait-on-store-readiness.js.map +0 -1
- package/helpers/render/get-react-markup-data.d.ts +0 -14
- package/helpers/render/get-react-markup-data.js +0 -20
- package/helpers/render/get-react-markup-data.js.map +0 -1
- package/helpers/render/index.d.ts +0 -21
- package/helpers/render/index.js +0 -72
- package/helpers/render/index.js.map +0 -1
- package/helpers/render/render-app.d.ts +0 -12
- package/helpers/render/render-app.js +0 -12
- package/helpers/render/render-app.js.map +0 -1
- package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
- package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
- package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
- package/helpers/saga/cache-result.d.ts +0 -46
- package/helpers/saga/cache-result.js +0 -71
- package/helpers/saga/cache-result.js.map +0 -1
- package/helpers/saga/create-store.d.ts +0 -20
- package/helpers/saga/create-store.js +0 -106
- package/helpers/saga/create-store.js.map +0 -1
- package/helpers/saga/do-safe-request.d.ts +0 -38
- package/helpers/saga/do-safe-request.js +0 -45
- package/helpers/saga/do-safe-request.js.map +0 -1
- package/helpers/saga/safe-request.d.ts +0 -7
- package/helpers/saga/safe-request.js +0 -15
- package/helpers/saga/safe-request.js.map +0 -1
- package/helpers/saga/take-chain.d.ts +0 -20
- package/helpers/saga/take-chain.js +0 -56
- package/helpers/saga/take-chain.js.map +0 -1
- package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
- package/helpers/tracer/create-child-tracing-middleware.js +0 -40
- package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
- package/helpers/tracer/index.d.ts +0 -24
- package/helpers/tracer/index.js +0 -144
- package/helpers/tracer/index.js.map +0 -1
- package/helpers/utils/check-feature-by-segment.d.ts +0 -2
- package/helpers/utils/check-feature-by-segment.js +0 -31
- package/helpers/utils/check-feature-by-segment.js.map +0 -1
- package/helpers/utils/format-object-keys.d.ts +0 -6
- package/helpers/utils/format-object-keys.js +0 -27
- package/helpers/utils/format-object-keys.js.map +0 -1
- package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
- package/helpers/utils/get-ms-from-hrt.js +0 -22
- package/helpers/utils/get-ms-from-hrt.js.map +0 -1
- package/helpers/utils/is-match-pattern-list.d.ts +0 -8
- package/helpers/utils/is-match-pattern-list.js +0 -16
- package/helpers/utils/is-match-pattern-list.js.map +0 -1
- package/helpers/utils/is-not-empty-array.d.ts +0 -2
- package/helpers/utils/is-not-empty-array.js +0 -12
- package/helpers/utils/is-not-empty-array.js.map +0 -1
- package/helpers/utils/is-not-empty-string.d.ts +0 -2
- package/helpers/utils/is-not-empty-string.js +0 -15
- package/helpers/utils/is-not-empty-string.js.map +0 -1
- package/helpers/utils/is-numeric.d.ts +0 -7
- package/helpers/utils/is-numeric.js +0 -16
- package/helpers/utils/is-numeric.js.map +0 -1
- package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
- package/helpers/utils/wrap-in-measure-event.js +0 -50
- package/helpers/utils/wrap-in-measure-event.js.map +0 -1
- package/logger/create-logger-middleware/index.d.ts +0 -14
- package/logger/create-logger-middleware/index.js +0 -41
- package/logger/create-logger-middleware/index.js.map +0 -1
- package/logger/create-sentry-instance/index.d.ts +0 -29
- package/logger/create-sentry-instance/index.js +0 -63
- package/logger/create-sentry-instance/index.js.map +0 -1
- package/logger/create-sentry-middleware/index.d.ts +0 -14
- package/logger/create-sentry-middleware/index.js +0 -19
- package/logger/create-sentry-middleware/index.js.map +0 -1
- package/logger/handler-creators/index.d.ts +0 -5
- package/logger/handler-creators/index.js +0 -41
- package/logger/handler-creators/index.js.map +0 -1
- package/logger/initialize-sentry-creator/index.d.ts +0 -17
- package/logger/initialize-sentry-creator/index.js +0 -35
- package/logger/initialize-sentry-creator/index.js.map +0 -1
- package/logger/sentry-logger/index.d.ts +0 -9
- package/logger/sentry-logger/index.js +0 -36
- package/logger/sentry-logger/index.js.map +0 -1
- package/module-federation/__example__/webpack-config.example.d.ts +0 -366
- package/module-federation/__example__/webpack-config.example.js +0 -51
- package/module-federation/__example__/webpack-config.example.js.map +0 -1
- package/module-federation/enhanced-module-federation-plugin.d.ts +0 -46
- package/module-federation/enhanced-module-federation-plugin.js +0 -72
- package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
- package/module-federation/utils/index.d.ts +0 -8
- package/module-federation/utils/index.js +0 -28
- package/module-federation/utils/index.js.map +0 -1
- package/observe-middleware/index.d.ts +0 -9
- package/observe-middleware/index.js +0 -67
- package/observe-middleware/index.js.map +0 -1
- package/set-header-middleware/create.d.ts +0 -10
- package/set-header-middleware/create.js +0 -16
- package/set-header-middleware/create.js.map +0 -1
- package/src/cache/helpers.js +0 -32
- package/src/cache/local-storage.ts +0 -92
- package/src/cache/redis.js +0 -79
- package/src/cache/wrap-in-trace.js +0 -57
- package/src/config/create.js +0 -33
- package/src/config/helpers.js +0 -71
- package/src/config/validate.js +0 -114
- package/src/container/create-inject.js +0 -32
- package/src/container/get-dependencies.js +0 -46
- package/src/container/index.js +0 -188
- package/src/container/is-container.js +0 -14
- package/src/container/service-not-found-error.js +0 -14
- package/src/create-proxy/create-proxy-middleware/index.js +0 -47
- package/src/create-proxy/index.js +0 -27
- package/src/create-response-sender/index.js +0 -48
- package/src/get-dynamic-data/index.js +0 -26
- package/src/graceful-shutdown/index.js +0 -97
- package/src/helpers/add-error-handling/index.js +0 -24
- package/src/helpers/api/create-enhancer.js +0 -52
- package/src/helpers/api/create-instance.js +0 -42
- package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
- package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
- package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
- package/src/helpers/api/middlewares/helpers.js +0 -26
- package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
- package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
- package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
- package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
- package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
- package/src/helpers/api/server-adapter/constants.js +0 -12
- package/src/helpers/api/server-adapter/helpers.js +0 -244
- package/src/helpers/api/server-adapter/index.js +0 -155
- package/src/helpers/development/use-dot-env.js +0 -9
- package/src/helpers/get-params/index.js +0 -59
- package/src/helpers/http/request-getters.js +0 -42
- package/src/helpers/http/statuses-validator.js +0 -20
- package/src/helpers/logger/create-pino-instance/index.js +0 -41
- package/src/helpers/logger/format-time/index.js +0 -6
- package/src/helpers/metrics/index.js +0 -40
- package/src/helpers/prometheus/index.js +0 -9
- package/src/helpers/prometheus/measure-middleware.js +0 -73
- package/src/helpers/prometheus/metric-adapter.js +0 -99
- package/src/helpers/react/error-handlers/index.tsx +0 -68
- package/src/helpers/redux/constants.js +0 -10
- package/src/helpers/redux/create-compose-middleware.js +0 -24
- package/src/helpers/redux/get-dev-compose-creator.js +0 -9
- package/src/helpers/redux/prepare-on-ready.js +0 -16
- package/src/helpers/redux/remote-data.js +0 -124
- package/src/helpers/redux/selector/statuses.js +0 -30
- package/src/helpers/redux/wait-on-store-readiness.js +0 -40
- package/src/helpers/render/get-react-markup-data.js +0 -18
- package/src/helpers/render/index.js +0 -69
- package/src/helpers/render/render-app.js +0 -15
- package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
- package/src/helpers/saga/cache-result.js +0 -77
- package/src/helpers/saga/create-store.js +0 -102
- package/src/helpers/saga/do-safe-request.js +0 -47
- package/src/helpers/saga/safe-request.js +0 -11
- package/src/helpers/saga/take-chain.js +0 -53
- package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
- package/src/helpers/tracer/index.js +0 -171
- package/src/helpers/utils/check-feature-by-segment.js +0 -32
- package/src/helpers/utils/format-object-keys.js +0 -23
- package/src/helpers/utils/get-ms-from-hrt.js +0 -16
- package/src/helpers/utils/is-match-pattern-list.js +0 -13
- package/src/helpers/utils/is-not-empty-array.js +0 -8
- package/src/helpers/utils/is-not-empty-string.js +0 -11
- package/src/helpers/utils/is-numeric.ts +0 -12
- package/src/helpers/utils/wrap-in-measure-event.js +0 -35
- package/src/logger/create-logger-middleware/index.js +0 -46
- package/src/logger/create-sentry-instance/index.js +0 -74
- package/src/logger/create-sentry-middleware/index.js +0 -16
- package/src/logger/handler-creators/index.js +0 -38
- package/src/logger/initialize-sentry-creator/index.js +0 -43
- package/src/logger/sentry-logger/index.js +0 -33
- package/src/module-federation/__example__/webpack-config.example.js +0 -57
- package/src/module-federation/enhanced-module-federation-plugin.js +0 -92
- package/src/module-federation/utils/index.js +0 -32
- package/src/observe-middleware/index.js +0 -70
- package/src/set-header-middleware/create.js +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/http-server/middleware/tracing.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,4CAA+D;AAI/D;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,WAAW,GAAG,iBAAW,CAAC,OAAO,CAAC,kBAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAEtE,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG;YACnB,QAAQ;YACR,WAAW;SACZ,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,EAAE,GAAG,EAAE;YACxC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,EAAE,GAAG,EAAE;YACzC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,QAAQ,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAxBD,8CAwBC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Request, Response, NextFunction, Handler, ErrorRequestHandler } from 'express';
|
|
2
|
+
export interface ResponseContext {
|
|
3
|
+
req: Request;
|
|
4
|
+
res: Response;
|
|
5
|
+
next: NextFunction;
|
|
6
|
+
}
|
|
7
|
+
export interface PageAssets {
|
|
8
|
+
js: string;
|
|
9
|
+
css: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ConventionalJson {
|
|
12
|
+
markup: string;
|
|
13
|
+
bundle_js: string;
|
|
14
|
+
bundle_css: string;
|
|
15
|
+
critical_js?: string;
|
|
16
|
+
critical_css?: string;
|
|
17
|
+
meta?: any;
|
|
18
|
+
}
|
|
19
|
+
export interface DefaultMiddleware {
|
|
20
|
+
start: Handler[];
|
|
21
|
+
logging: Handler[];
|
|
22
|
+
tracing: Handler[];
|
|
23
|
+
metrics: Handler[];
|
|
24
|
+
finish: Array<Handler | ErrorRequestHandler>;
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http-server/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
/**
|
|
3
|
+
* Определяет IP входящего запроса.
|
|
4
|
+
* @param req Входящий запрос.
|
|
5
|
+
* @return IP.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getXClientIp(req: Request): string;
|
|
8
|
+
/**
|
|
9
|
+
* Определяет служебные заголовки по соглашению.
|
|
10
|
+
* @param req Входящий запрос.
|
|
11
|
+
* @return Служебные заголовки.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getServiceHeaders(req: Request): Record<string, string | undefined>;
|
|
14
|
+
export declare class PageResponse {
|
|
15
|
+
private type;
|
|
16
|
+
private html;
|
|
17
|
+
private assets;
|
|
18
|
+
static create(): PageResponse;
|
|
19
|
+
static defineFormat(req: Request): PageResponse['type'];
|
|
20
|
+
constructor();
|
|
21
|
+
markup(html: string): this;
|
|
22
|
+
script(url: string): this;
|
|
23
|
+
style(url: string): this;
|
|
24
|
+
format(type: PageResponse['type']): this;
|
|
25
|
+
send(res: Response): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PageResponse = exports.getServiceHeaders = exports.getXClientIp = void 0;
|
|
4
|
+
const net_1 = require("net");
|
|
5
|
+
/**
|
|
6
|
+
* Определяет IP входящего запроса.
|
|
7
|
+
* @param req Входящий запрос.
|
|
8
|
+
* @return IP.
|
|
9
|
+
*/
|
|
10
|
+
function getXClientIp(req) {
|
|
11
|
+
const headerValue = req.get('x-client-ip') || req.get('x-forwarded-for') || req.socket.remoteAddress || '';
|
|
12
|
+
return (0, net_1.isIP)(headerValue) ? headerValue : '';
|
|
13
|
+
}
|
|
14
|
+
exports.getXClientIp = getXClientIp;
|
|
15
|
+
/**
|
|
16
|
+
* Определяет служебные заголовки по соглашению.
|
|
17
|
+
* @param req Входящий запрос.
|
|
18
|
+
* @return Служебные заголовки.
|
|
19
|
+
*/
|
|
20
|
+
function getServiceHeaders(req) {
|
|
21
|
+
const result = {};
|
|
22
|
+
for (const [key] of Object.entries(req.headers)) {
|
|
23
|
+
if (key.toLowerCase().indexOf('simaland-') === 0) {
|
|
24
|
+
result[key] = req.header(key);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
exports.getServiceHeaders = getServiceHeaders;
|
|
30
|
+
/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
|
|
31
|
+
class PageResponse {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.type = 'html';
|
|
34
|
+
this.html = '';
|
|
35
|
+
this.assets = { js: '', css: '' };
|
|
36
|
+
}
|
|
37
|
+
static create() {
|
|
38
|
+
return new PageResponse();
|
|
39
|
+
}
|
|
40
|
+
static defineFormat(req) {
|
|
41
|
+
let result = 'html';
|
|
42
|
+
if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
|
|
43
|
+
result = 'json';
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
markup(html) {
|
|
48
|
+
this.html = html;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
script(url) {
|
|
52
|
+
this.assets.js = url;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
style(url) {
|
|
56
|
+
this.assets.css = url;
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
format(type) {
|
|
60
|
+
this.type = type;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
send(res) {
|
|
64
|
+
switch (this.type) {
|
|
65
|
+
case 'json': {
|
|
66
|
+
const result = {
|
|
67
|
+
markup: this.html,
|
|
68
|
+
bundle_js: this.assets.js,
|
|
69
|
+
bundle_css: this.assets.css,
|
|
70
|
+
};
|
|
71
|
+
res.json(result);
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
case 'html': {
|
|
75
|
+
res.setHeader('simaland-bundle-js', this.assets.js);
|
|
76
|
+
res.setHeader('simaland-bundle-css', this.assets.css);
|
|
77
|
+
// @todo dev-шаблон?
|
|
78
|
+
res.send(this.html);
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
default:
|
|
82
|
+
throw Error(`Unknown response format ${String(this.type)}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.PageResponse = PageResponse;
|
|
87
|
+
/* eslint-enable require-jsdoc, jsdoc/require-jsdoc */
|
|
88
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-server/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BaseConfig } from '../../config/types';
|
|
2
|
+
import { LoggerEventHandler } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Возвращает новый handler для logger'а для вывода событий в терминал.
|
|
5
|
+
* @param config Конфиг.
|
|
6
|
+
* @return Handler.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createConsoleHandler(config: BaseConfig): LoggerEventHandler;
|
|
@@ -0,0 +1,36 @@
|
|
|
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.createConsoleHandler = void 0;
|
|
7
|
+
const pino_1 = __importDefault(require("pino"));
|
|
8
|
+
const pino_pretty_1 = __importDefault(require("pino-pretty"));
|
|
9
|
+
/**
|
|
10
|
+
* Возвращает новый handler для logger'а для вывода событий в терминал.
|
|
11
|
+
* @param config Конфиг.
|
|
12
|
+
* @return Handler.
|
|
13
|
+
*/
|
|
14
|
+
function createConsoleHandler(config) {
|
|
15
|
+
const isProd = config.env === 'production';
|
|
16
|
+
const logger = (0, pino_1.default)(isProd
|
|
17
|
+
? {
|
|
18
|
+
formatters: {
|
|
19
|
+
// ВАЖНО: для Fluent необходимо наличие поля level: string
|
|
20
|
+
level: label => ({ level: label }),
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
: (0, pino_pretty_1.default)({ colorize: true }));
|
|
24
|
+
return function (event) {
|
|
25
|
+
switch (event.type) {
|
|
26
|
+
case 'info':
|
|
27
|
+
logger.info(event.data);
|
|
28
|
+
break;
|
|
29
|
+
case 'error':
|
|
30
|
+
logger.error(event.data);
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
exports.createConsoleHandler = createConsoleHandler;
|
|
36
|
+
//# sourceMappingURL=console.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logger/handler/console.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AACxB,8DAAqC;AAGrC;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAA,cAAI,EACjB,MAAM;QACJ,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,0DAA0D;gBAC1D,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aACnC;SACF;QACH,CAAC,CAAC,IAAA,qBAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACnC,CAAC;IAEF,OAAO,UAAU,KAAK;QACpB,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;SACT;IACH,CAAC,CAAC;AACJ,CAAC;AAxBD,oDAwBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SentryLib } from '../../error-tracker/types';
|
|
2
|
+
import type { LoggerEventHandler } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Возвращает новый handler для logger'а для отправки событий в Sentry.
|
|
5
|
+
* @param sentry Набор данных для работы с Sentry.
|
|
6
|
+
* @return Handler.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createSentryHandler(sentry: SentryLib): LoggerEventHandler;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSentryHandler = void 0;
|
|
4
|
+
const utils_1 = require("../../error-tracker/utils");
|
|
5
|
+
/**
|
|
6
|
+
* Возвращает новый handler для logger'а для отправки событий в Sentry.
|
|
7
|
+
* @param sentry Набор данных для работы с Sentry.
|
|
8
|
+
* @return Handler.
|
|
9
|
+
*/
|
|
10
|
+
function createSentryHandler(sentry) {
|
|
11
|
+
return event => {
|
|
12
|
+
if (event.type === 'error') {
|
|
13
|
+
const error = event.data;
|
|
14
|
+
if (error instanceof utils_1.SentryError) {
|
|
15
|
+
const { level, context, extra } = error.data;
|
|
16
|
+
sentry.withScope(scope => {
|
|
17
|
+
if (level) {
|
|
18
|
+
scope.setLevel(level);
|
|
19
|
+
}
|
|
20
|
+
if (context) {
|
|
21
|
+
scope.setContext(context.key, context.data);
|
|
22
|
+
}
|
|
23
|
+
if (extra) {
|
|
24
|
+
scope.setExtra(extra.key, extra.data);
|
|
25
|
+
}
|
|
26
|
+
sentry.client.captureException(error);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
sentry.client.captureException(error);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
exports.createSentryHandler = createSentryHandler;
|
|
36
|
+
//# sourceMappingURL=sentry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/logger/handler/sentry.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAExD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,MAAiB;IACnD,OAAO,KAAK,CAAC,EAAE;QACb,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAEzB,IAAI,KAAK,YAAY,mBAAW,EAAE;gBAChC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE7C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACvB,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACvB;oBAED,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;qBAC7C;oBAED,IAAI,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;qBACvC;oBAED,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACvC;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AA5BD,kDA4BC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLogger = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает новый logger - объект для журналирования событий подобно console.
|
|
6
|
+
* @return Logger.
|
|
7
|
+
*/
|
|
8
|
+
function createLogger() {
|
|
9
|
+
const handlers = [];
|
|
10
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
11
|
+
function createMethod(type) {
|
|
12
|
+
return function (data) {
|
|
13
|
+
const event = { type, data };
|
|
14
|
+
for (const handler of handlers) {
|
|
15
|
+
handler(event);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
log: createMethod('log'),
|
|
21
|
+
info: createMethod('info'),
|
|
22
|
+
warn: createMethod('warn'),
|
|
23
|
+
error: createMethod('error'),
|
|
24
|
+
debug: createMethod('debug'),
|
|
25
|
+
subscribe: handler => {
|
|
26
|
+
handlers.push(handler);
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.createLogger = createLogger;
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8DAA8D;IAC9D,SAAS,YAAY,CAAC,IAAqB;QACzC,OAAO,UAAU,IAAS;YACxB,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;QAE5B,SAAS,EAAE,OAAO,CAAC,EAAE;YACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAxBD,oCAwBC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare type LoggerEventType = 'error' | 'log' | 'info' | 'warn' | 'debug';
|
|
2
|
+
export interface LoggerEvent {
|
|
3
|
+
type: LoggerEventType;
|
|
4
|
+
data: unknown;
|
|
5
|
+
}
|
|
6
|
+
export interface LoggerEventHandler {
|
|
7
|
+
(event: LoggerEvent): void;
|
|
8
|
+
}
|
|
9
|
+
export interface Logger {
|
|
10
|
+
error(data: any): void;
|
|
11
|
+
log(data: any): void;
|
|
12
|
+
info(data: any): void;
|
|
13
|
+
warn(data: any): void;
|
|
14
|
+
debug(data: any): void;
|
|
15
|
+
subscribe(handler: LoggerEventHandler): void;
|
|
16
|
+
}
|
|
17
|
+
export interface ConventionalFluentInfo {
|
|
18
|
+
version: string;
|
|
19
|
+
latency: number;
|
|
20
|
+
method: string;
|
|
21
|
+
remote_ip: string;
|
|
22
|
+
route: string;
|
|
23
|
+
status: number;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/logger/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConventionalLabels = void 0;
|
|
4
|
+
exports.ConventionalLabels = {
|
|
5
|
+
HTTP_RESPONSE: ['version', 'route', 'code', 'method'],
|
|
6
|
+
SSR: ['version', 'route', 'method'],
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/metrics/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAChC,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;IACrD,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;CAC3B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Application } from 'express';
|
|
2
|
+
import * as PromClient from 'prom-client';
|
|
3
|
+
import { ConventionalLabels } from './constants';
|
|
4
|
+
export interface DefaultNodeMetrics {
|
|
5
|
+
requestCount: PromClient.Counter<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
|
|
6
|
+
responseDuration: PromClient.Histogram<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
|
|
7
|
+
renderDuration: PromClient.Histogram<typeof ConventionalLabels.SSR[number]>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Возвращает новое express-приложение, настроенное для выдачи информации о метриках.
|
|
11
|
+
* @return Приложение.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createMetricsHttpApp(): Application;
|
|
14
|
+
/**
|
|
15
|
+
* Возвращает набор готовых метрик по умолчанию для приложений.
|
|
16
|
+
* @return Набор метрик.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createDefaultMetrics(): DefaultNodeMetrics;
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.createDefaultMetrics = exports.createMetricsHttpApp = void 0;
|
|
30
|
+
const express_1 = __importDefault(require("express"));
|
|
31
|
+
const PromClient = __importStar(require("prom-client"));
|
|
32
|
+
const constants_1 = require("./constants");
|
|
33
|
+
/**
|
|
34
|
+
* Возвращает новое express-приложение, настроенное для выдачи информации о метриках.
|
|
35
|
+
* @return Приложение.
|
|
36
|
+
*/
|
|
37
|
+
function createMetricsHttpApp() {
|
|
38
|
+
const app = (0, express_1.default)();
|
|
39
|
+
PromClient.collectDefaultMetrics();
|
|
40
|
+
app.get('/', async function (req, res) {
|
|
41
|
+
const metrics = await PromClient.register.metrics();
|
|
42
|
+
res.setHeader('Content-Type', PromClient.register.contentType);
|
|
43
|
+
res.send(metrics);
|
|
44
|
+
});
|
|
45
|
+
return app;
|
|
46
|
+
}
|
|
47
|
+
exports.createMetricsHttpApp = createMetricsHttpApp;
|
|
48
|
+
/**
|
|
49
|
+
* Возвращает набор готовых метрик по умолчанию для приложений.
|
|
50
|
+
* @return Набор метрик.
|
|
51
|
+
*/
|
|
52
|
+
function createDefaultMetrics() {
|
|
53
|
+
return {
|
|
54
|
+
requestCount: new PromClient.Counter({
|
|
55
|
+
name: 'http_request_count',
|
|
56
|
+
help: 'Incoming HTTP request count',
|
|
57
|
+
labelNames: constants_1.ConventionalLabels.HTTP_RESPONSE,
|
|
58
|
+
}),
|
|
59
|
+
responseDuration: new PromClient.Histogram({
|
|
60
|
+
name: 'http_response_duration_ms',
|
|
61
|
+
help: 'Duration of incoming HTTP requests in ms',
|
|
62
|
+
labelNames: constants_1.ConventionalLabels.HTTP_RESPONSE,
|
|
63
|
+
buckets: [30, 100, 200, 500, 1000, 2500, 5000, 10000],
|
|
64
|
+
}),
|
|
65
|
+
renderDuration: new PromClient.Histogram({
|
|
66
|
+
name: 'render_duration_ms',
|
|
67
|
+
help: 'Duration of SSR ms',
|
|
68
|
+
labelNames: constants_1.ConventionalLabels.SSR,
|
|
69
|
+
buckets: [0.1, 15, 50, 100, 250, 500, 800, 1500],
|
|
70
|
+
}),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
exports.createDefaultMetrics = createDefaultMetrics;
|
|
74
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/metrics/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA+C;AAC/C,wDAA0C;AAC1C,2CAAiD;AAQjD;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG;QACnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEpD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAbD,oDAaC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,OAAO;QACL,YAAY,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,8BAAkB,CAAC,aAAa;SAC7C,CAAC;QACF,gBAAgB,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,0CAA0C;YAChD,UAAU,EAAE,8BAAkB,CAAC,aAAa;YAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;SACtD,CAAC;QACF,cAAc,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,8BAAkB,CAAC,GAAG;YAClC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;SACjD,CAAC;KACH,CAAC;AACJ,CAAC;AApBD,oDAoBC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Preset, PresetEntry } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Возвращает новый "preset" приложения - набор предустановленных компонентов которые можно переопределять.
|
|
4
|
+
* @param defaults Предустановленные зависимости.
|
|
5
|
+
* @return Preset.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createPreset(defaults: PresetEntry[]): Preset;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPreset = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает новый "preset" приложения - набор предустановленных компонентов которые можно переопределять.
|
|
6
|
+
* @param defaults Предустановленные зависимости.
|
|
7
|
+
* @return Preset.
|
|
8
|
+
*/
|
|
9
|
+
function createPreset(defaults) {
|
|
10
|
+
const registry = new Map(defaults);
|
|
11
|
+
return {
|
|
12
|
+
override: (token, provider) => {
|
|
13
|
+
registry.set(token, provider);
|
|
14
|
+
},
|
|
15
|
+
apply: (container) => {
|
|
16
|
+
for (const [token, provider] of registry) {
|
|
17
|
+
container.bind(token).toProvider(provider);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.createPreset = createPreset;
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/preset/index.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,SAAgB,YAAY,CAAC,QAAuB;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA4B,QAAQ,CAAC,CAAC;IAE9D,OAAO;QACL,QAAQ,EAAE,CAAI,KAAe,EAAE,QAAqB,EAAE,EAAE;YACtD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,EAAE,CAAC,SAAsB,EAAE,EAAE;YAChC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE;gBACxC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aAC5C;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAdD,oCAcC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Preset } from '../types';
|
|
2
|
+
import type { Provider } from '../../container/types';
|
|
3
|
+
import type { BaseConfig } from '../../config/types';
|
|
4
|
+
import type { Logger } from '../../logger/types';
|
|
5
|
+
import type { Tracer } from '@opentelemetry/api';
|
|
6
|
+
import type { DefaultMiddleware } from '../../http-server/types';
|
|
7
|
+
/**
|
|
8
|
+
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
9
|
+
* @return Preset.
|
|
10
|
+
*/
|
|
11
|
+
export declare function PresetNode(): Preset;
|
|
12
|
+
export declare const provideBaseConfig: Provider<BaseConfig>;
|
|
13
|
+
export declare const provideLogger: Provider<Logger>;
|
|
14
|
+
export declare const provideTracer: Provider<Tracer>;
|
|
15
|
+
export declare const provideDefaultMiddleware: Provider<DefaultMiddleware>;
|
|
@@ -0,0 +1,90 @@
|
|
|
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.provideDefaultMiddleware = exports.provideTracer = exports.provideLogger = exports.provideBaseConfig = exports.PresetNode = void 0;
|
|
7
|
+
const tokens_1 = require("../../tokens");
|
|
8
|
+
const __1 = require("..");
|
|
9
|
+
const node_1 = require("../../config/node");
|
|
10
|
+
const config_1 = require("../../config");
|
|
11
|
+
const logger_1 = require("../../logger");
|
|
12
|
+
const node_2 = require("../../tracer/node");
|
|
13
|
+
const console_1 = require("../../logger/handler/console");
|
|
14
|
+
const sentry_1 = require("../../logger/handler/sentry");
|
|
15
|
+
const node_3 = require("../../error-tracker/node");
|
|
16
|
+
const logging_1 = require("../../http-server/middleware/logging");
|
|
17
|
+
const tracing_1 = require("../../http-server/middleware/tracing");
|
|
18
|
+
const metrics_1 = require("../../http-server/middleware/metrics");
|
|
19
|
+
const node_4 = require("../../metrics/node");
|
|
20
|
+
const exporter_jaeger_1 = require("@opentelemetry/exporter-jaeger");
|
|
21
|
+
const middleware_axios_1 = require("middleware-axios");
|
|
22
|
+
const express_1 = __importDefault(require("express"));
|
|
23
|
+
const node_5 = require("@sentry/node");
|
|
24
|
+
/**
|
|
25
|
+
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
26
|
+
* @return Preset.
|
|
27
|
+
*/
|
|
28
|
+
function PresetNode() {
|
|
29
|
+
return (0, __1.createPreset)([
|
|
30
|
+
[tokens_1.KnownToken.Config.source, node_1.createConfigSource],
|
|
31
|
+
[tokens_1.KnownToken.Config.base, exports.provideBaseConfig],
|
|
32
|
+
[tokens_1.KnownToken.logger, exports.provideLogger],
|
|
33
|
+
[tokens_1.KnownToken.tracer, exports.provideTracer],
|
|
34
|
+
[tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
|
|
35
|
+
[tokens_1.KnownToken.Http.Server.factory, () => express_1.default],
|
|
36
|
+
[tokens_1.KnownToken.Http.Server.Defaults.middleware, exports.provideDefaultMiddleware],
|
|
37
|
+
[tokens_1.KnownToken.Metrics.httpApp, node_4.createMetricsHttpApp],
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
exports.PresetNode = PresetNode;
|
|
41
|
+
const provideBaseConfig = resolve => {
|
|
42
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
43
|
+
return (0, config_1.createBaseConfig)(source);
|
|
44
|
+
};
|
|
45
|
+
exports.provideBaseConfig = provideBaseConfig;
|
|
46
|
+
const provideLogger = resolve => {
|
|
47
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
48
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
49
|
+
const sentry = (0, node_3.createSentryLib)({
|
|
50
|
+
dsn: source.get('SENTRY_DSN'),
|
|
51
|
+
release: source.get('SENTRY_RELEASE'),
|
|
52
|
+
environment: source.get('SENTRY_ENVIRONMENT'),
|
|
53
|
+
});
|
|
54
|
+
const logger = (0, logger_1.createLogger)();
|
|
55
|
+
logger.subscribe((0, console_1.createConsoleHandler)(config));
|
|
56
|
+
logger.subscribe((0, sentry_1.createSentryHandler)(sentry));
|
|
57
|
+
return logger;
|
|
58
|
+
};
|
|
59
|
+
exports.provideLogger = provideLogger;
|
|
60
|
+
const provideTracer = resolve => {
|
|
61
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
62
|
+
const exporter = new exporter_jaeger_1.JaegerExporter({
|
|
63
|
+
endpoint: source.require('JAEGER_ENDPOINT'),
|
|
64
|
+
});
|
|
65
|
+
return (0, node_2.createTracer)(resolve(tokens_1.KnownToken.Config.base), exporter);
|
|
66
|
+
};
|
|
67
|
+
exports.provideTracer = provideTracer;
|
|
68
|
+
const provideDefaultMiddleware = resolve => {
|
|
69
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
70
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
71
|
+
const tracer = resolve(tokens_1.KnownToken.tracer);
|
|
72
|
+
const metrics = (0, node_4.createDefaultMetrics)();
|
|
73
|
+
return {
|
|
74
|
+
start: [node_5.Handlers.requestHandler()],
|
|
75
|
+
logging: [(0, logging_1.loggingMiddleware)(config, logger)],
|
|
76
|
+
tracing: [(0, tracing_1.tracingMiddleware)(tracer)],
|
|
77
|
+
metrics: [
|
|
78
|
+
(0, metrics_1.responseMetricsMiddleware)(config, {
|
|
79
|
+
counter: metrics.requestCount,
|
|
80
|
+
histogram: metrics.responseDuration,
|
|
81
|
+
}),
|
|
82
|
+
(0, metrics_1.renderMetricsMiddleware)(config, {
|
|
83
|
+
histogram: metrics.renderDuration,
|
|
84
|
+
}),
|
|
85
|
+
],
|
|
86
|
+
finish: [node_5.Handlers.errorHandler()],
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
exports.provideDefaultMiddleware = provideDefaultMiddleware;
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { Preset } from '../types';
|
|
3
|
+
import type { Provider } from '../../container/types';
|
|
4
|
+
import type { SagaRunner } from '../../saga-runner/types';
|
|
5
|
+
/**
|
|
6
|
+
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
7
|
+
* @return Preset.
|
|
8
|
+
*/
|
|
9
|
+
export declare function PresetResponse(): Preset;
|
|
10
|
+
export declare const provideSagaRunner: Provider<SagaRunner>;
|
|
11
|
+
export declare const provideRender: Provider<(el: JSX.Element) => string | Promise<string>>;
|
|
12
|
+
export declare const provideMain: Provider<() => void>;
|