@sima-land/isomorph 11.0.0-alpha.62 → 11.0.0-alpha.63
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/dist/cjs/cache/index.js.map +1 -1
- package/dist/cjs/cache/types.js.map +1 -1
- package/dist/cjs/config/base.js.map +1 -1
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/config/source.js.map +1 -1
- package/dist/cjs/config/types.js.map +1 -1
- package/dist/cjs/di/application.js.map +1 -1
- package/dist/cjs/di/container.js.map +1 -1
- package/dist/cjs/di/errors.js.map +1 -1
- package/dist/cjs/di/index.js.map +1 -1
- package/dist/cjs/di/preset.js.map +1 -1
- package/dist/cjs/di/token.js.map +1 -1
- package/dist/cjs/di/types.js.map +1 -1
- package/dist/cjs/http/errors.js.map +1 -1
- package/dist/cjs/http/index.js.map +1 -1
- package/dist/cjs/http/types.js.map +1 -1
- package/dist/cjs/http/utils.js.map +1 -1
- package/dist/cjs/log/errors.js.map +1 -1
- package/dist/cjs/log/handler/pino.js.map +1 -1
- package/dist/cjs/log/handler/sentry.js.map +1 -1
- package/dist/cjs/log/index.js.map +1 -1
- package/dist/cjs/log/logger.js.map +1 -1
- package/dist/cjs/log/types.js.map +1 -1
- package/dist/cjs/package.json +23 -23
- package/dist/cjs/preset/isomorphic/index.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/abort-controller.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/axios-factory.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/axios-log-handler.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/base-config.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/fetch.js.map +1 -1
- package/dist/cjs/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -1
- package/dist/cjs/preset/isomorphic/types.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/axios-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/disableable.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/display-url.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/fetch-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/get-fetch-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/http-api-host-pool.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/http-status.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/saga-logging.js.map +1 -1
- package/dist/cjs/preset/isomorphic/utils/severity-from-status.js.map +1 -1
- package/dist/cjs/preset/node/index.js.map +1 -1
- package/dist/cjs/preset/node/providers/config-source.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-error-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-factory.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-log-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-metrics-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-request-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/express-tracing-middleware.js.map +1 -1
- package/dist/cjs/preset/node/providers/log-handler-pino.js.map +1 -1
- package/dist/cjs/preset/node/providers/log-handler-sentry.js.map +1 -1
- package/dist/cjs/preset/node/providers/logger.js.map +1 -1
- package/dist/cjs/preset/node/providers/main-express-app.js +0 -1
- package/dist/cjs/preset/node/providers/main-express-app.js.map +1 -1
- package/dist/cjs/preset/node/providers/metrics-express-app.js.map +1 -1
- package/dist/cjs/preset/node/providers/public-envs.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer-provider.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer-resource.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -1
- package/dist/cjs/preset/node/providers/telemetry-tracer.js.map +1 -1
- package/dist/cjs/preset/node/types.js.map +1 -1
- package/dist/cjs/preset/node/utils/axios-tracing-middleware.js.map +1 -1
- package/dist/cjs/preset/node/utils/emitter-as-target.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-client-ip.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-fetch-tracing.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-forwarded-headers.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-handler-metrics.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-page-response-format.js.map +1 -1
- package/dist/cjs/preset/node/utils/get-serve-measuring.js.map +1 -1
- package/dist/cjs/preset/node/utils/handler-provider.js.map +1 -1
- package/dist/cjs/preset/node/utils/telemetry.js.map +1 -1
- package/dist/cjs/preset/node-handler/index.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/accepts-type.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/axios-log-handler.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/axios-middleware.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/fetch-middleware.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/handler-main.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/response-events.js.map +1 -1
- package/dist/cjs/preset/node-handler/providers/specific-params.js.map +1 -1
- package/dist/cjs/preset/server/constants.js.map +1 -1
- package/dist/cjs/preset/server/index.js.map +1 -1
- package/dist/cjs/preset/server/providers/element-to-string.js.map +1 -1
- package/dist/cjs/preset/server/providers/fetch-log-handler.js.map +1 -1
- package/dist/cjs/preset/server/providers/fetch-middleware.js.map +1 -1
- package/dist/cjs/preset/server/providers/format-page-response.js.map +1 -1
- package/dist/cjs/preset/server/providers/known-http-api-hosts.js.map +1 -1
- package/dist/cjs/preset/server/providers/page-helmet.js.map +1 -1
- package/dist/cjs/preset/server/providers/page-render.js.map +1 -1
- package/dist/cjs/preset/server/providers/response-events.js.map +1 -1
- package/dist/cjs/preset/server/providers/serve.js +2 -1
- package/dist/cjs/preset/server/providers/serve.js.map +1 -1
- package/dist/cjs/preset/server/providers/ssr-bridge-server-side.js.map +1 -1
- package/dist/cjs/preset/server/types.js.map +1 -1
- package/dist/cjs/preset/server/utils/apply-server-middleware.js.map +1 -1
- package/dist/cjs/preset/server/utils/format-handler-error.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-client-ip.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-forwarded-headers.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-health-check.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-page-response-format.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-serve-error-logging.js.map +1 -1
- package/dist/cjs/preset/server/utils/get-serve-logging.js.map +1 -1
- package/dist/cjs/preset/server/utils/handler-provider.js.map +1 -1
- package/dist/cjs/preset/server/utils/regular-helmet.js.map +1 -1
- package/dist/cjs/preset/server/utils/specific-extras.js.map +1 -1
- package/dist/cjs/preset/web/index.js.map +1 -1
- package/dist/cjs/preset/web/providers/axios-middleware.js.map +1 -1
- package/dist/cjs/preset/web/providers/config-source.js.map +1 -1
- package/dist/cjs/preset/web/providers/fetch-middleware.js.map +1 -1
- package/dist/cjs/preset/web/providers/known-http-api-hosts.js.map +1 -1
- package/dist/cjs/preset/web/providers/logger.js.map +1 -1
- package/dist/cjs/preset/web/providers/ssr-bridge-client-side.js.map +1 -1
- package/dist/cjs/tokens.js.map +1 -1
- package/dist/cjs/utils/axios/index.js.map +1 -1
- package/dist/cjs/utils/axios/middleware/log.js.map +1 -1
- package/dist/cjs/utils/axios/sauce/index.js.map +1 -1
- package/dist/cjs/utils/axios/utils/index.js.map +1 -1
- package/dist/cjs/utils/express/handler/health-check.js.map +1 -1
- package/dist/cjs/utils/express/index.js.map +1 -1
- package/dist/cjs/utils/express/utils/index.js.map +1 -1
- package/dist/cjs/utils/function.js.map +1 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/math.js.map +1 -1
- package/dist/cjs/utils/react/error-handlers/index.js.map +1 -1
- package/dist/cjs/utils/react/index.js.map +1 -1
- package/dist/cjs/utils/redux/index.js.map +1 -1
- package/dist/cjs/utils/redux/remote-data.js.map +1 -1
- package/dist/cjs/utils/redux-saga/index.js.map +1 -1
- package/dist/cjs/utils/redux-saga/middleware.js.map +1 -1
- package/dist/cjs/utils/redux-saga/take-chain.js.map +1 -1
- package/dist/cjs/utils/redux-saga/types.js.map +1 -1
- package/dist/cjs/utils/selectors/create-curried-selector.js.map +1 -1
- package/dist/cjs/utils/ssr/index.js.map +1 -1
- package/dist/cjs/utils/web/analytics/data-layer.js.map +1 -1
- package/dist/cjs/utils/web/analytics/index.js.map +1 -1
- package/dist/cjs/utils/web/analytics/oko.js.map +1 -1
- package/dist/cjs/utils/web/storage/index.js.map +1 -1
- package/dist/cjs/utils/webpack/env/index.js.map +1 -1
- package/dist/cjs/utils/webpack/env/types.js.map +1 -1
- package/dist/cjs/utils/webpack/env/utils.js.map +1 -1
- package/dist/cjs/utils/webpack/index.js.map +1 -1
- package/dist/cjs/utils/webpack/module-federation/index.js.map +1 -1
- package/dist/cjs/utils/webpack/module-federation/types.js.map +1 -1
- package/dist/cjs/utils/webpack/module-federation/utils.js.map +1 -1
- package/dist/esm/cache/index.js.map +1 -1
- package/dist/esm/cache/types.js.map +1 -1
- package/dist/esm/config/base.js.map +1 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/source.js.map +1 -1
- package/dist/esm/config/types.js.map +1 -1
- package/dist/esm/di/application.js.map +1 -1
- package/dist/esm/di/container.js.map +1 -1
- package/dist/esm/di/errors.js.map +1 -1
- package/dist/esm/di/index.js.map +1 -1
- package/dist/esm/di/preset.js.map +1 -1
- package/dist/esm/di/token.js.map +1 -1
- package/dist/esm/di/types.js.map +1 -1
- package/dist/esm/http/errors.js.map +1 -1
- package/dist/esm/http/index.js.map +1 -1
- package/dist/esm/http/types.js.map +1 -1
- package/dist/esm/http/utils.js.map +1 -1
- package/dist/esm/log/errors.js.map +1 -1
- package/dist/esm/log/handler/pino.js.map +1 -1
- package/dist/esm/log/handler/sentry.js.map +1 -1
- package/dist/esm/log/index.js.map +1 -1
- package/dist/esm/log/logger.js.map +1 -1
- package/dist/esm/log/types.js.map +1 -1
- package/dist/esm/package.json +23 -23
- package/dist/esm/preset/isomorphic/index.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/abort-controller.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/axios-factory.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/axios-log-handler.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/base-config.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/fetch.js.map +1 -1
- package/dist/esm/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -1
- package/dist/esm/preset/isomorphic/types.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/axios-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/disableable.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/display-url.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/fetch-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/get-fetch-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/http-api-host-pool.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/http-status.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/saga-logging.js.map +1 -1
- package/dist/esm/preset/isomorphic/utils/severity-from-status.js.map +1 -1
- package/dist/esm/preset/node/index.js.map +1 -1
- package/dist/esm/preset/node/providers/config-source.js.map +1 -1
- package/dist/esm/preset/node/providers/express-error-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-factory.js.map +1 -1
- package/dist/esm/preset/node/providers/express-log-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-metrics-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-request-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/express-tracing-middleware.js.map +1 -1
- package/dist/esm/preset/node/providers/log-handler-pino.js.map +1 -1
- package/dist/esm/preset/node/providers/log-handler-sentry.js.map +1 -1
- package/dist/esm/preset/node/providers/logger.js.map +1 -1
- package/dist/esm/preset/node/providers/main-express-app.js +0 -1
- package/dist/esm/preset/node/providers/main-express-app.js.map +1 -1
- package/dist/esm/preset/node/providers/metrics-express-app.js.map +1 -1
- package/dist/esm/preset/node/providers/public-envs.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-provider.js +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-provider.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-resource.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -1
- package/dist/esm/preset/node/providers/telemetry-tracer.js.map +1 -1
- package/dist/esm/preset/node/types.js.map +1 -1
- package/dist/esm/preset/node/utils/axios-tracing-middleware.js.map +1 -1
- package/dist/esm/preset/node/utils/emitter-as-target.js.map +1 -1
- package/dist/esm/preset/node/utils/get-client-ip.js.map +1 -1
- package/dist/esm/preset/node/utils/get-fetch-tracing.js.map +1 -1
- package/dist/esm/preset/node/utils/get-forwarded-headers.js.map +1 -1
- package/dist/esm/preset/node/utils/get-handler-metrics.js.map +1 -1
- package/dist/esm/preset/node/utils/get-page-response-format.js.map +1 -1
- package/dist/esm/preset/node/utils/get-serve-measuring.js.map +1 -1
- package/dist/esm/preset/node/utils/handler-provider.js.map +1 -1
- package/dist/esm/preset/node/utils/telemetry.js.map +1 -1
- package/dist/esm/preset/node-handler/index.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/accepts-type.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/axios-log-handler.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/axios-middleware.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/fetch-middleware.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/handler-main.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/response-events.js.map +1 -1
- package/dist/esm/preset/node-handler/providers/specific-params.js.map +1 -1
- package/dist/esm/preset/server/constants.js.map +1 -1
- package/dist/esm/preset/server/index.js.map +1 -1
- package/dist/esm/preset/server/providers/element-to-string.js.map +1 -1
- package/dist/esm/preset/server/providers/fetch-log-handler.js.map +1 -1
- package/dist/esm/preset/server/providers/fetch-middleware.js.map +1 -1
- package/dist/esm/preset/server/providers/format-page-response.js.map +1 -1
- package/dist/esm/preset/server/providers/known-http-api-hosts.js.map +1 -1
- package/dist/esm/preset/server/providers/page-helmet.js.map +1 -1
- package/dist/esm/preset/server/providers/page-render.js.map +1 -1
- package/dist/esm/preset/server/providers/response-events.js.map +1 -1
- package/dist/esm/preset/server/providers/serve.js +2 -1
- package/dist/esm/preset/server/providers/serve.js.map +1 -1
- package/dist/esm/preset/server/providers/ssr-bridge-server-side.js.map +1 -1
- package/dist/esm/preset/server/types.js.map +1 -1
- package/dist/esm/preset/server/utils/apply-server-middleware.js.map +1 -1
- package/dist/esm/preset/server/utils/format-handler-error.js.map +1 -1
- package/dist/esm/preset/server/utils/get-client-ip.js.map +1 -1
- package/dist/esm/preset/server/utils/get-forwarded-headers.js.map +1 -1
- package/dist/esm/preset/server/utils/get-health-check.js.map +1 -1
- package/dist/esm/preset/server/utils/get-page-response-format.js.map +1 -1
- package/dist/esm/preset/server/utils/get-serve-error-logging.js.map +1 -1
- package/dist/esm/preset/server/utils/get-serve-logging.js.map +1 -1
- package/dist/esm/preset/server/utils/handler-provider.js.map +1 -1
- package/dist/esm/preset/server/utils/regular-helmet.js.map +1 -1
- package/dist/esm/preset/server/utils/specific-extras.js.map +1 -1
- package/dist/esm/preset/web/index.js.map +1 -1
- package/dist/esm/preset/web/providers/axios-middleware.js.map +1 -1
- package/dist/esm/preset/web/providers/config-source.js.map +1 -1
- package/dist/esm/preset/web/providers/fetch-middleware.js.map +1 -1
- package/dist/esm/preset/web/providers/known-http-api-hosts.js.map +1 -1
- package/dist/esm/preset/web/providers/logger.js.map +1 -1
- package/dist/esm/preset/web/providers/ssr-bridge-client-side.js.map +1 -1
- package/dist/esm/tokens.js.map +1 -1
- package/dist/esm/utils/axios/index.js.map +1 -1
- package/dist/esm/utils/axios/middleware/log.js.map +1 -1
- package/dist/esm/utils/axios/sauce/index.js.map +1 -1
- package/dist/esm/utils/axios/utils/index.js.map +1 -1
- package/dist/esm/utils/express/handler/health-check.js.map +1 -1
- package/dist/esm/utils/express/index.js.map +1 -1
- package/dist/esm/utils/express/utils/index.js.map +1 -1
- package/dist/esm/utils/function.js.map +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/math.js.map +1 -1
- package/dist/esm/utils/react/error-handlers/index.js.map +1 -1
- package/dist/esm/utils/react/index.js.map +1 -1
- package/dist/esm/utils/redux/index.js.map +1 -1
- package/dist/esm/utils/redux/remote-data.js.map +1 -1
- package/dist/esm/utils/redux-saga/index.js.map +1 -1
- package/dist/esm/utils/redux-saga/middleware.js.map +1 -1
- package/dist/esm/utils/redux-saga/take-chain.js.map +1 -1
- package/dist/esm/utils/redux-saga/types.js.map +1 -1
- package/dist/esm/utils/selectors/create-curried-selector.js.map +1 -1
- package/dist/esm/utils/ssr/index.js.map +1 -1
- package/dist/esm/utils/web/analytics/data-layer.js.map +1 -1
- package/dist/esm/utils/web/analytics/index.js.map +1 -1
- package/dist/esm/utils/web/analytics/oko.js.map +1 -1
- package/dist/esm/utils/web/storage/index.js.map +1 -1
- package/dist/esm/utils/webpack/env/index.js.map +1 -1
- package/dist/esm/utils/webpack/env/types.js.map +1 -1
- package/dist/esm/utils/webpack/env/utils.js.map +1 -1
- package/dist/esm/utils/webpack/index.js.map +1 -1
- package/dist/esm/utils/webpack/module-federation/index.js.map +1 -1
- package/dist/esm/utils/webpack/module-federation/types.js.map +1 -1
- package/dist/esm/utils/webpack/module-federation/utils.js.map +1 -1
- package/dist/types/http/utils.d.ts +1 -1
- package/dist/types/http/utils.d.ts.map +1 -1
- package/dist/types/log/types.d.ts +7 -7
- package/dist/types/log/types.d.ts.map +1 -1
- package/dist/types/preset/isomorphic/providers/axios-factory.d.ts.map +1 -1
- package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts +2 -2
- package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts.map +1 -1
- package/dist/types/preset/node/utils/emitter-as-target.d.ts +0 -1
- package/dist/types/preset/node/utils/emitter-as-target.d.ts.map +1 -1
- package/dist/types/preset/node/utils/get-handler-metrics.d.ts +3 -3
- package/dist/types/preset/server/providers/page-helmet.d.ts +1 -2
- package/dist/types/preset/server/providers/page-helmet.d.ts.map +1 -1
- package/dist/types/preset/server/providers/serve.d.ts.map +1 -1
- package/dist/types/preset/server/types.d.ts +0 -1
- package/dist/types/preset/server/types.d.ts.map +1 -1
- package/dist/types/preset/server/utils/regular-helmet.d.ts +2 -2
- package/dist/types/preset/server/utils/regular-helmet.d.ts.map +1 -1
- package/dist/types/tokens.d.ts +0 -1
- package/dist/types/tokens.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/redux/remote-data.d.ts +13 -3
- package/dist/types/utils/redux/remote-data.d.ts.map +1 -1
- package/dist/types/utils/selectors/create-curried-selector.d.ts +2 -2
- package/dist/types/utils/selectors/create-curried-selector.d.ts.map +1 -1
- package/dist/types/utils/ssr/index.d.ts.map +1 -1
- package/package.json +55 -52
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":["DetailedError","Error","constructor","message","data","Breadcrumb","type"],"sources":["../../../src/log/errors.ts"],"sourcesContent":["import type { ErrorDetails, BreadcrumbDetails } from './types';\n\n/**\n * Ошибка с данными.\n */\nexport class DetailedError extends Error {\n data: ErrorDetails;\n\n /**\n * @param message Сообщение.\n * @param data Данные.\n */\n constructor(message?: string, data: ErrorDetails = {}) {\n super(message);\n this.data = data;\n }\n}\n\n/**\n * Хлебная крошка.\n */\nexport class Breadcrumb {\n type: string;\n data: BreadcrumbDetails;\n\n /**\n * @param data Данные.\n */\n constructor(data: BreadcrumbDetails) {\n this.type = 'breadcrumb';\n this.data = data;\n }\n}\n"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,SAASC,KAAK,CAAC;EAGvC;AACF;AACA;AACA;EACEC,WAAWA,CAACC,OAAgB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAAE;IACrD,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,CAAC;EAItB;AACF;AACA;EACEH,WAAWA,CAACE,IAAuB,EAAE;IACnC,IAAI,CAACE,IAAI,GAAG,YAAY;IACxB,IAAI,CAACF,IAAI,GAAGA,IAAI;EAClB;AACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","names":["DetailedError","Error","constructor","message","data","Breadcrumb","type"],"sources":["../../../src/log/errors.ts"],"sourcesContent":["import type { ErrorDetails, BreadcrumbDetails } from './types';\n\n/**\n * Ошибка с данными.\n */\nexport class DetailedError extends Error {\n data: ErrorDetails;\n\n /**\n * @param message Сообщение.\n * @param data Данные.\n */\n constructor(message?: string, data: ErrorDetails = {}) {\n super(message);\n this.data = data;\n }\n}\n\n/**\n * Хлебная крошка.\n */\nexport class Breadcrumb {\n type: string;\n data: BreadcrumbDetails;\n\n /**\n * @param data Данные.\n */\n constructor(data: BreadcrumbDetails) {\n this.type = 'breadcrumb';\n this.data = data;\n }\n}\n"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,SAASC,KAAK,CAAC;EAGvC;AACF;AACA;AACA;EACEC,WAAWA,CAACC,OAAgB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAAE;IACrD,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,CAAC;EAItB;AACF;AACA;EACEH,WAAWA,CAACE,IAAuB,EAAE;IACnC,IAAI,CAACE,IAAI,GAAG,YAAY;IACxB,IAAI,CAACF,IAAI,GAAGA,IAAI;EAClB;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pino.js","names":["createPinoHandler","pinoInstance","pinoHandler","event","type","info","data","warn","debug","error"],"sources":["../../../../src/log/handler/pino.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport type pino from 'pino';\n\n/**\n * Возвращает новый handler для logger'а для вывода событий в терминал.\n * @param pinoInstance Конфиг.\n * @return Handler.\n */\nexport function createPinoHandler(pinoInstance: pino.Logger): LogHandler {\n return function pinoHandler(event) {\n switch (event.type) {\n case 'log':\n case 'info':\n pinoInstance.info(event.data);\n break;\n case 'warn':\n pinoInstance.warn(event.data);\n break;\n case 'debug':\n pinoInstance.debug(event.data);\n break;\n case 'error':\n pinoInstance.error(event.data);\n break;\n }\n };\n}\n"],"mappings":"AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAACC,YAAyB,EAAc;EACvE,OAAO,SAASC,WAAWA,CAACC,KAAK,EAAE;IACjC,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,KAAK;MACV,KAAK,MAAM;QACTH,YAAY,CAACI,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,MAAM;QACTL,YAAY,CAACM,IAAI,CAACJ,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,OAAO;QACVL,YAAY,CAACO,KAAK,CAACL,KAAK,CAACG,IAAI,CAAC;QAC9B;MACF,KAAK,OAAO;QACVL,YAAY,CAACQ,KAAK,CAACN,KAAK,CAACG,IAAI,CAAC;QAC9B;IACJ;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"pino.js","names":["createPinoHandler","pinoInstance","pinoHandler","event","type","info","data","warn","debug","error"],"sources":["../../../../src/log/handler/pino.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport type pino from 'pino';\n\n/**\n * Возвращает новый handler для logger'а для вывода событий в терминал.\n * @param pinoInstance Конфиг.\n * @return Handler.\n */\nexport function createPinoHandler(pinoInstance: pino.Logger): LogHandler {\n return function pinoHandler(event) {\n switch (event.type) {\n case 'log':\n case 'info':\n pinoInstance.info(event.data);\n break;\n case 'warn':\n pinoInstance.warn(event.data);\n break;\n case 'debug':\n pinoInstance.debug(event.data);\n break;\n case 'error':\n pinoInstance.error(event.data);\n break;\n }\n };\n}\n"],"mappings":"AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAACC,YAAyB,EAAc;EACvE,OAAO,SAASC,WAAWA,CAACC,KAAK,EAAE;IACjC,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,KAAK;MACV,KAAK,MAAM;QACTH,YAAY,CAACI,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,MAAM;QACTL,YAAY,CAACM,IAAI,CAACJ,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,OAAO;QACVL,YAAY,CAACO,KAAK,CAACL,KAAK,CAACG,IAAI,CAAC;QAC9B;MACF,KAAK,OAAO;QACVL,YAAY,CAACQ,KAAK,CAACN,KAAK,CAACG,IAAI,CAAC;QAC9B;IACJ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","names":["Breadcrumb","DetailedError","createSentryHandler","scopeInit","getScope","event","scope","type","error","data","level","context","extra","setLevel","list","Array","isArray","item","setContext","key","setExtra","captureException","breadcrumb","addBreadcrumb"],"sources":["../../../../src/log/handler/sentry.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport { Breadcrumb, DetailedError } from '../../log';\nimport type { Scope as BrowserScope } from '@sentry/browser';\nimport type { Scope as NodeScope } from '@sentry/node';\n\ntype Scope = BrowserScope | NodeScope;\n\n/**\n * Возвращает новый handler для logger'а для отправки событий в Sentry.\n * @param scopeInit Sentry Hub или функция которая его вернёт.\n * @return Handler.\n */\nexport function createSentryHandler(scopeInit: Scope | (() => Scope)): LogHandler {\n const getScope = typeof scopeInit === 'function' ? scopeInit : () => scopeInit;\n\n return event => {\n // ВАЖНО: каждый входящий http-запрос должен иметь свой собственный hub (ныне scope)\n // подробности: https://github.com/getsentry/sentry-javascript/discussions/5648\n // поэтому если передана функция - вызываем каждый раз (внутри обработчика)\n const scope = getScope();\n\n // error\n if (event.type === 'error') {\n const error = event.data;\n\n if (error instanceof DetailedError) {\n const { level, context, extra } = error.data;\n\n if (level) {\n scope.setLevel(level);\n }\n\n if (context) {\n const list = Array.isArray(context) ? context : [context];\n\n for (const item of list) {\n scope.setContext(item.key, item.data);\n }\n }\n\n if (extra) {\n scope.setExtra(extra.key, extra.data);\n }\n }\n\n scope.captureException(error);\n }\n\n // breadcrumb\n if (event.data instanceof Breadcrumb) {\n const breadcrumb = event.data.data;\n\n scope.addBreadcrumb(breadcrumb);\n }\n };\n}\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,aAAa,QAAQ,sBAAW;AAMrD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,SAAgC,EAAc;EAChF,MAAMC,QAAQ,GAAG,OAAOD,SAAS,KAAK,UAAU,GAAGA,SAAS,GAAG,MAAMA,SAAS;EAE9E,OAAOE,KAAK,IAAI;IACd;IACA;IACA;IACA,MAAMC,KAAK,GAAGF,QAAQ,CAAC,CAAC;;IAExB;IACA,IAAIC,KAAK,CAACE,IAAI,KAAK,OAAO,EAAE;MAC1B,MAAMC,KAAK,GAAGH,KAAK,CAACI,IAAI;MAExB,IAAID,KAAK,YAAYP,aAAa,EAAE;QAClC,MAAM;UAAES,KAAK;UAAEC,OAAO;UAAEC;QAAM,CAAC,GAAGJ,KAAK,CAACC,IAAI;QAE5C,IAAIC,KAAK,EAAE;UACTJ,KAAK,CAACO,QAAQ,CAACH,KAAK,CAAC;QACvB;QAEA,IAAIC,OAAO,EAAE;UACX,MAAMG,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;UAEzD,KAAK,MAAMM,IAAI,IAAIH,IAAI,EAAE;YACvBR,KAAK,CAACY,UAAU,CAACD,IAAI,CAACE,GAAG,EAAEF,IAAI,CAACR,IAAI,CAAC;UACvC;QACF;QAEA,IAAIG,KAAK,EAAE;UACTN,KAAK,CAACc,QAAQ,CAACR,KAAK,CAACO,GAAG,EAAEP,KAAK,CAACH,IAAI,CAAC;QACvC;MACF;MAEAH,KAAK,CAACe,gBAAgB,CAACb,KAAK,CAAC;IAC/B;;IAEA;IACA,IAAIH,KAAK,CAACI,IAAI,YAAYT,UAAU,EAAE;MACpC,MAAMsB,UAAU,GAAGjB,KAAK,CAACI,IAAI,CAACA,IAAI;MAElCH,KAAK,CAACiB,aAAa,CAACD,UAAU,CAAC;IACjC;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"sentry.js","names":["Breadcrumb","DetailedError","createSentryHandler","scopeInit","getScope","event","scope","type","error","data","level","context","extra","setLevel","list","Array","isArray","item","setContext","key","setExtra","captureException","breadcrumb","addBreadcrumb"],"sources":["../../../../src/log/handler/sentry.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport { Breadcrumb, DetailedError } from '../../log';\nimport type { Scope as BrowserScope } from '@sentry/browser';\nimport type { Scope as NodeScope } from '@sentry/node';\n\ntype Scope = BrowserScope | NodeScope;\n\n/**\n * Возвращает новый handler для logger'а для отправки событий в Sentry.\n * @param scopeInit Sentry Hub или функция которая его вернёт.\n * @return Handler.\n */\nexport function createSentryHandler(scopeInit: Scope | (() => Scope)): LogHandler {\n const getScope = typeof scopeInit === 'function' ? scopeInit : () => scopeInit;\n\n return event => {\n // ВАЖНО: каждый входящий http-запрос должен иметь свой собственный hub (ныне scope)\n // подробности: https://github.com/getsentry/sentry-javascript/discussions/5648\n // поэтому если передана функция - вызываем каждый раз (внутри обработчика)\n const scope = getScope();\n\n // error\n if (event.type === 'error') {\n const error = event.data;\n\n if (error instanceof DetailedError) {\n const { level, context, extra } = error.data;\n\n if (level) {\n scope.setLevel(level);\n }\n\n if (context) {\n const list = Array.isArray(context) ? context : [context];\n\n for (const item of list) {\n scope.setContext(item.key, item.data);\n }\n }\n\n if (extra) {\n scope.setExtra(extra.key, extra.data);\n }\n }\n\n scope.captureException(error);\n }\n\n // breadcrumb\n if (event.data instanceof Breadcrumb) {\n const breadcrumb = event.data.data;\n\n scope.addBreadcrumb(breadcrumb);\n }\n };\n}\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,aAAa,QAAQ,sBAAW;AAMrD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,SAAgC,EAAc;EAChF,MAAMC,QAAQ,GAAG,OAAOD,SAAS,KAAK,UAAU,GAAGA,SAAS,GAAG,MAAMA,SAAS;EAE9E,OAAOE,KAAK,IAAI;IACd;IACA;IACA;IACA,MAAMC,KAAK,GAAGF,QAAQ,CAAC,CAAC;;IAExB;IACA,IAAIC,KAAK,CAACE,IAAI,KAAK,OAAO,EAAE;MAC1B,MAAMC,KAAK,GAAGH,KAAK,CAACI,IAAI;MAExB,IAAID,KAAK,YAAYP,aAAa,EAAE;QAClC,MAAM;UAAES,KAAK;UAAEC,OAAO;UAAEC;QAAM,CAAC,GAAGJ,KAAK,CAACC,IAAI;QAE5C,IAAIC,KAAK,EAAE;UACTJ,KAAK,CAACO,QAAQ,CAACH,KAAK,CAAC;QACvB;QAEA,IAAIC,OAAO,EAAE;UACX,MAAMG,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;UAEzD,KAAK,MAAMM,IAAI,IAAIH,IAAI,EAAE;YACvBR,KAAK,CAACY,UAAU,CAACD,IAAI,CAACE,GAAG,EAAEF,IAAI,CAACR,IAAI,CAAC;UACvC;QACF;QAEA,IAAIG,KAAK,EAAE;UACTN,KAAK,CAACc,QAAQ,CAACR,KAAK,CAACO,GAAG,EAAEP,KAAK,CAACH,IAAI,CAAC;QACvC;MACF;MAEAH,KAAK,CAACe,gBAAgB,CAACb,KAAK,CAAC;IAC/B;;IAEA;IACA,IAAIH,KAAK,CAACI,IAAI,YAAYT,UAAU,EAAE;MACpC,MAAMsB,UAAU,GAAGjB,KAAK,CAACI,IAAI,CAACA,IAAI;MAElCH,KAAK,CAACiB,aAAa,CAACD,UAAU,CAAC;IACjC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["createLogger","DetailedError","Breadcrumb","createPinoHandler","createSentryHandler"],"sources":["../../../src/log/index.ts"],"sourcesContent":["export type {\n Logger,\n LogEvent,\n LogLevel,\n LogHandler,\n ErrorDetails,\n BreadcrumbDetails,\n ContextData,\n} from './types';\n\nexport { createLogger } from './logger';\nexport { DetailedError, Breadcrumb } from './errors';\nexport { createPinoHandler } from './handler/pino';\nexport { createSentryHandler } from './handler/sentry';\n"],"mappings":"AAUA,SAASA,YAAY,QAAQ,aAAU;AACvC,SAASC,aAAa,EAAEC,UAAU,QAAQ,aAAU;AACpD,SAASC,iBAAiB,QAAQ,mBAAgB;AAClD,SAASC,mBAAmB,QAAQ,qBAAkB"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["createLogger","DetailedError","Breadcrumb","createPinoHandler","createSentryHandler"],"sources":["../../../src/log/index.ts"],"sourcesContent":["export type {\n Logger,\n LogEvent,\n LogLevel,\n LogHandler,\n ErrorDetails,\n BreadcrumbDetails,\n ContextData,\n} from './types';\n\nexport { createLogger } from './logger';\nexport { DetailedError, Breadcrumb } from './errors';\nexport { createPinoHandler } from './handler/pino';\nexport { createSentryHandler } from './handler/sentry';\n"],"mappings":"AAUA,SAASA,YAAY,QAAQ,aAAU;AACvC,SAASC,aAAa,EAAEC,UAAU,QAAQ,aAAU;AACpD,SAASC,iBAAiB,QAAQ,mBAAgB;AAClD,SAASC,mBAAmB,QAAQ,qBAAkB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","names":["createLogger","handlers","createMethod","type","data","event","handler","log","info","warn","error","debug","subscribe","push"],"sources":["../../../src/log/logger.ts"],"sourcesContent":["import type { Logger, LogEvent, LogLevel, LogHandler } from './types';\n\n/**\n * Возвращает новый logger - объект для журналирования событий подобно console.\n * @return Logger.\n */\nexport function createLogger(): Logger {\n const handlers: LogHandler[] = [];\n\n // eslint-disable-next-line jsdoc/require-jsdoc\n const createMethod = (type: LogLevel) => (data:
|
|
1
|
+
{"version":3,"file":"logger.js","names":["createLogger","handlers","createMethod","type","data","event","handler","log","info","warn","error","debug","subscribe","push"],"sources":["../../../src/log/logger.ts"],"sourcesContent":["import type { Logger, LogEvent, LogLevel, LogHandler } from './types';\n\n/**\n * Возвращает новый logger - объект для журналирования событий подобно console.\n * @return Logger.\n */\nexport function createLogger(): Logger {\n const handlers: LogHandler[] = [];\n\n // eslint-disable-next-line jsdoc/require-jsdoc\n const createMethod = (type: LogLevel) => (data: unknown) => {\n const event: LogEvent = { type, data };\n\n for (const handler of handlers) {\n handler(event);\n }\n };\n\n return {\n log: createMethod('log'),\n info: createMethod('info'),\n warn: createMethod('warn'),\n error: createMethod('error'),\n debug: createMethod('debug'),\n\n subscribe: handler => {\n handlers.push(handler);\n },\n };\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA,OAAO,SAASA,YAAYA,CAAA,EAAW;EACrC,MAAMC,QAAsB,GAAG,EAAE;;EAEjC;EACA,MAAMC,YAAY,GAAIC,IAAc,IAAMC,IAAa,IAAK;IAC1D,MAAMC,KAAe,GAAG;MAAEF,IAAI;MAAEC;IAAK,CAAC;IAEtC,KAAK,MAAME,OAAO,IAAIL,QAAQ,EAAE;MAC9BK,OAAO,CAACD,KAAK,CAAC;IAChB;EACF,CAAC;EAED,OAAO;IACLE,GAAG,EAAEL,YAAY,CAAC,KAAK,CAAC;IACxBM,IAAI,EAAEN,YAAY,CAAC,MAAM,CAAC;IAC1BO,IAAI,EAAEP,YAAY,CAAC,MAAM,CAAC;IAC1BQ,KAAK,EAAER,YAAY,CAAC,OAAO,CAAC;IAC5BS,KAAK,EAAET,YAAY,CAAC,OAAO,CAAC;IAE5BU,SAAS,EAAEN,OAAO,IAAI;MACpBL,QAAQ,CAACY,IAAI,CAACP,OAAO,CAAC;IACxB;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/log/types.ts"],"sourcesContent":["import type { SeverityLevel, Context,
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/log/types.ts"],"sourcesContent":["import type { SeverityLevel, Context, Breadcrumb } from '@sentry/browser';\n\n/**\n * Тип события.\n */\nexport type LogLevel = 'error' | 'log' | 'info' | 'warn' | 'debug';\n\n/**\n * Интерфейс события.\n */\nexport interface LogEvent {\n type: LogLevel;\n data: unknown;\n}\n\n/**\n * Интерфейс функции-обработчика события.\n */\nexport interface LogHandler {\n (event: LogEvent): void;\n}\n\n/**\n * Logger.\n * Поддерживает наиболее распространенные события жизненного цикла программы.\n */\nexport interface Logger {\n error(data: unknown): void;\n log(data: unknown): void;\n info(data: unknown): void;\n warn(data: unknown): void;\n debug(data: unknown): void;\n\n // @todo вынести в интерфейс SubscribableLogger?\n subscribe(handler: LogHandler): void;\n}\n\n/**\n * Контекст ошибки.\n */\nexport interface ContextData {\n key: string;\n data: Context | null;\n}\n\n/**\n * Детали ошибки.\n */\nexport interface ErrorDetails {\n level?: SeverityLevel;\n\n context?: ContextData | ContextData[];\n\n extra?: {\n key: string;\n data: unknown;\n };\n}\n\n/**\n * Детали хлебной крошки.\n */\nexport type BreadcrumbDetails = Breadcrumb;\n\n/**\n * Структура данных, которую необходимо выводить в терминал по соглашению внутри компании.\n * @todo Убрать в preset'ы.\n */\nexport interface ConventionalFluentInfo {\n version: string;\n latency: number;\n method: string;\n remote_ip: string;\n route: string;\n status: number;\n}\n"],"mappings":"","ignoreList":[]}
|
package/dist/esm/package.json
CHANGED
|
@@ -3,35 +3,35 @@
|
|
|
3
3
|
"name": "@sima-land/isomorph",
|
|
4
4
|
"version": "0.0.0",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@humanwhocodes/env": "^
|
|
7
|
-
"@krutoo/fetch-tools": "^0.
|
|
6
|
+
"@humanwhocodes/env": "^4.0.1",
|
|
7
|
+
"@krutoo/fetch-tools": "^0.1.1",
|
|
8
8
|
"@opentelemetry/api": "^1.9.0",
|
|
9
|
-
"@opentelemetry/exporter-prometheus": "^0.
|
|
10
|
-
"@opentelemetry/exporter-trace-otlp-grpc": "^0.
|
|
11
|
-
"@opentelemetry/resources": "^2.
|
|
12
|
-
"@opentelemetry/sdk-metrics": "^2.
|
|
13
|
-
"@opentelemetry/sdk-trace-base": "^2.
|
|
14
|
-
"@opentelemetry/sdk-trace-node": "^2.
|
|
15
|
-
"@opentelemetry/semantic-conventions": "^1.
|
|
16
|
-
"@sentry/browser": "^
|
|
17
|
-
"@sentry/node": "^
|
|
9
|
+
"@opentelemetry/exporter-prometheus": "^0.212.0",
|
|
10
|
+
"@opentelemetry/exporter-trace-otlp-grpc": "^0.212.0",
|
|
11
|
+
"@opentelemetry/resources": "^2.5.1",
|
|
12
|
+
"@opentelemetry/sdk-metrics": "^2.5.1",
|
|
13
|
+
"@opentelemetry/sdk-trace-base": "^2.5.1",
|
|
14
|
+
"@opentelemetry/sdk-trace-node": "^2.5.1",
|
|
15
|
+
"@opentelemetry/semantic-conventions": "^1.39.0",
|
|
16
|
+
"@sentry/browser": "^10.39.0",
|
|
17
|
+
"@sentry/node": "^10.39.0",
|
|
18
18
|
"accepts": "^1.3.8",
|
|
19
|
-
"dotenv": "^
|
|
20
|
-
"express": "^
|
|
21
|
-
"http-proxy-middleware": "^3.0.
|
|
22
|
-
"jsesc": "^3.0
|
|
19
|
+
"dotenv": "^17.3.1",
|
|
20
|
+
"express": "^5.2.1",
|
|
21
|
+
"http-proxy-middleware": "^3.0.5",
|
|
22
|
+
"jsesc": "^3.1.0",
|
|
23
23
|
"middleware-axios": "^3.0.0",
|
|
24
|
-
"pino": "^
|
|
25
|
-
"pino-pretty": "^
|
|
26
|
-
"prom-client": "^
|
|
27
|
-
"webpack": "^5.
|
|
24
|
+
"pino": "^10.3.1",
|
|
25
|
+
"pino-pretty": "^13.1.3",
|
|
26
|
+
"prom-client": "^15.1.3",
|
|
27
|
+
"webpack": "^5.105.2"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@reduxjs/toolkit": "^1.9.
|
|
31
|
-
"axios": "^1.
|
|
30
|
+
"@reduxjs/toolkit": "^1.9.7",
|
|
31
|
+
"axios": "^1.13.5",
|
|
32
32
|
"react": "^17.0 || ^18.0",
|
|
33
33
|
"react-dom": "^17.0 || ^18.0",
|
|
34
|
-
"react-redux": "^8.
|
|
35
|
-
"redux-saga": "^1.
|
|
34
|
+
"react-redux": "^8.1.3",
|
|
35
|
+
"redux-saga": "^1.3.0"
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["AxiosLogging","FetchLogging","getFetchErrorLogging","getFetchExtraAborting","getFetchLogging","HttpApiHostPool","HttpStatus","SagaLogging","severityFromStatus"],"sources":["../../../../src/preset/isomorphic/index.ts"],"sourcesContent":["export type {\n PresetTuner,\n KnownHttpApiKey,\n StrictMap,\n PageAssets,\n ConventionalJson,\n} from './types';\n\n// доступные утилиты\nexport { AxiosLogging } from './utils/axios-logging';\nexport { FetchLogging } from './utils/fetch-logging';\nexport { getFetchErrorLogging } from './utils/get-fetch-error-logging';\nexport { getFetchExtraAborting } from './utils/get-fetch-extra-aborting';\nexport { getFetchLogging } from './utils/get-fetch-logging';\nexport { HttpApiHostPool } from './utils/http-api-host-pool';\nexport { HttpStatus } from './utils/http-status';\nexport { SagaLogging } from './utils/saga-logging';\nexport { severityFromStatus } from './utils/severity-from-status';\n"],"mappings":"AAQA;AACA,SAASA,YAAY,QAAQ,0BAAuB;AACpD,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,oBAAoB,QAAQ,oCAAiC;AACtE,SAASC,qBAAqB,QAAQ,qCAAkC;AACxE,SAASC,eAAe,QAAQ,8BAA2B;AAC3D,SAASC,eAAe,QAAQ,+BAA4B;AAC5D,SAASC,UAAU,QAAQ,wBAAqB;AAChD,SAASC,WAAW,QAAQ,yBAAsB;AAClD,SAASC,kBAAkB,QAAQ,iCAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["AxiosLogging","FetchLogging","getFetchErrorLogging","getFetchExtraAborting","getFetchLogging","HttpApiHostPool","HttpStatus","SagaLogging","severityFromStatus"],"sources":["../../../../src/preset/isomorphic/index.ts"],"sourcesContent":["export type {\n PresetTuner,\n KnownHttpApiKey,\n StrictMap,\n PageAssets,\n ConventionalJson,\n} from './types';\n\n// доступные утилиты\nexport { AxiosLogging } from './utils/axios-logging';\nexport { FetchLogging } from './utils/fetch-logging';\nexport { getFetchErrorLogging } from './utils/get-fetch-error-logging';\nexport { getFetchExtraAborting } from './utils/get-fetch-extra-aborting';\nexport { getFetchLogging } from './utils/get-fetch-logging';\nexport { HttpApiHostPool } from './utils/http-api-host-pool';\nexport { HttpStatus } from './utils/http-status';\nexport { SagaLogging } from './utils/saga-logging';\nexport { severityFromStatus } from './utils/severity-from-status';\n"],"mappings":"AAQA;AACA,SAASA,YAAY,QAAQ,0BAAuB;AACpD,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,oBAAoB,QAAQ,oCAAiC;AACtE,SAASC,qBAAqB,QAAQ,qCAAkC;AACxE,SAASC,eAAe,QAAQ,8BAA2B;AAC3D,SAASC,eAAe,QAAQ,+BAA4B;AAC5D,SAASC,UAAU,QAAQ,wBAAqB;AAChD,SAASC,WAAW,QAAQ,yBAAsB;AAClD,SAASC,kBAAkB,QAAQ,iCAA8B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abort-controller.js","names":["provideAbortController","AbortController"],"sources":["../../../../../src/preset/isomorphic/providers/abort-controller.ts"],"sourcesContent":["/**\n * Провайдер AbortController.\n * @return AbortController.\n */\nexport function provideAbortController(): AbortController {\n return new AbortController();\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,OAAO,SAASA,sBAAsBA,CAAA,EAAoB;EACxD,OAAO,IAAIC,eAAe,CAAC,CAAC;AAC9B"}
|
|
1
|
+
{"version":3,"file":"abort-controller.js","names":["provideAbortController","AbortController"],"sources":["../../../../../src/preset/isomorphic/providers/abort-controller.ts"],"sourcesContent":["/**\n * Провайдер AbortController.\n * @return AbortController.\n */\nexport function provideAbortController(): AbortController {\n return new AbortController();\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,OAAO,SAASA,sBAAsBA,CAAA,EAAoB;EACxD,OAAO,IAAIC,eAAe,CAAC,CAAC;AAC9B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-factory.js","names":["KnownToken","create","provideAxiosFactory","resolve","middleware","Axios","config","instance","item","use"],"sources":["../../../../../src/preset/isomorphic/providers/axios-factory.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\n\n/**\n * Провайдер фабрики экземпляров AxiosInstanceWrapper.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosFactory(resolve: Resolve) {\n const middleware = resolve(KnownToken.Axios.middleware);\n\n return (config: CreateAxiosDefaults = {}) => {\n const instance = create(config);\n\n for (const item of middleware) {\n instance.use(item);\n }\n\n return instance;\n };\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,oBAAiB;AAE5C,SAASC,MAAM,QAAQ,kBAAkB;;AAEzC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,OAAgB,EAAE;EACpD,MAAMC,UAAU,GAAGD,OAAO,CAACH,UAAU,CAACK,KAAK,CAACD,UAAU,CAAC;EAEvD,OAAO,CAACE,MAA2B,GAAG,CAAC,CAAC,KAAK;IAC3C,MAAMC,QAAQ,GAAGN,MAAM,CAACK,MAAM,CAAC;IAE/B,KAAK,MAAME,IAAI,IAAIJ,UAAU,EAAE;MAC7BG,QAAQ,CAACE,GAAG,CAACD,IAAI,CAAC;IACpB;IAEA,OAAOD,QAAQ;EACjB,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"axios-factory.js","names":["KnownToken","create","provideAxiosFactory","resolve","middleware","Axios","config","instance","item","use"],"sources":["../../../../../src/preset/isomorphic/providers/axios-factory.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\n\n/**\n * Провайдер фабрики экземпляров AxiosInstanceWrapper.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosFactory(resolve: Resolve) {\n const middleware = resolve(KnownToken.Axios.middleware);\n\n return (config: CreateAxiosDefaults = {}) => {\n const instance = create(config);\n\n for (const item of middleware) {\n instance.use(item);\n }\n\n return instance;\n };\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,oBAAiB;AAE5C,SAASC,MAAM,QAAQ,kBAAkB;;AAEzC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,OAAgB,EAAE;EACpD,MAAMC,UAAU,GAAGD,OAAO,CAACH,UAAU,CAACK,KAAK,CAACD,UAAU,CAAC;EAEvD,OAAO,CAACE,MAA2B,GAAG,CAAC,CAAC,KAAK;IAC3C,MAAMC,QAAQ,GAAGN,MAAM,CAACK,MAAM,CAAC;IAE/B,KAAK,MAAME,IAAI,IAAIJ,UAAU,EAAE;MAC7BG,QAAQ,CAACE,GAAG,CAACD,IAAI,CAAC;IACpB;IAEA,OAAOD,QAAQ;EACjB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-log-handler.js","names":["KnownToken","AxiosLogging","provideAxiosLogHandler","resolve","logger","data"],"sources":["../../../../../src/preset/isomorphic/providers/axios-log-handler.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { LogMiddlewareHandlerInit } from '../../../utils/axios/middleware/log';\nimport { KnownToken } from '../../../tokens';\nimport { AxiosLogging } from '../utils/axios-logging';\n\n/**\n * Провайдер обработчика логирования исходящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик.\n */\nexport function provideAxiosLogHandler(resolve: Resolve): LogMiddlewareHandlerInit {\n const logger = resolve(KnownToken.logger);\n\n return data => new AxiosLogging(logger, data);\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,YAAY,QAAQ,2BAAwB;;AAErD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,OAAgB,EAA4B;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACH,UAAU,CAACI,MAAM,CAAC;EAEzC,OAAOC,IAAI,IAAI,IAAIJ,YAAY,CAACG,MAAM,EAAEC,IAAI,CAAC;AAC/C"}
|
|
1
|
+
{"version":3,"file":"axios-log-handler.js","names":["KnownToken","AxiosLogging","provideAxiosLogHandler","resolve","logger","data"],"sources":["../../../../../src/preset/isomorphic/providers/axios-log-handler.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { LogMiddlewareHandlerInit } from '../../../utils/axios/middleware/log';\nimport { KnownToken } from '../../../tokens';\nimport { AxiosLogging } from '../utils/axios-logging';\n\n/**\n * Провайдер обработчика логирования исходящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик.\n */\nexport function provideAxiosLogHandler(resolve: Resolve): LogMiddlewareHandlerInit {\n const logger = resolve(KnownToken.logger);\n\n return data => new AxiosLogging(logger, data);\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,YAAY,QAAQ,2BAAwB;;AAErD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,OAAgB,EAA4B;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACH,UAAU,CAACI,MAAM,CAAC;EAEzC,OAAOC,IAAI,IAAI,IAAIJ,YAAY,CAACG,MAAM,EAAEC,IAAI,CAAC;AAC/C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-config.js","names":["createBaseConfig","KnownToken","provideBaseConfig","resolve","source","Config"],"sources":["../../../../../src/preset/isomorphic/providers/base-config.ts"],"sourcesContent":["import { createBaseConfig } from '../../../config/base';\nimport { BaseConfig } from '../../../config/types';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер базовой конфигурации приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Базовая конфигурация.\n */\nexport function provideBaseConfig(resolve: Resolve): BaseConfig {\n const source = resolve(KnownToken.Config.source);\n\n return createBaseConfig(source);\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,yBAAsB;AAGvD,SAASC,UAAU,QAAQ,oBAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,OAAgB,EAAc;EAC9D,MAAMC,MAAM,GAAGD,OAAO,CAACF,UAAU,CAACI,MAAM,CAACD,MAAM,CAAC;EAEhD,OAAOJ,gBAAgB,CAACI,MAAM,CAAC;AACjC"}
|
|
1
|
+
{"version":3,"file":"base-config.js","names":["createBaseConfig","KnownToken","provideBaseConfig","resolve","source","Config"],"sources":["../../../../../src/preset/isomorphic/providers/base-config.ts"],"sourcesContent":["import { createBaseConfig } from '../../../config/base';\nimport { BaseConfig } from '../../../config/types';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер базовой конфигурации приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Базовая конфигурация.\n */\nexport function provideBaseConfig(resolve: Resolve): BaseConfig {\n const source = resolve(KnownToken.Config.source);\n\n return createBaseConfig(source);\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,yBAAsB;AAGvD,SAASC,UAAU,QAAQ,oBAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,OAAgB,EAAc;EAC9D,MAAMC,MAAM,GAAGD,OAAO,CAACF,UAAU,CAACI,MAAM,CAACD,MAAM,CAAC;EAEhD,OAAOJ,gBAAgB,CAACI,MAAM,CAAC;AACjC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","names":["KnownToken","applyMiddleware","configureFetch","provideFetch","resolve","middleware","Http","Fetch","fetch"],"sources":["../../../../../src/preset/isomorphic/providers/fetch.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { applyMiddleware, configureFetch } from '../../../http';\n\n/**\n * Провайдер функции fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Функция fetch.\n */\nexport function provideFetch(resolve: Resolve) {\n const middleware = resolve(KnownToken.Http.Fetch.middleware);\n\n return configureFetch(fetch, applyMiddleware(...middleware));\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,eAAe,EAAEC,cAAc,QAAQ,0BAAe;;AAE/D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,OAAgB,EAAE;EAC7C,MAAMC,UAAU,GAAGD,OAAO,CAACJ,UAAU,CAACM,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC;EAE5D,OAAOH,cAAc,CAACM,KAAK,EAAEP,eAAe,CAAC,GAAGI,UAAU,CAAC,CAAC;AAC9D"}
|
|
1
|
+
{"version":3,"file":"fetch.js","names":["KnownToken","applyMiddleware","configureFetch","provideFetch","resolve","middleware","Http","Fetch","fetch"],"sources":["../../../../../src/preset/isomorphic/providers/fetch.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { applyMiddleware, configureFetch } from '../../../http';\n\n/**\n * Провайдер функции fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Функция fetch.\n */\nexport function provideFetch(resolve: Resolve) {\n const middleware = resolve(KnownToken.Http.Fetch.middleware);\n\n return configureFetch(fetch, applyMiddleware(...middleware));\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,eAAe,EAAEC,cAAc,QAAQ,0BAAe;;AAE/D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,OAAgB,EAAE;EAC7C,MAAMC,UAAU,GAAGD,OAAO,CAACJ,UAAU,CAACM,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC;EAE5D,OAAOH,cAAc,CAACM,KAAK,EAAEP,eAAe,CAAC,GAAGI,UAAU,CAAC,CAAC;AAC9D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redux-middleware-saga.js","names":["KnownToken","SagaLogging","createSagaMiddleware","provideReduxMiddlewareSaga","resolve","logger","logHandler","onError","error","errorInfo","onSagaError"],"sources":["../../../../../src/preset/isomorphic/providers/redux-middleware-saga.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { SagaLogging } from '../utils/saga-logging';\nimport createSagaMiddleware, { SagaMiddleware } from 'redux-saga';\n\n/**\n * Провайдер промежуточного слоя redux-saga для redux-хранилища.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой для redux-хранилища.\n */\nexport function provideReduxMiddlewareSaga(resolve: Resolve): SagaMiddleware {\n const logger = resolve(KnownToken.logger);\n\n const logHandler = new SagaLogging(logger);\n\n return createSagaMiddleware({\n /** @inheritdoc */\n onError(error, errorInfo) {\n logHandler.onSagaError(error, errorInfo);\n },\n });\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,WAAW,QAAQ,0BAAuB;AACnD,OAAOC,oBAAoB,MAA0B,YAAY;;AAEjE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAACC,OAAgB,EAAkB;EAC3E,MAAMC,MAAM,GAAGD,OAAO,CAACJ,UAAU,CAACK,MAAM,CAAC;EAEzC,MAAMC,UAAU,GAAG,IAAIL,WAAW,CAACI,MAAM,CAAC;EAE1C,OAAOH,oBAAoB,CAAC;IAC1B;IACAK,OAAOA,CAACC,KAAK,EAAEC,SAAS,EAAE;MACxBH,UAAU,CAACI,WAAW,CAACF,KAAK,EAAEC,SAAS,CAAC;IAC1C;EACF,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"redux-middleware-saga.js","names":["KnownToken","SagaLogging","createSagaMiddleware","provideReduxMiddlewareSaga","resolve","logger","logHandler","onError","error","errorInfo","onSagaError"],"sources":["../../../../../src/preset/isomorphic/providers/redux-middleware-saga.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { SagaLogging } from '../utils/saga-logging';\nimport createSagaMiddleware, { SagaMiddleware } from 'redux-saga';\n\n/**\n * Провайдер промежуточного слоя redux-saga для redux-хранилища.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой для redux-хранилища.\n */\nexport function provideReduxMiddlewareSaga(resolve: Resolve): SagaMiddleware {\n const logger = resolve(KnownToken.logger);\n\n const logHandler = new SagaLogging(logger);\n\n return createSagaMiddleware({\n /** @inheritdoc */\n onError(error, errorInfo) {\n logHandler.onSagaError(error, errorInfo);\n },\n });\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,WAAW,QAAQ,0BAAuB;AACnD,OAAOC,oBAAoB,MAA0B,YAAY;;AAEjE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAACC,OAAgB,EAAkB;EAC3E,MAAMC,MAAM,GAAGD,OAAO,CAACJ,UAAU,CAACK,MAAM,CAAC;EAEzC,MAAMC,UAAU,GAAG,IAAIL,WAAW,CAACI,MAAM,CAAC;EAE1C,OAAOH,oBAAoB,CAAC;IAC1B;IACAK,OAAOA,CAACC,KAAK,EAAEC,SAAS,EAAE;MACxBH,UAAU,CAACI,WAAW,CAACF,KAAK,EAAEC,SAAS,CAAC;IAC1C;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/preset/isomorphic/types.ts"],"sourcesContent":["import type { Provider, Token } from '../../di';\n\nexport interface PresetTuner {\n (tools: { override: <T>(token: Token<T>, provider: Provider<T>) => void }): void;\n}\n\nexport type KnownHttpApiKey =\n | 'ilium'\n | 'simaV3'\n | 'simaV4'\n | 'simaV6'\n | 'chponkiV2'\n | 'shuttle'\n | 'fileDispatcher';\n\n/**\n * Строгая версия Map без возможности добавлять/удалять.\n */\nexport interface StrictMap<Key extends string> {\n /** Возвращает значение по ключу. */\n get(key: Key): string;\n}\n\n/**\n * Внутренний интерфейс для хранения ссылок на ассеты.\n */\nexport interface PageAssets {\n js: string;\n css: string;\n criticalJs?: string;\n criticalCss?: string;\n}\n\n/**\n * Структура ответа от frontend-микросервиса в формате JSON по соглашению.\n */\nexport interface ConventionalJson {\n markup: string;\n bundle_js: string;\n bundle_css: string;\n critical_js?: string;\n critical_css?: string;\n meta?: any;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/preset/isomorphic/types.ts"],"sourcesContent":["import type { Provider, Token } from '../../di';\n\nexport interface PresetTuner {\n (tools: { override: <T>(token: Token<T>, provider: Provider<T>) => void }): void;\n}\n\nexport type KnownHttpApiKey =\n | 'ilium'\n | 'simaV3'\n | 'simaV4'\n | 'simaV6'\n | 'chponkiV2'\n | 'shuttle'\n | 'fileDispatcher';\n\n/**\n * Строгая версия Map без возможности добавлять/удалять.\n */\nexport interface StrictMap<Key extends string> {\n /** Возвращает значение по ключу. */\n get(key: Key): string;\n}\n\n/**\n * Внутренний интерфейс для хранения ссылок на ассеты.\n */\nexport interface PageAssets {\n js: string;\n css: string;\n criticalJs?: string;\n criticalCss?: string;\n}\n\n/**\n * Структура ответа от frontend-микросервиса в формате JSON по соглашению.\n */\nexport interface ConventionalJson {\n markup: string;\n bundle_js: string;\n bundle_css: string;\n critical_js?: string;\n critical_css?: string;\n meta?: any;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-logging.js","names":["isAbortError","isNetworkError","Breadcrumb","DetailedError","applyAxiosDefaults","Disableable","displayUrl","severityFromStatus","axios","AxiosLogging","constructor","logger","data","config","defaults","requestInfo","readyURL","baseURL","url","beforeRequest","isDisabled","method","params","info","category","type","level","afterResponse","response","status_code","status","onCatch","error","isAxiosError","statusCode","cause","message","context","key","headers","toJSON"],"sources":["../../../../../src/preset/isomorphic/utils/axios-logging.ts"],"sourcesContent":["import { isAbortError, isNetworkError } from '../../../http/utils';\nimport { Breadcrumb, DetailedError, type Logger } from '../../../log';\nimport {\n type LogMiddlewareHandler,\n applyAxiosDefaults,\n SharedData,\n DoneSharedData,\n FailSharedData,\n} from '../../../utils/axios';\nimport { Disableable } from './disableable';\nimport { displayUrl } from './display-url';\nimport { severityFromStatus } from './severity-from-status';\nimport axios from 'axios';\n\n/**\n * Обработчик для промежуточного слоя логирования исходящих http-запросов.\n * Отправляет хлебные крошки и данные ошибки, пригодные для Sentry.\n */\nexport class AxiosLogging extends Disableable implements LogMiddlewareHandler {\n logger: Logger;\n\n protected readonly requestInfo: ReturnType<typeof applyAxiosDefaults> & {\n readyURL: string;\n };\n\n /**\n * Конструктор.\n * @param logger Logger.\n * @param data Данные запроса.\n */\n constructor(logger: Logger, data: SharedData) {\n super();\n const config = applyAxiosDefaults(data.config, data.defaults);\n\n this.logger = logger;\n\n this.requestInfo = {\n ...config,\n readyURL: displayUrl(config.baseURL, config.url),\n };\n }\n\n /**\n * Отправит хлебные крошки перед запросом.\n */\n beforeRequest() {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.request',\n type: 'http',\n data: {\n url: readyURL,\n method,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит хлебные крошки после запроса.\n * @param data Данные ответа.\n */\n afterResponse({ response }: DoneSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: readyURL,\n method,\n status_code: response.status,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит данные ошибки при перехвате.\n * @param data Данные запроса.\n */\n onCatch({ error }: FailSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n // если это не AxiosError тогда выполняем простое логирование\n if (!axios.isAxiosError(error)) {\n this.logger.error(error);\n return;\n }\n\n const statusCode = error.response?.status ?? 'UNKNOWN';\n const { requestInfo } = this;\n\n if (typeof statusCode === 'number') {\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: requestInfo.readyURL,\n method: requestInfo.method,\n status_code: statusCode,\n params: requestInfo.params,\n },\n level: 'error',\n }),\n );\n }\n\n // по общему соглашению фильтруем сетевые ошибки\n if (isNetworkError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем ошибки обрывания\n if (isAbortError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем все статусы < 500\n if (typeof statusCode === 'number' && statusCode < 500) {\n return;\n }\n\n // @todo добавить метод в духе errorStatusFilter(s => s !== 422)\n\n this.logger.error(\n new DetailedError(\n `HTTP request failed, status code: ${statusCode}, error message: ${error.message}`,\n {\n level: severityFromStatus(error.response?.status),\n context: [\n {\n key: 'Request details',\n data: {\n url: requestInfo.url,\n baseURL: requestInfo.baseURL,\n method: requestInfo.method,\n headers: requestInfo.headers,\n data: requestInfo.data,\n params: requestInfo.params,\n },\n },\n {\n key: 'Response details',\n data: {\n data: error.response?.data,\n\n // копируем так как в Sentry падает ошибка: **non-serializable** (TypeError: Object.getPrototypeOf(...) is null)\n headers: { ...error.response?.headers },\n\n error: error.toJSON(),\n },\n },\n ],\n },\n ),\n );\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"axios-logging.js","names":["isAbortError","isNetworkError","Breadcrumb","DetailedError","applyAxiosDefaults","Disableable","displayUrl","severityFromStatus","axios","AxiosLogging","constructor","logger","data","config","defaults","requestInfo","readyURL","baseURL","url","beforeRequest","isDisabled","method","params","info","category","type","level","afterResponse","response","status_code","status","onCatch","error","isAxiosError","statusCode","cause","message","context","key","headers","toJSON"],"sources":["../../../../../src/preset/isomorphic/utils/axios-logging.ts"],"sourcesContent":["import { isAbortError, isNetworkError } from '../../../http/utils';\nimport { Breadcrumb, DetailedError, type Logger } from '../../../log';\nimport {\n type LogMiddlewareHandler,\n applyAxiosDefaults,\n SharedData,\n DoneSharedData,\n FailSharedData,\n} from '../../../utils/axios';\nimport { Disableable } from './disableable';\nimport { displayUrl } from './display-url';\nimport { severityFromStatus } from './severity-from-status';\nimport axios from 'axios';\n\n/**\n * Обработчик для промежуточного слоя логирования исходящих http-запросов.\n * Отправляет хлебные крошки и данные ошибки, пригодные для Sentry.\n */\nexport class AxiosLogging extends Disableable implements LogMiddlewareHandler {\n logger: Logger;\n\n protected readonly requestInfo: ReturnType<typeof applyAxiosDefaults> & {\n readyURL: string;\n };\n\n /**\n * Конструктор.\n * @param logger Logger.\n * @param data Данные запроса.\n */\n constructor(logger: Logger, data: SharedData) {\n super();\n const config = applyAxiosDefaults(data.config, data.defaults);\n\n this.logger = logger;\n\n this.requestInfo = {\n ...config,\n readyURL: displayUrl(config.baseURL, config.url),\n };\n }\n\n /**\n * Отправит хлебные крошки перед запросом.\n */\n beforeRequest() {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.request',\n type: 'http',\n data: {\n url: readyURL,\n method,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит хлебные крошки после запроса.\n * @param data Данные ответа.\n */\n afterResponse({ response }: DoneSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: readyURL,\n method,\n status_code: response.status,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит данные ошибки при перехвате.\n * @param data Данные запроса.\n */\n onCatch({ error }: FailSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n // если это не AxiosError тогда выполняем простое логирование\n if (!axios.isAxiosError(error)) {\n this.logger.error(error);\n return;\n }\n\n const statusCode = error.response?.status ?? 'UNKNOWN';\n const { requestInfo } = this;\n\n if (typeof statusCode === 'number') {\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: requestInfo.readyURL,\n method: requestInfo.method,\n status_code: statusCode,\n params: requestInfo.params,\n },\n level: 'error',\n }),\n );\n }\n\n // по общему соглашению фильтруем сетевые ошибки\n if (isNetworkError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем ошибки обрывания\n if (isAbortError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем все статусы < 500\n if (typeof statusCode === 'number' && statusCode < 500) {\n return;\n }\n\n // @todo добавить метод в духе errorStatusFilter(s => s !== 422)\n\n this.logger.error(\n new DetailedError(\n `HTTP request failed, status code: ${statusCode}, error message: ${error.message}`,\n {\n level: severityFromStatus(error.response?.status),\n context: [\n {\n key: 'Request details',\n data: {\n url: requestInfo.url,\n baseURL: requestInfo.baseURL,\n method: requestInfo.method,\n headers: requestInfo.headers,\n data: requestInfo.data,\n params: requestInfo.params,\n },\n },\n {\n key: 'Response details',\n data: {\n data: error.response?.data,\n\n // копируем так как в Sentry падает ошибка: **non-serializable** (TypeError: Object.getPrototypeOf(...) is null)\n headers: { ...error.response?.headers },\n\n error: error.toJSON(),\n },\n },\n ],\n },\n ),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disableable.js","names":["Disableable","constructor","disabled","isDisabled"],"sources":["../../../../../src/preset/isomorphic/utils/disableable.ts"],"sourcesContent":["/**\n * Объект, который может быть помечен как disabled.\n * @todo Возможно стоит заменить наследование от этого класса на передачу параметра в конструктор.\n * Например в виде объекта класса DisableController (по аналогии с AbortController).\n * Чтобы нельзя было включить обработчик в том месте где хочется.\n * Также возможно стоит просто научить классы принимать AbortController.\n */\nexport class Disableable {\n disabled: boolean | (() => boolean);\n\n /** @inheritdoc */\n constructor() {\n this.disabled = false;\n }\n\n /**\n * Определяет отключен ли обработчик.\n * @return Отключен ли обработчик.\n */\n isDisabled() {\n if (typeof this.disabled === 'function') {\n return this.disabled();\n }\n\n return this.disabled;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,CAAC;EAGvB;EACAC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,QAAQ,GAAG,KAAK;EACvB;;EAEA;AACF;AACA;AACA;EACEC,UAAUA,CAAA,EAAG;IACX,IAAI,OAAO,IAAI,CAACD,QAAQ,KAAK,UAAU,EAAE;MACvC,OAAO,IAAI,CAACA,QAAQ,CAAC,CAAC;IACxB;IAEA,OAAO,IAAI,CAACA,QAAQ;EACtB;AACF"}
|
|
1
|
+
{"version":3,"file":"disableable.js","names":["Disableable","constructor","disabled","isDisabled"],"sources":["../../../../../src/preset/isomorphic/utils/disableable.ts"],"sourcesContent":["/**\n * Объект, который может быть помечен как disabled.\n * @todo Возможно стоит заменить наследование от этого класса на передачу параметра в конструктор.\n * Например в виде объекта класса DisableController (по аналогии с AbortController).\n * Чтобы нельзя было включить обработчик в том месте где хочется.\n * Также возможно стоит просто научить классы принимать AbortController.\n */\nexport class Disableable {\n disabled: boolean | (() => boolean);\n\n /** @inheritdoc */\n constructor() {\n this.disabled = false;\n }\n\n /**\n * Определяет отключен ли обработчик.\n * @return Отключен ли обработчик.\n */\n isDisabled() {\n if (typeof this.disabled === 'function') {\n return this.disabled();\n }\n\n return this.disabled;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,CAAC;EAGvB;EACAC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,QAAQ,GAAG,KAAK;EACvB;;EAEA;AACF;AACA;AACA;EACEC,UAAUA,CAAA,EAAG;IACX,IAAI,OAAO,IAAI,CAACD,QAAQ,KAAK,UAAU,EAAE;MACvC,OAAO,IAAI,CAACA,QAAQ,CAAC,CAAC;IACxB;IAEA,OAAO,IAAI,CAACA,QAAQ;EACtB;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-url.js","names":["displayUrl","baseURL","url","result","Boolean","replace"],"sources":["../../../../../src/preset/isomorphic/utils/display-url.ts"],"sourcesContent":["import type { AxiosRequestConfig } from 'axios';\n\n/**\n * Объединяет значения опций baseURL и url (axios) в одну строку для логирования.\n * @param baseURL Опция baseURL.\n * @param url Опция url.\n * @return Отображение. Не является валидным URL.\n */\nexport function displayUrl(\n baseURL: AxiosRequestConfig['baseURL'] = '',\n url: AxiosRequestConfig['url'] = '',\n) {\n let result: string;\n\n switch (true) {\n case Boolean(baseURL && url):\n result = `${baseURL.replace(/\\/$/, '')}/${url.replace(/^\\//, '')}`;\n break;\n case Boolean(baseURL) && !url:\n result = baseURL;\n break;\n case !baseURL && Boolean(url):\n result = url;\n break;\n case !baseURL && !url:\n default:\n result = '[empty]';\n break;\n }\n\n return result;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,UAAUA,CACxBC,OAAsC,GAAG,EAAE,EAC3CC,GAA8B,GAAG,EAAE,EACnC;EACA,IAAIC,MAAc;EAElB,QAAQ,IAAI;IACV,KAAKC,OAAO,CAACH,OAAO,IAAIC,GAAG,CAAC;MAC1BC,MAAM,
|
|
1
|
+
{"version":3,"file":"display-url.js","names":["displayUrl","baseURL","url","result","Boolean","replace"],"sources":["../../../../../src/preset/isomorphic/utils/display-url.ts"],"sourcesContent":["import type { AxiosRequestConfig } from 'axios';\n\n/**\n * Объединяет значения опций baseURL и url (axios) в одну строку для логирования.\n * @param baseURL Опция baseURL.\n * @param url Опция url.\n * @return Отображение. Не является валидным URL.\n */\nexport function displayUrl(\n baseURL: AxiosRequestConfig['baseURL'] = '',\n url: AxiosRequestConfig['url'] = '',\n) {\n let result: string;\n\n switch (true) {\n case Boolean(baseURL && url):\n result = `${baseURL.replace(/\\/$/, '')}/${url.replace(/^\\//, '')}`;\n break;\n case Boolean(baseURL) && !url:\n result = baseURL;\n break;\n case !baseURL && Boolean(url):\n result = url;\n break;\n case !baseURL && !url:\n default:\n result = '[empty]';\n break;\n }\n\n return result;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,UAAUA,CACxBC,OAAsC,GAAG,EAAE,EAC3CC,GAA8B,GAAG,EAAE,EACnC;EACA,IAAIC,MAAc;EAElB,QAAQ,IAAI;IACV,KAAKC,OAAO,CAACH,OAAO,IAAIC,GAAG,CAAC;MAC1BC,MAAM,GAAG,GAAGF,OAAO,CAACI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAIH,GAAG,CAACG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE;MAClE;IACF,KAAKD,OAAO,CAACH,OAAO,CAAC,IAAI,CAACC,GAAG;MAC3BC,MAAM,GAAGF,OAAO;MAChB;IACF,KAAK,CAACA,OAAO,IAAIG,OAAO,CAACF,GAAG,CAAC;MAC3BC,MAAM,GAAGD,GAAG;MACZ;IACF,KAAK,CAACD,OAAO,IAAI,CAACC,GAAG;IACrB;MACEC,MAAM,GAAG,SAAS;MAClB;EACJ;EAEA,OAAOA,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-logging.js","names":["FetchUtil","isAbortError","isNetworkError","Breadcrumb","DetailedError","Disableable","FetchLogging","constructor","logger","onRequest","request","isDisabled","info","category","type","data","url","withoutParams","href","method","params","Object","fromEntries","URL","searchParams","entries","level","onResponse","response","status_code","status","ok","error","context","key","headers","onCatch","String"],"sources":["../../../../../src/preset/isomorphic/utils/fetch-logging.ts"],"sourcesContent":["import { LogHandler, LogData, DoneLogData, FetchUtil, FailLogData } from '../../../http';\nimport { isAbortError, isNetworkError } from '../../../http/utils';\nimport { Breadcrumb, DetailedError, Logger } from '../../../log';\nimport { Disableable } from './disableable';\n\n/**\n * Обработчик логирования внешних http-запросов.\n */\nexport class FetchLogging extends Disableable implements LogHandler {\n logger: Logger;\n\n /** @inheritdoc */\n constructor(logger: Logger) {\n super();\n this.logger = logger;\n }\n\n /** @inheritdoc */\n onRequest({ request }: LogData) {\n if (this.isDisabled()) {\n return;\n }\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.request',\n type: 'http',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n },\n level: 'info',\n }),\n );\n }\n\n /** @inheritdoc */\n onResponse({ response, request }: DoneLogData) {\n if (this.isDisabled()) {\n return;\n }\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n status_code: response.status,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n },\n level: response.ok ? 'info' : 'error',\n }),\n );\n\n // по общему соглашению фильтруем все статусы < 500\n if (response.status < 500) {\n return;\n }\n\n this.logger.error(\n new DetailedError(`HTTP request failed, status code: ${response.status}`, {\n level: 'error',\n context: [\n {\n key: 'Outgoing request details',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n headers: request.headers,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n // @todo data\n },\n },\n ],\n }),\n );\n }\n\n /** @inheritdoc */\n onCatch({ error, request }: FailLogData) {\n if (this.isDisabled()) {\n return;\n }\n\n // по общему соглашению фильтруем сетевые ошибки\n if (isNetworkError(error)) {\n return;\n }\n\n // по общему соглашению фильтруем ошибки обрывания\n if (isAbortError(error)) {\n return;\n }\n\n this.logger.error(\n new DetailedError(String(error), {\n level: 'error',\n context: [\n {\n key: 'Outgoing request details',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n headers: request.headers,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n // @todo data\n },\n },\n ],\n }),\n );\n }\n}\n"],"mappings":"AAAA,SAA2CA,SAAS,QAAqB,0BAAe;AACxF,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAqB;AAClE,SAASC,UAAU,EAAEC,aAAa,QAAgB,yBAAc;AAChE,SAASC,WAAW,QAAQ,kBAAe;;AAE3C;AACA;AACA;AACA,OAAO,MAAMC,YAAY,SAASD,WAAW,CAAuB;EAGlE;EACAE,WAAWA,CAACC,MAAc,EAAE;IAC1B,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;;EAEA;EACAC,SAASA,CAAC;IAAEC;EAAiB,CAAC,EAAE;IAC9B,IAAI,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE;MACrB;IACF;IAEA,IAAI,CAACH,MAAM,CAACI,IAAI,CACd,IAAIT,UAAU,CAAC;MACbU,QAAQ,EAAE,cAAc;MACxBC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE;QACJC,GAAG,EAAEhB,SAAS,CAACiB,aAAa,CAACP,OAAO,CAACM,GAAG,CAAC,CAACE,IAAI;QAC9CC,MAAM,EAAET,OAAO,CAACS,MAAM;QACtBC,MAAM,EAAEC,MAAM,CAACC,WAAW,CAAC,IAAIC,GAAG,CAACb,OAAO,CAACM,GAAG,CAAC,CAACQ,YAAY,CAACC,OAAO,CAAC,CAAC;MACxE,CAAC;MACDC,KAAK,EAAE;IACT,CAAC,CACH,CAAC;EACH;;EAEA;EACAC,UAAUA,CAAC;IAAEC,QAAQ;IAAElB;EAAqB,CAAC,EAAE;IAC7C,IAAI,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE;MACrB;IACF;IAEA,IAAI,CAACH,MAAM,CAACI,IAAI,CACd,IAAIT,UAAU,CAAC;MACbU,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE;QACJC,GAAG,EAAEhB,SAAS,CAACiB,aAAa,CAACP,OAAO,CAACM,GAAG,CAAC,CAACE,IAAI;QAC9CC,MAAM,EAAET,OAAO,CAACS,MAAM;QACtBU,WAAW,EAAED,QAAQ,CAACE,MAAM;QAC5BV,MAAM,EAAEC,MAAM,CAACC,WAAW,CAAC,IAAIC,GAAG,CAACb,OAAO,CAACM,GAAG,CAAC,CAACQ,YAAY,CAACC,OAAO,CAAC,CAAC;MACxE,CAAC;MACDC,KAAK,EAAEE,QAAQ,CAACG,EAAE,GAAG,MAAM,GAAG;IAChC,CAAC,CACH,CAAC;;IAED;IACA,IAAIH,QAAQ,CAACE,MAAM,GAAG,GAAG,EAAE;MACzB;IACF;IAEA,IAAI,CAACtB,MAAM,CAACwB,KAAK,CACf,IAAI5B,aAAa,
|
|
1
|
+
{"version":3,"file":"fetch-logging.js","names":["FetchUtil","isAbortError","isNetworkError","Breadcrumb","DetailedError","Disableable","FetchLogging","constructor","logger","onRequest","request","isDisabled","info","category","type","data","url","withoutParams","href","method","params","Object","fromEntries","URL","searchParams","entries","level","onResponse","response","status_code","status","ok","error","context","key","headers","onCatch","String"],"sources":["../../../../../src/preset/isomorphic/utils/fetch-logging.ts"],"sourcesContent":["import { LogHandler, LogData, DoneLogData, FetchUtil, FailLogData } from '../../../http';\nimport { isAbortError, isNetworkError } from '../../../http/utils';\nimport { Breadcrumb, DetailedError, Logger } from '../../../log';\nimport { Disableable } from './disableable';\n\n/**\n * Обработчик логирования внешних http-запросов.\n */\nexport class FetchLogging extends Disableable implements LogHandler {\n logger: Logger;\n\n /** @inheritdoc */\n constructor(logger: Logger) {\n super();\n this.logger = logger;\n }\n\n /** @inheritdoc */\n onRequest({ request }: LogData) {\n if (this.isDisabled()) {\n return;\n }\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.request',\n type: 'http',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n },\n level: 'info',\n }),\n );\n }\n\n /** @inheritdoc */\n onResponse({ response, request }: DoneLogData) {\n if (this.isDisabled()) {\n return;\n }\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n status_code: response.status,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n },\n level: response.ok ? 'info' : 'error',\n }),\n );\n\n // по общему соглашению фильтруем все статусы < 500\n if (response.status < 500) {\n return;\n }\n\n this.logger.error(\n new DetailedError(`HTTP request failed, status code: ${response.status}`, {\n level: 'error',\n context: [\n {\n key: 'Outgoing request details',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n headers: request.headers,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n // @todo data\n },\n },\n ],\n }),\n );\n }\n\n /** @inheritdoc */\n onCatch({ error, request }: FailLogData) {\n if (this.isDisabled()) {\n return;\n }\n\n // по общему соглашению фильтруем сетевые ошибки\n if (isNetworkError(error)) {\n return;\n }\n\n // по общему соглашению фильтруем ошибки обрывания\n if (isAbortError(error)) {\n return;\n }\n\n this.logger.error(\n new DetailedError(String(error), {\n level: 'error',\n context: [\n {\n key: 'Outgoing request details',\n data: {\n url: FetchUtil.withoutParams(request.url).href,\n method: request.method,\n headers: request.headers,\n params: Object.fromEntries(new URL(request.url).searchParams.entries()),\n // @todo data\n },\n },\n ],\n }),\n );\n }\n}\n"],"mappings":"AAAA,SAA2CA,SAAS,QAAqB,0BAAe;AACxF,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAqB;AAClE,SAASC,UAAU,EAAEC,aAAa,QAAgB,yBAAc;AAChE,SAASC,WAAW,QAAQ,kBAAe;;AAE3C;AACA;AACA;AACA,OAAO,MAAMC,YAAY,SAASD,WAAW,CAAuB;EAGlE;EACAE,WAAWA,CAACC,MAAc,EAAE;IAC1B,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;;EAEA;EACAC,SAASA,CAAC;IAAEC;EAAiB,CAAC,EAAE;IAC9B,IAAI,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE;MACrB;IACF;IAEA,IAAI,CAACH,MAAM,CAACI,IAAI,CACd,IAAIT,UAAU,CAAC;MACbU,QAAQ,EAAE,cAAc;MACxBC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE;QACJC,GAAG,EAAEhB,SAAS,CAACiB,aAAa,CAACP,OAAO,CAACM,GAAG,CAAC,CAACE,IAAI;QAC9CC,MAAM,EAAET,OAAO,CAACS,MAAM;QACtBC,MAAM,EAAEC,MAAM,CAACC,WAAW,CAAC,IAAIC,GAAG,CAACb,OAAO,CAACM,GAAG,CAAC,CAACQ,YAAY,CAACC,OAAO,CAAC,CAAC;MACxE,CAAC;MACDC,KAAK,EAAE;IACT,CAAC,CACH,CAAC;EACH;;EAEA;EACAC,UAAUA,CAAC;IAAEC,QAAQ;IAAElB;EAAqB,CAAC,EAAE;IAC7C,IAAI,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE;MACrB;IACF;IAEA,IAAI,CAACH,MAAM,CAACI,IAAI,CACd,IAAIT,UAAU,CAAC;MACbU,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE;QACJC,GAAG,EAAEhB,SAAS,CAACiB,aAAa,CAACP,OAAO,CAACM,GAAG,CAAC,CAACE,IAAI;QAC9CC,MAAM,EAAET,OAAO,CAACS,MAAM;QACtBU,WAAW,EAAED,QAAQ,CAACE,MAAM;QAC5BV,MAAM,EAAEC,MAAM,CAACC,WAAW,CAAC,IAAIC,GAAG,CAACb,OAAO,CAACM,GAAG,CAAC,CAACQ,YAAY,CAACC,OAAO,CAAC,CAAC;MACxE,CAAC;MACDC,KAAK,EAAEE,QAAQ,CAACG,EAAE,GAAG,MAAM,GAAG;IAChC,CAAC,CACH,CAAC;;IAED;IACA,IAAIH,QAAQ,CAACE,MAAM,GAAG,GAAG,EAAE;MACzB;IACF;IAEA,IAAI,CAACtB,MAAM,CAACwB,KAAK,CACf,IAAI5B,aAAa,CAAC,qCAAqCwB,QAAQ,CAACE,MAAM,EAAE,EAAE;MACxEJ,KAAK,EAAE,OAAO;MACdO,OAAO,EAAE,CACP;QACEC,GAAG,EAAE,0BAA0B;QAC/BnB,IAAI,EAAE;UACJC,GAAG,EAAEhB,SAAS,CAACiB,aAAa,CAACP,OAAO,CAACM,GAAG,CAAC,CAACE,IAAI;UAC9CC,MAAM,EAAET,OAAO,CAACS,MAAM;UACtBgB,OAAO,EAAEzB,OAAO,CAACyB,OAAO;UACxBf,MAAM,EAAEC,MAAM,CAACC,WAAW,CAAC,IAAIC,GAAG,CAACb,OAAO,CAACM,GAAG,CAAC,CAACQ,YAAY,CAACC,OAAO,CAAC,CAAC;UACtE;QACF;MACF,CAAC;IAEL,CAAC,CACH,CAAC;EACH;;EAEA;EACAW,OAAOA,CAAC;IAAEJ,KAAK;IAAEtB;EAAqB,CAAC,EAAE;IACvC,IAAI,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE;MACrB;IACF;;IAEA;IACA,IAAIT,cAAc,CAAC8B,KAAK,CAAC,EAAE;MACzB;IACF;;IAEA;IACA,IAAI/B,YAAY,CAAC+B,KAAK,CAAC,EAAE;MACvB;IACF;IAEA,IAAI,CAACxB,MAAM,CAACwB,KAAK,CACf,IAAI5B,aAAa,CAACiC,MAAM,CAACL,KAAK,CAAC,EAAE;MAC/BN,KAAK,EAAE,OAAO;MACdO,OAAO,EAAE,CACP;QACEC,GAAG,EAAE,0BAA0B;QAC/BnB,IAAI,EAAE;UACJC,GAAG,EAAEhB,SAAS,CAACiB,aAAa,CAACP,OAAO,CAACM,GAAG,CAAC,CAACE,IAAI;UAC9CC,MAAM,EAAET,OAAO,CAACS,MAAM;UACtBgB,OAAO,EAAEzB,OAAO,CAACyB,OAAO;UACxBf,MAAM,EAAEC,MAAM,CAACC,WAAW,CAAC,IAAIC,GAAG,CAACb,OAAO,CAACM,GAAG,CAAC,CAACQ,YAAY,CAACC,OAAO,CAAC,CAAC;UACtE;QACF;MACF,CAAC;IAEL,CAAC,CACH,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-fetch-error-logging.js","names":["log","getFetchErrorLogging","handlerInit","getHandler","onCatch","data"],"sources":["../../../../../src/preset/isomorphic/utils/get-fetch-error-logging.ts"],"sourcesContent":["import { log, type LogHandler, type LogHandlerFactory, type Middleware } from '../../../http';\n\n/**\n * Возвращает новый промежуточный слой логирования ошибки исходящего запроса.\n * @param handlerInit Обработчик.\n * @return Промежуточный слой.\n */\nexport function getFetchErrorLogging(handlerInit: LogHandler | LogHandlerFactory): Middleware {\n const getHandler: LogHandlerFactory =\n typeof handlerInit === 'function' ? handlerInit : () => handlerInit;\n\n return log({\n onCatch: data => {\n getHandler(data).onCatch?.(data);\n },\n });\n}\n"],"mappings":"AAAA,SAASA,GAAG,QAAkE,0BAAe;;AAE7F;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACC,WAA2C,EAAc;EAC5F,MAAMC,UAA6B,GACjC,OAAOD,WAAW,KAAK,UAAU,GAAGA,WAAW,GAAG,MAAMA,WAAW;EAErE,OAAOF,GAAG,CAAC;IACTI,OAAO,EAAEC,IAAI,IAAI;MACfF,UAAU,CAACE,IAAI,CAAC,CAACD,OAAO,GAAGC,IAAI,CAAC;IAClC;EACF,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"get-fetch-error-logging.js","names":["log","getFetchErrorLogging","handlerInit","getHandler","onCatch","data"],"sources":["../../../../../src/preset/isomorphic/utils/get-fetch-error-logging.ts"],"sourcesContent":["import { log, type LogHandler, type LogHandlerFactory, type Middleware } from '../../../http';\n\n/**\n * Возвращает новый промежуточный слой логирования ошибки исходящего запроса.\n * @param handlerInit Обработчик.\n * @return Промежуточный слой.\n */\nexport function getFetchErrorLogging(handlerInit: LogHandler | LogHandlerFactory): Middleware {\n const getHandler: LogHandlerFactory =\n typeof handlerInit === 'function' ? handlerInit : () => handlerInit;\n\n return log({\n onCatch: data => {\n getHandler(data).onCatch?.(data);\n },\n });\n}\n"],"mappings":"AAAA,SAASA,GAAG,QAAkE,0BAAe;;AAE7F;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACC,WAA2C,EAAc;EAC5F,MAAMC,UAA6B,GACjC,OAAOD,WAAW,KAAK,UAAU,GAAGA,WAAW,GAAG,MAAMA,WAAW;EAErE,OAAOF,GAAG,CAAC;IACTI,OAAO,EAAEC,IAAI,IAAI;MACfF,UAAU,CAACE,IAAI,CAAC,CAACD,OAAO,GAAGC,IAAI,CAAC;IAClC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-fetch-extra-aborting.js","names":["getFetchExtraAborting","controller","request","next","innerController","AbortController","signal","addEventListener","abort","once","Request"],"sources":["../../../../../src/preset/isomorphic/utils/get-fetch-extra-aborting.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\n\n/**\n * Возвращает новый промежуточный слой обрывания по заданному контроллеру.\n * Учитывает передачу контроллера в запросе.\n * @param controller Контроллер.\n * @return Промежуточный слой.\n */\nexport function getFetchExtraAborting(controller: AbortController): Middleware {\n return (request, next) => {\n const innerController = new AbortController();\n\n request.signal?.addEventListener(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n controller.signal.addEventListener(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n return next(new Request(request, { signal: innerController.signal }));\n };\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAqBA,CAACC,UAA2B,EAAc;EAC7E,OAAO,CAACC,OAAO,EAAEC,IAAI,KAAK;IACxB,MAAMC,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;IAE7CH,OAAO,CAACI,MAAM,EAAEC,gBAAgB,CAC9B,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAEDR,UAAU,CAACK,MAAM,CAACC,gBAAgB,CAChC,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAED,OAAON,IAAI,CAAC,IAAIO,OAAO,CAACR,OAAO,EAAE;MAAEI,MAAM,EAAEF,eAAe,CAACE;IAAO,CAAC,CAAC,CAAC;EACvE,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"get-fetch-extra-aborting.js","names":["getFetchExtraAborting","controller","request","next","innerController","AbortController","signal","addEventListener","abort","once","Request"],"sources":["../../../../../src/preset/isomorphic/utils/get-fetch-extra-aborting.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\n\n/**\n * Возвращает новый промежуточный слой обрывания по заданному контроллеру.\n * Учитывает передачу контроллера в запросе.\n * @param controller Контроллер.\n * @return Промежуточный слой.\n */\nexport function getFetchExtraAborting(controller: AbortController): Middleware {\n return (request, next) => {\n const innerController = new AbortController();\n\n request.signal?.addEventListener(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n controller.signal.addEventListener(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n return next(new Request(request, { signal: innerController.signal }));\n };\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAqBA,CAACC,UAA2B,EAAc;EAC7E,OAAO,CAACC,OAAO,EAAEC,IAAI,KAAK;IACxB,MAAMC,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;IAE7CH,OAAO,CAACI,MAAM,EAAEC,gBAAgB,CAC9B,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAEDR,UAAU,CAACK,MAAM,CAACC,gBAAgB,CAChC,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAED,OAAON,IAAI,CAAC,IAAIO,OAAO,CAACR,OAAO,EAAE;MAAEI,MAAM,EAAEF,eAAe,CAACE;IAAO,CAAC,CAAC,CAAC;EACvE,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-fetch-logging.js","names":["log","getFetchLogging","handlerInit","getHandler","onRequest","data","onResponse"],"sources":["../../../../../src/preset/isomorphic/utils/get-fetch-logging.ts"],"sourcesContent":["import { log, type LogHandler, type LogHandlerFactory, type Middleware } from '../../../http';\n\n/**\n * Возвращает новый промежуточный слой логирования исходящего запроса и входящего ответа.\n * @param handlerInit Обработчик.\n * @return Промежуточный слой.\n * @todo Возможно стоит переименовать в getFetchRequestLogging.\n */\nexport function getFetchLogging(handlerInit: LogHandler | LogHandlerFactory): Middleware {\n const getHandler: LogHandlerFactory =\n typeof handlerInit === 'function' ? handlerInit : () => handlerInit;\n\n return log({\n onRequest: data => {\n getHandler(data).onRequest?.(data);\n },\n onResponse: data => {\n getHandler(data).onResponse?.(data);\n },\n });\n}\n"],"mappings":"AAAA,SAASA,GAAG,QAAkE,0BAAe;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,WAA2C,EAAc;EACvF,MAAMC,UAA6B,GACjC,OAAOD,WAAW,KAAK,UAAU,GAAGA,WAAW,GAAG,MAAMA,WAAW;EAErE,OAAOF,GAAG,CAAC;IACTI,SAAS,EAAEC,IAAI,IAAI;MACjBF,UAAU,CAACE,IAAI,CAAC,CAACD,SAAS,GAAGC,IAAI,CAAC;IACpC,CAAC;IACDC,UAAU,EAAED,IAAI,IAAI;MAClBF,UAAU,CAACE,IAAI,CAAC,CAACC,UAAU,GAAGD,IAAI,CAAC;IACrC;EACF,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"get-fetch-logging.js","names":["log","getFetchLogging","handlerInit","getHandler","onRequest","data","onResponse"],"sources":["../../../../../src/preset/isomorphic/utils/get-fetch-logging.ts"],"sourcesContent":["import { log, type LogHandler, type LogHandlerFactory, type Middleware } from '../../../http';\n\n/**\n * Возвращает новый промежуточный слой логирования исходящего запроса и входящего ответа.\n * @param handlerInit Обработчик.\n * @return Промежуточный слой.\n * @todo Возможно стоит переименовать в getFetchRequestLogging.\n */\nexport function getFetchLogging(handlerInit: LogHandler | LogHandlerFactory): Middleware {\n const getHandler: LogHandlerFactory =\n typeof handlerInit === 'function' ? handlerInit : () => handlerInit;\n\n return log({\n onRequest: data => {\n getHandler(data).onRequest?.(data);\n },\n onResponse: data => {\n getHandler(data).onResponse?.(data);\n },\n });\n}\n"],"mappings":"AAAA,SAASA,GAAG,QAAkE,0BAAe;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,WAA2C,EAAc;EACvF,MAAMC,UAA6B,GACjC,OAAOD,WAAW,KAAK,UAAU,GAAGA,WAAW,GAAG,MAAMA,WAAW;EAErE,OAAOF,GAAG,CAAC;IACTI,SAAS,EAAEC,IAAI,IAAI;MACjBF,UAAU,CAACE,IAAI,CAAC,CAACD,SAAS,GAAGC,IAAI,CAAC;IACpC,CAAC;IACDC,UAAU,EAAED,IAAI,IAAI;MAClBF,UAAU,CAACE,IAAI,CAAC,CAACC,UAAU,GAAGD,IAAI,CAAC;IACrC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-api-host-pool.js","names":["HttpApiHostPool","constructor","map","source","get","key","absolute","variableName","Error","value","require","Request","url","getAll","keys","Object","fromEntries"],"sources":["../../../../../src/preset/isomorphic/utils/http-api-host-pool.ts"],"sourcesContent":["import type { ConfigSource } from '../../../config';\nimport type { StrictMap } from '../types';\n\n/** Реализация пула хостов. */\nexport class HttpApiHostPool<Key extends string> implements StrictMap<Key> {\n private map: Record<Key, string>;\n private source: ConfigSource;\n\n /**\n * Конструктор.\n * @param map Карта \"Название api >> Название переменной среды с хостом api\".\n * @param source Источник конфигурации.\n */\n constructor(map: Record<Key, string>, source: ConfigSource) {\n this.map = map;\n this.source = source;\n }\n\n /** @inheritDoc */\n get(key: Key, { absolute }: { absolute?: boolean } = {}): string {\n const variableName = this.map[key];\n\n if (!variableName) {\n throw Error(`Known HTTP API not found by key \"${key}\"`);\n }\n\n // \"лениво\" берём переменную, именно в момент вызова (чтобы не заставлять указывать в сервисах все переменные разом)\n const value = this.source.require(variableName);\n\n if (absolute) {\n return new Request(value).url;\n }\n\n return value;\n }\n\n /**\n * Возвращает объект в котором ключи - переданные имена хостов а значения - хосты.\n * @param keys Названия хостов.\n * @return Объект.\n */\n getAll(keys: Key[] = Object.keys(this.map) as Key[]): Record<Key, string> {\n return Object.fromEntries(keys.map(key => [key, this.get(key)])) as Record<Key, string>;\n }\n}\n"],"mappings":"AAGA;AACA,OAAO,MAAMA,eAAe,CAA+C;EAIzE;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,GAAwB,EAAEC,MAAoB,EAAE;IAC1D,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;;EAEA;EACAC,GAAGA,CAACC,GAAQ,EAAE;IAAEC;EAAiC,CAAC,GAAG,CAAC,CAAC,EAAU;IAC/D,MAAMC,YAAY,GAAG,IAAI,CAACL,GAAG,CAACG,GAAG,CAAC;IAElC,IAAI,CAACE,YAAY,EAAE;MACjB,MAAMC,KAAK,
|
|
1
|
+
{"version":3,"file":"http-api-host-pool.js","names":["HttpApiHostPool","constructor","map","source","get","key","absolute","variableName","Error","value","require","Request","url","getAll","keys","Object","fromEntries"],"sources":["../../../../../src/preset/isomorphic/utils/http-api-host-pool.ts"],"sourcesContent":["import type { ConfigSource } from '../../../config';\nimport type { StrictMap } from '../types';\n\n/** Реализация пула хостов. */\nexport class HttpApiHostPool<Key extends string> implements StrictMap<Key> {\n private map: Record<Key, string>;\n private source: ConfigSource;\n\n /**\n * Конструктор.\n * @param map Карта \"Название api >> Название переменной среды с хостом api\".\n * @param source Источник конфигурации.\n */\n constructor(map: Record<Key, string>, source: ConfigSource) {\n this.map = map;\n this.source = source;\n }\n\n /** @inheritDoc */\n get(key: Key, { absolute }: { absolute?: boolean } = {}): string {\n const variableName = this.map[key];\n\n if (!variableName) {\n throw Error(`Known HTTP API not found by key \"${key}\"`);\n }\n\n // \"лениво\" берём переменную, именно в момент вызова (чтобы не заставлять указывать в сервисах все переменные разом)\n const value = this.source.require(variableName);\n\n if (absolute) {\n return new Request(value).url;\n }\n\n return value;\n }\n\n /**\n * Возвращает объект в котором ключи - переданные имена хостов а значения - хосты.\n * @param keys Названия хостов.\n * @return Объект.\n */\n getAll(keys: Key[] = Object.keys(this.map) as Key[]): Record<Key, string> {\n return Object.fromEntries(keys.map(key => [key, this.get(key)])) as Record<Key, string>;\n }\n}\n"],"mappings":"AAGA;AACA,OAAO,MAAMA,eAAe,CAA+C;EAIzE;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,GAAwB,EAAEC,MAAoB,EAAE;IAC1D,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;;EAEA;EACAC,GAAGA,CAACC,GAAQ,EAAE;IAAEC;EAAiC,CAAC,GAAG,CAAC,CAAC,EAAU;IAC/D,MAAMC,YAAY,GAAG,IAAI,CAACL,GAAG,CAACG,GAAG,CAAC;IAElC,IAAI,CAACE,YAAY,EAAE;MACjB,MAAMC,KAAK,CAAC,oCAAoCH,GAAG,GAAG,CAAC;IACzD;;IAEA;IACA,MAAMI,KAAK,GAAG,IAAI,CAACN,MAAM,CAACO,OAAO,CAACH,YAAY,CAAC;IAE/C,IAAID,QAAQ,EAAE;MACZ,OAAO,IAAIK,OAAO,CAACF,KAAK,CAAC,CAACG,GAAG;IAC/B;IAEA,OAAOH,KAAK;EACd;;EAEA;AACF;AACA;AACA;AACA;EACEI,MAAMA,CAACC,IAAW,GAAGC,MAAM,CAACD,IAAI,CAAC,IAAI,CAACZ,GAAG,CAAU,EAAuB;IACxE,OAAOa,MAAM,CAACC,WAAW,CAACF,IAAI,CAACZ,GAAG,CAACG,GAAG,IAAI,CAACA,GAAG,EAAE,IAAI,CAACD,GAAG,CAACC,GAAG,CAAC,CAAC,CAAC,CAAC;EAClE;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-status.js","names":["HttpStatus","isOk","status","isPostOk","isDeleteOk","axiosMiddleware","config","next","defaults","validateStatus","undefined","method","toLowerCase"],"sources":["../../../../../src/preset/isomorphic/utils/http-status.ts"],"sourcesContent":["import type { AxiosRequestConfig } from 'axios';\nimport type { Middleware as AxiosMiddleware } from 'middleware-axios';\n\n/** Работа с HTTP-статусами по соглашению. */\nexport abstract class HttpStatus {\n /**\n * Определяет, является ли переданный статус успешным.\n * @param status Статус.\n * @return Признак.\n */\n static isOk(status: unknown): boolean {\n return typeof status === 'number' && status === 200;\n }\n\n /**\n * Определяет, является ли переданный статус успешным POST.\n * @param status Статус.\n * @return Признак.\n */\n static isPostOk(status: unknown): boolean {\n return typeof status === 'number' && status === 201;\n }\n\n /**\n * Определяет, является ли переданный статус успешным DELETE.\n * @param status Статус.\n * @return Признак.\n */\n static isDeleteOk(status: unknown): boolean {\n return typeof status === 'number' && (status === 204 || status === 200);\n }\n\n /**\n * Возвращает новый промежуточный слой для валидации статуса HTTP-ответа.\n * Валидация применяется только если в конфиге запроса не указан validateStatus.\n * @return Промежуточный слой.\n */\n static axiosMiddleware(): AxiosMiddleware<unknown> {\n return async (config, next, defaults) => {\n if (config.validateStatus !== undefined || defaults.validateStatus !== undefined) {\n // если validateStatus указан явно то не применяем валидацию по умолчанию\n await next(config);\n } else {\n let validateStatus: AxiosRequestConfig['validateStatus'] = null;\n\n switch (config.method?.toLowerCase()) {\n case 'get':\n case 'put':\n case undefined:\n validateStatus = HttpStatus.isOk;\n break;\n case 'post':\n validateStatus = HttpStatus.isPostOk;\n break;\n case 'delete':\n validateStatus = HttpStatus.isDeleteOk;\n break;\n }\n\n await next({ ...config, validateStatus });\n }\n };\n }\n}\n"],"mappings":"AAGA;AACA,OAAO,MAAeA,UAAU,CAAC;EAC/B;AACF;AACA;AACA;AACA;EACE,OAAOC,IAAIA,CAACC,MAAe,EAAW;IACpC,OAAO,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,GAAG;EACrD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,QAAQA,CAACD,MAAe,EAAW;IACxC,OAAO,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,GAAG;EACrD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOE,UAAUA,CAACF,MAAe,EAAW;IAC1C,OAAO,OAAOA,MAAM,KAAK,QAAQ,KAAKA,MAAM,KAAK,GAAG,IAAIA,MAAM,KAAK,GAAG,CAAC;EACzE;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOG,eAAeA,CAAA,EAA6B;IACjD,OAAO,OAAOC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,KAAK;MACvC,IAAIF,MAAM,CAACG,cAAc,KAAKC,SAAS,IAAIF,QAAQ,CAACC,cAAc,KAAKC,SAAS,EAAE;QAChF;QACA,MAAMH,IAAI,CAACD,MAAM,CAAC;MACpB,CAAC,MAAM;QACL,IAAIG,cAAoD,GAAG,IAAI;QAE/D,QAAQH,MAAM,CAACK,MAAM,EAAEC,WAAW,CAAC,CAAC;UAClC,KAAK,KAAK;UACV,KAAK,KAAK;UACV,KAAKF,SAAS;YACZD,cAAc,GAAGT,UAAU,CAACC,IAAI;YAChC;UACF,KAAK,MAAM;YACTQ,cAAc,GAAGT,UAAU,CAACG,QAAQ;YACpC;UACF,KAAK,QAAQ;YACXM,cAAc,GAAGT,UAAU,CAACI,UAAU;YACtC;QACJ;QAEA,MAAMG,IAAI,CAAC;UAAE,GAAGD,MAAM;UAAEG;QAAe,CAAC,CAAC;MAC3C;IACF,CAAC;EACH;AACF"}
|
|
1
|
+
{"version":3,"file":"http-status.js","names":["HttpStatus","isOk","status","isPostOk","isDeleteOk","axiosMiddleware","config","next","defaults","validateStatus","undefined","method","toLowerCase"],"sources":["../../../../../src/preset/isomorphic/utils/http-status.ts"],"sourcesContent":["import type { AxiosRequestConfig } from 'axios';\nimport type { Middleware as AxiosMiddleware } from 'middleware-axios';\n\n/** Работа с HTTP-статусами по соглашению. */\nexport abstract class HttpStatus {\n /**\n * Определяет, является ли переданный статус успешным.\n * @param status Статус.\n * @return Признак.\n */\n static isOk(status: unknown): boolean {\n return typeof status === 'number' && status === 200;\n }\n\n /**\n * Определяет, является ли переданный статус успешным POST.\n * @param status Статус.\n * @return Признак.\n */\n static isPostOk(status: unknown): boolean {\n return typeof status === 'number' && status === 201;\n }\n\n /**\n * Определяет, является ли переданный статус успешным DELETE.\n * @param status Статус.\n * @return Признак.\n */\n static isDeleteOk(status: unknown): boolean {\n return typeof status === 'number' && (status === 204 || status === 200);\n }\n\n /**\n * Возвращает новый промежуточный слой для валидации статуса HTTP-ответа.\n * Валидация применяется только если в конфиге запроса не указан validateStatus.\n * @return Промежуточный слой.\n */\n static axiosMiddleware(): AxiosMiddleware<unknown> {\n return async (config, next, defaults) => {\n if (config.validateStatus !== undefined || defaults.validateStatus !== undefined) {\n // если validateStatus указан явно то не применяем валидацию по умолчанию\n await next(config);\n } else {\n let validateStatus: AxiosRequestConfig['validateStatus'] = null;\n\n switch (config.method?.toLowerCase()) {\n case 'get':\n case 'put':\n case undefined:\n validateStatus = HttpStatus.isOk;\n break;\n case 'post':\n validateStatus = HttpStatus.isPostOk;\n break;\n case 'delete':\n validateStatus = HttpStatus.isDeleteOk;\n break;\n }\n\n await next({ ...config, validateStatus });\n }\n };\n }\n}\n"],"mappings":"AAGA;AACA,OAAO,MAAeA,UAAU,CAAC;EAC/B;AACF;AACA;AACA;AACA;EACE,OAAOC,IAAIA,CAACC,MAAe,EAAW;IACpC,OAAO,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,GAAG;EACrD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,QAAQA,CAACD,MAAe,EAAW;IACxC,OAAO,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,GAAG;EACrD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOE,UAAUA,CAACF,MAAe,EAAW;IAC1C,OAAO,OAAOA,MAAM,KAAK,QAAQ,KAAKA,MAAM,KAAK,GAAG,IAAIA,MAAM,KAAK,GAAG,CAAC;EACzE;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOG,eAAeA,CAAA,EAA6B;IACjD,OAAO,OAAOC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,KAAK;MACvC,IAAIF,MAAM,CAACG,cAAc,KAAKC,SAAS,IAAIF,QAAQ,CAACC,cAAc,KAAKC,SAAS,EAAE;QAChF;QACA,MAAMH,IAAI,CAACD,MAAM,CAAC;MACpB,CAAC,MAAM;QACL,IAAIG,cAAoD,GAAG,IAAI;QAE/D,QAAQH,MAAM,CAACK,MAAM,EAAEC,WAAW,CAAC,CAAC;UAClC,KAAK,KAAK;UACV,KAAK,KAAK;UACV,KAAKF,SAAS;YACZD,cAAc,GAAGT,UAAU,CAACC,IAAI;YAChC;UACF,KAAK,MAAM;YACTQ,cAAc,GAAGT,UAAU,CAACG,QAAQ;YACpC;UACF,KAAK,QAAQ;YACXM,cAAc,GAAGT,UAAU,CAACI,UAAU;YACtC;QACJ;QAEA,MAAMG,IAAI,CAAC;UAAE,GAAGD,MAAM;UAAEG;QAAe,CAAC,CAAC;MAC3C;IACF,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saga-logging.js","names":["DetailedError","SagaLogging","constructor","logger","onSagaError","error","info","message","extra","key","data","sagaStack","onConfigError","onTimeoutInterrupt","timeout","level"],"sources":["../../../../../src/preset/isomorphic/utils/saga-logging.ts"],"sourcesContent":["import { DetailedError, type Logger } from '../../../log';\nimport type { SagaMiddlewareHandler } from '../../../utils/redux-saga';\nimport type { SagaErrorInfo, SagaInterruptInfo } from '../../../utils/redux-saga/types';\n\n/**\n * Лог событий запуска и выполнения redux-saga.\n */\nexport class SagaLogging implements SagaMiddlewareHandler {\n protected logger: Logger;\n\n /**\n * @param logger Logger.\n */\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * При получении ошибки выполнения саги передаст ее логгеру ее с данными стека в extra.\n * @param error Ошибка.\n * @param info Инфо выполнения саги.\n */\n onSagaError(error: Error, info: SagaErrorInfo) {\n this.logger.error(\n new DetailedError(error.message, {\n extra: {\n key: 'Saga stack',\n data: info.sagaStack,\n },\n }),\n );\n }\n\n /**\n * При получении ошибки запуска саги передаст ее логгеру.\n * @param error Ошибка.\n */\n onConfigError(error: Error) {\n this.logger.error(error);\n }\n\n /**\n * При прерывании саги передаст информацию логгеру как ошибку.\n * @param info Инфо прерывания саги.\n */\n onTimeoutInterrupt({ timeout }: SagaInterruptInfo) {\n this.logger.error(\n new DetailedError(`Сага прервана по таймауту (${timeout}мс)`, {\n level: 'warning',\n }),\n );\n }\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAqB,yBAAc;AAIzD;AACA;AACA;AACA,OAAO,MAAMC,WAAW,CAAkC;EAGxD;AACF;AACA;EACEC,WAAWA,CAACC,MAAc,EAAE;IAC1B,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;;EAEA;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,KAAY,EAAEC,IAAmB,EAAE;IAC7C,IAAI,CAACH,MAAM,CAACE,KAAK,CACf,IAAIL,aAAa,CAACK,KAAK,CAACE,OAAO,EAAE;MAC/BC,KAAK,EAAE;QACLC,GAAG,EAAE,YAAY;QACjBC,IAAI,EAAEJ,IAAI,CAACK;MACb;IACF,CAAC,CACH,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACEC,aAAaA,CAACP,KAAY,EAAE;IAC1B,IAAI,CAACF,MAAM,CAACE,KAAK,CAACA,KAAK,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;EACEQ,kBAAkBA,CAAC;IAAEC;EAA2B,CAAC,EAAE;IACjD,IAAI,CAACX,MAAM,CAACE,KAAK,CACf,IAAIL,aAAa,
|
|
1
|
+
{"version":3,"file":"saga-logging.js","names":["DetailedError","SagaLogging","constructor","logger","onSagaError","error","info","message","extra","key","data","sagaStack","onConfigError","onTimeoutInterrupt","timeout","level"],"sources":["../../../../../src/preset/isomorphic/utils/saga-logging.ts"],"sourcesContent":["import { DetailedError, type Logger } from '../../../log';\nimport type { SagaMiddlewareHandler } from '../../../utils/redux-saga';\nimport type { SagaErrorInfo, SagaInterruptInfo } from '../../../utils/redux-saga/types';\n\n/**\n * Лог событий запуска и выполнения redux-saga.\n */\nexport class SagaLogging implements SagaMiddlewareHandler {\n protected logger: Logger;\n\n /**\n * @param logger Logger.\n */\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * При получении ошибки выполнения саги передаст ее логгеру ее с данными стека в extra.\n * @param error Ошибка.\n * @param info Инфо выполнения саги.\n */\n onSagaError(error: Error, info: SagaErrorInfo) {\n this.logger.error(\n new DetailedError(error.message, {\n extra: {\n key: 'Saga stack',\n data: info.sagaStack,\n },\n }),\n );\n }\n\n /**\n * При получении ошибки запуска саги передаст ее логгеру.\n * @param error Ошибка.\n */\n onConfigError(error: Error) {\n this.logger.error(error);\n }\n\n /**\n * При прерывании саги передаст информацию логгеру как ошибку.\n * @param info Инфо прерывания саги.\n */\n onTimeoutInterrupt({ timeout }: SagaInterruptInfo) {\n this.logger.error(\n new DetailedError(`Сага прервана по таймауту (${timeout}мс)`, {\n level: 'warning',\n }),\n );\n }\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAqB,yBAAc;AAIzD;AACA;AACA;AACA,OAAO,MAAMC,WAAW,CAAkC;EAGxD;AACF;AACA;EACEC,WAAWA,CAACC,MAAc,EAAE;IAC1B,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;;EAEA;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,KAAY,EAAEC,IAAmB,EAAE;IAC7C,IAAI,CAACH,MAAM,CAACE,KAAK,CACf,IAAIL,aAAa,CAACK,KAAK,CAACE,OAAO,EAAE;MAC/BC,KAAK,EAAE;QACLC,GAAG,EAAE,YAAY;QACjBC,IAAI,EAAEJ,IAAI,CAACK;MACb;IACF,CAAC,CACH,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACEC,aAAaA,CAACP,KAAY,EAAE;IAC1B,IAAI,CAACF,MAAM,CAACE,KAAK,CAACA,KAAK,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;EACEQ,kBAAkBA,CAAC;IAAEC;EAA2B,CAAC,EAAE;IACjD,IAAI,CAACX,MAAM,CAACE,KAAK,CACf,IAAIL,aAAa,CAAC,8BAA8Bc,OAAO,KAAK,EAAE;MAC5DC,KAAK,EAAE;IACT,CAAC,CACH,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"severity-from-status.js","names":["severityFromStatus","status","result"],"sources":["../../../../../src/preset/isomorphic/utils/severity-from-status.ts"],"sourcesContent":["import type { SeverityLevel } from '@sentry/browser';\n\n/**\n * Возвращает уровень на основе статуса ответа.\n * @param status Статус HTTP-ответа.\n * @return Уровень.\n */\nexport function severityFromStatus(status: unknown): SeverityLevel {\n let result: SeverityLevel;\n\n if (typeof status === 'number') {\n switch (true) {\n case status >= 200 && status <= 299:\n result = 'info';\n break;\n case status >= 300 && status <= 499:\n result = 'warning';\n break;\n default:\n result = 'error';\n }\n } else {\n result = 'error';\n }\n\n return result;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAACC,MAAe,EAAiB;EACjE,IAAIC,MAAqB;EAEzB,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;IAC9B,QAAQ,IAAI;MACV,KAAKA,MAAM,IAAI,GAAG,IAAIA,MAAM,IAAI,GAAG;QACjCC,MAAM,GAAG,MAAM;QACf;MACF,KAAKD,MAAM,IAAI,GAAG,IAAIA,MAAM,IAAI,GAAG;QACjCC,MAAM,GAAG,SAAS;QAClB;MACF;QACEA,MAAM,GAAG,OAAO;IACpB;EACF,CAAC,MAAM;IACLA,MAAM,GAAG,OAAO;EAClB;EAEA,OAAOA,MAAM;AACf"}
|
|
1
|
+
{"version":3,"file":"severity-from-status.js","names":["severityFromStatus","status","result"],"sources":["../../../../../src/preset/isomorphic/utils/severity-from-status.ts"],"sourcesContent":["import type { SeverityLevel } from '@sentry/browser';\n\n/**\n * Возвращает уровень на основе статуса ответа.\n * @param status Статус HTTP-ответа.\n * @return Уровень.\n */\nexport function severityFromStatus(status: unknown): SeverityLevel {\n let result: SeverityLevel;\n\n if (typeof status === 'number') {\n switch (true) {\n case status >= 200 && status <= 299:\n result = 'info';\n break;\n case status >= 300 && status <= 499:\n result = 'warning';\n break;\n default:\n result = 'error';\n }\n } else {\n result = 'error';\n }\n\n return result;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAACC,MAAe,EAAiB;EACjE,IAAIC,MAAqB;EAEzB,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;IAC9B,QAAQ,IAAI;MACV,KAAKA,MAAM,IAAI,GAAG,IAAIA,MAAM,IAAI,GAAG;QACjCC,MAAM,GAAG,MAAM;QACf;MACF,KAAKD,MAAM,IAAI,GAAG,IAAIA,MAAM,IAAI,GAAG;QACjCC,MAAM,GAAG,SAAS;QAClB;MACF;QACEA,MAAM,GAAG,OAAO;IACpB;EACF,CAAC,MAAM;IACLA,MAAM,GAAG,OAAO;EAClB;EAEA,OAAOA,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["KnownToken","provideAxiosFactory","provideFetch","provideBaseConfig","createPreset","healthCheck","provideConfigSource","provideExpressErrorMiddleware","provideExpressFactory","provideExpressLogMiddleware","provideExpressMetricsMiddleware","provideExpressRequestMiddleware","provideExpressTracingMiddleware","provideKnownHttpApiHosts","provideLogger","provideMetricsExpressApp","provideTracer","provideSpanExporter","provideSsrBridgeServerSide","provideTracingProvider","provideTracingResource","provideMainExpressApp","providePublicEnvs","PresetNode","customize","preset","set","Config","source","base","publicEnvs","logger","Tracing","tracer","spanExporter","provider","resource","Metrics","expressApp","Http","fetch","Fetch","middleware","Serve","Proxy","config","Axios","factory","Express","app","pageRoutes","serviceRoutes","resolve","Handlers","Middleware","request","log","metrics","tracing","endMiddleware","error","Api","knownHosts","SsrBridge","serverSide","override","bind","getClientIp","getForwardedHeaders","getPageResponseFormat","HandlerProvider"],"sources":["../../../../src/preset/node/index.ts"],"sourcesContent":["import { KnownToken } from '../../tokens';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideBaseConfig } from '../isomorphic/providers/base-config';\nimport { Preset, createPreset } from '../../di';\nimport { PresetTuner } from '../isomorphic/types';\nimport { healthCheck } from '../../utils/express/handler/health-check';\nimport { provideConfigSource } from './providers/config-source';\nimport { provideExpressErrorMiddleware } from './providers/express-error-middleware';\nimport { provideExpressFactory } from './providers/express-factory';\nimport { provideExpressLogMiddleware } from './providers/express-log-middleware';\nimport { provideExpressMetricsMiddleware } from './providers/express-metrics-middleware';\nimport { provideExpressRequestMiddleware } from './providers/express-request-middleware';\nimport { provideExpressTracingMiddleware } from './providers/express-tracing-middleware';\nimport { provideKnownHttpApiHosts } from '../server/providers/known-http-api-hosts';\nimport { provideLogger } from './providers/logger';\nimport { provideMetricsExpressApp } from './providers/metrics-express-app';\nimport { provideTracer } from './providers/telemetry-tracer';\nimport { provideSpanExporter } from './providers/telemetry-tracer-span-exporter';\nimport { provideSsrBridgeServerSide } from '../server/providers/ssr-bridge-server-side';\nimport { provideTracingProvider } from './providers/telemetry-tracer-provider';\nimport { provideTracingResource } from './providers/telemetry-tracer-resource';\nimport { provideMainExpressApp } from './providers/main-express-app';\nimport { ExpressRouteList } from './types';\nimport { providePublicEnvs } from './providers/public-envs';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetNode(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // config\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n preset.set(KnownToken.Config.publicEnvs, providePublicEnvs);\n\n // log\n preset.set(KnownToken.logger, provideLogger);\n\n // tracing\n preset.set(KnownToken.Tracing.tracer, provideTracer);\n preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);\n preset.set(KnownToken.Tracing.provider, provideTracingProvider);\n preset.set(KnownToken.Tracing.resource, provideTracingResource);\n\n // metrics\n preset.set(KnownToken.Metrics.expressApp, provideMetricsExpressApp);\n\n // fetch\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, () => []);\n preset.set(KnownToken.Http.Serve.Proxy.config, () => null);\n\n // axios\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, () => []);\n\n // express\n preset.set(KnownToken.Express.app, provideMainExpressApp);\n preset.set(KnownToken.Express.pageRoutes, () => []);\n preset.set(\n KnownToken.Express.serviceRoutes,\n (resolve): ExpressRouteList => [\n ['/healthcheck', resolve(KnownToken.Express.Handlers.healthCheck)],\n ],\n );\n preset.set(KnownToken.Express.middleware, resolve => [\n resolve(KnownToken.Express.Middleware.request),\n resolve(KnownToken.Express.Middleware.log),\n resolve(KnownToken.Express.Middleware.metrics),\n resolve(KnownToken.Express.Middleware.tracing),\n ]);\n preset.set(KnownToken.Express.endMiddleware, resolve => [\n resolve(KnownToken.Express.Middleware.error),\n ]);\n preset.set(KnownToken.Express.factory, provideExpressFactory);\n preset.set(KnownToken.Express.Handlers.healthCheck, healthCheck);\n preset.set(KnownToken.Express.Middleware.request, provideExpressRequestMiddleware);\n preset.set(KnownToken.Express.Middleware.log, provideExpressLogMiddleware);\n preset.set(KnownToken.Express.Middleware.metrics, provideExpressMetricsMiddleware);\n preset.set(KnownToken.Express.Middleware.tracing, provideExpressTracingMiddleware);\n preset.set(KnownToken.Express.Middleware.error, provideExpressErrorMiddleware);\n\n // http api\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n\n // ssr bridge\n preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n\nexport type { ExpressHandlerContext, ExpressRouteList } from './types';\n\n// доступные утилиты\nexport { getClientIp } from './utils/get-client-ip';\nexport { getForwardedHeaders } from './utils/get-forwarded-headers';\nexport { getPageResponseFormat } from './utils/get-page-response-format';\nexport { HandlerProvider } from './utils/handler-provider';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["KnownToken","provideAxiosFactory","provideFetch","provideBaseConfig","createPreset","healthCheck","provideConfigSource","provideExpressErrorMiddleware","provideExpressFactory","provideExpressLogMiddleware","provideExpressMetricsMiddleware","provideExpressRequestMiddleware","provideExpressTracingMiddleware","provideKnownHttpApiHosts","provideLogger","provideMetricsExpressApp","provideTracer","provideSpanExporter","provideSsrBridgeServerSide","provideTracingProvider","provideTracingResource","provideMainExpressApp","providePublicEnvs","PresetNode","customize","preset","set","Config","source","base","publicEnvs","logger","Tracing","tracer","spanExporter","provider","resource","Metrics","expressApp","Http","fetch","Fetch","middleware","Serve","Proxy","config","Axios","factory","Express","app","pageRoutes","serviceRoutes","resolve","Handlers","Middleware","request","log","metrics","tracing","endMiddleware","error","Api","knownHosts","SsrBridge","serverSide","override","bind","getClientIp","getForwardedHeaders","getPageResponseFormat","HandlerProvider"],"sources":["../../../../src/preset/node/index.ts"],"sourcesContent":["import { KnownToken } from '../../tokens';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideBaseConfig } from '../isomorphic/providers/base-config';\nimport { Preset, createPreset } from '../../di';\nimport { PresetTuner } from '../isomorphic/types';\nimport { healthCheck } from '../../utils/express/handler/health-check';\nimport { provideConfigSource } from './providers/config-source';\nimport { provideExpressErrorMiddleware } from './providers/express-error-middleware';\nimport { provideExpressFactory } from './providers/express-factory';\nimport { provideExpressLogMiddleware } from './providers/express-log-middleware';\nimport { provideExpressMetricsMiddleware } from './providers/express-metrics-middleware';\nimport { provideExpressRequestMiddleware } from './providers/express-request-middleware';\nimport { provideExpressTracingMiddleware } from './providers/express-tracing-middleware';\nimport { provideKnownHttpApiHosts } from '../server/providers/known-http-api-hosts';\nimport { provideLogger } from './providers/logger';\nimport { provideMetricsExpressApp } from './providers/metrics-express-app';\nimport { provideTracer } from './providers/telemetry-tracer';\nimport { provideSpanExporter } from './providers/telemetry-tracer-span-exporter';\nimport { provideSsrBridgeServerSide } from '../server/providers/ssr-bridge-server-side';\nimport { provideTracingProvider } from './providers/telemetry-tracer-provider';\nimport { provideTracingResource } from './providers/telemetry-tracer-resource';\nimport { provideMainExpressApp } from './providers/main-express-app';\nimport { ExpressRouteList } from './types';\nimport { providePublicEnvs } from './providers/public-envs';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetNode(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // config\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n preset.set(KnownToken.Config.publicEnvs, providePublicEnvs);\n\n // log\n preset.set(KnownToken.logger, provideLogger);\n\n // tracing\n preset.set(KnownToken.Tracing.tracer, provideTracer);\n preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);\n preset.set(KnownToken.Tracing.provider, provideTracingProvider);\n preset.set(KnownToken.Tracing.resource, provideTracingResource);\n\n // metrics\n preset.set(KnownToken.Metrics.expressApp, provideMetricsExpressApp);\n\n // fetch\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, () => []);\n preset.set(KnownToken.Http.Serve.Proxy.config, () => null);\n\n // axios\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, () => []);\n\n // express\n preset.set(KnownToken.Express.app, provideMainExpressApp);\n preset.set(KnownToken.Express.pageRoutes, () => []);\n preset.set(\n KnownToken.Express.serviceRoutes,\n (resolve): ExpressRouteList => [\n ['/healthcheck', resolve(KnownToken.Express.Handlers.healthCheck)],\n ],\n );\n preset.set(KnownToken.Express.middleware, resolve => [\n resolve(KnownToken.Express.Middleware.request),\n resolve(KnownToken.Express.Middleware.log),\n resolve(KnownToken.Express.Middleware.metrics),\n resolve(KnownToken.Express.Middleware.tracing),\n ]);\n preset.set(KnownToken.Express.endMiddleware, resolve => [\n resolve(KnownToken.Express.Middleware.error),\n ]);\n preset.set(KnownToken.Express.factory, provideExpressFactory);\n preset.set(KnownToken.Express.Handlers.healthCheck, healthCheck);\n preset.set(KnownToken.Express.Middleware.request, provideExpressRequestMiddleware);\n preset.set(KnownToken.Express.Middleware.log, provideExpressLogMiddleware);\n preset.set(KnownToken.Express.Middleware.metrics, provideExpressMetricsMiddleware);\n preset.set(KnownToken.Express.Middleware.tracing, provideExpressTracingMiddleware);\n preset.set(KnownToken.Express.Middleware.error, provideExpressErrorMiddleware);\n\n // http api\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n\n // ssr bridge\n preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n\nexport type { ExpressHandlerContext, ExpressRouteList } from './types';\n\n// доступные утилиты\nexport { getClientIp } from './utils/get-client-ip';\nexport { getForwardedHeaders } from './utils/get-forwarded-headers';\nexport { getPageResponseFormat } from './utils/get-page-response-format';\nexport { HandlerProvider } from './utils/handler-provider';\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,mBAAmB,QAAQ,0CAAuC;AAC3E,SAASC,YAAY,QAAQ,kCAA+B;AAC5D,SAASC,iBAAiB,QAAQ,wCAAqC;AACvE,SAAiBC,YAAY,QAAQ,qBAAU;AAE/C,SAASC,WAAW,QAAQ,6CAA0C;AACtE,SAASC,mBAAmB,QAAQ,8BAA2B;AAC/D,SAASC,6BAA6B,QAAQ,yCAAsC;AACpF,SAASC,qBAAqB,QAAQ,gCAA6B;AACnE,SAASC,2BAA2B,QAAQ,uCAAoC;AAChF,SAASC,+BAA+B,QAAQ,2CAAwC;AACxF,SAASC,+BAA+B,QAAQ,2CAAwC;AACxF,SAASC,+BAA+B,QAAQ,2CAAwC;AACxF,SAASC,wBAAwB,QAAQ,6CAA0C;AACnF,SAASC,aAAa,QAAQ,uBAAoB;AAClD,SAASC,wBAAwB,QAAQ,oCAAiC;AAC1E,SAASC,aAAa,QAAQ,iCAA8B;AAC5D,SAASC,mBAAmB,QAAQ,+CAA4C;AAChF,SAASC,0BAA0B,QAAQ,+CAA4C;AACvF,SAASC,sBAAsB,QAAQ,0CAAuC;AAC9E,SAASC,sBAAsB,QAAQ,0CAAuC;AAC9E,SAASC,qBAAqB,QAAQ,iCAA8B;AAEpE,SAASC,iBAAiB,QAAQ,4BAAyB;;AAE3D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,SAAuB,EAAU;EAC1D;EACA,MAAMC,MAAM,GAAGrB,YAAY,CAAC,CAAC;;EAE7B;EACAqB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAAC2B,MAAM,CAACC,MAAM,EAAEtB,mBAAmB,CAAC;EACzDmB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAAC2B,MAAM,CAACE,IAAI,EAAE1B,iBAAiB,CAAC;EACrDsB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAAC2B,MAAM,CAACG,UAAU,EAAER,iBAAiB,CAAC;;EAE3D;EACAG,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAAC+B,MAAM,EAAEjB,aAAa,CAAC;;EAE5C;EACAW,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgC,OAAO,CAACC,MAAM,EAAEjB,aAAa,CAAC;EACpDS,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgC,OAAO,CAACE,YAAY,EAAEjB,mBAAmB,CAAC;EAChEQ,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgC,OAAO,CAACG,QAAQ,EAAEhB,sBAAsB,CAAC;EAC/DM,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgC,OAAO,CAACI,QAAQ,EAAEhB,sBAAsB,CAAC;;EAE/D;EACAK,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACqC,OAAO,CAACC,UAAU,EAAEvB,wBAAwB,CAAC;;EAEnE;EACAU,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACuC,IAAI,CAACC,KAAK,EAAEtC,YAAY,CAAC;EAC/CuB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACuC,IAAI,CAACE,KAAK,CAACC,UAAU,EAAE,MAAM,EAAE,CAAC;EACtDjB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACuC,IAAI,CAACI,KAAK,CAACC,KAAK,CAACC,MAAM,EAAE,MAAM,IAAI,CAAC;;EAE1D;EACApB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAAC8C,KAAK,CAACC,OAAO,EAAE9C,mBAAmB,CAAC;EACzDwB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAAC8C,KAAK,CAACJ,UAAU,EAAE,MAAM,EAAE,CAAC;;EAEjD;EACAjB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACC,GAAG,EAAE5B,qBAAqB,CAAC;EACzDI,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACE,UAAU,EAAE,MAAM,EAAE,CAAC;EACnDzB,MAAM,CAACC,GAAG,CACR1B,UAAU,CAACgD,OAAO,CAACG,aAAa,EAC/BC,OAAO,IAAuB,CAC7B,CAAC,cAAc,EAAEA,OAAO,CAACpD,UAAU,CAACgD,OAAO,CAACK,QAAQ,CAAChD,WAAW,CAAC,CAAC,CAEtE,CAAC;EACDoB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACN,UAAU,EAAEU,OAAO,IAAI,CACnDA,OAAO,CAACpD,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACC,OAAO,CAAC,EAC9CH,OAAO,CAACpD,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACE,GAAG,CAAC,EAC1CJ,OAAO,CAACpD,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACG,OAAO,CAAC,EAC9CL,OAAO,CAACpD,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACI,OAAO,CAAC,CAC/C,CAAC;EACFjC,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACW,aAAa,EAAEP,OAAO,IAAI,CACtDA,OAAO,CAACpD,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACM,KAAK,CAAC,CAC7C,CAAC;EACFnC,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACD,OAAO,EAAEvC,qBAAqB,CAAC;EAC7DiB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACK,QAAQ,CAAChD,WAAW,EAAEA,WAAW,CAAC;EAChEoB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACC,OAAO,EAAE5C,+BAA+B,CAAC;EAClFc,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACE,GAAG,EAAE/C,2BAA2B,CAAC;EAC1EgB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACG,OAAO,EAAE/C,+BAA+B,CAAC;EAClFe,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACI,OAAO,EAAE9C,+BAA+B,CAAC;EAClFa,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACgD,OAAO,CAACM,UAAU,CAACM,KAAK,EAAErD,6BAA6B,CAAC;;EAE9E;EACAkB,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAACuC,IAAI,CAACsB,GAAG,CAACC,UAAU,EAAEjD,wBAAwB,CAAC;;EAEpE;EACAY,MAAM,CAACC,GAAG,CAAC1B,UAAU,CAAC+D,SAAS,CAACC,UAAU,EAAE9C,0BAA0B,CAAC;EAEvE,IAAIM,SAAS,EAAE;IACbA,SAAS,CAAC;MAAEyC,QAAQ,EAAExC,MAAM,CAACC,GAAG,CAACwC,IAAI,CAACzC,MAAM;IAAE,CAAC,CAAC;EAClD;EAEA,OAAOA,MAAM;AACf;AAIA;AACA,SAAS0C,WAAW,QAAQ,0BAAuB;AACnD,SAASC,mBAAmB,QAAQ,kCAA+B;AACnE,SAASC,qBAAqB,QAAQ,qCAAkC;AACxE,SAASC,eAAe,QAAQ,6BAA0B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-source.js","names":["path","config","applyDotenv","createConfigSource","provideConfigSource","envName","process","env","NODE_ENV","resolve","cwd"],"sources":["../../../../../src/preset/node/providers/config-source.ts"],"sourcesContent":["import path from 'node:path';\nimport { config as applyDotenv } from 'dotenv';\nimport { ConfigSource, createConfigSource } from '../../../config';\n\n/**\n * Провайдер источника конфигурации.\n * @return Источник конфигурации.\n */\nexport function provideConfigSource(): ConfigSource {\n const envName = process.env.NODE_ENV;\n\n // подключаем соответствующий среде файл со значениями по умолчанию\n if (envName) {\n applyDotenv({ path: path.resolve(process.cwd(), `./.env.${envName}`) });\n }\n\n // @todo подключать .env, .env.local, .env.<envName>, .env.<envName>.local как в Vite/Bun\n\n return createConfigSource(process.env);\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,WAAW;AAC5B,SAASC,MAAM,IAAIC,WAAW,QAAQ,QAAQ;AAC9C,SAAuBC,kBAAkB,QAAQ,4BAAiB;;AAElE;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAA,EAAiB;EAClD,MAAMC,OAAO,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ;;EAEpC;EACA,IAAIH,OAAO,EAAE;IACXH,WAAW,CAAC;MAAEF,IAAI,EAAEA,IAAI,CAACS,OAAO,CAACH,OAAO,CAACI,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"config-source.js","names":["path","config","applyDotenv","createConfigSource","provideConfigSource","envName","process","env","NODE_ENV","resolve","cwd"],"sources":["../../../../../src/preset/node/providers/config-source.ts"],"sourcesContent":["import path from 'node:path';\nimport { config as applyDotenv } from 'dotenv';\nimport { ConfigSource, createConfigSource } from '../../../config';\n\n/**\n * Провайдер источника конфигурации.\n * @return Источник конфигурации.\n */\nexport function provideConfigSource(): ConfigSource {\n const envName = process.env.NODE_ENV;\n\n // подключаем соответствующий среде файл со значениями по умолчанию\n if (envName) {\n applyDotenv({ path: path.resolve(process.cwd(), `./.env.${envName}`) });\n }\n\n // @todo подключать .env, .env.local, .env.<envName>, .env.<envName>.local как в Vite/Bun\n\n return createConfigSource(process.env);\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,WAAW;AAC5B,SAASC,MAAM,IAAIC,WAAW,QAAQ,QAAQ;AAC9C,SAAuBC,kBAAkB,QAAQ,4BAAiB;;AAElE;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAA,EAAiB;EAClD,MAAMC,OAAO,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ;;EAEpC;EACA,IAAIH,OAAO,EAAE;IACXH,WAAW,CAAC;MAAEF,IAAI,EAAEA,IAAI,CAACS,OAAO,CAACH,OAAO,CAACI,GAAG,CAAC,CAAC,EAAE,UAAUL,OAAO,EAAE;IAAE,CAAC,CAAC;EACzE;;EAEA;;EAEA,OAAOF,kBAAkB,CAACG,OAAO,CAACC,GAAG,CAAC;AACxC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-error-middleware.js","names":["expressErrorHandler","provideExpressErrorMiddleware"],"sources":["../../../../../src/preset/node/providers/express-error-middleware.ts"],"sourcesContent":["import { expressErrorHandler } from '@sentry/node';\nimport type express from 'express';\n\n/**\n * Провайдер промежуточного слоя обработки ошибок в рамках ответ на http-запросы.\n * @return Промежуточный слой.\n */\nexport function provideExpressErrorMiddleware(): express.ErrorRequestHandler {\n return expressErrorHandler();\n}\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,cAAc;AAGlD;AACA;AACA;AACA;AACA,OAAO,SAASC,6BAA6BA,CAAA,EAAgC;EAC3E,OAAOD,mBAAmB,CAAC,CAAC;AAC9B"}
|
|
1
|
+
{"version":3,"file":"express-error-middleware.js","names":["expressErrorHandler","provideExpressErrorMiddleware"],"sources":["../../../../../src/preset/node/providers/express-error-middleware.ts"],"sourcesContent":["import { expressErrorHandler } from '@sentry/node';\nimport type express from 'express';\n\n/**\n * Провайдер промежуточного слоя обработки ошибок в рамках ответ на http-запросы.\n * @return Промежуточный слой.\n */\nexport function provideExpressErrorMiddleware(): express.ErrorRequestHandler {\n return expressErrorHandler();\n}\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,cAAc;AAGlD;AACA;AACA;AACA;AACA,OAAO,SAASC,6BAA6BA,CAAA,EAAgC;EAC3E,OAAOD,mBAAmB,CAAC,CAAC;AAC9B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-factory.js","names":["express","provideExpressFactory"],"sources":["../../../../../src/preset/node/providers/express-factory.ts"],"sourcesContent":["import express from 'express';\n\n/**\n * Провайдер фабрики http-серверов.\n * @return Фабрика.\n */\nexport function provideExpressFactory() {\n return express;\n}\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,SAAS;;AAE7B;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,OAAOD,OAAO;AAChB"}
|
|
1
|
+
{"version":3,"file":"express-factory.js","names":["express","provideExpressFactory"],"sources":["../../../../../src/preset/node/providers/express-factory.ts"],"sourcesContent":["import express from 'express';\n\n/**\n * Провайдер фабрики http-серверов.\n * @return Фабрика.\n */\nexport function provideExpressFactory() {\n return express;\n}\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,SAAS;;AAE7B;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,OAAOD,OAAO;AAChB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-log-middleware.js","names":["KnownToken","getClientIp","toMilliseconds","provideExpressLogMiddleware","resolve","config","Config","base","logger","req","res","next","start","process","hrtime","bigint","remoteIp","startMsg","type","version","appVersion","route","originalUrl","method","remote_ip","info","once","finish","finishMsg","status","statusCode","latency"],"sources":["../../../../../src/preset/node/providers/express-log-middleware.ts"],"sourcesContent":["import type express from 'express';\nimport type { Resolve } from '../../../di';\nimport type { ConventionalFluentInfo } from '../../../log/types';\nimport { KnownToken } from '../../../tokens';\nimport { getClientIp } from '../utils/get-client-ip';\nimport { toMilliseconds } from '../../../utils';\n\n/**\n * Провайдер промежуточного слоя логирования входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideExpressLogMiddleware(resolve: Resolve): express.Handler {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n\n return (req, res, next) => {\n const start = process.hrtime.bigint();\n const remoteIp = getClientIp(req) ?? '';\n\n const startMsg: Omit<ConventionalFluentInfo, 'latency' | 'status'> & { type: string } = {\n type: 'http.request[incoming]',\n version: config.appVersion,\n route: req.originalUrl,\n method: req.method,\n remote_ip: remoteIp,\n };\n\n logger.info(startMsg);\n\n res.once('finish', () => {\n const finish = process.hrtime.bigint();\n\n const finishMsg: ConventionalFluentInfo & { type: string } = {\n type: 'http.response[outgoing]',\n version: config.appVersion,\n route: req.originalUrl,\n method: req.method,\n status: res.statusCode,\n remote_ip: remoteIp,\n latency: toMilliseconds(finish - start),\n };\n\n logger.info(finishMsg);\n });\n\n next();\n };\n}\n"],"mappings":"AAGA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,WAAW,QAAQ,2BAAwB;AACpD,SAASC,cAAc,QAAQ,2BAAgB;;AAE/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,2BAA2BA,CAACC,OAAgB,EAAmB;EAC7E,MAAMC,MAAM,GAAGD,OAAO,CAACJ,UAAU,CAACM,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,MAAM,GAAGJ,OAAO,CAACJ,UAAU,CAACQ,MAAM,CAAC;EAEzC,OAAO,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;IACzB,MAAMC,KAAK,GAAGC,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IACrC,MAAMC,QAAQ,GAAGf,WAAW,CAACQ,GAAG,CAAC,IAAI,EAAE;IAEvC,MAAMQ,QAA+E,GAAG;MACtFC,IAAI,EAAE,wBAAwB;MAC9BC,OAAO,EAAEd,MAAM,CAACe,UAAU;MAC1BC,KAAK,EAAEZ,GAAG,CAACa,WAAW;MACtBC,MAAM,EAAEd,GAAG,CAACc,MAAM;MAClBC,SAAS,EAAER;IACb,CAAC;IAEDR,MAAM,CAACiB,IAAI,CAACR,QAAQ,CAAC;IAErBP,GAAG,CAACgB,IAAI,CAAC,QAAQ,EAAE,MAAM;MACvB,MAAMC,MAAM,GAAGd,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAEtC,MAAMa,SAAoD,GAAG;QAC3DV,IAAI,EAAE,yBAAyB;QAC/BC,OAAO,EAAEd,MAAM,CAACe,UAAU;QAC1BC,KAAK,EAAEZ,GAAG,CAACa,WAAW;QACtBC,MAAM,EAAEd,GAAG,CAACc,MAAM;QAClBM,MAAM,EAAEnB,GAAG,CAACoB,UAAU;QACtBN,SAAS,EAAER,QAAQ;QACnBe,OAAO,EAAE7B,cAAc,CAACyB,MAAM,GAAGf,KAAK;MACxC,CAAC;MAEDJ,MAAM,CAACiB,IAAI,CAACG,SAAS,CAAC;IACxB,CAAC,CAAC;IAEFjB,IAAI,CAAC,CAAC;EACR,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"express-log-middleware.js","names":["KnownToken","getClientIp","toMilliseconds","provideExpressLogMiddleware","resolve","config","Config","base","logger","req","res","next","start","process","hrtime","bigint","remoteIp","startMsg","type","version","appVersion","route","originalUrl","method","remote_ip","info","once","finish","finishMsg","status","statusCode","latency"],"sources":["../../../../../src/preset/node/providers/express-log-middleware.ts"],"sourcesContent":["import type express from 'express';\nimport type { Resolve } from '../../../di';\nimport type { ConventionalFluentInfo } from '../../../log/types';\nimport { KnownToken } from '../../../tokens';\nimport { getClientIp } from '../utils/get-client-ip';\nimport { toMilliseconds } from '../../../utils';\n\n/**\n * Провайдер промежуточного слоя логирования входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideExpressLogMiddleware(resolve: Resolve): express.Handler {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n\n return (req, res, next) => {\n const start = process.hrtime.bigint();\n const remoteIp = getClientIp(req) ?? '';\n\n const startMsg: Omit<ConventionalFluentInfo, 'latency' | 'status'> & { type: string } = {\n type: 'http.request[incoming]',\n version: config.appVersion,\n route: req.originalUrl,\n method: req.method,\n remote_ip: remoteIp,\n };\n\n logger.info(startMsg);\n\n res.once('finish', () => {\n const finish = process.hrtime.bigint();\n\n const finishMsg: ConventionalFluentInfo & { type: string } = {\n type: 'http.response[outgoing]',\n version: config.appVersion,\n route: req.originalUrl,\n method: req.method,\n status: res.statusCode,\n remote_ip: remoteIp,\n latency: toMilliseconds(finish - start),\n };\n\n logger.info(finishMsg);\n });\n\n next();\n };\n}\n"],"mappings":"AAGA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,WAAW,QAAQ,2BAAwB;AACpD,SAASC,cAAc,QAAQ,2BAAgB;;AAE/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,2BAA2BA,CAACC,OAAgB,EAAmB;EAC7E,MAAMC,MAAM,GAAGD,OAAO,CAACJ,UAAU,CAACM,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,MAAM,GAAGJ,OAAO,CAACJ,UAAU,CAACQ,MAAM,CAAC;EAEzC,OAAO,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;IACzB,MAAMC,KAAK,GAAGC,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IACrC,MAAMC,QAAQ,GAAGf,WAAW,CAACQ,GAAG,CAAC,IAAI,EAAE;IAEvC,MAAMQ,QAA+E,GAAG;MACtFC,IAAI,EAAE,wBAAwB;MAC9BC,OAAO,EAAEd,MAAM,CAACe,UAAU;MAC1BC,KAAK,EAAEZ,GAAG,CAACa,WAAW;MACtBC,MAAM,EAAEd,GAAG,CAACc,MAAM;MAClBC,SAAS,EAAER;IACb,CAAC;IAEDR,MAAM,CAACiB,IAAI,CAACR,QAAQ,CAAC;IAErBP,GAAG,CAACgB,IAAI,CAAC,QAAQ,EAAE,MAAM;MACvB,MAAMC,MAAM,GAAGd,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAEtC,MAAMa,SAAoD,GAAG;QAC3DV,IAAI,EAAE,yBAAyB;QAC/BC,OAAO,EAAEd,MAAM,CAACe,UAAU;QAC1BC,KAAK,EAAEZ,GAAG,CAACa,WAAW;QACtBC,MAAM,EAAEd,GAAG,CAACc,MAAM;QAClBM,MAAM,EAAEnB,GAAG,CAACoB,UAAU;QACtBN,SAAS,EAAER,QAAQ;QACnBe,OAAO,EAAE7B,cAAc,CAACyB,MAAM,GAAGf,KAAK;MACxC,CAAC;MAEDJ,MAAM,CAACiB,IAAI,CAACG,SAAS,CAAC;IACxB,CAAC,CAAC;IAEFjB,IAAI,CAAC,CAAC;EACR,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-metrics-middleware.js","names":["getHandlerMetrics","KnownToken","PAGE_HANDLER_EVENT_TYPE","toMilliseconds","provideExpressMetricsMiddleware","resolve","config","Config","base","requestCount","renderDuration","responseDuration","getLabels","req","res","version","appVersion","route","baseUrl","path","code","statusCode","method","getRenderLabels","request","url","next","responseStart","process","hrtime","bigint","inc","once","renderStart","renderFinish","observe","responseFinish"],"sources":["../../../../../src/preset/node/providers/express-metrics-middleware.ts"],"sourcesContent":["import type express from 'express';\nimport type { Resolve } from '../../../di';\nimport { LABEL_NAMES, getHandlerMetrics } from '../utils/get-handler-metrics';\nimport { KnownToken } from '../../../tokens';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../../server';\nimport { toMilliseconds } from '../../../utils';\n\n/**\n * Провайдер промежуточного слоя сбора метрик входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideExpressMetricsMiddleware(resolve: Resolve): express.Handler {\n const config = resolve(KnownToken.Config.base);\n const { requestCount, renderDuration, responseDuration } = getHandlerMetrics();\n\n /**\n * Функция формирования labels.\n * @param req Request.\n * @param res Response.\n * @return Labels.\n */\n const getLabels = (\n req: express.Request,\n res: express.Response,\n ): Record<(typeof LABEL_NAMES.httpResponse)[number], string | number> => ({\n version: config.appVersion,\n route: req.baseUrl + req.path,\n code: res.statusCode,\n method: req.method,\n });\n\n /** @inheritdoc */\n const getRenderLabels = (request: express.Request) =>\n ({\n version: config.appVersion,\n method: request.method,\n route: request.url,\n }) satisfies Record<(typeof LABEL_NAMES.pageRender)[number], string | number>;\n\n return (req, res, next) => {\n const responseStart = process.hrtime.bigint();\n\n requestCount.inc(getLabels(req, res), 1);\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderStart, () => {\n const renderStart = process.hrtime.bigint();\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderFinish, () => {\n const renderFinish = process.hrtime.bigint();\n\n renderDuration.observe(getRenderLabels(req), toMilliseconds(renderFinish - renderStart));\n });\n });\n\n res.once('finish', () => {\n const responseFinish = process.hrtime.bigint();\n\n responseDuration.observe(getLabels(req, res), toMilliseconds(responseFinish - responseStart));\n });\n\n next();\n };\n}\n"],"mappings":"AAEA,SAAsBA,iBAAiB,QAAQ,iCAA8B;AAC7E,SAASC,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,uBAAuB,QAAQ,yBAAc;AACtD,SAASC,cAAc,QAAQ,2BAAgB;;AAE/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,+BAA+BA,CAACC,OAAgB,EAAmB;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACJ,UAAU,CAACM,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAM;IAAEC,YAAY;IAAEC,cAAc;IAAEC;EAAiB,CAAC,GAAGX,iBAAiB,CAAC,CAAC;;EAE9E;AACF;AACA;AACA;AACA;AACA;EACE,MAAMY,SAAS,GAAGA,CAChBC,GAAoB,EACpBC,GAAqB,MACmD;IACxEC,OAAO,EAAET,MAAM,CAACU,UAAU;IAC1BC,KAAK,EAAEJ,GAAG,CAACK,OAAO,GAAGL,GAAG,CAACM,IAAI;IAC7BC,IAAI,EAAEN,GAAG,CAACO,UAAU;IACpBC,MAAM,EAAET,GAAG,CAACS;EACd,CAAC,CAAC;;EAEF;EACA,MAAMC,eAAe,GAAIC,OAAwB,KAC9C;IACCT,OAAO,EAAET,MAAM,CAACU,UAAU;IAC1BM,MAAM,EAAEE,OAAO,CAACF,MAAM;IACtBL,KAAK,EAAEO,OAAO,CAACC;EACjB,CAAC,CAA4E;EAE/E,OAAO,CAACZ,GAAG,EAAEC,GAAG,EAAEY,IAAI,KAAK;IACzB,MAAMC,aAAa,GAAGC,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IAE7CrB,YAAY,CAACsB,GAAG,CAACnB,SAAS,CAACC,GAAG,EAAEC,GAAG,CAAC,EAAE,CAAC,CAAC;IAExCA,GAAG,CAACkB,IAAI,CAAC9B,uBAAuB,CAAC+B,WAAW,EAAE,MAAM;MAClD,MAAMA,WAAW,GAAGL,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAE3ChB,GAAG,CAACkB,IAAI,CAAC9B,uBAAuB,CAACgC,YAAY,EAAE,MAAM;QACnD,MAAMA,YAAY,GAAGN,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;QAE5CpB,cAAc,CAACyB,OAAO,CAACZ,eAAe,CAACV,GAAG,CAAC,EAAEV,cAAc,CAAC+B,YAAY,GAAGD,WAAW,CAAC,CAAC;MAC1F,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFnB,GAAG,CAACkB,IAAI,CAAC,QAAQ,EAAE,MAAM;MACvB,MAAMI,cAAc,GAAGR,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAE9CnB,gBAAgB,CAACwB,OAAO,CAACvB,SAAS,CAACC,GAAG,EAAEC,GAAG,CAAC,EAAEX,cAAc,CAACiC,cAAc,GAAGT,aAAa,CAAC,CAAC;IAC/F,CAAC,CAAC;IAEFD,IAAI,CAAC,CAAC;EACR,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"express-metrics-middleware.js","names":["getHandlerMetrics","KnownToken","PAGE_HANDLER_EVENT_TYPE","toMilliseconds","provideExpressMetricsMiddleware","resolve","config","Config","base","requestCount","renderDuration","responseDuration","getLabels","req","res","version","appVersion","route","baseUrl","path","code","statusCode","method","getRenderLabels","request","url","next","responseStart","process","hrtime","bigint","inc","once","renderStart","renderFinish","observe","responseFinish"],"sources":["../../../../../src/preset/node/providers/express-metrics-middleware.ts"],"sourcesContent":["import type express from 'express';\nimport type { Resolve } from '../../../di';\nimport { LABEL_NAMES, getHandlerMetrics } from '../utils/get-handler-metrics';\nimport { KnownToken } from '../../../tokens';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../../server';\nimport { toMilliseconds } from '../../../utils';\n\n/**\n * Провайдер промежуточного слоя сбора метрик входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideExpressMetricsMiddleware(resolve: Resolve): express.Handler {\n const config = resolve(KnownToken.Config.base);\n const { requestCount, renderDuration, responseDuration } = getHandlerMetrics();\n\n /**\n * Функция формирования labels.\n * @param req Request.\n * @param res Response.\n * @return Labels.\n */\n const getLabels = (\n req: express.Request,\n res: express.Response,\n ): Record<(typeof LABEL_NAMES.httpResponse)[number], string | number> => ({\n version: config.appVersion,\n route: req.baseUrl + req.path,\n code: res.statusCode,\n method: req.method,\n });\n\n /** @inheritdoc */\n const getRenderLabels = (request: express.Request) =>\n ({\n version: config.appVersion,\n method: request.method,\n route: request.url,\n }) satisfies Record<(typeof LABEL_NAMES.pageRender)[number], string | number>;\n\n return (req, res, next) => {\n const responseStart = process.hrtime.bigint();\n\n requestCount.inc(getLabels(req, res), 1);\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderStart, () => {\n const renderStart = process.hrtime.bigint();\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderFinish, () => {\n const renderFinish = process.hrtime.bigint();\n\n renderDuration.observe(getRenderLabels(req), toMilliseconds(renderFinish - renderStart));\n });\n });\n\n res.once('finish', () => {\n const responseFinish = process.hrtime.bigint();\n\n responseDuration.observe(getLabels(req, res), toMilliseconds(responseFinish - responseStart));\n });\n\n next();\n };\n}\n"],"mappings":"AAEA,SAAsBA,iBAAiB,QAAQ,iCAA8B;AAC7E,SAASC,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,uBAAuB,QAAQ,yBAAc;AACtD,SAASC,cAAc,QAAQ,2BAAgB;;AAE/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,+BAA+BA,CAACC,OAAgB,EAAmB;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACJ,UAAU,CAACM,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAM;IAAEC,YAAY;IAAEC,cAAc;IAAEC;EAAiB,CAAC,GAAGX,iBAAiB,CAAC,CAAC;;EAE9E;AACF;AACA;AACA;AACA;AACA;EACE,MAAMY,SAAS,GAAGA,CAChBC,GAAoB,EACpBC,GAAqB,MACmD;IACxEC,OAAO,EAAET,MAAM,CAACU,UAAU;IAC1BC,KAAK,EAAEJ,GAAG,CAACK,OAAO,GAAGL,GAAG,CAACM,IAAI;IAC7BC,IAAI,EAAEN,GAAG,CAACO,UAAU;IACpBC,MAAM,EAAET,GAAG,CAACS;EACd,CAAC,CAAC;;EAEF;EACA,MAAMC,eAAe,GAAIC,OAAwB,KAC9C;IACCT,OAAO,EAAET,MAAM,CAACU,UAAU;IAC1BM,MAAM,EAAEE,OAAO,CAACF,MAAM;IACtBL,KAAK,EAAEO,OAAO,CAACC;EACjB,CAAC,CAA4E;EAE/E,OAAO,CAACZ,GAAG,EAAEC,GAAG,EAAEY,IAAI,KAAK;IACzB,MAAMC,aAAa,GAAGC,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IAE7CrB,YAAY,CAACsB,GAAG,CAACnB,SAAS,CAACC,GAAG,EAAEC,GAAG,CAAC,EAAE,CAAC,CAAC;IAExCA,GAAG,CAACkB,IAAI,CAAC9B,uBAAuB,CAAC+B,WAAW,EAAE,MAAM;MAClD,MAAMA,WAAW,GAAGL,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAE3ChB,GAAG,CAACkB,IAAI,CAAC9B,uBAAuB,CAACgC,YAAY,EAAE,MAAM;QACnD,MAAMA,YAAY,GAAGN,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;QAE5CpB,cAAc,CAACyB,OAAO,CAACZ,eAAe,CAACV,GAAG,CAAC,EAAEV,cAAc,CAAC+B,YAAY,GAAGD,WAAW,CAAC,CAAC;MAC1F,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFnB,GAAG,CAACkB,IAAI,CAAC,QAAQ,EAAE,MAAM;MACvB,MAAMI,cAAc,GAAGR,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAE9CnB,gBAAgB,CAACwB,OAAO,CAACvB,SAAS,CAACC,GAAG,EAAEC,GAAG,CAAC,EAAEX,cAAc,CAACiC,cAAc,GAAGT,aAAa,CAAC,CAAC;IAC/F,CAAC,CAAC;IAEFD,IAAI,CAAC,CAAC;EACR,CAAC;AACH","ignoreList":[]}
|