@sima-land/isomorph 10.1.0 → 11.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cache/types.d.ts +7 -0
- package/cache/types.js +3 -0
- package/cache/types.js.map +1 -0
- package/config/base.d.ts +7 -0
- package/config/base.js +20 -0
- package/config/base.js.map +1 -0
- package/config/browser.d.ts +6 -0
- package/config/browser.js +22 -0
- package/config/browser.js.map +1 -0
- package/config/node.d.ts +6 -0
- package/config/node.js +24 -0
- package/config/node.js.map +1 -0
- package/config/types.d.ts +7 -0
- package/config/types.js +3 -0
- package/config/types.js.map +1 -0
- package/di/application.d.ts +6 -0
- package/di/application.js +71 -0
- package/di/application.js.map +1 -0
- package/di/container.d.ts +6 -0
- package/di/container.js +49 -0
- package/di/container.js.map +1 -0
- package/di/errors.d.ts +21 -0
- package/di/errors.js +33 -0
- package/di/errors.js.map +1 -0
- package/di/index.d.ts +6 -0
- package/di/index.js +16 -0
- package/di/index.js.map +1 -0
- package/di/preset.d.ts +9 -0
- package/di/preset.js +25 -0
- package/di/preset.js.map +1 -0
- package/di/token.d.ts +7 -0
- package/di/token.js +17 -0
- package/di/token.js.map +1 -0
- package/di/types.d.ts +32 -0
- package/di/types.js +3 -0
- package/di/types.js.map +1 -0
- package/error-tracker/types.d.ts +13 -0
- package/error-tracker/types.js +3 -0
- package/error-tracker/types.js.map +1 -0
- package/error-tracker/utils.d.ts +22 -0
- package/error-tracker/utils.js +30 -0
- package/error-tracker/utils.js.map +1 -0
- package/http-client/middleware/cookie.d.ts +19 -0
- package/http-client/middleware/cookie.js +62 -0
- package/http-client/middleware/cookie.js.map +1 -0
- package/http-client/middleware/logging.d.ts +15 -0
- package/http-client/middleware/logging.js +93 -0
- package/http-client/middleware/logging.js.map +1 -0
- package/http-client/middleware/tracing.d.ts +32 -0
- package/http-client/middleware/tracing.js +67 -0
- package/http-client/middleware/tracing.js.map +1 -0
- package/http-client/sauce/index.d.ts +27 -0
- package/http-client/sauce/index.js +33 -0
- package/http-client/sauce/index.js.map +1 -0
- package/http-client/types.d.ts +6 -0
- package/http-client/types.js +3 -0
- package/http-client/types.js.map +1 -0
- package/http-client/utils.d.ts +9 -0
- package/http-client/utils.js +20 -0
- package/http-client/utils.js.map +1 -0
- package/http-server/constants.d.ts +4 -0
- package/http-server/constants.js +8 -0
- package/http-server/constants.js.map +1 -0
- package/http-server/handler/health-check.d.ts +6 -0
- package/http-server/handler/health-check.js +15 -0
- package/http-server/handler/health-check.js.map +1 -0
- package/http-server/middleware/logging.d.ts +10 -0
- package/http-server/middleware/logging.js +31 -0
- package/http-server/middleware/logging.js.map +1 -0
- package/http-server/middleware/metrics.d.ts +23 -0
- package/http-server/middleware/metrics.js +60 -0
- package/http-server/middleware/metrics.js.map +1 -0
- package/http-server/middleware/tracing.d.ts +14 -0
- package/http-server/middleware/tracing.js +51 -0
- package/http-server/middleware/tracing.js.map +1 -0
- package/http-server/template/index.d.ts +1 -0
- package/http-server/template/index.js +36 -0
- package/http-server/template/index.js.map +1 -0
- package/http-server/types.d.ts +33 -0
- package/http-server/types.js +3 -0
- package/http-server/types.js.map +1 -0
- package/http-server/utils.d.ts +30 -0
- package/http-server/utils.js +100 -0
- package/http-server/utils.js.map +1 -0
- package/logger/handler/console.d.ts +8 -0
- package/logger/handler/console.js +43 -0
- package/logger/handler/console.js.map +1 -0
- package/logger/handler/sentry.d.ts +8 -0
- package/logger/handler/sentry.js +42 -0
- package/logger/handler/sentry.js.map +1 -0
- package/logger/index.d.ts +6 -0
- package/logger/index.js +31 -0
- package/logger/index.js.map +1 -0
- package/logger/types.d.ts +24 -0
- package/logger/types.js +3 -0
- package/logger/types.js.map +1 -0
- package/metrics/constants.d.ts +4 -0
- package/metrics/constants.js +8 -0
- package/metrics/constants.js.map +1 -0
- package/metrics/node.d.ts +18 -0
- package/metrics/node.js +74 -0
- package/metrics/node.js.map +1 -0
- package/package.json +46 -63
- package/preset/browser/index.d.ts +1 -0
- package/preset/browser/index.js +45 -0
- package/preset/browser/index.js.map +1 -0
- package/preset/node/index.d.ts +19 -0
- package/preset/node/index.js +127 -0
- package/preset/node/index.js.map +1 -0
- package/preset/node/response.d.ts +20 -0
- package/preset/node/response.js +82 -0
- package/preset/node/response.js.map +1 -0
- package/saga-runner/index.d.ts +8 -0
- package/saga-runner/index.js +79 -0
- package/saga-runner/index.js.map +1 -0
- package/saga-runner/types.d.ts +10 -0
- package/saga-runner/types.js +3 -0
- package/saga-runner/types.js.map +1 -0
- package/tokens.d.ts +48 -0
- package/tokens.js +50 -0
- package/tokens.js.map +1 -0
- package/tracing/index.d.ts +9 -0
- package/tracing/index.js +20 -0
- package/tracing/index.js.map +1 -0
- package/{browser → utils/browser}/analytics/data-layer.d.ts +0 -0
- package/{browser → utils/browser}/analytics/data-layer.js +1 -2
- package/utils/browser/analytics/data-layer.js.map +1 -0
- package/{browser → utils/browser}/analytics/oko.d.ts +0 -0
- package/{browser → utils/browser}/analytics/oko.js +6 -7
- package/utils/browser/analytics/oko.js.map +1 -0
- package/utils/browser/storage/index.d.ts +4 -0
- package/utils/browser/storage/index.js +63 -0
- package/utils/browser/storage/index.js.map +1 -0
- package/utils/number.d.ts +6 -0
- package/utils/number.js +13 -0
- package/utils/number.js.map +1 -0
- package/utils/react/error-handlers/index.d.ts +38 -0
- package/utils/react/error-handlers/index.js +48 -0
- package/utils/react/error-handlers/index.js.map +1 -0
- package/utils/redux/remote-data.d.ts +23 -0
- package/utils/redux/remote-data.js +28 -0
- package/utils/redux/remote-data.js.map +1 -0
- package/utils/redux-saga/take-chain.d.ts +24 -0
- package/utils/redux-saga/take-chain.js +56 -0
- package/utils/redux-saga/take-chain.js.map +1 -0
- package/utils/ssr/index.d.ts +30 -0
- package/utils/ssr/index.js +51 -0
- package/utils/ssr/index.js.map +1 -0
- package/utils/webpack/index.d.ts +23 -0
- package/utils/webpack/index.js +66 -0
- package/utils/webpack/index.js.map +1 -0
- package/utils/webpack/module-federation/index.d.ts +21 -0
- package/utils/webpack/module-federation/index.js +74 -0
- package/utils/webpack/module-federation/index.js.map +1 -0
- package/utils/webpack/module-federation/types.d.ts +26 -0
- package/utils/webpack/module-federation/types.js +3 -0
- package/utils/webpack/module-federation/types.js.map +1 -0
- package/utils/webpack/module-federation/utils.d.ts +15 -0
- package/utils/webpack/module-federation/utils.js +36 -0
- package/utils/webpack/module-federation/utils.js.map +1 -0
- package/browser/analytics/data-layer.js.map +0 -1
- package/browser/analytics/oko.js.map +0 -1
- package/cache/helpers.d.ts +0 -4
- package/cache/helpers.js +0 -39
- package/cache/helpers.js.map +0 -1
- package/cache/local-storage.d.ts +0 -34
- package/cache/local-storage.js +0 -90
- package/cache/local-storage.js.map +0 -1
- package/cache/redis.d.ts +0 -10
- package/cache/redis.js +0 -54
- package/cache/redis.js.map +0 -1
- package/cache/wrap-in-trace.d.ts +0 -8
- package/cache/wrap-in-trace.js +0 -68
- package/cache/wrap-in-trace.js.map +0 -1
- package/config/create.d.ts +0 -8
- package/config/create.js +0 -32
- package/config/create.js.map +0 -1
- package/config/helpers.d.ts +0 -11
- package/config/helpers.js +0 -71
- package/config/helpers.js.map +0 -1
- package/config/validate.d.ts +0 -18
- package/config/validate.js +0 -107
- package/config/validate.js.map +0 -1
- package/container/create-inject.d.ts +0 -7
- package/container/create-inject.js +0 -36
- package/container/create-inject.js.map +0 -1
- package/container/get-dependencies.d.ts +0 -13
- package/container/get-dependencies.js +0 -54
- package/container/get-dependencies.js.map +0 -1
- package/container/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/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 -58
- package/module-federation/__example__/webpack-config.example.js.map +0 -1
- package/module-federation/enhanced-module-federation-plugin.d.ts +0 -69
- package/module-federation/enhanced-module-federation-plugin.js +0 -97
- package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
- package/module-federation/utils/index.d.ts +0 -16
- package/module-federation/utils/index.js +0 -33
- package/module-federation/utils/index.js.map +0 -1
- package/observe-middleware/index.d.ts +0 -9
- package/observe-middleware/index.js +0 -67
- package/observe-middleware/index.js.map +0 -1
- package/set-header-middleware/create.d.ts +0 -10
- package/set-header-middleware/create.js +0 -16
- package/set-header-middleware/create.js.map +0 -1
- package/src/browser/analytics/data-layer.ts +0 -12
- package/src/browser/analytics/oko.ts +0 -42
- package/src/cache/helpers.js +0 -32
- package/src/cache/local-storage.ts +0 -92
- package/src/cache/redis.js +0 -79
- package/src/cache/wrap-in-trace.js +0 -57
- package/src/config/create.js +0 -33
- package/src/config/helpers.js +0 -71
- package/src/config/validate.js +0 -114
- package/src/container/create-inject.js +0 -32
- package/src/container/get-dependencies.js +0 -46
- package/src/container/index.js +0 -188
- package/src/container/is-container.js +0 -14
- package/src/container/service-not-found-error.js +0 -14
- package/src/create-proxy/create-proxy-middleware/index.js +0 -47
- package/src/create-proxy/index.js +0 -27
- package/src/create-response-sender/index.js +0 -48
- package/src/get-dynamic-data/index.js +0 -26
- package/src/graceful-shutdown/index.js +0 -97
- package/src/helpers/add-error-handling/index.js +0 -24
- package/src/helpers/api/create-enhancer.js +0 -52
- package/src/helpers/api/create-instance.js +0 -42
- package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
- package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
- package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
- package/src/helpers/api/middlewares/helpers.js +0 -26
- package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
- package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
- package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
- package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
- package/src/helpers/api/middlewares/trace-request-middleware.ts +0 -86
- package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
- package/src/helpers/api/server-adapter/constants.js +0 -12
- package/src/helpers/api/server-adapter/helpers.js +0 -244
- package/src/helpers/api/server-adapter/index.js +0 -155
- package/src/helpers/development/use-dot-env.js +0 -9
- package/src/helpers/get-params/index.js +0 -59
- package/src/helpers/http/request-getters.js +0 -42
- package/src/helpers/http/statuses-validator.js +0 -20
- package/src/helpers/logger/create-pino-instance/index.js +0 -41
- package/src/helpers/logger/format-time/index.js +0 -6
- package/src/helpers/metrics/index.js +0 -40
- package/src/helpers/prometheus/index.js +0 -9
- package/src/helpers/prometheus/measure-middleware.js +0 -73
- package/src/helpers/prometheus/metric-adapter.js +0 -99
- package/src/helpers/react/error-handlers/index.tsx +0 -68
- package/src/helpers/redux/constants.js +0 -10
- package/src/helpers/redux/create-compose-middleware.js +0 -24
- package/src/helpers/redux/get-dev-compose-creator.js +0 -9
- package/src/helpers/redux/prepare-on-ready.js +0 -16
- package/src/helpers/redux/remote-data.js +0 -124
- package/src/helpers/redux/selector/statuses.js +0 -30
- package/src/helpers/redux/wait-on-store-readiness.js +0 -40
- package/src/helpers/render/get-react-markup-data.js +0 -18
- package/src/helpers/render/index.js +0 -69
- package/src/helpers/render/render-app.js +0 -15
- package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
- package/src/helpers/saga/cache-result.js +0 -77
- package/src/helpers/saga/create-store.js +0 -102
- package/src/helpers/saga/do-safe-request.js +0 -47
- package/src/helpers/saga/safe-request.js +0 -11
- package/src/helpers/saga/take-chain.js +0 -53
- package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
- package/src/helpers/tracer/index.js +0 -171
- package/src/helpers/utils/check-feature-by-segment.js +0 -32
- package/src/helpers/utils/format-object-keys.js +0 -23
- package/src/helpers/utils/get-ms-from-hrt.js +0 -16
- package/src/helpers/utils/is-match-pattern-list.js +0 -13
- package/src/helpers/utils/is-not-empty-array.js +0 -8
- package/src/helpers/utils/is-not-empty-string.js +0 -11
- package/src/helpers/utils/is-numeric.ts +0 -12
- package/src/helpers/utils/wrap-in-measure-event.js +0 -35
- package/src/logger/create-logger-middleware/index.js +0 -46
- package/src/logger/create-sentry-instance/index.js +0 -74
- package/src/logger/create-sentry-middleware/index.js +0 -16
- package/src/logger/handler-creators/index.js +0 -38
- package/src/logger/initialize-sentry-creator/index.js +0 -43
- package/src/logger/sentry-logger/index.js +0 -33
- package/src/module-federation/__example__/webpack-config.example.js +0 -64
- package/src/module-federation/enhanced-module-federation-plugin.js +0 -119
- package/src/module-federation/utils/index.js +0 -39
- package/src/observe-middleware/index.js +0 -70
- package/src/set-header-middleware/create.js +0 -17
package/package.json
CHANGED
|
@@ -1,83 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sima-land/isomorph",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"repository": "ssh://git@github.com:sima-land/isomorph.git",
|
|
3
|
+
"version": "11.0.0-alpha.10",
|
|
4
|
+
"description": "Tiny framework for fast start frontend microservices",
|
|
6
5
|
"author": "www.sima-land.ru team",
|
|
7
6
|
"license": "Apache-2.0",
|
|
8
|
-
"private": false,
|
|
9
|
-
"engines": {
|
|
10
|
-
"node": ">=14.17.0"
|
|
11
|
-
},
|
|
12
7
|
"scripts": {
|
|
13
8
|
"prepare": "",
|
|
14
|
-
"
|
|
9
|
+
"type-check": "tsc -p . --noEmit",
|
|
10
|
+
"build:before": "rm -rf dist",
|
|
15
11
|
"build:main": "tsc --project tsconfig.build.json",
|
|
16
|
-
"build:after": "
|
|
12
|
+
"build:after": "cp package.json dist/package.json",
|
|
17
13
|
"build": "npm run build:before && npm run build:main && npm run build:after",
|
|
18
|
-
"type-check": "tsc -p . --noEmit",
|
|
19
14
|
"lint": "eslint --cache ./src --ext .js,.jsx,.ts,.tsx",
|
|
20
15
|
"test": "jest",
|
|
21
|
-
"coverage": "jest --clearCache && jest --coverage"
|
|
22
|
-
},
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"axios": "^0.21.1",
|
|
25
|
-
"express-http-proxy": "^1.5.1",
|
|
26
|
-
"ioredis": "^4.10.0",
|
|
27
|
-
"jaeger-client": "^3.15.0",
|
|
28
|
-
"middleware-axios": "^2.1.1",
|
|
29
|
-
"opentracing": "^0.14.3",
|
|
30
|
-
"pino": "^5.13.1",
|
|
31
|
-
"pino-pretty": "^3.2.0",
|
|
32
|
-
"prom-client": "^11.5.2"
|
|
16
|
+
"test:coverage": "jest --clearCache && jest --coverage"
|
|
33
17
|
},
|
|
34
18
|
"devDependencies": {
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@babel/preset-react": "^7.13.13",
|
|
38
|
-
"@babel/preset-typescript": "^7.16.5",
|
|
39
|
-
"@sentry/browser": "^5.15.5",
|
|
40
|
-
"@sentry/node": "5.10.2",
|
|
41
|
-
"@sima-land/linters": "^1.0.12",
|
|
19
|
+
"@sima-land/linters": "^2.1.2",
|
|
20
|
+
"@swc/jest": "^0.2.20",
|
|
42
21
|
"@testing-library/react": "^12.1.3",
|
|
22
|
+
"@types/ejs": "^3.1.1",
|
|
43
23
|
"@types/express": "^4.17.13",
|
|
44
|
-
"@types/
|
|
45
|
-
"@types/
|
|
46
|
-
"@types/lodash": "^4.14.
|
|
47
|
-
"@types/
|
|
48
|
-
"@types/react": "^
|
|
49
|
-
"@types/react-dom": "^17.0.5",
|
|
50
|
-
"@types/react-redux": "^7.1.16",
|
|
24
|
+
"@types/jest": "^27.4.1",
|
|
25
|
+
"@types/jsesc": "^3.0.1",
|
|
26
|
+
"@types/lodash": "^4.14.182",
|
|
27
|
+
"@types/react": "^17.0.40",
|
|
28
|
+
"@types/react-dom": "^17.0.13",
|
|
51
29
|
"@types/webpack": "^5.28.0",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
30
|
+
"husky": "^7.0.4",
|
|
31
|
+
"jest": "^27.5.1",
|
|
32
|
+
"typescript": "^4.6.2"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@humanwhocodes/env": "^2.2.0",
|
|
36
|
+
"@opentelemetry/api": "^1.1.0",
|
|
37
|
+
"@opentelemetry/exporter-jaeger": "^1.0.1",
|
|
38
|
+
"@opentelemetry/instrumentation": "^0.27.0",
|
|
39
|
+
"@opentelemetry/instrumentation-express": "^0.28.0",
|
|
40
|
+
"@opentelemetry/instrumentation-http": "^0.27.0",
|
|
41
|
+
"@opentelemetry/resources": "^1.0.1",
|
|
42
|
+
"@opentelemetry/sdk-trace-node": "^1.0.1",
|
|
43
|
+
"@opentelemetry/semantic-conventions": "^1.0.1",
|
|
44
|
+
"@opentelemetry/tracing": "^0.24.0",
|
|
45
|
+
"@sentry/browser": "^6.19.3",
|
|
46
|
+
"@sentry/node": "^6.19.3",
|
|
47
|
+
"dotenv": "^16.0.0",
|
|
48
|
+
"ejs": "^3.1.8",
|
|
49
|
+
"express": "^4.17.3",
|
|
50
|
+
"jsesc": "^3.0.2",
|
|
51
|
+
"middleware-axios": "^2.1.2",
|
|
52
|
+
"pino": "^7.9.1",
|
|
53
|
+
"pino-pretty": "^7.5.4",
|
|
54
|
+
"prom-client": "^14.0.1",
|
|
55
|
+
"webpack": "^5.72.0"
|
|
72
56
|
},
|
|
73
57
|
"peerDependencies": {
|
|
58
|
+
"@reduxjs/toolkit": "^1.8.0",
|
|
59
|
+
"axios": "^0.24.0",
|
|
74
60
|
"lodash": "^4.17.21",
|
|
75
|
-
"react": "^
|
|
76
|
-
"react-dom": "^
|
|
77
|
-
"react-redux": "^7.
|
|
78
|
-
"redux": "^
|
|
79
|
-
"redux-saga": "^1.1.3",
|
|
80
|
-
"reduxsauce": "^1.1.2",
|
|
81
|
-
"reselect": "^4.0.0"
|
|
61
|
+
"react": "^17.0.2",
|
|
62
|
+
"react-dom": "^17.0.2",
|
|
63
|
+
"react-redux": "^7.2.6",
|
|
64
|
+
"redux-saga": "^1.1.3"
|
|
82
65
|
}
|
|
83
66
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function PresetBrowser(): import("../../di").Preset;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PresetBrowser = void 0;
|
|
4
|
+
/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
|
|
5
|
+
const di_1 = require("../../di");
|
|
6
|
+
const tokens_1 = require("../../tokens");
|
|
7
|
+
const base_1 = require("../../config/base");
|
|
8
|
+
const browser_1 = require("../../config/browser");
|
|
9
|
+
const logger_1 = require("../../logger");
|
|
10
|
+
const sentry_1 = require("../../logger/handler/sentry");
|
|
11
|
+
const saga_runner_1 = require("../../saga-runner");
|
|
12
|
+
const browser_2 = require("@sentry/browser");
|
|
13
|
+
const middleware_axios_1 = require("middleware-axios");
|
|
14
|
+
function PresetBrowser() {
|
|
15
|
+
return (0, di_1.createPreset)([
|
|
16
|
+
[tokens_1.KnownToken.Config.source, browser_1.createConfigSource],
|
|
17
|
+
[tokens_1.KnownToken.Config.base, provideBaseConfig],
|
|
18
|
+
[tokens_1.KnownToken.logger, provideLogger],
|
|
19
|
+
[tokens_1.KnownToken.sagaRunner, provideSagaRunner],
|
|
20
|
+
[tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
exports.PresetBrowser = PresetBrowser;
|
|
24
|
+
function provideBaseConfig(resolve) {
|
|
25
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
26
|
+
return (0, base_1.createBaseConfig)(source);
|
|
27
|
+
}
|
|
28
|
+
function provideLogger(resolve) {
|
|
29
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
30
|
+
const client = new browser_2.BrowserClient({
|
|
31
|
+
dsn: source.require('SENTRY_CLIENT_DSN'),
|
|
32
|
+
release: source.require('SENTRY_RELEASE'),
|
|
33
|
+
environment: source.require('SENTRY_ENVIRONMENT'),
|
|
34
|
+
integrations: [...browser_2.defaultIntegrations],
|
|
35
|
+
});
|
|
36
|
+
const hub = new browser_2.Hub(client);
|
|
37
|
+
const logger = (0, logger_1.createLogger)();
|
|
38
|
+
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
39
|
+
return logger;
|
|
40
|
+
}
|
|
41
|
+
function provideSagaRunner(resolve) {
|
|
42
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
43
|
+
return (0, saga_runner_1.createSagaRunner)(logger);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,iCAAiD;AACjD,yCAA0C;AAC1C,4CAAqD;AACrD,kDAA0D;AAC1D,yCAA4C;AAC5C,wDAAkE;AAClE,mDAAqD;AACrD,6CAA0E;AAI1E,uDAA0C;AAE1C,SAAgB,aAAa;IAC3B,OAAO,IAAA,iBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,4BAAkB,CAAC;QAC9C,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC3C,CAAC,mBAAU,CAAC,MAAM,EAAE,aAAa,CAAC;QAClC,CAAC,mBAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC;QAC1C,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAM,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AARD,sCAQC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAI,uBAAa,CAAC;QAC/B,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACjD,YAAY,EAAE,CAAC,GAAG,6BAAmB,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,MAAM,CAAC,SAAS,CAAC,IAAA,4BAAmB,EAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BaseConfig } from '../../config/types';
|
|
2
|
+
import type { Logger } from '../../logger/types';
|
|
3
|
+
import type { Tracer } from '@opentelemetry/api';
|
|
4
|
+
import type { DefaultMiddleware } from '../../http-server/types';
|
|
5
|
+
import { Provider, Preset } from '../../di';
|
|
6
|
+
import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
|
|
7
|
+
import { Resource } from '@opentelemetry/resources';
|
|
8
|
+
/**
|
|
9
|
+
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
10
|
+
* @return Preset.
|
|
11
|
+
*/
|
|
12
|
+
export declare function PresetNode(): Preset;
|
|
13
|
+
export declare const provideBaseConfig: Provider<BaseConfig>;
|
|
14
|
+
export declare const provideLogger: Provider<Logger>;
|
|
15
|
+
export declare const provideTracer: Provider<Tracer>;
|
|
16
|
+
export declare const provideSpanExporter: Provider<SpanExporter>;
|
|
17
|
+
export declare const provideTracerProvider: Provider<BasicTracerProvider>;
|
|
18
|
+
export declare const provideTracerProviderResource: Provider<Resource>;
|
|
19
|
+
export declare const provideDefaultMiddleware: Provider<DefaultMiddleware>;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.provideDefaultMiddleware = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.provideLogger = exports.provideBaseConfig = exports.PresetNode = void 0;
|
|
7
|
+
const di_1 = require("../../di");
|
|
8
|
+
const tracing_1 = require("@opentelemetry/tracing");
|
|
9
|
+
const tokens_1 = require("../../tokens");
|
|
10
|
+
const node_1 = require("../../config/node");
|
|
11
|
+
const base_1 = require("../../config/base");
|
|
12
|
+
const logger_1 = require("../../logger");
|
|
13
|
+
const console_1 = require("../../logger/handler/console");
|
|
14
|
+
const sentry_1 = require("../../logger/handler/sentry");
|
|
15
|
+
const logging_1 = require("../../http-server/middleware/logging");
|
|
16
|
+
const tracing_2 = require("../../http-server/middleware/tracing");
|
|
17
|
+
const metrics_1 = require("../../http-server/middleware/metrics");
|
|
18
|
+
const node_2 = require("../../metrics/node");
|
|
19
|
+
const exporter_jaeger_1 = require("@opentelemetry/exporter-jaeger");
|
|
20
|
+
const middleware_axios_1 = require("middleware-axios");
|
|
21
|
+
const express_1 = __importDefault(require("express"));
|
|
22
|
+
const node_3 = require("@sentry/node");
|
|
23
|
+
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
|
|
24
|
+
const resources_1 = require("@opentelemetry/resources");
|
|
25
|
+
const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
|
|
26
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
27
|
+
const tracing_3 = require("../../tracing");
|
|
28
|
+
const os_1 = require("os");
|
|
29
|
+
/**
|
|
30
|
+
* Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
|
|
31
|
+
* @return Preset.
|
|
32
|
+
*/
|
|
33
|
+
function PresetNode() {
|
|
34
|
+
return (0, di_1.createPreset)([
|
|
35
|
+
[tokens_1.KnownToken.Config.source, node_1.createConfigSource],
|
|
36
|
+
[tokens_1.KnownToken.Config.base, exports.provideBaseConfig],
|
|
37
|
+
[tokens_1.KnownToken.logger, exports.provideLogger],
|
|
38
|
+
[tokens_1.KnownToken.Tracing.tracer, exports.provideTracer],
|
|
39
|
+
[tokens_1.KnownToken.Tracing.spanExporter, exports.provideSpanExporter],
|
|
40
|
+
[tokens_1.KnownToken.Tracing.tracerProvider, exports.provideTracerProvider],
|
|
41
|
+
[tokens_1.KnownToken.Tracing.tracerProviderResource, exports.provideTracerProviderResource],
|
|
42
|
+
[tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
|
|
43
|
+
[tokens_1.KnownToken.Http.Server.factory, () => express_1.default],
|
|
44
|
+
[tokens_1.KnownToken.Http.Server.Defaults.middleware, exports.provideDefaultMiddleware],
|
|
45
|
+
[tokens_1.KnownToken.Metrics.httpApp, node_2.createMetricsHttpApp],
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
exports.PresetNode = PresetNode;
|
|
49
|
+
const provideBaseConfig = resolve => {
|
|
50
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
51
|
+
return (0, base_1.createBaseConfig)(source);
|
|
52
|
+
};
|
|
53
|
+
exports.provideBaseConfig = provideBaseConfig;
|
|
54
|
+
const provideLogger = resolve => {
|
|
55
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
56
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
57
|
+
const client = new node_3.NodeClient({
|
|
58
|
+
dsn: source.require('SENTRY_SERVER_DSN'),
|
|
59
|
+
release: source.require('SENTRY_RELEASE'),
|
|
60
|
+
environment: source.require('SENTRY_ENVIRONMENT'),
|
|
61
|
+
integrations: [...node_3.defaultIntegrations],
|
|
62
|
+
});
|
|
63
|
+
const hub = new node_3.Hub(client);
|
|
64
|
+
const logger = (0, logger_1.createLogger)();
|
|
65
|
+
logger.subscribe((0, console_1.createConsoleHandler)(config));
|
|
66
|
+
logger.subscribe((0, sentry_1.createSentryHandler)(hub));
|
|
67
|
+
return logger;
|
|
68
|
+
};
|
|
69
|
+
exports.provideLogger = provideLogger;
|
|
70
|
+
const provideTracer = resolve => {
|
|
71
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
72
|
+
const provider = resolve(tokens_1.KnownToken.Tracing.tracerProvider);
|
|
73
|
+
return provider.getTracer(config.appName, config.appVersion);
|
|
74
|
+
};
|
|
75
|
+
exports.provideTracer = provideTracer;
|
|
76
|
+
const provideSpanExporter = resolve => {
|
|
77
|
+
const source = resolve(tokens_1.KnownToken.Config.source);
|
|
78
|
+
const exporter = new exporter_jaeger_1.JaegerExporter({
|
|
79
|
+
host: source.require('JAEGER_AGENT_HOST'),
|
|
80
|
+
port: parseInt(source.require('JAEGER_AGENT_PORT')) || undefined,
|
|
81
|
+
});
|
|
82
|
+
return exporter;
|
|
83
|
+
};
|
|
84
|
+
exports.provideSpanExporter = provideSpanExporter;
|
|
85
|
+
const provideTracerProvider = resolve => {
|
|
86
|
+
const exporter = resolve(tokens_1.KnownToken.Tracing.spanExporter);
|
|
87
|
+
const resource = resolve(tokens_1.KnownToken.Tracing.tracerProviderResource);
|
|
88
|
+
const provider = new sdk_trace_node_1.NodeTracerProvider({
|
|
89
|
+
resource,
|
|
90
|
+
});
|
|
91
|
+
provider.addSpanProcessor(new tracing_1.BatchSpanProcessor(exporter)); // @todo разобраться с as any
|
|
92
|
+
provider.register({
|
|
93
|
+
propagator: new propagator_jaeger_1.JaegerPropagator(),
|
|
94
|
+
});
|
|
95
|
+
return provider; // @todo разобраться с as any
|
|
96
|
+
};
|
|
97
|
+
exports.provideTracerProvider = provideTracerProvider;
|
|
98
|
+
const provideTracerProviderResource = resolve => {
|
|
99
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
100
|
+
return (0, tracing_3.getConventionalResource)(config).merge(new resources_1.Resource({
|
|
101
|
+
[semantic_conventions_1.SemanticResourceAttributes.HOST_NAME]: (0, os_1.hostname)(),
|
|
102
|
+
}));
|
|
103
|
+
};
|
|
104
|
+
exports.provideTracerProviderResource = provideTracerProviderResource;
|
|
105
|
+
const provideDefaultMiddleware = resolve => {
|
|
106
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
107
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
108
|
+
const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
|
|
109
|
+
const metrics = (0, node_2.createDefaultMetrics)();
|
|
110
|
+
return {
|
|
111
|
+
start: [node_3.Handlers.requestHandler()],
|
|
112
|
+
logging: [(0, logging_1.loggingMiddleware)(config, logger)],
|
|
113
|
+
tracing: [(0, tracing_2.tracingMiddleware)(tracer)],
|
|
114
|
+
metrics: [
|
|
115
|
+
(0, metrics_1.responseMetricsMiddleware)(config, {
|
|
116
|
+
counter: metrics.requestCount,
|
|
117
|
+
histogram: metrics.responseDuration,
|
|
118
|
+
}),
|
|
119
|
+
(0, metrics_1.renderMetricsMiddleware)(config, {
|
|
120
|
+
histogram: metrics.renderDuration,
|
|
121
|
+
}),
|
|
122
|
+
],
|
|
123
|
+
finish: [node_3.Handlers.errorHandler()],
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
exports.provideDefaultMiddleware = provideDefaultMiddleware;
|
|
127
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { SagaRunner } from '../../saga-runner/types';
|
|
3
|
+
import type { PageTemplate } from '../../http-server/types';
|
|
4
|
+
import type { Handler } from 'express';
|
|
5
|
+
import { Application, Preset, Provider, Resolve } from '../../di';
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
8
|
+
* @return Preset.
|
|
9
|
+
*/
|
|
10
|
+
export declare function PresetResponse(): Preset;
|
|
11
|
+
export declare const provideSagaRunner: Provider<SagaRunner>;
|
|
12
|
+
export declare const provideRender: Provider<(el: JSX.Element) => string | Promise<string>>;
|
|
13
|
+
export declare const provideTemplate: Provider<PageTemplate>;
|
|
14
|
+
export declare const provideMain: Provider<() => void>;
|
|
15
|
+
/**
|
|
16
|
+
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
17
|
+
* @param appFactory Фабрика di-приложения запроса.
|
|
18
|
+
* @return Обработчик.
|
|
19
|
+
*/
|
|
20
|
+
export declare function HandlerProvider(appFactory: () => Application): (resolve: Resolve) => Handler;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HandlerProvider = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideSagaRunner = exports.PresetResponse = void 0;
|
|
4
|
+
const di_1 = require("../../di");
|
|
5
|
+
const tokens_1 = require("../../tokens");
|
|
6
|
+
const server_1 = require("react-dom/server");
|
|
7
|
+
const saga_runner_1 = require("../../saga-runner");
|
|
8
|
+
const constants_1 = require("../../http-server/constants");
|
|
9
|
+
const template_1 = require("../../http-server/template");
|
|
10
|
+
const utils_1 = require("../../http-server/utils");
|
|
11
|
+
/**
|
|
12
|
+
* Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
|
|
13
|
+
* @return Preset.
|
|
14
|
+
*/
|
|
15
|
+
function PresetResponse() {
|
|
16
|
+
return (0, di_1.createPreset)([
|
|
17
|
+
[tokens_1.KnownToken.sagaRunner, exports.provideSagaRunner],
|
|
18
|
+
[tokens_1.KnownToken.Response.render, exports.provideRender],
|
|
19
|
+
[tokens_1.KnownToken.Response.template, exports.provideTemplate],
|
|
20
|
+
[tokens_1.KnownToken.Response.main, exports.provideMain],
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
exports.PresetResponse = PresetResponse;
|
|
24
|
+
const provideSagaRunner = resolve => {
|
|
25
|
+
const logger = resolve(tokens_1.KnownToken.logger);
|
|
26
|
+
return (0, saga_runner_1.createSagaRunner)(logger);
|
|
27
|
+
};
|
|
28
|
+
exports.provideSagaRunner = provideSagaRunner;
|
|
29
|
+
const provideRender = resolve => {
|
|
30
|
+
const { res } = resolve(tokens_1.KnownToken.Response.context);
|
|
31
|
+
return function render(element) {
|
|
32
|
+
res.emit(constants_1.RESPONSE_EVENT.renderStart);
|
|
33
|
+
const result = (0, server_1.renderToString)(element);
|
|
34
|
+
res.emit(constants_1.RESPONSE_EVENT.renderFinish);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
exports.provideRender = provideRender;
|
|
39
|
+
const provideTemplate = resolve => {
|
|
40
|
+
const config = resolve(tokens_1.KnownToken.Config.base);
|
|
41
|
+
return function template(data) {
|
|
42
|
+
return data.type === 'html'
|
|
43
|
+
? (0, template_1.pageTemplate)({ ...data, title: `[dev] ${config.appName}` })
|
|
44
|
+
: data.markup;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
exports.provideTemplate = provideTemplate;
|
|
48
|
+
const provideMain = resolve => {
|
|
49
|
+
const context = resolve(tokens_1.KnownToken.Response.context);
|
|
50
|
+
const assets = resolve(tokens_1.KnownToken.Response.assets);
|
|
51
|
+
const prepare = resolve(tokens_1.KnownToken.Response.prepare);
|
|
52
|
+
const render = resolve(tokens_1.KnownToken.Response.render);
|
|
53
|
+
const template = resolve(tokens_1.KnownToken.Response.template);
|
|
54
|
+
return async function main() {
|
|
55
|
+
utils_1.PageResponse.create()
|
|
56
|
+
.markup(await render(await prepare()))
|
|
57
|
+
.script(assets.js)
|
|
58
|
+
.styles(assets.css)
|
|
59
|
+
.format(utils_1.PageResponse.defineFormat(context.req))
|
|
60
|
+
.template(template)
|
|
61
|
+
.send(context.res);
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
exports.provideMain = provideMain;
|
|
65
|
+
/**
|
|
66
|
+
* Возвращает express-handler, создающий дочернее di-приложение при запросе.
|
|
67
|
+
* @param appFactory Фабрика di-приложения запроса.
|
|
68
|
+
* @return Обработчик.
|
|
69
|
+
*/
|
|
70
|
+
function HandlerProvider(appFactory) {
|
|
71
|
+
return function provider(resolve) {
|
|
72
|
+
const parent = resolve(di_1.CURRENT_APP);
|
|
73
|
+
return function handler(req, res, next) {
|
|
74
|
+
const app = appFactory();
|
|
75
|
+
app.attach(parent);
|
|
76
|
+
app.bind(tokens_1.KnownToken.Response.context).toValue({ req, res, next });
|
|
77
|
+
app.get(tokens_1.KnownToken.Response.main)();
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
exports.HandlerProvider = HandlerProvider;
|
|
82
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createSagaRunner = void 0;
|
|
27
|
+
const redux_saga_1 = __importStar(require("redux-saga"));
|
|
28
|
+
const utils_1 = require("../error-tracker/utils");
|
|
29
|
+
/**
|
|
30
|
+
* Возвращает новый runner для redux-saga.
|
|
31
|
+
* @param logger Logger.
|
|
32
|
+
* @return Runner.
|
|
33
|
+
*/
|
|
34
|
+
function createSagaRunner(logger) {
|
|
35
|
+
const middleware = (0, redux_saga_1.default)({
|
|
36
|
+
onError: (error, { sagaStack }) => {
|
|
37
|
+
logger.error(
|
|
38
|
+
// @todo убрать отсюда упоминание sentry, вынести в провайдер, возможно заменить аргумент logger на onError
|
|
39
|
+
new utils_1.SentryError(error.message, {
|
|
40
|
+
extra: { key: 'Saga stack', data: sagaStack },
|
|
41
|
+
}));
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
middleware,
|
|
46
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
47
|
+
prepare(store, { timeout } = {}) {
|
|
48
|
+
return {
|
|
49
|
+
// eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
|
|
50
|
+
async run(saga, ...args) {
|
|
51
|
+
let ready = false;
|
|
52
|
+
await Promise.race([
|
|
53
|
+
// ждем пока сага выполнится
|
|
54
|
+
middleware
|
|
55
|
+
.run(saga, ...args)
|
|
56
|
+
.toPromise()
|
|
57
|
+
.then(() => {
|
|
58
|
+
ready = true;
|
|
59
|
+
}),
|
|
60
|
+
// если сага не выполнилась за положенное время - прерываем
|
|
61
|
+
typeof timeout === 'number' &&
|
|
62
|
+
Number.isFinite(timeout) &&
|
|
63
|
+
new Promise(resolve => {
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
if (!ready) {
|
|
66
|
+
logger.error(Error('Сага прервана по таймауту'));
|
|
67
|
+
store.dispatch(redux_saga_1.END);
|
|
68
|
+
}
|
|
69
|
+
resolve();
|
|
70
|
+
}, timeout);
|
|
71
|
+
}),
|
|
72
|
+
]);
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
exports.createSagaRunner = createSagaRunner;
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/saga-runner/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,yDAA6D;AAC7D,kDAAqD;AAErD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,MAAM,UAAU,GAAG,IAAA,oBAAoB,EAAC;QACtC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK;YACV,2GAA2G;YAC3G,IAAI,mBAAW,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;aAC9C,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QAEV,8DAA8D;QAC9D,OAAO,CAAC,KAAY,EAAE,EAAE,OAAO,KAA2B,EAAE;YAC1D,OAAO;gBACL,8DAA8D;gBAC9D,KAAK,CAAC,GAAG,CAAiB,IAAO,EAAE,GAAG,IAAmB;oBACvD,IAAI,KAAK,GAAG,KAAK,CAAC;oBAElB,MAAM,OAAO,CAAC,IAAI,CAAC;wBACjB,4BAA4B;wBAC5B,UAAU;6BACP,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;6BAClB,SAAS,EAAE;6BACX,IAAI,CAAC,GAAG,EAAE;4BACT,KAAK,GAAG,IAAI,CAAC;wBACf,CAAC,CAAC;wBAEJ,2DAA2D;wBAC3D,OAAO,OAAO,KAAK,QAAQ;4BACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;4BACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gCAC1B,UAAU,CAAC,GAAG,EAAE;oCACd,IAAI,CAAC,KAAK,EAAE;wCACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;wCACjD,KAAK,CAAC,QAAQ,CAAC,gBAAG,CAAC,CAAC;qCACrB;oCACD,OAAO,EAAE,CAAC;gCACZ,CAAC,EAAE,OAAO,CAAC,CAAC;4BACd,CAAC,CAAC;qBACL,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAhDD,4CAgDC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Saga, SagaMiddleware } from 'redux-saga';
|
|
2
|
+
import type { Store } from '@reduxjs/toolkit';
|
|
3
|
+
export interface SagaRunner {
|
|
4
|
+
middleware: SagaMiddleware<any>;
|
|
5
|
+
prepare: (store: Store, options?: {
|
|
6
|
+
timeout?: number;
|
|
7
|
+
}) => {
|
|
8
|
+
run: <S extends Saga>(saga: S, ...args: Parameters<S>) => Promise<void>;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/saga-runner/types.ts"],"names":[],"mappings":""}
|
package/tokens.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { Application } from 'express';
|
|
3
|
+
import type { DefaultMiddleware, PageAssets, PageTemplate, ResponseContext } from './http-server/types';
|
|
4
|
+
import type { SagaRunner } from './saga-runner/types';
|
|
5
|
+
import type { Logger } from './logger/types';
|
|
6
|
+
import type { HttpClientFactory } from './http-client/types';
|
|
7
|
+
import type { BaseConfig } from './config/types';
|
|
8
|
+
import type { Tracer } from '@opentelemetry/api';
|
|
9
|
+
import type { Cache } from './cache/types';
|
|
10
|
+
import type { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
|
|
11
|
+
import type { Resource } from '@opentelemetry/resources';
|
|
12
|
+
export declare const KnownToken: {
|
|
13
|
+
readonly Config: {
|
|
14
|
+
readonly source: import("./di").Token<import("@humanwhocodes/env").Env>;
|
|
15
|
+
readonly base: import("./di").Token<BaseConfig>;
|
|
16
|
+
};
|
|
17
|
+
readonly cache: import("./di").Token<Cache>;
|
|
18
|
+
readonly logger: import("./di").Token<Logger>;
|
|
19
|
+
readonly sagaRunner: import("./di").Token<SagaRunner>;
|
|
20
|
+
readonly Tracing: {
|
|
21
|
+
readonly tracer: import("./di").Token<Tracer>;
|
|
22
|
+
readonly spanExporter: import("./di").Token<SpanExporter>;
|
|
23
|
+
readonly tracerProvider: import("./di").Token<BasicTracerProvider>;
|
|
24
|
+
readonly tracerProviderResource: import("./di").Token<Resource>;
|
|
25
|
+
};
|
|
26
|
+
readonly Metrics: {
|
|
27
|
+
readonly httpApp: import("./di").Token<Application>;
|
|
28
|
+
};
|
|
29
|
+
readonly Http: {
|
|
30
|
+
readonly Client: {
|
|
31
|
+
readonly factory: import("./di").Token<HttpClientFactory>;
|
|
32
|
+
};
|
|
33
|
+
readonly Server: {
|
|
34
|
+
readonly factory: import("./di").Token<() => Application>;
|
|
35
|
+
readonly Defaults: {
|
|
36
|
+
readonly middleware: import("./di").Token<DefaultMiddleware>;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
readonly Response: {
|
|
41
|
+
readonly template: import("./di").Token<PageTemplate>;
|
|
42
|
+
readonly context: import("./di").Token<ResponseContext>;
|
|
43
|
+
readonly assets: import("./di").Token<PageAssets>;
|
|
44
|
+
readonly prepare: import("./di").Token<() => JSX.Element | Promise<JSX.Element>>;
|
|
45
|
+
readonly render: import("./di").Token<(element: JSX.Element) => string | Promise<string>>;
|
|
46
|
+
readonly main: import("./di").Token<() => void>;
|
|
47
|
+
};
|
|
48
|
+
};
|