@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
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { createObserveMiddleware } from '../../observe-middleware';
|
|
2
|
-
import isString from 'lodash/isString';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Возвращает функцию, создающую middleware для добавления в трэйсер длительности внутреннего процесса
|
|
6
|
-
* при обработке запроса.
|
|
7
|
-
* @param {Object} dependencies Опции.
|
|
8
|
-
* @param {string} dependencies.spanName Имя span'а.
|
|
9
|
-
* @param {Object} dependencies.tracer Экземпляр трэйсера.
|
|
10
|
-
* @param {Function} dependencies.startSubscriber Подписчик на событие начала рендеринга.
|
|
11
|
-
* @param {Function} dependencies.finishSubscriber Подписчик на событие конца рендеринга.
|
|
12
|
-
* @param {string} [dependencies.parentSpan='span'] Иимя родительского спана в response.locals.
|
|
13
|
-
* @return {Function} Middleware приложения Express.
|
|
14
|
-
*/
|
|
15
|
-
export const createChildTracingMiddleware = ({
|
|
16
|
-
spanName,
|
|
17
|
-
tracer,
|
|
18
|
-
startSubscriber,
|
|
19
|
-
finishSubscriber,
|
|
20
|
-
parentSpan = 'span',
|
|
21
|
-
}) => {
|
|
22
|
-
if (!isString(spanName)) {
|
|
23
|
-
throw new TypeError('"spanName" properties must be a string');
|
|
24
|
-
}
|
|
25
|
-
return createObserveMiddleware({
|
|
26
|
-
onStart: (timestamp, request, response) => {
|
|
27
|
-
response.locals[spanName] = tracer.startSpan(
|
|
28
|
-
spanName,
|
|
29
|
-
{
|
|
30
|
-
childOf: response.locals[parentSpan],
|
|
31
|
-
}
|
|
32
|
-
);
|
|
33
|
-
},
|
|
34
|
-
onFinish: (duration, request, response) => {
|
|
35
|
-
response.locals[spanName]
|
|
36
|
-
.setTag(`${spanName} duration`, `${duration} ms`)
|
|
37
|
-
.finish();
|
|
38
|
-
},
|
|
39
|
-
startSubscriber,
|
|
40
|
-
finishSubscriber,
|
|
41
|
-
});
|
|
42
|
-
};
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { initTracerFromEnv } from 'jaeger-client';
|
|
2
|
-
import { FORMAT_HTTP_HEADERS } from 'opentracing';
|
|
3
|
-
import { createObserveMiddleware } from '../../observe-middleware/';
|
|
4
|
-
import isFunction from 'lodash/isFunction';
|
|
5
|
-
import get from 'lodash/get';
|
|
6
|
-
import { createService } from '../../container';
|
|
7
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
8
|
-
import { getOriginalUrl } from '../http/request-getters';
|
|
9
|
-
import mapValues from 'lodash/fp/mapValues';
|
|
10
|
-
|
|
11
|
-
const mapValuesWithKey = mapValues.convert({ cap: false });
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Возвращает новый объект, в котором заменено значение свойств, имена которых содержат 'Password'.
|
|
15
|
-
*/
|
|
16
|
-
const filterSecrets = mapValuesWithKey((value, key) => key.includes('Password') ? '[Filtered]' : value);
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Запускает трассировку входящего http-запроса.
|
|
20
|
-
* @param {Object} tracer Экземпляр трейсера.
|
|
21
|
-
* @param {string} key Ключ.
|
|
22
|
-
* @param {Object} httpRequest Запрос.
|
|
23
|
-
* @param {Object} [payload] Дополнительная информация для добавления к спану.
|
|
24
|
-
* @return {Object} Спан.
|
|
25
|
-
*/
|
|
26
|
-
export const traceIncomingRequest = (tracer, key, httpRequest, payload) =>
|
|
27
|
-
tracer
|
|
28
|
-
.startSpan(
|
|
29
|
-
key,
|
|
30
|
-
{
|
|
31
|
-
childOf: tracer.extract(FORMAT_HTTP_HEADERS, httpRequest.headers),
|
|
32
|
-
}
|
|
33
|
-
)
|
|
34
|
-
.addTags(isPlainObject(payload) ? payload : {});
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Создаёт новый или возвращает существующий экземпляр jaeger-трейсера.
|
|
38
|
-
* @param {Object} dependencies Зависимости.
|
|
39
|
-
* @param {Object} dependencies.tracerConfig Основные параметры конфигурации трейсера.
|
|
40
|
-
* @param {string} dependencies.tracerConfig.serviceName Название сервиса.
|
|
41
|
-
* @param {number} dependencies.tracerConfig.version Версия сборки.
|
|
42
|
-
* @param {Object} [dependencies.additionalConfig={}] Дополнительные параметры конфигурации трейсера.
|
|
43
|
-
* @return {import('opentracing').Tracer} Объект трейсера.
|
|
44
|
-
*/
|
|
45
|
-
export const getTracer = ({
|
|
46
|
-
tracerConfig: {
|
|
47
|
-
version,
|
|
48
|
-
serviceName,
|
|
49
|
-
},
|
|
50
|
-
additionalConfig = {},
|
|
51
|
-
}) => initTracerFromEnv(
|
|
52
|
-
{
|
|
53
|
-
serviceName,
|
|
54
|
-
...additionalConfig,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
tags: {
|
|
58
|
-
[`${serviceName}.version`]: version,
|
|
59
|
-
},
|
|
60
|
-
}
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Возвращает функцию - промежуточный слой для маршрутов express-приложения.
|
|
65
|
-
* Сигнализирует о начале и конце запроса.
|
|
66
|
-
* @param {Function} createSpan Функция возвращающая новый объект span, вызываемая при старте запроса.
|
|
67
|
-
* @param {Function} onSpanFinish Функция получающая созданный span, вызываемая при ответе.
|
|
68
|
-
* @param {Object} [options] Необязательные опции.
|
|
69
|
-
* @param {string} [options.spanKey='span'] Ключ, под которым будет сохранен span в response.locals.
|
|
70
|
-
* @return {Function} Функция - промежуточный слой для маршрутов.
|
|
71
|
-
* @private
|
|
72
|
-
*/
|
|
73
|
-
export const _createTracingMiddleware = (
|
|
74
|
-
createSpan,
|
|
75
|
-
onSpanFinish,
|
|
76
|
-
{ spanKey = 'span' } = {}
|
|
77
|
-
) => {
|
|
78
|
-
const hasSpanCreator = isFunction(createSpan);
|
|
79
|
-
const hasFinishHandler = isFunction(onSpanFinish);
|
|
80
|
-
|
|
81
|
-
return createObserveMiddleware({
|
|
82
|
-
onStart: (startTime, request, response) => {
|
|
83
|
-
if (hasSpanCreator) {
|
|
84
|
-
response.locals[spanKey] = createSpan(request, response);
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
onFinish: (duration, request, response) => {
|
|
88
|
-
if (hasFinishHandler) {
|
|
89
|
-
onSpanFinish(request, response, response.locals[spanKey]);
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Получает контекст из объекта текущего ответа.
|
|
97
|
-
* @param {Object} response Объект с параметрами текущего ответа.
|
|
98
|
-
* @return {Object|null} Текущий контекст.
|
|
99
|
-
*/
|
|
100
|
-
export const getSpanContext = ({ response }) => {
|
|
101
|
-
let context;
|
|
102
|
-
if (isFunction(get(response, 'locals.span.context'))) {
|
|
103
|
-
context = response.locals.span.context();
|
|
104
|
-
}
|
|
105
|
-
return context || null;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Функция преобразования зависимостей сервиса в аргументы функции.
|
|
110
|
-
* @param {Object} dependencies Зависимости.
|
|
111
|
-
* @return {Array} Массив аргументов.
|
|
112
|
-
* @private
|
|
113
|
-
*/
|
|
114
|
-
export const _deptToArg = ({ createSpan, onSpanFinish, options }) => [createSpan, onSpanFinish, options];
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Возвращает сервис для создания промежуточного слоя трассировки.
|
|
118
|
-
* @return {Function} Сервис.
|
|
119
|
-
*/
|
|
120
|
-
export const tracingMiddlewareCreator = createService(
|
|
121
|
-
_createTracingMiddleware,
|
|
122
|
-
_deptToArg
|
|
123
|
-
);
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Сервис для создания span-ов трейсинга.
|
|
127
|
-
* @param {Object} dependencies Параметры сервиса.
|
|
128
|
-
* @param {Object} dependencies.jaegerTracer Трейсер.
|
|
129
|
-
* @param {Object} dependencies.config Конфигурация приложения.
|
|
130
|
-
* @return {Function} Функция для создания спана.
|
|
131
|
-
*/
|
|
132
|
-
export const createSpanCreator = ({ jaegerTracer, config }) => request => traceIncomingRequest(
|
|
133
|
-
jaegerTracer,
|
|
134
|
-
'incoming-http-request',
|
|
135
|
-
request,
|
|
136
|
-
_getRequestContext(request, config)
|
|
137
|
-
);
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Обработчик завершения трейса.
|
|
141
|
-
* @param {import('http').IncomingMessage} req Запрос.
|
|
142
|
-
* @param {import('http').ServerResponse} res Ответ.
|
|
143
|
-
* @param {import('opentracing').Span} span Спан.
|
|
144
|
-
*/
|
|
145
|
-
export const spanFinishHandler = (req, res, span) => {
|
|
146
|
-
span.finish();
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Возвращает контекст, в котором обрабатывается запрос к сервису, для добавления в span.
|
|
151
|
-
* @param {import('http').IncomingMessage} request Запрос.
|
|
152
|
-
* @param {Object} config Конфигурация приложения.
|
|
153
|
-
* @return {Object} Контекст.
|
|
154
|
-
* @private
|
|
155
|
-
*/
|
|
156
|
-
export const _getRequestContext = (request, config) => {
|
|
157
|
-
const context = {
|
|
158
|
-
'request.path': getOriginalUrl({ request }),
|
|
159
|
-
'app.config': isPlainObject(config) ? filterSecrets(config) : '',
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
if (isPlainObject(request.headers) && isFunction(request.get)) {
|
|
163
|
-
Object.keys(request.headers).forEach(key => {
|
|
164
|
-
if (key.toLowerCase().startsWith('simaland-')) {
|
|
165
|
-
context[`request.headers.${key}`] = request.get(key);
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
return context;
|
|
171
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import pipe from 'lodash/fp/pipe';
|
|
2
|
-
import isString from 'lodash/isString';
|
|
3
|
-
import split from 'lodash/fp/split';
|
|
4
|
-
import map from 'lodash/fp/map';
|
|
5
|
-
import compact from 'lodash/compact';
|
|
6
|
-
import get from 'lodash/get';
|
|
7
|
-
import trim from 'lodash/trim';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Конвертирует строку со списком сегментов в массив.
|
|
11
|
-
* @param {string} segments Строка со списком сегментов.
|
|
12
|
-
* @return {Array} Массив со списком сегментов.
|
|
13
|
-
*/
|
|
14
|
-
const convertSegmentsToArray = pipe(
|
|
15
|
-
value => isString(value) ? value : '',
|
|
16
|
-
split(','),
|
|
17
|
-
compact,
|
|
18
|
-
map(trim)
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Возвращает функцию, определяющую включена ли заданная фича.
|
|
23
|
-
* @param {string} feature Название фичи.
|
|
24
|
-
* @return {function(string, string[]): boolean} Функция.
|
|
25
|
-
*/
|
|
26
|
-
export const checkFeatureBySegment = feature => (userSegment, allFeatures) => {
|
|
27
|
-
const segments = convertSegmentsToArray(get(allFeatures, feature));
|
|
28
|
-
|
|
29
|
-
return segments.includes('ALL') || segments.includes(userSegment);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export default checkFeatureBySegment;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import isPlainObject from 'lodash/isPlainObject';
|
|
2
|
-
import camelCase from 'lodash/camelCase';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Переводит ключи объекта в camelCase.
|
|
6
|
-
* @param {Object} object Объект ключи которого нужно отформатировать.
|
|
7
|
-
* @return {Object} Отформатированный объект.
|
|
8
|
-
*/
|
|
9
|
-
export default function formatObjectKeys (object) {
|
|
10
|
-
if (!isPlainObject(object)) {
|
|
11
|
-
throw new TypeError('Параметр "object" должен быть чистым объектом');
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
return Object.entries(object).reduce((formattedObject, current) => {
|
|
15
|
-
const [key, value] = current;
|
|
16
|
-
const formattedKey = camelCase(key);
|
|
17
|
-
|
|
18
|
-
if (formattedKey) {
|
|
19
|
-
formattedObject[formattedKey] = value;
|
|
20
|
-
}
|
|
21
|
-
return formattedObject;
|
|
22
|
-
}, {});
|
|
23
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import isNumber from 'lodash/isNumber';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Возвращает количество миллисекунд по переданному результату вызова process.hrtime.
|
|
5
|
-
* @param {Array<number>} hrtime Результат вызова process.hrtime.
|
|
6
|
-
* @return {number} Количество миллисекунд.
|
|
7
|
-
*/
|
|
8
|
-
export const getMsFromHRT = hrtime => {
|
|
9
|
-
let result = NaN;
|
|
10
|
-
if (Array.isArray(hrtime) && hrtime.every(isNumber)) {
|
|
11
|
-
result = (hrtime[0] * 1000) + (hrtime[1] / 1e6);
|
|
12
|
-
}
|
|
13
|
-
return result;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default getMsFromHRT;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import isArray from 'lodash/isArray';
|
|
2
|
-
import isString from 'lodash/isString';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Проверяет, соответствует ли переданная строка одному из паттернов в переданном масиве.
|
|
6
|
-
* @param {string} str Строка для проверки.
|
|
7
|
-
* @param {string[]} patternList Массив строк.
|
|
8
|
-
* @return {boolean} Соответствует или нет.
|
|
9
|
-
*/
|
|
10
|
-
const isMatchPatternList = (str, patternList) =>
|
|
11
|
-
isString(str) && isArray(patternList) && patternList.some(pattern => RegExp(pattern).test(str));
|
|
12
|
-
|
|
13
|
-
export default isMatchPatternList;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Проверяет, является ли переданное значение НЕ пустым массивом.
|
|
3
|
-
* @param {*} data Проверяемое значение.
|
|
4
|
-
* @return {boolean} Переданное значение является НЕ пустым массивом?
|
|
5
|
-
*/
|
|
6
|
-
export const isNotEmptyArray = data => Array.isArray(data) && data.length > 0;
|
|
7
|
-
|
|
8
|
-
export default isNotEmptyArray;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Проверяет, является ли переданное значение НЕ пустой строкой (или строкой содержащей только пробельные символы).
|
|
3
|
-
* @param {*} value Проверяемое значение.
|
|
4
|
-
* @param {*} trim Обрезка пробельных символов.
|
|
5
|
-
* Если передано false - к строке не будет применена функция trim() перед проверкой на длину.
|
|
6
|
-
* @return {boolean} Переданное значение является НЕ пустой строкой?
|
|
7
|
-
*/
|
|
8
|
-
export const isNotEmptyString = (value, trim = true) => typeof value === 'string'
|
|
9
|
-
&& (trim ? value.trim().length > 0 : value.length > 0);
|
|
10
|
-
|
|
11
|
-
export default isNotEmptyString;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Проверяет, является ли переданное значение числовым (может иметь строковый или числовой тип).
|
|
3
|
-
* @param value Проверяемое значение.
|
|
4
|
-
* @return Переданное значение является числовым?
|
|
5
|
-
*/
|
|
6
|
-
export const isNumeric = (value: any): value is string | number => {
|
|
7
|
-
const validTypes = ['string', 'number', 'bigint'];
|
|
8
|
-
const hasValidType = validTypes.some(type => typeof value === type);
|
|
9
|
-
return hasValidType && !isNaN(parseFloat(value)) && isFinite(Number(value));
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export default isNumeric;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'events';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
import isString from 'lodash/isString';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Оборачивает выполнение какой-либо функции в отправку событий начала и конца выполнения.
|
|
7
|
-
* @param {Object} param Параметры.
|
|
8
|
-
* @param {Function} param.fn Функция, которую необходимо обернуть.
|
|
9
|
-
* @param {string} param.startEvent Название события начала измерения.
|
|
10
|
-
* @param {string} param.endEvent Название события конца измерения.
|
|
11
|
-
* @param {EventEmitter} param.emitter Объект на котором будут отправляться события.
|
|
12
|
-
* @return {Function} Функция обёрнутая в отправку событий.
|
|
13
|
-
*/
|
|
14
|
-
export const wrapInMeasureEvent = ({ fn, startEvent, endEvent, emitter }) => {
|
|
15
|
-
if (!isFunction(fn)) {
|
|
16
|
-
throw new TypeError('First argument property "fn" must be a function');
|
|
17
|
-
}
|
|
18
|
-
if (!isString(startEvent)) {
|
|
19
|
-
throw new TypeError('First argument property "startEvent" must be a string');
|
|
20
|
-
}
|
|
21
|
-
if (!isString(endEvent)) {
|
|
22
|
-
throw new TypeError('First argument property "endEvent" must be a string');
|
|
23
|
-
}
|
|
24
|
-
if (!(emitter instanceof EventEmitter)) {
|
|
25
|
-
throw new TypeError('First argument property "emitter" must be an instance of EventEmitter');
|
|
26
|
-
}
|
|
27
|
-
return async (...args) => {
|
|
28
|
-
emitter.emit(startEvent);
|
|
29
|
-
const result = await fn(...args);
|
|
30
|
-
emitter.emit(endEvent);
|
|
31
|
-
return result;
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export default wrapInMeasureEvent;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import isFunction from 'lodash/isFunction';
|
|
2
|
-
import isArray from 'lodash/isArray';
|
|
3
|
-
import { createObserveMiddleware } from '../../observe-middleware';
|
|
4
|
-
import { getOriginalUrl } from '../../helpers/http/request-getters';
|
|
5
|
-
import isMatchPatternList from '../../helpers/utils/is-match-pattern-list';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Конструктор для создания middleware для express-приложения.
|
|
9
|
-
* @param {Object} dependencies Зависимости.
|
|
10
|
-
* @param {Function} dependencies.pinoLogger Экземпляр логгера.
|
|
11
|
-
* @param {Function} dependencies.getDynamicData
|
|
12
|
-
* Функция, формирующая данные, которые нужно получить после завершения запроса.
|
|
13
|
-
* @param {string[]} dependencies.exclusions Массив шаблонов url для исключения из логирования.
|
|
14
|
-
* @return {Function} Middleware для express-приложения.
|
|
15
|
-
*/
|
|
16
|
-
export default function createLoggerMiddleware (dependencies = {}) {
|
|
17
|
-
const {
|
|
18
|
-
pinoLogger,
|
|
19
|
-
getDynamicData,
|
|
20
|
-
exclusions = [],
|
|
21
|
-
} = dependencies;
|
|
22
|
-
|
|
23
|
-
if (!pinoLogger) {
|
|
24
|
-
throw Error('First argument property "pinoLogger" is empty.');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (!isFunction(getDynamicData)) {
|
|
28
|
-
throw TypeError('"getDynamicData" must be Function.');
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (!isArray(exclusions)) {
|
|
32
|
-
throw TypeError('"exclusions" must be array.');
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return createObserveMiddleware({
|
|
36
|
-
onFinish: (timestamp, request, response) => {
|
|
37
|
-
const url = getOriginalUrl({ request });
|
|
38
|
-
if (!isMatchPatternList(url, exclusions)) {
|
|
39
|
-
pinoLogger.info({
|
|
40
|
-
...getDynamicData(request, response),
|
|
41
|
-
latency: timestamp,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { createService } from '../../container';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
import negate from 'lodash/negate';
|
|
4
|
-
|
|
5
|
-
const notFunc = negate(isFunction);
|
|
6
|
-
|
|
7
|
-
// Ключи перехватчиков, которые должен имплементировать экземпляр.
|
|
8
|
-
const CAPTURE_METHODS_KEYS = [
|
|
9
|
-
'captureException',
|
|
10
|
-
'captureMessage',
|
|
11
|
-
'addBreadcrumb',
|
|
12
|
-
'withScope',
|
|
13
|
-
'configureScope',
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @typedef {Object} SentryInstance Экземпляр Sentry.
|
|
18
|
-
* @property {Function} init Были ли запрос совершен успешно.
|
|
19
|
-
* @property {Function} captureException Функция отправки ошибки.
|
|
20
|
-
* @property {Function} captureMessage Функция отправки сообщения.
|
|
21
|
-
* @property {Function} addBreadcrumb Функция прикрепления последовательности действий.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Создает новый экземпляр Sentry.
|
|
26
|
-
* @param {Object} sentry Объект Sentry, имплементирующий методы для создания экземпляра.
|
|
27
|
-
* @param {Function} [sentry.BrowserClient] Конструктор экземпляра в sdk браузера.
|
|
28
|
-
* @param {Function} [sentry.NodeClient] Конструктор экземпляра в sdk Node.
|
|
29
|
-
* @param {Function} sentry.Hub Конструктор концентратора (связывает экземпляр с областью видимости).
|
|
30
|
-
* @return {SentryInstance} Экземпляр Sentry.
|
|
31
|
-
*/
|
|
32
|
-
export const createSentryInstance = ({ BrowserClient, NodeClient, Hub }) => {
|
|
33
|
-
const CurrentClient = BrowserClient || NodeClient;
|
|
34
|
-
|
|
35
|
-
if (notFunc(CurrentClient)) {
|
|
36
|
-
throw new TypeError('Параметр "BrowserClient"/"NodeClient" должен быть функцией');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (notFunc(Hub)) {
|
|
40
|
-
throw new TypeError('Параметр "Hub" должен быть функцией');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const hub = new Hub();
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Функция инициализации нового экземпляра Sentry.
|
|
47
|
-
* @param {Object} options Опции инициализации.
|
|
48
|
-
*/
|
|
49
|
-
const init = options => {
|
|
50
|
-
const client = new CurrentClient(options);
|
|
51
|
-
hub.bindClient(client);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
const captureMethods = Object.fromEntries(
|
|
55
|
-
CAPTURE_METHODS_KEYS.map(key => [key, (...args) => hub[key](...args)])
|
|
56
|
-
);
|
|
57
|
-
|
|
58
|
-
return {
|
|
59
|
-
init,
|
|
60
|
-
...captureMethods,
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Функция преобразования зависимостей сервиса в аргументы функции.
|
|
66
|
-
* @param {Object} dependencies Зависимости.
|
|
67
|
-
* @return {Array} Массив аргументов.
|
|
68
|
-
*/
|
|
69
|
-
export const deptToArg = ({ sentry }) => [sentry];
|
|
70
|
-
|
|
71
|
-
export default createService(
|
|
72
|
-
createSentryInstance,
|
|
73
|
-
deptToArg
|
|
74
|
-
);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Handlers } from '@sentry/node';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @typedef {Object} SentryMiddleware Объект middlewares Sentry.
|
|
5
|
-
* @property {Function} request Middleware, добавляющий данные запроса в scope Sentry.
|
|
6
|
-
* @property {Function} failure Middleware, обрабатывающий ошибки.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Конструктор для создания middleware для Sentry.
|
|
11
|
-
* @return {SentryMiddleware} Объект middleware для Sentry.
|
|
12
|
-
*/
|
|
13
|
-
export const createSentryMiddleware = () => ({
|
|
14
|
-
request: Handlers.requestHandler(),
|
|
15
|
-
failure: Handlers.errorHandler(),
|
|
16
|
-
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Возвращает обработчик ошибки, передающий ошибку Sentry.
|
|
3
|
-
* @param {Function} captureExtendedException Метод захвата ошибки Sentry.
|
|
4
|
-
* @return {Function} Обработчик ошибки.
|
|
5
|
-
*/
|
|
6
|
-
export const createSentryHandlerForSagas = ({ sentry: { captureExtendedException } }) =>
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Обработчик ошибки, передающий ошибку методу Sentry.
|
|
10
|
-
* @param {Error} error Объект ошибки.
|
|
11
|
-
* @param {string} sagaStack Стек вызовов саг.
|
|
12
|
-
*/
|
|
13
|
-
(error, { sagaStack }) => captureExtendedException(error, sagaStack, { dataName: 'Sagas stack' });
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Возвращает обработчик ошибки, передающий ошибку Sentry.
|
|
17
|
-
* @param {Function} captureException Метод захвата ошибки Sentry.
|
|
18
|
-
* @return {Function} Обработчик ошибки.
|
|
19
|
-
*/
|
|
20
|
-
export const createSentryHandlerForStore = ({ sentry: { captureException } }) =>
|
|
21
|
-
() => captureException(new Error('Ожидание готовности store было прервано по таймауту'));
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Возвращает функцию для базовой конфигурации области действия экземпляра Sentry.
|
|
25
|
-
* @param {Object} options Опции сервиса.
|
|
26
|
-
* @param {Object} options.config Конфигурация приложения.
|
|
27
|
-
* @return {Function} Функция, конфигурирующая область действия.
|
|
28
|
-
*/
|
|
29
|
-
export const createDefaultScopeConfigurator = ({ config }) => scope => {
|
|
30
|
-
/**
|
|
31
|
-
* Добавляем к области действия контекст с текущей конфигурацией приложения.
|
|
32
|
-
* Если передается большой объект (например, если не отфильтрованы ненужные переменные окружения
|
|
33
|
-
* при создании конфига), то лучше использовать метод `setExtra`, иначе Sentry обрежет часть данных в GUI,
|
|
34
|
-
* но они все еще будут доступны в "сырых" данных.
|
|
35
|
-
* @see https://docs.sentry.io/enriching-error-data/additional-data/?platform=javascript#debugging-additional-data
|
|
36
|
-
*/
|
|
37
|
-
scope.setContext('App config', config);
|
|
38
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import isFunction from 'lodash/isFunction';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Выполняет конфигурацию переданного сервиса Sentry.
|
|
5
|
-
* @param {Object} options Опции.
|
|
6
|
-
* @param {Object} options.sentryLoggerService Сервис Sentry.
|
|
7
|
-
* @param {Function} options.getSentryDsn Функция, возвращающая DSN Sentry.
|
|
8
|
-
* @param {Function} [options.getSentryOptions] Функция, возвращающая объект опций Sentry.
|
|
9
|
-
* @param {Function} [options.configureMainScope] Функция конфигурации основной области действия
|
|
10
|
-
* экземпляра/глобального экземпляра Sentry.
|
|
11
|
-
* @return {Function} Функция, возвращающая сконфигурированный сервис Sentry.
|
|
12
|
-
*/
|
|
13
|
-
const initializeSentryCreator = (
|
|
14
|
-
{
|
|
15
|
-
sentryLoggerService,
|
|
16
|
-
getSentryDsn,
|
|
17
|
-
getSentryOptions,
|
|
18
|
-
configureMainScope,
|
|
19
|
-
}
|
|
20
|
-
) => () => {
|
|
21
|
-
if (!isFunction(getSentryDsn)) {
|
|
22
|
-
throw new TypeError('"getSentryDsn" must be a function');
|
|
23
|
-
}
|
|
24
|
-
if (getSentryOptions && !isFunction(getSentryOptions)) {
|
|
25
|
-
throw new TypeError('"getSentryOptions" must be a function');
|
|
26
|
-
}
|
|
27
|
-
if (configureMainScope && !isFunction(configureMainScope)) {
|
|
28
|
-
throw new TypeError('"configureMainScope" must be a function');
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const sentryDSN = getSentryDsn() || '';
|
|
32
|
-
const sentryOptions = (getSentryOptions && getSentryOptions()) || {};
|
|
33
|
-
sentryLoggerService.init({
|
|
34
|
-
dsn: sentryDSN,
|
|
35
|
-
...sentryOptions,
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
if (isFunction(sentryLoggerService.configureScope) && isFunction(configureMainScope)) {
|
|
39
|
-
sentryLoggerService.configureScope(configureMainScope);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export default initializeSentryCreator;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Сервис для логирования ошибок в Sentry.
|
|
3
|
-
* @param {Object} [options] Опции.
|
|
4
|
-
* @param {Object} [options.sentryLoggerService] Сервис Sentry.
|
|
5
|
-
* @return {Object} Сервис.
|
|
6
|
-
*/
|
|
7
|
-
export default function sentryLogger ({ sentryLoggerService } = {}) {
|
|
8
|
-
return {
|
|
9
|
-
captureException: (...args) => sentryLoggerService.captureException(...args),
|
|
10
|
-
captureMessage: (...args) => sentryLoggerService.captureMessage(...args),
|
|
11
|
-
captureBreadcrumb: (...args) => sentryLoggerService.addBreadcrumb(...args),
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Метод перехвата ошибки с дополнительными данными об ошибке.
|
|
15
|
-
* @param {Error} error Ошибка.
|
|
16
|
-
* @param {*} extendedData Дополнительные данные.
|
|
17
|
-
* @param {Object} [options] Опции.
|
|
18
|
-
* @param {string} [options.dataName] = 'details' Наименование дополнительных данных.
|
|
19
|
-
* @param {boolean} [options.dataAsContext] = false Прикрепить ли дополнительные данные как контекст ошибки.
|
|
20
|
-
* @param {string} [options.level] Уровень логирования.
|
|
21
|
-
*/
|
|
22
|
-
captureExtendedException: (error, extendedData, options) => {
|
|
23
|
-
const { dataName = 'details', dataAsContext = false, level } = options || {};
|
|
24
|
-
sentryLoggerService.withScope(scope => {
|
|
25
|
-
dataAsContext
|
|
26
|
-
? scope.setContext(dataName, extendedData)
|
|
27
|
-
: scope.setExtra(dataName, extendedData);
|
|
28
|
-
level && scope.setLevel(level);
|
|
29
|
-
sentryLoggerService.captureException(error);
|
|
30
|
-
});
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
}
|