@sima-land/isomorph 10.0.0 → 11.0.0-alpha.1
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/cache/types.d.ts +7 -0
- package/cache/types.js +3 -0
- package/cache/types.js.map +1 -0
- package/config/browser.d.ts +6 -0
- package/config/browser.js +13 -0
- package/config/browser.js.map +1 -0
- package/config/index.d.ts +7 -0
- package/config/index.js +20 -0
- package/config/index.js.map +1 -0
- package/config/node.d.ts +6 -0
- package/config/node.js +19 -0
- package/config/node.js.map +1 -0
- package/config/types.d.ts +7 -0
- package/config/types.js +3 -0
- package/config/types.js.map +1 -0
- package/config/utils.d.ts +5 -0
- package/config/utils.js +12 -0
- package/config/utils.js.map +1 -0
- package/container/application.d.ts +25 -0
- package/container/application.js +63 -0
- package/container/application.js.map +1 -0
- package/container/index.d.ts +16 -13
- package/container/index.js +60 -161
- package/container/index.js.map +1 -1
- package/container/types.d.ts +14 -0
- package/container/types.js +3 -0
- package/container/types.js.map +1 -0
- package/error-tracker/browser.d.ts +8 -0
- package/error-tracker/browser.js +40 -0
- package/error-tracker/browser.js.map +1 -0
- package/error-tracker/node.d.ts +8 -0
- package/error-tracker/node.js +40 -0
- package/error-tracker/node.js.map +1 -0
- package/error-tracker/types.d.ts +18 -0
- package/error-tracker/types.js +3 -0
- package/error-tracker/types.js.map +1 -0
- package/error-tracker/utils.d.ts +12 -0
- package/error-tracker/utils.js +19 -0
- package/error-tracker/utils.js.map +1 -0
- package/http-client/middleware/cookie.d.ts +19 -0
- package/http-client/middleware/cookie.js +62 -0
- package/http-client/middleware/cookie.js.map +1 -0
- package/http-client/middleware/tracing.d.ts +32 -0
- package/http-client/middleware/tracing.js +67 -0
- package/http-client/middleware/tracing.js.map +1 -0
- package/http-client/types.d.ts +6 -0
- package/http-client/types.js +3 -0
- package/http-client/types.js.map +1 -0
- package/http-client/utils.d.ts +36 -0
- package/http-client/utils.js +49 -0
- package/http-client/utils.js.map +1 -0
- package/http-server/constants.d.ts +4 -0
- package/http-server/constants.js +8 -0
- package/http-server/constants.js.map +1 -0
- package/http-server/handler/health-check.d.ts +6 -0
- package/http-server/handler/health-check.js +15 -0
- package/http-server/handler/health-check.js.map +1 -0
- package/http-server/middleware/logging.d.ts +10 -0
- package/http-server/middleware/logging.js +31 -0
- package/http-server/middleware/logging.js.map +1 -0
- package/http-server/middleware/metrics.d.ts +23 -0
- package/http-server/middleware/metrics.js +60 -0
- package/http-server/middleware/metrics.js.map +1 -0
- package/http-server/middleware/tracing.d.ts +8 -0
- package/http-server/middleware/tracing.js +32 -0
- package/http-server/middleware/tracing.js.map +1 -0
- package/http-server/template/index.d.ts +1 -0
- package/http-server/template/index.js +36 -0
- package/http-server/template/index.js.map +1 -0
- package/http-server/types.d.ts +33 -0
- package/http-server/types.js +3 -0
- package/http-server/types.js.map +1 -0
- package/http-server/utils.d.ts +30 -0
- package/http-server/utils.js +100 -0
- package/http-server/utils.js.map +1 -0
- package/logger/handler/console.d.ts +8 -0
- package/logger/handler/console.js +36 -0
- package/logger/handler/console.js.map +1 -0
- package/logger/handler/sentry.d.ts +8 -0
- package/logger/handler/sentry.js +36 -0
- package/logger/handler/sentry.js.map +1 -0
- package/logger/index.d.ts +6 -0
- package/logger/index.js +31 -0
- package/logger/index.js.map +1 -0
- package/logger/types.d.ts +24 -0
- package/logger/types.js +3 -0
- package/logger/types.js.map +1 -0
- package/metrics/constants.d.ts +4 -0
- package/metrics/constants.js +8 -0
- package/metrics/constants.js.map +1 -0
- package/metrics/node.d.ts +18 -0
- package/metrics/node.js +74 -0
- package/metrics/node.js.map +1 -0
- package/package.json +44 -63
- package/preset/index.d.ts +7 -0
- package/preset/index.js +25 -0
- package/preset/index.js.map +1 -0
- package/preset/node/index.d.ts +15 -0
- package/preset/node/index.js +90 -0
- package/preset/node/index.js.map +1 -0
- package/preset/node/response.d.ts +17 -0
- package/preset/node/response.js +78 -0
- package/preset/node/response.js.map +1 -0
- package/preset/types.d.ts +7 -0
- package/preset/types.js +3 -0
- package/preset/types.js.map +1 -0
- package/saga-runner/index.d.ts +8 -0
- package/saga-runner/index.js +79 -0
- package/saga-runner/index.js.map +1 -0
- package/saga-runner/types.d.ts +10 -0
- package/saga-runner/types.js +3 -0
- package/saga-runner/types.js.map +1 -0
- package/tokens.d.ts +41 -0
- package/tokens.js +44 -0
- package/tokens.js.map +1 -0
- package/tracer/node.d.ts +10 -0
- package/tracer/node.js +38 -0
- package/tracer/node.js.map +1 -0
- package/tracer/types.d.ts +2 -0
- package/tracer/types.js +3 -0
- package/tracer/types.js.map +1 -0
- package/{browser → utils/browser}/analytics/data-layer.d.ts +0 -0
- package/{browser → utils/browser}/analytics/data-layer.js +1 -2
- package/utils/browser/analytics/data-layer.js.map +1 -0
- package/{browser → utils/browser}/analytics/oko.d.ts +0 -0
- package/{browser → utils/browser}/analytics/oko.js +6 -7
- package/utils/browser/analytics/oko.js.map +1 -0
- package/utils/browser/storage/index.d.ts +4 -0
- package/utils/browser/storage/index.js +63 -0
- package/utils/browser/storage/index.js.map +1 -0
- package/utils/number.d.ts +6 -0
- package/utils/number.js +13 -0
- package/utils/number.js.map +1 -0
- package/utils/react/error-handlers/index.d.ts +38 -0
- package/utils/react/error-handlers/index.js +47 -0
- package/utils/react/error-handlers/index.js.map +1 -0
- package/utils/redux/remote-data.d.ts +23 -0
- package/utils/redux/remote-data.js +28 -0
- package/utils/redux/remote-data.js.map +1 -0
- package/utils/redux-saga/take-chain.d.ts +24 -0
- package/utils/redux-saga/take-chain.js +56 -0
- package/utils/redux-saga/take-chain.js.map +1 -0
- package/utils/webpack/module-federation/index.d.ts +21 -0
- package/utils/webpack/module-federation/index.js +74 -0
- package/utils/webpack/module-federation/index.js.map +1 -0
- package/utils/webpack/module-federation/types.d.ts +26 -0
- package/utils/webpack/module-federation/types.js +3 -0
- package/utils/webpack/module-federation/types.js.map +1 -0
- package/utils/webpack/module-federation/utils.d.ts +15 -0
- package/utils/webpack/module-federation/utils.js +36 -0
- package/utils/webpack/module-federation/utils.js.map +1 -0
- package/browser/analytics/data-layer.js.map +0 -1
- package/browser/analytics/oko.js.map +0 -1
- 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/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/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/browser/analytics/data-layer.ts +0 -12
- package/src/browser/analytics/oko.ts +0 -42
- 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/middlewares/trace-request-middleware.ts +0 -86
- 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,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createSentryLib = void 0;
|
|
27
|
+
const Sentry = __importStar(require("@sentry/node"));
|
|
28
|
+
/**
|
|
29
|
+
* Возвращает новый набор из клиента Sentry и функций из пакета Sentry.
|
|
30
|
+
* @param options Опции создания клиента.
|
|
31
|
+
* @return Новый набор из клиента Sentry и функций из пакета Sentry.
|
|
32
|
+
*/
|
|
33
|
+
function createSentryLib(options) {
|
|
34
|
+
return {
|
|
35
|
+
client: new Sentry.NodeClient(options),
|
|
36
|
+
withScope: Sentry.withScope,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.createSentryLib = createSentryLib;
|
|
40
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/error-tracker/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qDAAuC;AAEvC;;;;GAIG;AACH,SAAgB,eAAe,CAAC,OAA2B;IACzD,OAAO;QACL,MAAM,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AALD,0CAKC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Client, Severity, Context, Extra } from '@sentry/types';
|
|
2
|
+
import type { withScope as withScopeBrowser } from '@sentry/browser';
|
|
3
|
+
import type { withScope as withScopeNode } from '@sentry/node';
|
|
4
|
+
export interface SentryLib {
|
|
5
|
+
client: Client;
|
|
6
|
+
withScope: typeof withScopeBrowser | typeof withScopeNode;
|
|
7
|
+
}
|
|
8
|
+
export interface SentryErrorData {
|
|
9
|
+
level?: Severity;
|
|
10
|
+
context?: {
|
|
11
|
+
key: string;
|
|
12
|
+
data: Context | null;
|
|
13
|
+
};
|
|
14
|
+
extra?: {
|
|
15
|
+
key: string;
|
|
16
|
+
data: Extra | null;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/error-tracker/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SentryErrorData } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Ошибка с данными для Sentry.
|
|
4
|
+
*/
|
|
5
|
+
export declare class SentryError extends Error {
|
|
6
|
+
data: SentryErrorData;
|
|
7
|
+
/**
|
|
8
|
+
* @param message Сообщение.
|
|
9
|
+
* @param data Данные.
|
|
10
|
+
*/
|
|
11
|
+
constructor(message: string, data?: SentryErrorData);
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SentryError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Ошибка с данными для Sentry.
|
|
6
|
+
*/
|
|
7
|
+
class SentryError extends Error {
|
|
8
|
+
/**
|
|
9
|
+
* @param message Сообщение.
|
|
10
|
+
* @param data Данные.
|
|
11
|
+
*/
|
|
12
|
+
constructor(message, data = {}) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.data = data;
|
|
15
|
+
this.name = 'SentryError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.SentryError = SentryError;
|
|
19
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/error-tracker/utils.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAGpC;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAwB,EAAE;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAZD,kCAYC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { Middleware } from 'middleware-axios';
|
|
3
|
+
export interface CookieStore {
|
|
4
|
+
set: (seCookie: string[]) => void;
|
|
5
|
+
asHeader: () => string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Возвращает новый middleware для работы с cookie на сервере.
|
|
9
|
+
* @param request Входящий запрос.
|
|
10
|
+
* @param response Исходящий ответ.
|
|
11
|
+
* @return Middleware.
|
|
12
|
+
*/
|
|
13
|
+
export declare function collectCookieMiddleware(request: Request, response: Response): Middleware<any>;
|
|
14
|
+
/**
|
|
15
|
+
* Возвращает новое хранилище cookie.
|
|
16
|
+
* @param initialCookie Начальное значение cookie.
|
|
17
|
+
* @return Хранилище cookie.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createCookieStore(initialCookie?: string): CookieStore;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCookieStore = exports.collectCookieMiddleware = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает новый middleware для работы с cookie на сервере.
|
|
6
|
+
* @param request Входящий запрос.
|
|
7
|
+
* @param response Исходящий ответ.
|
|
8
|
+
* @return Middleware.
|
|
9
|
+
*/
|
|
10
|
+
function collectCookieMiddleware(request, response) {
|
|
11
|
+
const store = createCookieStore(request.get('cookie'));
|
|
12
|
+
return async function (config, next) {
|
|
13
|
+
const result = await next({
|
|
14
|
+
...config,
|
|
15
|
+
headers: {
|
|
16
|
+
...config.headers,
|
|
17
|
+
Cookie: store.asHeader(),
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
if (result.headers['set-cookie']) {
|
|
21
|
+
store.set(result.headers['set-cookie']);
|
|
22
|
+
response.setHeader('cookie', store.asHeader());
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.collectCookieMiddleware = collectCookieMiddleware;
|
|
27
|
+
/**
|
|
28
|
+
* Возвращает новое хранилище cookie.
|
|
29
|
+
* @param initialCookie Начальное значение cookie.
|
|
30
|
+
* @return Хранилище cookie.
|
|
31
|
+
*/
|
|
32
|
+
function createCookieStore(initialCookie) {
|
|
33
|
+
const data = {};
|
|
34
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
35
|
+
function setItem(cookieItem) {
|
|
36
|
+
const [cookieName, cookieValue] = cookieItem.split('=').map(item => item.trim());
|
|
37
|
+
if (cookieName && cookieValue) {
|
|
38
|
+
data[cookieName] = { name: cookieName, value: cookieValue };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (initialCookie && initialCookie.length) {
|
|
42
|
+
for (const item of initialCookie.split(';')) {
|
|
43
|
+
setItem(item);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
47
|
+
function set(setCookieHeaderValues) {
|
|
48
|
+
for (const item of setCookieHeaderValues) {
|
|
49
|
+
const [cookie] = item.split(';');
|
|
50
|
+
setItem(cookie);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
54
|
+
function asHeader() {
|
|
55
|
+
return Object.values(data)
|
|
56
|
+
.map(cookie => `${cookie.name}=${cookie.value}`)
|
|
57
|
+
.join(';');
|
|
58
|
+
}
|
|
59
|
+
return { set, asHeader };
|
|
60
|
+
}
|
|
61
|
+
exports.createCookieStore = createCookieStore;
|
|
62
|
+
//# sourceMappingURL=cookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/http-client/middleware/cookie.ts"],"names":[],"mappings":";;;AAQA;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,OAAgB,EAAE,QAAkB;IAC1E,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvD,OAAO,KAAK,WAAW,MAAM,EAAE,IAAI;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;YACxB,GAAG,MAAM;YACT,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,OAAO;gBACjB,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE;aACzB;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAChC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YACxC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAChD;IACH,CAAC,CAAC;AACJ,CAAC;AAjBD,0DAiBC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,aAAsB;IACtD,MAAM,IAAI,GAAoD,EAAE,CAAC;IAEjE,8DAA8D;IAC9D,SAAS,OAAO,CAAC,UAAkB;QACjC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjF,IAAI,UAAU,IAAI,WAAW,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;SAC7D;IACH,CAAC;IAED,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;QACzC,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;SACf;KACF;IAED,8DAA8D;IAC9D,SAAS,GAAG,CAAC,qBAA+B;QAC1C,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE;YACxC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,CAAC;SACjB;IACH,CAAC;IAED,8DAA8D;IAC9D,SAAS,QAAQ;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;aACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;aAC/C,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAlCD,8CAkCC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AxiosDefaults, AxiosRequestConfig } from 'axios';
|
|
2
|
+
import type { Middleware } from 'middleware-axios';
|
|
3
|
+
import { Context, Tracer } from '@opentelemetry/api';
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает новый middleware для трассировки исходящих запросов.
|
|
6
|
+
* @param tracer Трейсер.
|
|
7
|
+
* @param rootContext Контекст.
|
|
8
|
+
* @return Middleware.
|
|
9
|
+
*/
|
|
10
|
+
export declare function tracingMiddleware(tracer: Tracer, rootContext: Context): Middleware<any>;
|
|
11
|
+
/**
|
|
12
|
+
* Формирует базовые данные запроса.
|
|
13
|
+
* Заменяет первое найденное число в url на "{id}", возвращая его в результате.
|
|
14
|
+
* @param config Axios-конфиг запроса.
|
|
15
|
+
* @param defaults Базовый конфиг экземпляра Axios.
|
|
16
|
+
* @return Базовые данные запроса.
|
|
17
|
+
*/
|
|
18
|
+
export declare const getRequestInfo: (config: AxiosRequestConfig, defaults: AxiosDefaults) => {
|
|
19
|
+
method: string;
|
|
20
|
+
url: string;
|
|
21
|
+
foundId?: number | undefined;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Преобразует строку вида:
|
|
25
|
+
* "/api/v2/something/123456/some-bff/123456"
|
|
26
|
+
* в строку вида:
|
|
27
|
+
* "/api/v2/something/{id}/some-bff/123456"
|
|
28
|
+
* и возвращает кортеж с этой строкой и вырезанным числом в случае если оно найдено.
|
|
29
|
+
* @param url Url.
|
|
30
|
+
* @return Кортеж со строкой и результатом поиска числа.
|
|
31
|
+
*/
|
|
32
|
+
export declare const hideFirstId: (url: string) => [string, number | undefined];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hideFirstId = exports.getRequestInfo = exports.tracingMiddleware = void 0;
|
|
4
|
+
const api_1 = require("@opentelemetry/api");
|
|
5
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает новый middleware для трассировки исходящих запросов.
|
|
8
|
+
* @param tracer Трейсер.
|
|
9
|
+
* @param rootContext Контекст.
|
|
10
|
+
* @return Middleware.
|
|
11
|
+
*/
|
|
12
|
+
function tracingMiddleware(tracer, rootContext) {
|
|
13
|
+
return async function (config, next, defaults) {
|
|
14
|
+
const { method, url, foundId } = (0, exports.getRequestInfo)(config, defaults);
|
|
15
|
+
const span = tracer.startSpan(`HTTP ${method} ${url}`, undefined, rootContext);
|
|
16
|
+
span.setAttributes({
|
|
17
|
+
[semantic_conventions_1.SemanticAttributes.HTTP_URL]: url,
|
|
18
|
+
[semantic_conventions_1.SemanticAttributes.HTTP_METHOD]: method,
|
|
19
|
+
// если нашли id - добавляем в теги
|
|
20
|
+
...(foundId && { 'request.id': foundId }),
|
|
21
|
+
});
|
|
22
|
+
try {
|
|
23
|
+
await next(config);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
span.setStatus({
|
|
27
|
+
code: api_1.SpanStatusCode.ERROR,
|
|
28
|
+
message: 'HTTP Request failed',
|
|
29
|
+
});
|
|
30
|
+
// не прячем ошибку
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
span.end();
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.tracingMiddleware = tracingMiddleware;
|
|
37
|
+
/**
|
|
38
|
+
* Формирует базовые данные запроса.
|
|
39
|
+
* Заменяет первое найденное число в url на "{id}", возвращая его в результате.
|
|
40
|
+
* @param config Axios-конфиг запроса.
|
|
41
|
+
* @param defaults Базовый конфиг экземпляра Axios.
|
|
42
|
+
* @return Базовые данные запроса.
|
|
43
|
+
*/
|
|
44
|
+
const getRequestInfo = (config, defaults) => {
|
|
45
|
+
const method = (config.method || 'GET').toUpperCase();
|
|
46
|
+
const baseURL = config.baseURL || defaults.baseURL || '';
|
|
47
|
+
// ВАЖНО: абстрагируем id только в url игнорируя baseURL
|
|
48
|
+
const [url, foundId] = (0, exports.hideFirstId)(config.url || defaults.url || '');
|
|
49
|
+
const readyUrl = `${baseURL}${url}`;
|
|
50
|
+
return { method, url: readyUrl, foundId };
|
|
51
|
+
};
|
|
52
|
+
exports.getRequestInfo = getRequestInfo;
|
|
53
|
+
/**
|
|
54
|
+
* Преобразует строку вида:
|
|
55
|
+
* "/api/v2/something/123456/some-bff/123456"
|
|
56
|
+
* в строку вида:
|
|
57
|
+
* "/api/v2/something/{id}/some-bff/123456"
|
|
58
|
+
* и возвращает кортеж с этой строкой и вырезанным числом в случае если оно найдено.
|
|
59
|
+
* @param url Url.
|
|
60
|
+
* @return Кортеж со строкой и результатом поиска числа.
|
|
61
|
+
*/
|
|
62
|
+
const hideFirstId = (url) => {
|
|
63
|
+
const found = /\d{2,}/.exec(url);
|
|
64
|
+
return found ? [url.replace(found[0], '{id}'), Number(found[0])] : [url, undefined];
|
|
65
|
+
};
|
|
66
|
+
exports.hideFirstId = hideFirstId;
|
|
67
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/http-client/middleware/tracing.ts"],"names":[],"mappings":";;;AAEA,4CAAqE;AACrE,8EAAyE;AAEzE;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAc,EAAE,WAAoB;IACpE,OAAO,KAAK,WAAW,MAAM,EAAE,IAAI,EAAE,QAAQ;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAA,sBAAc,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,MAAM,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAE/E,IAAI,CAAC,aAAa,CAAC;YACjB,CAAC,yCAAkB,CAAC,QAAQ,CAAC,EAAE,GAAG;YAClC,CAAC,yCAAkB,CAAC,WAAW,CAAC,EAAE,MAAM;YAExC,mCAAmC;YACnC,GAAG,CAAC,OAAO,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;SAC1C,CAAC,CAAC;QAEH,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;SACpB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,oBAAc,CAAC,KAAK;gBAC1B,OAAO,EAAE,qBAAqB;aAC/B,CAAC,CAAC;YAEH,mBAAmB;YACnB,MAAM,KAAK,CAAC;SACb;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AA3BD,8CA2BC;AAED;;;;;;GAMG;AACI,MAAM,cAAc,GAAG,CAC5B,MAA0B,EAC1B,QAAuB,EAKvB,EAAE;IACF,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAEzD,wDAAwD;IACxD,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;IAEpC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB;AAEF;;;;;;;;GAQG;AACI,MAAM,WAAW,GAAG,CAAC,GAAW,EAAgC,EAAE;IACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACtF,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http-client/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Request } from 'express';
|
|
2
|
+
import type { BaseConfig } from '../config/types';
|
|
3
|
+
import type { AxiosInstance } from 'axios';
|
|
4
|
+
import type { AxiosInstanceWrapper, MethodName } from 'middleware-axios';
|
|
5
|
+
export declare type SauceResponse<T = any> = {
|
|
6
|
+
ok: true;
|
|
7
|
+
data: T;
|
|
8
|
+
} | {
|
|
9
|
+
ok: false;
|
|
10
|
+
error: any;
|
|
11
|
+
};
|
|
12
|
+
export interface SauceMethod<K extends MethodName> {
|
|
13
|
+
<T>(...args: Parameters<AxiosInstanceWrapper[K]>): Promise<SauceResponse<T>>;
|
|
14
|
+
}
|
|
15
|
+
export interface Sauce {
|
|
16
|
+
readonly get: SauceMethod<'get'>;
|
|
17
|
+
readonly delete: SauceMethod<'delete'>;
|
|
18
|
+
readonly head: SauceMethod<'head'>;
|
|
19
|
+
readonly options: SauceMethod<'options'>;
|
|
20
|
+
readonly post: SauceMethod<'post'>;
|
|
21
|
+
readonly put: SauceMethod<'put'>;
|
|
22
|
+
readonly patch: SauceMethod<'patch'>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Оборачивает экземпляр axios. Все методы обертки возвращают promise, который никогда не попадают в состояние rejected.
|
|
26
|
+
* @param instance Экземпляр axios или AxiosInstanceWrapper.
|
|
27
|
+
* @return Обертка.
|
|
28
|
+
*/
|
|
29
|
+
export declare function sauce(instance: AxiosInstance | AxiosInstanceWrapper): Sauce;
|
|
30
|
+
/**
|
|
31
|
+
* Формирует заголовки для исходящих запросов с сервера по соглашению.
|
|
32
|
+
* @param config Конфиг.
|
|
33
|
+
* @param request Входящий запрос.
|
|
34
|
+
* @return Заголовки для исходящих запросов.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getRequestHeaders(config: BaseConfig, request: Request): Record<string, string>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRequestHeaders = exports.sauce = void 0;
|
|
4
|
+
const utils_1 = require("../http-server/utils");
|
|
5
|
+
/**
|
|
6
|
+
* Оборачивает экземпляр axios. Все методы обертки возвращают promise, который никогда не попадают в состояние rejected.
|
|
7
|
+
* @param instance Экземпляр axios или AxiosInstanceWrapper.
|
|
8
|
+
* @return Обертка.
|
|
9
|
+
*/
|
|
10
|
+
function sauce(instance) {
|
|
11
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
12
|
+
function createMethod(methodName) {
|
|
13
|
+
return async function (...args) {
|
|
14
|
+
try {
|
|
15
|
+
const response = await instance[methodName](...args);
|
|
16
|
+
return { ok: true, data: response.data };
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
return { ok: false, error };
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
get: createMethod('get'),
|
|
25
|
+
delete: createMethod('delete'),
|
|
26
|
+
head: createMethod('head'),
|
|
27
|
+
options: createMethod('options'),
|
|
28
|
+
post: createMethod('post'),
|
|
29
|
+
put: createMethod('put'),
|
|
30
|
+
patch: createMethod('patch'),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
exports.sauce = sauce;
|
|
34
|
+
/**
|
|
35
|
+
* Формирует заголовки для исходящих запросов с сервера по соглашению.
|
|
36
|
+
* @param config Конфиг.
|
|
37
|
+
* @param request Входящий запрос.
|
|
38
|
+
* @return Заголовки для исходящих запросов.
|
|
39
|
+
*/
|
|
40
|
+
function getRequestHeaders(config, request) {
|
|
41
|
+
return {
|
|
42
|
+
'X-Client-Ip': (0, utils_1.getXClientIp)(request),
|
|
43
|
+
'User-Agent': `simaland-${config.appName}/${config.appVersion}`,
|
|
44
|
+
Cookie: request.get('cookie') || '',
|
|
45
|
+
...(0, utils_1.getServiceHeaders)(request),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
exports.getRequestHeaders = getRequestHeaders;
|
|
49
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/http-client/utils.ts"],"names":[],"mappings":";;;AAAA,gDAAuE;AA+BvE;;;;GAIG;AACH,SAAgB,KAAK,CAAC,QAA8C;IAClE,8DAA8D;IAC9D,SAAS,YAAY,CAAyB,UAAe;QAC3D,OAAO,KAAK,WACV,GAAG,IAAoC;YAEvC,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAI,IAAc,CAAC,CAAC;gBAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC1C;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC9B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;QAC1B,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;KAC7B,CAAC;AACJ,CAAC;AAxBD,sBAwBC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAkB,EAAE,OAAgB;IACpE,OAAO;QACL,aAAa,EAAE,IAAA,oBAAY,EAAC,OAAO,CAAC;QACpC,YAAY,EAAE,YAAY,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE;QAC/D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QACnC,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC;KAC9B,CAAC;AACJ,CAAC;AAPD,8CAOC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RESPONSE_EVENT = void 0;
|
|
4
|
+
exports.RESPONSE_EVENT = {
|
|
5
|
+
renderStart: Symbol('render:start'),
|
|
6
|
+
renderFinish: Symbol('render:finish'),
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/http-server/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC;CAC7B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.healthCheck = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Обработчик, отвечающий данными о времени работы приложения.
|
|
6
|
+
* @return Обработчик http-запроса.
|
|
7
|
+
*/
|
|
8
|
+
function healthCheck() {
|
|
9
|
+
const startTime = Date.now();
|
|
10
|
+
return (req, res) => {
|
|
11
|
+
res.json({ uptime: Date.now() - startTime });
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.healthCheck = healthCheck;
|
|
15
|
+
//# sourceMappingURL=health-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../../src/http-server/handler/health-check.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,WAAW;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAClB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAND,kCAMC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Handler } from 'express';
|
|
2
|
+
import type { BaseConfig } from '../../config/types';
|
|
3
|
+
import type { Logger } from '../../logger/types';
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает новый middleware для логирования запросов.
|
|
6
|
+
* @param config Конфиг.
|
|
7
|
+
* @param logger Logger.
|
|
8
|
+
* @return Middleware.
|
|
9
|
+
*/
|
|
10
|
+
export declare function loggingMiddleware(config: BaseConfig, logger: Logger): Handler;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loggingMiddleware = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const number_1 = require("../../utils/number");
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает новый middleware для логирования запросов.
|
|
8
|
+
* @param config Конфиг.
|
|
9
|
+
* @param logger Logger.
|
|
10
|
+
* @return Middleware.
|
|
11
|
+
*/
|
|
12
|
+
function loggingMiddleware(config, logger) {
|
|
13
|
+
return function (req, res, next) {
|
|
14
|
+
const start = process.hrtime.bigint();
|
|
15
|
+
res.once('finish', () => {
|
|
16
|
+
const finish = process.hrtime.bigint();
|
|
17
|
+
const message = {
|
|
18
|
+
version: config.appVersion,
|
|
19
|
+
route: req.originalUrl,
|
|
20
|
+
method: req.method,
|
|
21
|
+
status: res.statusCode,
|
|
22
|
+
remote_ip: (0, utils_1.getXClientIp)(req),
|
|
23
|
+
latency: (0, number_1.toMilliseconds)(finish - start),
|
|
24
|
+
};
|
|
25
|
+
logger.info(message);
|
|
26
|
+
});
|
|
27
|
+
next();
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.loggingMiddleware = loggingMiddleware;
|
|
31
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/http-server/middleware/logging.ts"],"names":[],"mappings":";;;AAGA,oCAAwC;AACxC,+CAAoD;AAEpD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAkB,EAAE,MAAc;IAClE,OAAO,UAAU,GAAG,EAAE,GAAG,EAAE,IAAI;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEvC,MAAM,OAAO,GAA2B;gBACtC,OAAO,EAAE,MAAM,CAAC,UAAU;gBAC1B,KAAK,EAAE,GAAG,CAAC,WAAW;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,GAAG,CAAC,UAAU;gBACtB,SAAS,EAAE,IAAA,oBAAY,EAAC,GAAG,CAAC;gBAC5B,OAAO,EAAE,IAAA,uBAAc,EAAC,MAAM,GAAG,KAAK,CAAC;aACxC,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AArBD,8CAqBC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Handler } from 'express';
|
|
2
|
+
import type { BaseConfig } from '../../config/types';
|
|
3
|
+
import * as PromClient from 'prom-client';
|
|
4
|
+
import { ConventionalLabels } from '../../metrics/constants';
|
|
5
|
+
/**
|
|
6
|
+
* Возвращает новый middleware для формирования метрик входящего запроса.
|
|
7
|
+
* @param config Конфиг.
|
|
8
|
+
* @param metrics Метрики - счетчик запросов и гистограмма длительности ответа.
|
|
9
|
+
* @return Middleware.
|
|
10
|
+
*/
|
|
11
|
+
export declare function responseMetricsMiddleware(config: BaseConfig, metrics: {
|
|
12
|
+
counter: PromClient.Counter<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
|
|
13
|
+
histogram: PromClient.Histogram<typeof ConventionalLabels.HTTP_RESPONSE[number]>;
|
|
14
|
+
}): Handler;
|
|
15
|
+
/**
|
|
16
|
+
* Возвращает новый middleware для формирования метрик рендеринга верстки.
|
|
17
|
+
* @param config Конфиг.
|
|
18
|
+
* @param metrics Метрики - гистограмма длительности рендеринга.
|
|
19
|
+
* @return Middleware.
|
|
20
|
+
*/
|
|
21
|
+
export declare function renderMetricsMiddleware(config: BaseConfig, metrics: {
|
|
22
|
+
histogram: PromClient.Histogram<typeof ConventionalLabels.SSR[number]>;
|
|
23
|
+
}): Handler;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderMetricsMiddleware = exports.responseMetricsMiddleware = void 0;
|
|
4
|
+
const number_1 = require("../../utils/number");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает новый middleware для формирования метрик входящего запроса.
|
|
8
|
+
* @param config Конфиг.
|
|
9
|
+
* @param metrics Метрики - счетчик запросов и гистограмма длительности ответа.
|
|
10
|
+
* @return Middleware.
|
|
11
|
+
*/
|
|
12
|
+
function responseMetricsMiddleware(config, metrics) {
|
|
13
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
14
|
+
function resolveLabels(req, res) {
|
|
15
|
+
return {
|
|
16
|
+
version: config.appVersion,
|
|
17
|
+
route: req.baseUrl + req.path,
|
|
18
|
+
code: res.statusCode,
|
|
19
|
+
method: req.method,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return (req, res, next) => {
|
|
23
|
+
const start = process.hrtime.bigint();
|
|
24
|
+
metrics.counter.inc(resolveLabels(req, res), 1);
|
|
25
|
+
res.once('finish', () => {
|
|
26
|
+
const finish = process.hrtime.bigint();
|
|
27
|
+
metrics.histogram.observe(resolveLabels(req, res), (0, number_1.toMilliseconds)(finish - start));
|
|
28
|
+
});
|
|
29
|
+
next();
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
exports.responseMetricsMiddleware = responseMetricsMiddleware;
|
|
33
|
+
/**
|
|
34
|
+
* Возвращает новый middleware для формирования метрик рендеринга верстки.
|
|
35
|
+
* @param config Конфиг.
|
|
36
|
+
* @param metrics Метрики - гистограмма длительности рендеринга.
|
|
37
|
+
* @return Middleware.
|
|
38
|
+
*/
|
|
39
|
+
function renderMetricsMiddleware(config, metrics) {
|
|
40
|
+
return (req, res, next) => {
|
|
41
|
+
let start;
|
|
42
|
+
res.once(constants_1.RESPONSE_EVENT.renderStart, () => {
|
|
43
|
+
start = process.hrtime.bigint();
|
|
44
|
+
});
|
|
45
|
+
res.once(constants_1.RESPONSE_EVENT.renderFinish, () => {
|
|
46
|
+
if (typeof start !== 'bigint') {
|
|
47
|
+
throw Error('Looks like "render start" event not emitted');
|
|
48
|
+
}
|
|
49
|
+
const finish = process.hrtime.bigint();
|
|
50
|
+
metrics.histogram.observe({
|
|
51
|
+
version: config.appVersion,
|
|
52
|
+
method: req.method,
|
|
53
|
+
route: req.baseUrl + req.path,
|
|
54
|
+
}, (0, number_1.toMilliseconds)(finish - start));
|
|
55
|
+
});
|
|
56
|
+
next();
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
exports.renderMetricsMiddleware = renderMetricsMiddleware;
|
|
60
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/http-server/middleware/metrics.ts"],"names":[],"mappings":";;;AAGA,+CAAoD;AACpD,4CAA8C;AAG9C;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,MAAkB,EAClB,OAGC;IAED,8DAA8D;IAC9D,SAAS,aAAa,CACpB,GAAY,EACZ,GAAa;QAEb,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;YAC7B,IAAI,EAAE,GAAG,CAAC,UAAU;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhD,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEvC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAA,uBAAc,EAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAjCD,8DAiCC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,MAAkB,EAClB,OAEC;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,IAAI,KAAyB,CAAC;QAE9B,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,EAAE,GAAG,EAAE;YACxC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,EAAE,GAAG,EAAE;YACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAC5D;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAEvC,OAAO,CAAC,SAAS,CAAC,OAAO,CACvB;gBACE,OAAO,EAAE,MAAM,CAAC,UAAU;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;aAC9B,EACD,IAAA,uBAAc,EAAC,MAAM,GAAG,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAhCD,0DAgCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Tracer } from '../../tracer/types';
|
|
2
|
+
import type { Handler } from 'express';
|
|
3
|
+
/**
|
|
4
|
+
* Возвращает новый middleware для трассировки стадий входящего запроса.
|
|
5
|
+
* @param tracer Tracer.
|
|
6
|
+
* @return Middleware.
|
|
7
|
+
*/
|
|
8
|
+
export declare function tracingMiddleware(tracer: Tracer): Handler;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tracingMiddleware = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const api_1 = require("@opentelemetry/api");
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает новый middleware для трассировки стадий входящего запроса.
|
|
8
|
+
* @param tracer Tracer.
|
|
9
|
+
* @return Middleware.
|
|
10
|
+
*/
|
|
11
|
+
function tracingMiddleware(tracer) {
|
|
12
|
+
return (req, res, next) => {
|
|
13
|
+
const rootContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, req.headers);
|
|
14
|
+
const rootSpan = tracer.startSpan('response', undefined, rootContext);
|
|
15
|
+
res.locals.tracing = {
|
|
16
|
+
rootSpan,
|
|
17
|
+
rootContext,
|
|
18
|
+
};
|
|
19
|
+
res.once(constants_1.RESPONSE_EVENT.renderStart, () => {
|
|
20
|
+
res.locals.tracing.renderSpan = tracer.startSpan('render', undefined, rootContext);
|
|
21
|
+
});
|
|
22
|
+
res.once(constants_1.RESPONSE_EVENT.renderFinish, () => {
|
|
23
|
+
res.locals.tracing.renderSpan.end();
|
|
24
|
+
});
|
|
25
|
+
res.once('finish', () => {
|
|
26
|
+
rootSpan.end();
|
|
27
|
+
});
|
|
28
|
+
next();
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
exports.tracingMiddleware = tracingMiddleware;
|
|
32
|
+
//# sourceMappingURL=tracing.js.map
|