@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,124 +0,0 @@
|
|
|
1
|
-
import { createService } from '../../../container';
|
|
2
|
-
import pick from 'lodash/pick';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Отправляет крошки http запроса.
|
|
6
|
-
* @param {Function} sendBreadcrumb Функция отправки крошек.
|
|
7
|
-
* @param {Object} response Объект в формате ответа Axios, содержащий данные об ответе.
|
|
8
|
-
* @param {boolean} asRequest Обработать как событие запроса.
|
|
9
|
-
* @private
|
|
10
|
-
*/
|
|
11
|
-
export const _sendHttpBreadcrumb = (sendBreadcrumb, response, asRequest = false) => {
|
|
12
|
-
const statusCode = asRequest ? 'FETCHING' : response?.status || 'UNKNOWN';
|
|
13
|
-
const { url, baseURL, method, params } = response?.config || {};
|
|
14
|
-
|
|
15
|
-
const fullURL = baseURL ? `${baseURL.replace(/\/$/, '')}${url}` : url;
|
|
16
|
-
|
|
17
|
-
const breadcrumb = {
|
|
18
|
-
category: asRequest ? 'http.request' : 'http.response',
|
|
19
|
-
type: 'http',
|
|
20
|
-
data: {
|
|
21
|
-
url: fullURL,
|
|
22
|
-
status_code: statusCode,
|
|
23
|
-
method: method && method.toUpperCase(),
|
|
24
|
-
params,
|
|
25
|
-
},
|
|
26
|
-
level: asRequest || (statusCode >= 200 && statusCode < 300) ? 'info' : 'error',
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
sendBreadcrumb && sendBreadcrumb(breadcrumb);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Создаёт middleware, добавляющий хлебные крошки о запросе в API в сервис логирования ошибок.
|
|
34
|
-
* @param {Object} sentry Сервис логирования.
|
|
35
|
-
* @param {Function} sentry.captureBreadcrumb Функция сбора хлебных крошек.
|
|
36
|
-
* @return {function(Object, Function)} Middleware для добавления крошек.
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
const _createAttachBreadcrumbsMiddleware = ({ captureBreadcrumb }) =>
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Middleware добавления крошек в сервис логирования.
|
|
43
|
-
* @param {Object} requestConfig Конфигурация запроса API.
|
|
44
|
-
* @param {Function} next Функция для передачи контекста выполнения следующему middleware.
|
|
45
|
-
* @return {Promise} Промис.
|
|
46
|
-
*/
|
|
47
|
-
async (config, next, defaults) => {
|
|
48
|
-
try {
|
|
49
|
-
_sendHttpBreadcrumb(captureBreadcrumb, { config: { ...defaults, ...config } }, true);
|
|
50
|
-
|
|
51
|
-
const apiResponse = await next(config);
|
|
52
|
-
|
|
53
|
-
_sendHttpBreadcrumb(captureBreadcrumb, apiResponse);
|
|
54
|
-
} catch (error) {
|
|
55
|
-
error.isAxiosError && error.response && _sendHttpBreadcrumb(captureBreadcrumb, error.response);
|
|
56
|
-
|
|
57
|
-
throw error;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Создаёт middleware, отправляющий исключения при запросе в API в сервис логирования ошибок.
|
|
63
|
-
* @param {Object} sentry Сервис логирования.
|
|
64
|
-
* @param {Function} sentry.captureExtendedException Функция отправки исключения.
|
|
65
|
-
* @return {function(Object, Function)} Middleware для захвата исключения.
|
|
66
|
-
* @private
|
|
67
|
-
*/
|
|
68
|
-
const _createHandleExceptionMiddleware = ({ captureExtendedException }) =>
|
|
69
|
-
async (config, next, defaults) => {
|
|
70
|
-
try {
|
|
71
|
-
await next(config);
|
|
72
|
-
} catch (error) {
|
|
73
|
-
const { status } = error.response || {};
|
|
74
|
-
const { logLevelConfig } = config;
|
|
75
|
-
|
|
76
|
-
captureExtendedException && captureExtendedException(
|
|
77
|
-
error,
|
|
78
|
-
pick(
|
|
79
|
-
{ ...defaults, ...config },
|
|
80
|
-
['url', 'baseURL', 'method', 'headers', 'params', 'data']
|
|
81
|
-
),
|
|
82
|
-
{
|
|
83
|
-
dataName: 'Request details',
|
|
84
|
-
dataAsContext: true,
|
|
85
|
-
level: _getLevelFromConfig(status, logLevelConfig),
|
|
86
|
-
}
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Функция преобразования конфига уровней логирования запроса в уровень логирования Sentry.
|
|
93
|
-
* @param {number} statusCode Код ответа сервера.
|
|
94
|
-
* @param {Object} logLevelConfig Конфиг уровней логирования. `{ default: 'error', 422: 'warning', 419: 'error' }`.
|
|
95
|
-
* @return {string} Log level.
|
|
96
|
-
* @private
|
|
97
|
-
*/
|
|
98
|
-
export const _getLevelFromConfig = (statusCode, logLevelConfig = {}) => {
|
|
99
|
-
let level = logLevelConfig.default || 'warning';
|
|
100
|
-
|
|
101
|
-
if (statusCode && logLevelConfig[statusCode]) {
|
|
102
|
-
level = logLevelConfig[statusCode];
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return level;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Функция преобразования зависимостей сервиса в аргументы функции.
|
|
110
|
-
* @param {Object} dependencies Зависимости.
|
|
111
|
-
* @return {Array} Массив аргументов.
|
|
112
|
-
* @private
|
|
113
|
-
*/
|
|
114
|
-
export const _deptToArg = ({ sentry }) => [sentry];
|
|
115
|
-
|
|
116
|
-
export const createAttachBreadcrumbsMiddleware = createService(
|
|
117
|
-
_createAttachBreadcrumbsMiddleware,
|
|
118
|
-
_deptToArg
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
export const createHandleExceptionMiddleware = createService(
|
|
122
|
-
_createHandleExceptionMiddleware,
|
|
123
|
-
_deptToArg
|
|
124
|
-
);
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import pipe from 'lodash/fp/pipe';
|
|
2
|
-
import path from 'lodash/fp/path';
|
|
3
|
-
import pickBy from 'lodash/fp/pickBy';
|
|
4
|
-
|
|
5
|
-
// Префикс сервисных заголовков.
|
|
6
|
-
const SERVICE_PREFIX = 'Simaland-';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Возвращает объект заголовков, содержащих в своем названии префикс сервисных заголовков.
|
|
10
|
-
* @param {import('http').IncomingMessage} request Запрос приложения.
|
|
11
|
-
* @param {Object} request.headers Заголовки запроса.
|
|
12
|
-
* @return {Object.<string, string>} Коллекция сервисных заголовков.
|
|
13
|
-
*/
|
|
14
|
-
export const getServiceHeaders = pipe(
|
|
15
|
-
path('headers'),
|
|
16
|
-
pickBy((value, key) => key.toLowerCase().indexOf(SERVICE_PREFIX.toLowerCase()) === 0)
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
/** Формирует из параметров конфигурации и возвращает User-Agent.
|
|
20
|
-
* @param {Object} config Конфигурация приложения.
|
|
21
|
-
* @param {string} config.serviceName Название сервиса из конфигурации.
|
|
22
|
-
* @param {string} config.version Версия приложения.
|
|
23
|
-
* @return {string} User-Agent.
|
|
24
|
-
*/
|
|
25
|
-
export const getServiceUserAgent = ({ serviceName, version } = {}) =>
|
|
26
|
-
serviceName && version ? `simaland-${serviceName}/${version}` : '';
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Создаёт middleware для добавления заголовков в запросы API.
|
|
3
|
-
* @param {Object} options Параметры для создания middleware.
|
|
4
|
-
* @param {Object} options.headers Объект заголовков для добавления к запросу в API.
|
|
5
|
-
* @return {function(Object, Function): Promise} Middleware для использования в API.
|
|
6
|
-
*/
|
|
7
|
-
export const createPassHeadersMiddleware = ({ headers }) =>
|
|
8
|
-
async (requestConfig, next) => {
|
|
9
|
-
if (!requestConfig.headers) {
|
|
10
|
-
requestConfig.headers = {};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
requestConfig.headers = {
|
|
14
|
-
...requestConfig.headers,
|
|
15
|
-
...headers,
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
await next(requestConfig);
|
|
19
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import omit from 'lodash/omit';
|
|
2
|
-
import { getCookie, getXClientIp } from '../../http/request-getters';
|
|
3
|
-
import { getServiceHeaders, getServiceUserAgent } from './helpers';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Формирует объект заголовков из конфигурации приложения и запроса к приложению.
|
|
7
|
-
* @param {Object} options Опции сервиса.
|
|
8
|
-
* @param {Object} options.config Конфигурация приложения.
|
|
9
|
-
* @param {import('http').IncomingMessage} options.request Запрос приложения.
|
|
10
|
-
* @param {string|string[]} options.exclude Заголовки, которые требуется исключить из итогового списка.
|
|
11
|
-
* @return {Object} Заголовки.
|
|
12
|
-
*/
|
|
13
|
-
export const prepareRequestHeaders = ({ config, request, exclude = [] }) => omit({
|
|
14
|
-
'X-Client-Ip': getXClientIp({ request }),
|
|
15
|
-
'User-Agent': getServiceUserAgent(config),
|
|
16
|
-
Cookie: getCookie(request),
|
|
17
|
-
...getServiceHeaders(request),
|
|
18
|
-
}, exclude);
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import http from 'http';
|
|
2
|
-
import https from 'https';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Добавляет в конфигурацию запроса опции httpAgent и httpsAgent.
|
|
6
|
-
* @param {Object} options Параметры для создания middleware.
|
|
7
|
-
* @param {https.Agent} options.httpsAgent Кастомизированный экземпляр https.Agent.
|
|
8
|
-
* @param {http.Agent} options.httpAgent Кастомизированный экземпляр http.Agent.
|
|
9
|
-
* @return {function(Object, Function):Promise} Middleware для использования в API.
|
|
10
|
-
*/
|
|
11
|
-
const createSetHttpAgentsMiddleware = ({ httpsAgent, httpAgent }) =>
|
|
12
|
-
async (requestConfig, next) => {
|
|
13
|
-
if (httpAgent instanceof http.Agent) {
|
|
14
|
-
requestConfig.httpAgent = httpAgent;
|
|
15
|
-
}
|
|
16
|
-
if (httpsAgent instanceof https.Agent) {
|
|
17
|
-
requestConfig.httpsAgent = httpsAgent;
|
|
18
|
-
}
|
|
19
|
-
await next(requestConfig);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default createSetHttpAgentsMiddleware;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'events';
|
|
2
|
-
import { REQUEST_STAGES } from '../server-adapter/constants';
|
|
3
|
-
import { FORMAT_HTTP_HEADERS } from 'opentracing';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Класс, наследующий от EventEmitter.
|
|
7
|
-
*/
|
|
8
|
-
export class StageRequestEmitter extends EventEmitter {}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Создаёт middleware для трассировки этапов запроса в API.
|
|
12
|
-
* @param {Object} options Параметры для создания middleware.
|
|
13
|
-
* @param {Object} options.tracer Объект трейсера.
|
|
14
|
-
* @return {function(Object, Function): Promise} Middleware для трассироваки запросов в API.
|
|
15
|
-
*/
|
|
16
|
-
const createStagesTraceRequestMiddleware = ({ tracer }) =>
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Middleware для трассировки этапов запроса в API.
|
|
20
|
-
* @param {Object} requestConfig Параметры для создания middleware.
|
|
21
|
-
* @param {Function} next Функция для получения данных.
|
|
22
|
-
* @return {Promise} Promise.
|
|
23
|
-
*/
|
|
24
|
-
async (requestConfig, next) => {
|
|
25
|
-
const parentSpanContext = tracer.extract(FORMAT_HTTP_HEADERS, requestConfig.headers);
|
|
26
|
-
const emitter = new StageRequestEmitter();
|
|
27
|
-
|
|
28
|
-
let currentSpan;
|
|
29
|
-
Object.values(REQUEST_STAGES).map(stage => emitter.on(stage, () => {
|
|
30
|
-
if (currentSpan) {
|
|
31
|
-
currentSpan
|
|
32
|
-
.setOperationName(stage.replace('finish:', ''))
|
|
33
|
-
.finish();
|
|
34
|
-
}
|
|
35
|
-
if (stage !== REQUEST_STAGES.end) {
|
|
36
|
-
currentSpan = tracer.startSpan('', { childOf: parentSpanContext });
|
|
37
|
-
}
|
|
38
|
-
}));
|
|
39
|
-
requestConfig.emitter = emitter;
|
|
40
|
-
|
|
41
|
-
await next(requestConfig);
|
|
42
|
-
|
|
43
|
-
emitter.removeAllListeners();
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export default createStagesTraceRequestMiddleware;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Сертификат TLS для https.
|
|
3
|
-
* @type {string}
|
|
4
|
-
*/
|
|
5
|
-
export const fakeCert = `-----BEGIN CERTIFICATE-----
|
|
6
|
-
MIIDazCCAlOgAwIBAgIUAufH+Il0B8cP7bvU8PedE9F0b9MwDQYJKoZIhvcNAQEL
|
|
7
|
-
BQAwRTELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
|
8
|
-
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMDAyMTUwNzM5MzRaFw0yMDAz
|
|
9
|
-
MTYwNzM5MzRaMEUxCzAJBgNVBAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
|
10
|
-
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
|
|
11
|
-
AQUAA4IBDwAwggEKAoIBAQDFuY/Pld4KGeLtvbFrnwjjqPHdYiJw6UM6GjEuzAHN
|
|
12
|
-
fLjYjzCxbsae/UO+QyyLlZ0apQKHiznBga8Bc3JNZQ2O9xZ9BTUnJdvfq2ZgyGE8
|
|
13
|
-
9l4EWOd6I3MBLdzby9+NRs/mNSB10OkhOyYwcbjL8aR6QHzT570bg2Ab8mcLkKit
|
|
14
|
-
aPD6Jtk+iOMdRdudKIcv3fvBxKPwYPsvDtpEaSIjysimQKF40uk7yTu1r0liuknE
|
|
15
|
-
CObowqiH1zt+OTCutgpIAo7MuuE8ga7fQlq9IzlgIpgl2W12NjEYDB87jQ3FT7Dn
|
|
16
|
-
qy5uZq4r9b5oQ4tRLgsP/yVLac0vCzwoA8EB2+0bxsiVAgMBAAGjUzBRMB0GA1Ud
|
|
17
|
-
DgQWBBSQYsuIbKB5tOmH2hbLaWKkrfzLEzAfBgNVHSMEGDAWgBSQYsuIbKB5tOmH
|
|
18
|
-
2hbLaWKkrfzLEzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBp
|
|
19
|
-
HzTKEe5F81Mdqeb84/+TeR7H6GTMXE8jl/wIXprkapG7FizRQ/nlGQSYHJ/U9R2w
|
|
20
|
-
lTvnr0logj2f4Hz1WdyRCaE5BMTwSVPlbIPjfXBzvB140jlJpGzr5qbnMkwjymZT
|
|
21
|
-
nRydKP1DdwlYnl6BwgZ7xGCyB2k9bWSfYu9918AXE/AKcan5siHlYWhobP1uVMIl
|
|
22
|
-
JksaKH9nnQ/oZK/KZA1YoTc47ZqIGbNnHHFLuQ7BEClXRL4ixxrLLK2Kjxtd6PXD
|
|
23
|
-
r1LpsSnEDuQ3MzzeKNduPolMdct8ioKJ2OA81ts/cImB4t80TdWujbL/oUXkHbdN
|
|
24
|
-
YyJK3ZaLm/5uzOOHIuSu
|
|
25
|
-
-----END CERTIFICATE-----`;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Ключ TLS для https.
|
|
29
|
-
* @type {string}
|
|
30
|
-
*/
|
|
31
|
-
export const fakeKey = `-----BEGIN PRIVATE KEY-----
|
|
32
|
-
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFuY/Pld4KGeLt
|
|
33
|
-
vbFrnwjjqPHdYiJw6UM6GjEuzAHNfLjYjzCxbsae/UO+QyyLlZ0apQKHiznBga8B
|
|
34
|
-
c3JNZQ2O9xZ9BTUnJdvfq2ZgyGE89l4EWOd6I3MBLdzby9+NRs/mNSB10OkhOyYw
|
|
35
|
-
cbjL8aR6QHzT570bg2Ab8mcLkKitaPD6Jtk+iOMdRdudKIcv3fvBxKPwYPsvDtpE
|
|
36
|
-
aSIjysimQKF40uk7yTu1r0liuknECObowqiH1zt+OTCutgpIAo7MuuE8ga7fQlq9
|
|
37
|
-
IzlgIpgl2W12NjEYDB87jQ3FT7Dnqy5uZq4r9b5oQ4tRLgsP/yVLac0vCzwoA8EB
|
|
38
|
-
2+0bxsiVAgMBAAECggEAEYBoW16PpeM+s/6LetQ77DLjHc527/mlyrnQyqyiKDc3
|
|
39
|
-
AWxDSiFdEWunmGrHwZ8/pcEfZTIMrbU18XHvlywvtAzo/637U3jFapn4WO7DtKq2
|
|
40
|
-
Dbp02tnSbzNJDmeQZSf0dRMUyXjxedCLg9Q9IEhGX8/ffL5RfeL2GeMt/dcTJy4v
|
|
41
|
-
4Oo6GXP3YH/Ts+RxsHC9gWg3HukqwEycRYhaBCXSR4GEZE2wqhzkcVf9PxHpzHkT
|
|
42
|
-
ktISa55bEMwhGtQewmXlCqlSiISLHQkJvkP83GOh6k/14jsPrToPasA+hBGNfj9K
|
|
43
|
-
O+6fi4pxxmM8N7DgkLRHm9WQbYq5ZCCCklqkFxVJjQKBgQDxWjyC97U41dgFIoes
|
|
44
|
-
JA++Nb39uyIHyh7s+JQt5miBNvns6KSKLqVql5lPeAa8Mj97orvLQUW/T0ogMTUJ
|
|
45
|
-
JcwKTLF4TNqYMPKupoZk3fnrgGuclTVjjU2hSqrzp7XFP+vLNuktkVg2HoRrgT29
|
|
46
|
-
qgDTQThZZQTTqEtgbIseaeqBXwKBgQDRuYGdeRaeTJVTVgmvAlfAvWuNUBvLNxHh
|
|
47
|
-
0ObCLIiFbF9g8bSd/WeqLyUs1zBQslxIXvnhIO9dPcDGqX3u+SSUzcc//YGYFvAB
|
|
48
|
-
6I1sTNPi+RsEz9bAM6/EpWQkbaaPpwHITz0YXGReou76nRirl0s5zqdbYWKkvk0n
|
|
49
|
-
ZXgQVCe2iwKBgFv20k/lKzx431M1kRTauNT1jWt9Pr5RGe+Z2HyU6wUxeZH4I5oz
|
|
50
|
-
o/w1v8k0JvzW+LGXlI8iU/1NrSUPGvJdYJ4cExOP1Utge1hpQ5RzsKM3z8leYXWJ
|
|
51
|
-
hicLWJB3Ox/p92L7jWY7l60ne7WrDWeTu7TDiUEm6OvtmKspMOlp2l1pAoGBAMG1
|
|
52
|
-
SdadJRsJOVNDwKX4z/yh+FkJiOJl9wpP3ROz9lTmCCKOnXjfuYQjD38fMu0WEM53
|
|
53
|
-
iu05clz40LmtizfSvssCVerwx2YmqX/Zv+Yr//lAhIgpP/0+wDYtXRWYgaNlaewN
|
|
54
|
-
5CxACiSu8XRg7YxvrXezPDjW9jmb279rpT3PvO6JAoGAMN3sEr5Utws14g3BDaIc
|
|
55
|
-
9jHvYKKc05oqRbnfHkJmQBaphfj8DYwIgVrHc63RTadp6eK50gpEMk9cZiw3xu7I
|
|
56
|
-
YQsOyH4x06NoPGelxkhX/rxOXOVtNmCNpMjgxoQJRm3WXNza476l3xDk2BltfTL6
|
|
57
|
-
aawhzRoba6tWmXzyog3whEs=
|
|
58
|
-
-----END PRIVATE KEY-----`;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Стадии запроса к API.
|
|
3
|
-
* @type {Object}
|
|
4
|
-
*/
|
|
5
|
-
export const REQUEST_STAGES = Object.freeze({
|
|
6
|
-
start: 'start:request',
|
|
7
|
-
dnsLookupFinish: 'finish:DNS Lookup',
|
|
8
|
-
tcpConnectionConnect: 'finish:TCP Connection',
|
|
9
|
-
tlsHandshakeFinish: 'finish:TLS Handshake',
|
|
10
|
-
firstByteReceived: 'finish:Time to First Byte',
|
|
11
|
-
end: 'finish:Data Loading',
|
|
12
|
-
});
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import isArrayBuffer from 'lodash/isArrayBuffer';
|
|
2
|
-
import isFunction from 'lodash/isFunction';
|
|
3
|
-
import isString from 'lodash/isString';
|
|
4
|
-
import pipe from 'lodash/fp/pipe';
|
|
5
|
-
import get from 'lodash/fp/get';
|
|
6
|
-
import eq from 'lodash/fp/eq';
|
|
7
|
-
|
|
8
|
-
import { http as httpFollow, https as httpsFollow } from 'follow-redirects';
|
|
9
|
-
import http from 'http';
|
|
10
|
-
import https from 'https';
|
|
11
|
-
import zlib from 'zlib';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Проверяет, что переданный аргумент поддерживает метод экземпляра Stream.
|
|
15
|
-
*/
|
|
16
|
-
export const isStream = pipe(
|
|
17
|
-
get('pipe'),
|
|
18
|
-
isFunction
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Проверяет, что переданный аргумент поддерживает метод экземпляра EventEmitter.
|
|
23
|
-
*/
|
|
24
|
-
export const isEventEmitter = pipe(
|
|
25
|
-
get('emit'),
|
|
26
|
-
isFunction
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Проверяет, что переданный аргумент соответствует протоколу `https`.
|
|
31
|
-
*/
|
|
32
|
-
export const isHttps = eq('https:');
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Возвращает экземпляр Buffer созданный из переданных данных.
|
|
36
|
-
* @param {Buffer|ArrayBuffer|string} data Данные.
|
|
37
|
-
* @return {Buffer|undefined} Данные.
|
|
38
|
-
*/
|
|
39
|
-
export const prepareDataBuffer = data => {
|
|
40
|
-
let result;
|
|
41
|
-
if (isString(data)) {
|
|
42
|
-
result = Buffer.from(data, 'utf-8');
|
|
43
|
-
} else if (Buffer.isBuffer(data)) {
|
|
44
|
-
result = data;
|
|
45
|
-
} else if (isArrayBuffer(data)) {
|
|
46
|
-
result = Buffer.from(new Uint8Array(data));
|
|
47
|
-
}
|
|
48
|
-
return result;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Создает экземпляр URL из объединенного пути с базой. Если путь абсолютный - использует только его.
|
|
53
|
-
* @param {string} input Путь для объединения.
|
|
54
|
-
* @param {string} base База.
|
|
55
|
-
* @return {URL} Объект URL.
|
|
56
|
-
*/
|
|
57
|
-
export const createConcatURL = (input, base) => {
|
|
58
|
-
const cleanInput = input ? input.replace(/^\/(?!\/)/, '') : '';
|
|
59
|
-
const cleanBase = base ? base.replace(/\/?$/, '/') : undefined;
|
|
60
|
-
return new URL(cleanInput, cleanBase);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Возвращает подходящий интерфейс транспорта в зависимости от конфигурации.
|
|
65
|
-
* @param {Object} config Конфигурация.
|
|
66
|
-
* @param {string} config.url Относительный URL запроса.
|
|
67
|
-
* @param {string} config.baseURL Базовый URL.
|
|
68
|
-
* @param {Object} config.transport Кастомный транспорт, переданный в конфигурации.
|
|
69
|
-
* @param {number} config.maxRedirects Максимальное количество редиректов.
|
|
70
|
-
* @return {Object} Транспорт.
|
|
71
|
-
*/
|
|
72
|
-
export const createTransport = ({
|
|
73
|
-
url,
|
|
74
|
-
baseURL,
|
|
75
|
-
transport,
|
|
76
|
-
maxRedirects,
|
|
77
|
-
}) => {
|
|
78
|
-
const { protocol } = createConcatURL(url, baseURL);
|
|
79
|
-
const isHttpsRequest = isHttps(protocol);
|
|
80
|
-
|
|
81
|
-
let result;
|
|
82
|
-
if (transport) {
|
|
83
|
-
result = transport;
|
|
84
|
-
} else if (maxRedirects === 0) {
|
|
85
|
-
result = isHttpsRequest ? https : http;
|
|
86
|
-
} else {
|
|
87
|
-
result = isHttpsRequest ? httpsFollow : httpFollow;
|
|
88
|
-
}
|
|
89
|
-
return result;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Объединяет имеющиеся параметры запроса с переданными и возвращает сериализованный путь с параметрами запроса.
|
|
94
|
-
* @param {URL} url Экземпляр URL.
|
|
95
|
-
* @param {Object|string|URLSearchParams} [params] Параметры запроса.
|
|
96
|
-
* @param {Function} [paramsSerializer] Функция для сериализации переданных параметров.
|
|
97
|
-
* @return {string} Путь с параметрами.
|
|
98
|
-
*/
|
|
99
|
-
export const buildRequestPath = (url, params, paramsSerializer) => {
|
|
100
|
-
const outlineSearchParams = new URLSearchParams(
|
|
101
|
-
isFunction(paramsSerializer)
|
|
102
|
-
? paramsSerializer(params)
|
|
103
|
-
: params
|
|
104
|
-
);
|
|
105
|
-
outlineSearchParams.forEach((value, name) => url.searchParams.append(name, value));
|
|
106
|
-
return url.href.replace(url.origin, '');
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Формирует объект опций для запроса на основании переданной конфигурации.
|
|
111
|
-
* @param {Object} config Конфигурация.
|
|
112
|
-
* @return {Object} Опции.
|
|
113
|
-
*/
|
|
114
|
-
export const createOptions = ({
|
|
115
|
-
url,
|
|
116
|
-
baseURL,
|
|
117
|
-
method,
|
|
118
|
-
headers,
|
|
119
|
-
httpAgent,
|
|
120
|
-
httpsAgent,
|
|
121
|
-
params,
|
|
122
|
-
paramsSerializer,
|
|
123
|
-
maxRedirects,
|
|
124
|
-
maxContentLength,
|
|
125
|
-
}) => {
|
|
126
|
-
const fullURL = createConcatURL(url, baseURL);
|
|
127
|
-
const {
|
|
128
|
-
protocol,
|
|
129
|
-
hostname,
|
|
130
|
-
port,
|
|
131
|
-
} = fullURL;
|
|
132
|
-
|
|
133
|
-
const agent = isHttps(protocol) ? httpsAgent : httpAgent;
|
|
134
|
-
|
|
135
|
-
const result = {
|
|
136
|
-
path: buildRequestPath(fullURL, params, paramsSerializer),
|
|
137
|
-
method: method.toUpperCase(),
|
|
138
|
-
agents: { http: httpAgent, https: httpsAgent },
|
|
139
|
-
headers,
|
|
140
|
-
agent,
|
|
141
|
-
hostname,
|
|
142
|
-
port: Number(port) || undefined,
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
if (maxRedirects) {
|
|
146
|
-
result.maxRedirects = maxRedirects;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (maxContentLength && maxContentLength > -1) {
|
|
150
|
-
result.maxBodyLength = maxContentLength;
|
|
151
|
-
}
|
|
152
|
-
return result;
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Возвращает декомпресированный запрос либо исходный запрос, если не было заголовка о компрессии.
|
|
157
|
-
* @param {import('stream').Readable} response Запрос.
|
|
158
|
-
* @return {import('stream').Readable} Обработанный запрос.
|
|
159
|
-
*/
|
|
160
|
-
export const uncompressResponse = response => {
|
|
161
|
-
const isCompress = [
|
|
162
|
-
'gzip',
|
|
163
|
-
'compress',
|
|
164
|
-
'deflate',
|
|
165
|
-
].includes(response.headers['content-encoding']);
|
|
166
|
-
|
|
167
|
-
return isCompress && response.statusCode !== 204
|
|
168
|
-
? response.pipe(zlib.createUnzip())
|
|
169
|
-
: response;
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Возвращает ошибку, дополненную свойствами из запроса.
|
|
174
|
-
* @param {Error} error Ошибка.
|
|
175
|
-
* @param {Object} config Конфиг.
|
|
176
|
-
* @param {string} code Код ошибки.
|
|
177
|
-
* @param {import('http').ClientRequest} request Запрос.
|
|
178
|
-
* @param {import('http').IncomingMessage} response Ответ.
|
|
179
|
-
* @return {Error} Расширенная ошибка.
|
|
180
|
-
*/
|
|
181
|
-
export const enhanceError = (error, config, code, request, response) => {
|
|
182
|
-
const enhance = {
|
|
183
|
-
config,
|
|
184
|
-
request,
|
|
185
|
-
response,
|
|
186
|
-
isAxiosError: true,
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Возвращает объект для передачи в JSON.stringify().
|
|
190
|
-
* @return {Object} Объект.
|
|
191
|
-
*/
|
|
192
|
-
toJSON () {
|
|
193
|
-
return {
|
|
194
|
-
message: this.message,
|
|
195
|
-
name: this.name,
|
|
196
|
-
description: this.description,
|
|
197
|
-
number: this.number,
|
|
198
|
-
fileName: this.fileName,
|
|
199
|
-
lineNumber: this.lineNumber,
|
|
200
|
-
columnNumber: this.columnNumber,
|
|
201
|
-
stack: this.stack,
|
|
202
|
-
config: this.config,
|
|
203
|
-
code: this.code,
|
|
204
|
-
};
|
|
205
|
-
},
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
if (code) {
|
|
209
|
-
enhance.code = code;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
return Object.assign(error, enhance);
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Создает расширенную ошибку из текста и параметров запроса.
|
|
217
|
-
* @param {string} message Текст ошибки.
|
|
218
|
-
* @param {Array} rest Параметры запроса.
|
|
219
|
-
* @return {Error} Ошибка.
|
|
220
|
-
*/
|
|
221
|
-
export const createError = (message, ...rest) => enhanceError(new Error(message), ...rest);
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Валидирует код ответа и разрешает промис.
|
|
225
|
-
* @param {Function} resolve Разрешает промис.
|
|
226
|
-
* @param {Function} reject Отклоняет промис.
|
|
227
|
-
* @param {import('http').IncomingMessage} response Ответ на запрос.
|
|
228
|
-
*/
|
|
229
|
-
export const settle = (resolve, reject, response) => {
|
|
230
|
-
const { status, config, request } = response;
|
|
231
|
-
const { validateStatus } = config || {};
|
|
232
|
-
|
|
233
|
-
if (!validateStatus || validateStatus(status)) {
|
|
234
|
-
resolve(response);
|
|
235
|
-
} else {
|
|
236
|
-
reject(createError(
|
|
237
|
-
`Request failed with status code ${status}`,
|
|
238
|
-
config,
|
|
239
|
-
null,
|
|
240
|
-
request,
|
|
241
|
-
response
|
|
242
|
-
));
|
|
243
|
-
}
|
|
244
|
-
};
|