@sima-land/isomorph 11.0.0-alpha.62 → 11.0.0-alpha.64
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 +2 -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 +3 -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 +2 -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 +3 -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 +15 -5
- 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":"emitter-as-target.js","names":["EmitterAsTarget","EventTarget","constructor","emitter","addEventListener","type","callback","options","listener","handleEvent","once","on","removeEventListener","removeListener","dispatchEvent","event","emit","exports"],"sources":["../../../../../src/preset/node/utils/emitter-as-target.ts"],"sourcesContent":["import type { EventEmitter } from 'node:events';\n\n/**\n * Наивная реализация обёртки, превращающей EventEmitter в EventTarget.\n */\nexport class EmitterAsTarget extends EventTarget {\n private emitter: EventEmitter;\n\n /** @inheritdoc */\n constructor(emitter: EventEmitter) {\n super();\n this.emitter = emitter;\n }\n\n /** @inheritdoc */\n addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject | null,\n options?: AddEventListenerOptions | boolean,\n ) {\n if (!callback) {\n return;\n }\n\n const listener = typeof callback === 'function' ? callback : callback.handleEvent;\n\n switch (true) {\n case typeof options === 'object' && options !== null && options.once: {\n this.emitter.once(type, listener as (...args: any[]) => void);\n break;\n }\n default: {\n this.emitter.on(type, listener as (...args: any[]) => void);\n break;\n }\n }\n }\n\n /** @inheritdoc */\n removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null) {\n if (!callback) {\n return;\n }\n\n const listener = typeof callback === 'function' ? callback : callback.handleEvent;\n\n this.emitter.removeListener(type, listener as (...args: any[]) => void);\n }\n\n /** @inheritdoc */\n dispatchEvent(event: Event) {\n return this.emitter.emit(event.type, event);\n }\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,eAAe,SAASC,WAAW,CAAC;EAG/C;EACAC,WAAWA,CAACC,OAAqB,EAAE;IACjC,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;;EAEA;EACAC,gBAAgBA,CACdC,IAAY,EACZC,QAAmD,EACnDC,OAA2C,EAC3C;IACA,IAAI,CAACD,QAAQ,EAAE;MACb;IACF;IAEA,MAAME,QAAQ,GAAG,OAAOF,QAAQ,KAAK,UAAU,GAAGA,QAAQ,GAAGA,QAAQ,CAACG,WAAW;IAEjF,QAAQ,IAAI;MACV,KAAK,OAAOF,OAAO,KAAK,QAAQ,IAAIA,OAAO,KAAK,IAAI,IAAIA,OAAO,CAACG,IAAI;QAAE;UACpE,IAAI,CAACP,OAAO,CAACO,IAAI,CAACL,IAAI,EAAEG,QAAoC,CAAC;UAC7D;QACF;MACA;QAAS;UACP,IAAI,CAACL,OAAO,CAACQ,EAAE,CAACN,IAAI,EAAEG,QAAoC,CAAC;UAC3D;QACF;IACF;EACF;;EAEA;EACAI,mBAAmBA,CAACP,IAAY,EAAEC,QAAmD,EAAE;IACrF,IAAI,CAACA,QAAQ,EAAE;MACb;IACF;IAEA,MAAME,QAAQ,GAAG,OAAOF,QAAQ,KAAK,UAAU,GAAGA,QAAQ,GAAGA,QAAQ,CAACG,WAAW;IAEjF,IAAI,CAACN,OAAO,CAACU,cAAc,CAACR,IAAI,EAAEG,QAAoC,CAAC;EACzE;;EAEA;EACAM,aAAaA,CAACC,KAAY,EAAE;IAC1B,OAAO,IAAI,CAACZ,OAAO,CAACa,IAAI,CAACD,KAAK,CAACV,IAAI,EAAEU,KAAK,CAAC;EAC7C;AACF;AAACE,OAAA,CAAAjB,eAAA,GAAAA,eAAA"}
|
|
1
|
+
{"version":3,"file":"emitter-as-target.js","names":["EmitterAsTarget","EventTarget","constructor","emitter","addEventListener","type","callback","options","listener","handleEvent","once","on","removeEventListener","removeListener","dispatchEvent","event","emit","exports"],"sources":["../../../../../src/preset/node/utils/emitter-as-target.ts"],"sourcesContent":["import type { EventEmitter } from 'node:events';\n\n/**\n * Наивная реализация обёртки, превращающей EventEmitter в EventTarget.\n */\nexport class EmitterAsTarget extends EventTarget {\n private emitter: EventEmitter;\n\n /** @inheritdoc */\n constructor(emitter: EventEmitter) {\n super();\n this.emitter = emitter;\n }\n\n /** @inheritdoc */\n addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject | null,\n options?: AddEventListenerOptions | boolean,\n ) {\n if (!callback) {\n return;\n }\n\n const listener = typeof callback === 'function' ? callback : callback.handleEvent;\n\n switch (true) {\n case typeof options === 'object' && options !== null && options.once: {\n this.emitter.once(type, listener as (...args: any[]) => void);\n break;\n }\n default: {\n this.emitter.on(type, listener as (...args: any[]) => void);\n break;\n }\n }\n }\n\n /** @inheritdoc */\n removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null) {\n if (!callback) {\n return;\n }\n\n const listener = typeof callback === 'function' ? callback : callback.handleEvent;\n\n this.emitter.removeListener(type, listener as (...args: any[]) => void);\n }\n\n /** @inheritdoc */\n dispatchEvent(event: Event) {\n return this.emitter.emit(event.type, event);\n }\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,eAAe,SAASC,WAAW,CAAC;EAG/C;EACAC,WAAWA,CAACC,OAAqB,EAAE;IACjC,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;;EAEA;EACAC,gBAAgBA,CACdC,IAAY,EACZC,QAAmD,EACnDC,OAA2C,EAC3C;IACA,IAAI,CAACD,QAAQ,EAAE;MACb;IACF;IAEA,MAAME,QAAQ,GAAG,OAAOF,QAAQ,KAAK,UAAU,GAAGA,QAAQ,GAAGA,QAAQ,CAACG,WAAW;IAEjF,QAAQ,IAAI;MACV,KAAK,OAAOF,OAAO,KAAK,QAAQ,IAAIA,OAAO,KAAK,IAAI,IAAIA,OAAO,CAACG,IAAI;QAAE;UACpE,IAAI,CAACP,OAAO,CAACO,IAAI,CAACL,IAAI,EAAEG,QAAoC,CAAC;UAC7D;QACF;MACA;QAAS;UACP,IAAI,CAACL,OAAO,CAACQ,EAAE,CAACN,IAAI,EAAEG,QAAoC,CAAC;UAC3D;QACF;IACF;EACF;;EAEA;EACAI,mBAAmBA,CAACP,IAAY,EAAEC,QAAmD,EAAE;IACrF,IAAI,CAACA,QAAQ,EAAE;MACb;IACF;IAEA,MAAME,QAAQ,GAAG,OAAOF,QAAQ,KAAK,UAAU,GAAGA,QAAQ,GAAGA,QAAQ,CAACG,WAAW;IAEjF,IAAI,CAACN,OAAO,CAACU,cAAc,CAACR,IAAI,EAAEG,QAAoC,CAAC;EACzE;;EAEA;EACAM,aAAaA,CAACC,KAAY,EAAE;IAC1B,OAAO,IAAI,CAACZ,OAAO,CAACa,IAAI,CAACD,KAAK,CAACV,IAAI,EAAEU,KAAK,CAAC;EAC7C;AACF;AAACE,OAAA,CAAAjB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-client-ip.js","names":["_nodeNet","_interopRequireDefault","require","e","__esModule","default","getClientIp","request","headerValue","header","socket","remoteAddress","net","isIP","undefined"],"sources":["../../../../../src/preset/node/utils/get-client-ip.ts"],"sourcesContent":["import type express from 'express';\nimport net from 'node:net';\n\n/**\n * Определяет IP входящего запроса.\n * @param request Входящий запрос.\n * @return IP.\n */\nexport function getClientIp(request: express.Request): string | undefined {\n const headerValue =\n request.header('x-client-ip') ||\n request.header('x-forwarded-for') ||\n request.socket.remoteAddress ||\n '';\n\n return net.isIP(headerValue) ? headerValue : undefined;\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3B;AACA;AACA;AACA;AACA;AACO,SAASG,WAAWA,CAACC,OAAwB,EAAsB;EACxE,MAAMC,WAAW,GACfD,OAAO,CAACE,MAAM,CAAC,aAAa,CAAC,IAC7BF,OAAO,CAACE,MAAM,CAAC,iBAAiB,CAAC,IACjCF,OAAO,CAACG,MAAM,CAACC,aAAa,IAC5B,EAAE;EAEJ,OAAOC,gBAAG,CAACC,IAAI,CAACL,WAAW,CAAC,GAAGA,WAAW,GAAGM,SAAS;AACxD"}
|
|
1
|
+
{"version":3,"file":"get-client-ip.js","names":["_nodeNet","_interopRequireDefault","require","e","__esModule","default","getClientIp","request","headerValue","header","socket","remoteAddress","net","isIP","undefined"],"sources":["../../../../../src/preset/node/utils/get-client-ip.ts"],"sourcesContent":["import type express from 'express';\nimport net from 'node:net';\n\n/**\n * Определяет IP входящего запроса.\n * @param request Входящий запрос.\n * @return IP.\n */\nexport function getClientIp(request: express.Request): string | undefined {\n const headerValue =\n request.header('x-client-ip') ||\n request.header('x-forwarded-for') ||\n request.socket.remoteAddress ||\n '';\n\n return net.isIP(headerValue) ? headerValue : undefined;\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3B;AACA;AACA;AACA;AACA;AACO,SAASG,WAAWA,CAACC,OAAwB,EAAsB;EACxE,MAAMC,WAAW,GACfD,OAAO,CAACE,MAAM,CAAC,aAAa,CAAC,IAC7BF,OAAO,CAACE,MAAM,CAAC,iBAAiB,CAAC,IACjCF,OAAO,CAACG,MAAM,CAACC,aAAa,IAC5B,EAAE;EAEJ,OAAOC,gBAAG,CAACC,IAAI,CAACL,WAAW,CAAC,GAAGA,WAAW,GAAGM,SAAS;AACxD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-fetch-tracing.js","names":["_api","require","_semanticConventions","_telemetry","getFetchTracing","tracer","rootContext","request","next","url","URL","span","startSpan","method","pathname","undefined","setAttributes","ATTR_URL_FULL","href","ATTR_HTTP_REQUEST_METHOD","getSemanticHeaders","headers","response","end","error","setStatus","code","SpanStatusCode","ERROR","message"],"sources":["../../../../../src/preset/node/utils/get-fetch-tracing.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\nimport { SpanStatusCode, type Context, type Tracer } from '@opentelemetry/api';\nimport { ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from '@opentelemetry/semantic-conventions';\nimport { getSemanticHeaders } from './telemetry';\n\n/**\n * Вернет новый промежуточный слой трассировки для fetch.\n * @param tracer Трассировщик.\n * @param rootContext Контекст.\n * @return Промежуточный слой трассировки.\n */\nexport function getFetchTracing(tracer: Tracer, rootContext: Context): Middleware {\n return async (request, next) => {\n const url = new URL(request.url);\n const span = tracer.startSpan(\n `fetch ${request.method} ${url.pathname}`,\n undefined,\n rootContext,\n );\n\n span.setAttributes({\n [ATTR_URL_FULL]: url.href,\n [ATTR_HTTP_REQUEST_METHOD]: request.method,\n ...getSemanticHeaders(request.headers),\n });\n\n try {\n const response = await next(request);\n\n span.end();\n\n return response;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'HTTP Request failed',\n });\n\n span.end();\n\n // ВАЖНО: не прячем ошибку\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,eAAeA,CAACC,MAAc,EAAEC,WAAoB,EAAc;EAChF,OAAO,OAAOC,OAAO,EAAEC,IAAI,KAAK;IAC9B,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACH,OAAO,CAACE,GAAG,CAAC;IAChC,MAAME,IAAI,GAAGN,MAAM,CAACO,SAAS,
|
|
1
|
+
{"version":3,"file":"get-fetch-tracing.js","names":["_api","require","_semanticConventions","_telemetry","getFetchTracing","tracer","rootContext","request","next","url","URL","span","startSpan","method","pathname","undefined","setAttributes","ATTR_URL_FULL","href","ATTR_HTTP_REQUEST_METHOD","getSemanticHeaders","headers","response","end","error","setStatus","code","SpanStatusCode","ERROR","message"],"sources":["../../../../../src/preset/node/utils/get-fetch-tracing.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\nimport { SpanStatusCode, type Context, type Tracer } from '@opentelemetry/api';\nimport { ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from '@opentelemetry/semantic-conventions';\nimport { getSemanticHeaders } from './telemetry';\n\n/**\n * Вернет новый промежуточный слой трассировки для fetch.\n * @param tracer Трассировщик.\n * @param rootContext Контекст.\n * @return Промежуточный слой трассировки.\n */\nexport function getFetchTracing(tracer: Tracer, rootContext: Context): Middleware {\n return async (request, next) => {\n const url = new URL(request.url);\n const span = tracer.startSpan(\n `fetch ${request.method} ${url.pathname}`,\n undefined,\n rootContext,\n );\n\n span.setAttributes({\n [ATTR_URL_FULL]: url.href,\n [ATTR_HTTP_REQUEST_METHOD]: request.method,\n ...getSemanticHeaders(request.headers),\n });\n\n try {\n const response = await next(request);\n\n span.end();\n\n return response;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'HTTP Request failed',\n });\n\n span.end();\n\n // ВАЖНО: не прячем ошибку\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,eAAeA,CAACC,MAAc,EAAEC,WAAoB,EAAc;EAChF,OAAO,OAAOC,OAAO,EAAEC,IAAI,KAAK;IAC9B,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACH,OAAO,CAACE,GAAG,CAAC;IAChC,MAAME,IAAI,GAAGN,MAAM,CAACO,SAAS,CAC3B,SAASL,OAAO,CAACM,MAAM,IAAIJ,GAAG,CAACK,QAAQ,EAAE,EACzCC,SAAS,EACTT,WACF,CAAC;IAEDK,IAAI,CAACK,aAAa,CAAC;MACjB,CAACC,kCAAa,GAAGR,GAAG,CAACS,IAAI;MACzB,CAACC,6CAAwB,GAAGZ,OAAO,CAACM,MAAM;MAC1C,GAAG,IAAAO,6BAAkB,EAACb,OAAO,CAACc,OAAO;IACvC,CAAC,CAAC;IAEF,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAMd,IAAI,CAACD,OAAO,CAAC;MAEpCI,IAAI,CAACY,GAAG,CAAC,CAAC;MAEV,OAAOD,QAAQ;IACjB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdb,IAAI,CAACc,SAAS,CAAC;QACbC,IAAI,EAAEC,mBAAc,CAACC,KAAK;QAC1BC,OAAO,EAAE;MACX,CAAC,CAAC;MAEFlB,IAAI,CAACY,GAAG,CAAC,CAAC;;MAEV;MACA,MAAMC,KAAK;IACb;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-forwarded-headers.js","names":["_getClientIp","require","getForwardedHeaders","config","request","result","appName","appVersion","clientIp","getClientIp","cookie","header","Cookie","key","Object","keys","headers","value","toLowerCase","startsWith"],"sources":["../../../../../src/preset/node/utils/get-forwarded-headers.ts"],"sourcesContent":["import type { BaseConfig } from '../../../config';\nimport type express from 'express';\nimport { getClientIp } from './get-client-ip';\n\n/**\n * Формирует заголовки для исходящих запросов с сервера по соглашению.\n * @param config Конфиг.\n * @param request Входящий запрос.\n * @return Заголовки для исходящих запросов.\n */\nexport function getForwardedHeaders(\n config: BaseConfig,\n request: express.Request,\n): Record<string, string> {\n const result: Record<string, string> = {\n 'User-Agent': `simaland-${config.appName}/${config.appVersion}`,\n };\n\n const clientIp = getClientIp(request);\n if (clientIp) {\n result['X-Client-Ip'] = clientIp;\n }\n\n const cookie = request.header('cookie');\n if (cookie) {\n result.Cookie = cookie;\n }\n\n // добавляем специфичные заголовки\n for (const key of Object.keys(request.headers)) {\n const value = request.header(key);\n\n if (\n key.toLowerCase().startsWith('simaland-') &&\n key.toLowerCase() !== 'simaland-params' &&\n value\n ) {\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CACjCC,MAAkB,EAClBC,OAAwB,EACA;EACxB,MAAMC,MAA8B,GAAG;IACrC,YAAY,
|
|
1
|
+
{"version":3,"file":"get-forwarded-headers.js","names":["_getClientIp","require","getForwardedHeaders","config","request","result","appName","appVersion","clientIp","getClientIp","cookie","header","Cookie","key","Object","keys","headers","value","toLowerCase","startsWith"],"sources":["../../../../../src/preset/node/utils/get-forwarded-headers.ts"],"sourcesContent":["import type { BaseConfig } from '../../../config';\nimport type express from 'express';\nimport { getClientIp } from './get-client-ip';\n\n/**\n * Формирует заголовки для исходящих запросов с сервера по соглашению.\n * @param config Конфиг.\n * @param request Входящий запрос.\n * @return Заголовки для исходящих запросов.\n */\nexport function getForwardedHeaders(\n config: BaseConfig,\n request: express.Request,\n): Record<string, string> {\n const result: Record<string, string> = {\n 'User-Agent': `simaland-${config.appName}/${config.appVersion}`,\n };\n\n const clientIp = getClientIp(request);\n if (clientIp) {\n result['X-Client-Ip'] = clientIp;\n }\n\n const cookie = request.header('cookie');\n if (cookie) {\n result.Cookie = cookie;\n }\n\n // добавляем специфичные заголовки\n for (const key of Object.keys(request.headers)) {\n const value = request.header(key);\n\n if (\n key.toLowerCase().startsWith('simaland-') &&\n key.toLowerCase() !== 'simaland-params' &&\n value\n ) {\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CACjCC,MAAkB,EAClBC,OAAwB,EACA;EACxB,MAAMC,MAA8B,GAAG;IACrC,YAAY,EAAE,YAAYF,MAAM,CAACG,OAAO,IAAIH,MAAM,CAACI,UAAU;EAC/D,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAC,wBAAW,EAACL,OAAO,CAAC;EACrC,IAAII,QAAQ,EAAE;IACZH,MAAM,CAAC,aAAa,CAAC,GAAGG,QAAQ;EAClC;EAEA,MAAME,MAAM,GAAGN,OAAO,CAACO,MAAM,CAAC,QAAQ,CAAC;EACvC,IAAID,MAAM,EAAE;IACVL,MAAM,CAACO,MAAM,GAAGF,MAAM;EACxB;;EAEA;EACA,KAAK,MAAMG,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACX,OAAO,CAACY,OAAO,CAAC,EAAE;IAC9C,MAAMC,KAAK,GAAGb,OAAO,CAACO,MAAM,CAACE,GAAG,CAAC;IAEjC,IACEA,GAAG,CAACK,WAAW,CAAC,CAAC,CAACC,UAAU,CAAC,WAAW,CAAC,IACzCN,GAAG,CAACK,WAAW,CAAC,CAAC,KAAK,iBAAiB,IACvCD,KAAK,EACL;MACAZ,MAAM,CAACQ,GAAG,CAAC,GAAGI,KAAK;IACrB;EACF;EAEA,OAAOZ,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-handler-metrics.js","names":["_promClient","_interopRequireDefault","require","e","__esModule","default","LABEL_NAMES","exports","httpResponse","pageRender","getHandlerMetrics","requestCount","PromClient","Counter","name","help","labelNames","responseDuration","Histogram","buckets","renderDuration"],"sources":["../../../../../src/preset/node/utils/get-handler-metrics.ts"],"sourcesContent":["import PromClient from 'prom-client';\n\nexport const LABEL_NAMES = {\n httpResponse: ['version', 'route', 'code', 'method'],\n pageRender: ['version', 'route', 'method'],\n} as const;\n\n/**\n * Возвращает метрики обработки входящего http-запроса.\n * @return Метрики.\n */\nexport function getHandlerMetrics() {\n const requestCount = new PromClient.Counter({\n name: 'http_request_count',\n help: 'Incoming HTTP request count',\n labelNames: LABEL_NAMES.httpResponse,\n });\n\n const responseDuration = new PromClient.Histogram({\n name: 'http_response_duration_ms',\n help: 'Duration of incoming HTTP requests in ms',\n labelNames: LABEL_NAMES.httpResponse,\n buckets: [30, 100, 200, 500, 1000, 2500, 5000, 10000],\n });\n\n const renderDuration = new PromClient.Histogram({\n name: 'render_duration_ms',\n help: 'Duration of SSR ms',\n labelNames: LABEL_NAMES.pageRender,\n buckets: [0.1, 15, 50, 100, 250, 500, 800, 1500],\n });\n\n return {\n requestCount,\n renderDuration,\n responseDuration,\n };\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzBE,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;EACpDC,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ;AAC3C,CAAU;;AAEV;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAAA,EAAG;EAClC,MAAMC,YAAY,GAAG,IAAIC,mBAAU,CAACC,OAAO,CAAC;IAC1CC,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,6BAA6B;IACnCC,UAAU,EAAEV,WAAW,CAACE;EAC1B,CAAC,CAAC;EAEF,MAAMS,gBAAgB,GAAG,IAAIL,mBAAU,CAACM,SAAS,CAAC;IAChDJ,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,0CAA0C;IAChDC,UAAU,EAAEV,WAAW,CAACE,YAAY;IACpCW,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;EACtD,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAG,IAAIR,mBAAU,CAACM,SAAS,CAAC;IAC9CJ,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,oBAAoB;IAC1BC,UAAU,EAAEV,WAAW,CAACG,UAAU;IAClCU,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;EACjD,CAAC,CAAC;EAEF,OAAO;IACLR,YAAY;IACZS,cAAc;IACdH;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"get-handler-metrics.js","names":["_promClient","_interopRequireDefault","require","e","__esModule","default","LABEL_NAMES","exports","httpResponse","pageRender","getHandlerMetrics","requestCount","PromClient","Counter","name","help","labelNames","responseDuration","Histogram","buckets","renderDuration"],"sources":["../../../../../src/preset/node/utils/get-handler-metrics.ts"],"sourcesContent":["import PromClient from 'prom-client';\n\nexport const LABEL_NAMES = {\n httpResponse: ['version', 'route', 'code', 'method'],\n pageRender: ['version', 'route', 'method'],\n} as const;\n\n/**\n * Возвращает метрики обработки входящего http-запроса.\n * @return Метрики.\n */\nexport function getHandlerMetrics() {\n const requestCount = new PromClient.Counter({\n name: 'http_request_count',\n help: 'Incoming HTTP request count',\n labelNames: LABEL_NAMES.httpResponse,\n });\n\n const responseDuration = new PromClient.Histogram({\n name: 'http_response_duration_ms',\n help: 'Duration of incoming HTTP requests in ms',\n labelNames: LABEL_NAMES.httpResponse,\n buckets: [30, 100, 200, 500, 1000, 2500, 5000, 10000],\n });\n\n const renderDuration = new PromClient.Histogram({\n name: 'render_duration_ms',\n help: 'Duration of SSR ms',\n labelNames: LABEL_NAMES.pageRender,\n buckets: [0.1, 15, 50, 100, 250, 500, 800, 1500],\n });\n\n return {\n requestCount,\n renderDuration,\n responseDuration,\n };\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzBE,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;EACpDC,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ;AAC3C,CAAU;;AAEV;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAAA,EAAG;EAClC,MAAMC,YAAY,GAAG,IAAIC,mBAAU,CAACC,OAAO,CAAC;IAC1CC,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,6BAA6B;IACnCC,UAAU,EAAEV,WAAW,CAACE;EAC1B,CAAC,CAAC;EAEF,MAAMS,gBAAgB,GAAG,IAAIL,mBAAU,CAACM,SAAS,CAAC;IAChDJ,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,0CAA0C;IAChDC,UAAU,EAAEV,WAAW,CAACE,YAAY;IACpCW,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;EACtD,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAG,IAAIR,mBAAU,CAACM,SAAS,CAAC;IAC9CJ,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,oBAAoB;IAC1BC,UAAU,EAAEV,WAAW,CAACG,UAAU;IAClCU,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;EACjD,CAAC,CAAC;EAEF,OAAO;IACLR,YAAY;IACZS,cAAc;IACdH;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-page-response-format.js","names":["getPageResponseFormat","req","result","header","toLowerCase","includes"],"sources":["../../../../../src/preset/node/utils/get-page-response-format.tsx"],"sourcesContent":["import type express from 'express';\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n * @todo Перенести в preset/node (или в preset/server но с именем getPageResponseFormatExpress?).\n * @deprecated Стоит использовать npm:accepts.\n */\nexport function getPageResponseFormat(req: express.Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAqBA,CAACC,GAAoB,EAAmB;EAC3E,IAAIC,MAAuB,GAAG,MAAM;EAEpC,IAAI,CAACD,GAAG,CAACE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;IAC3EH,MAAM,GAAG,MAAM;EACjB;EAEA,OAAOA,MAAM;AACf"}
|
|
1
|
+
{"version":3,"file":"get-page-response-format.js","names":["getPageResponseFormat","req","result","header","toLowerCase","includes"],"sources":["../../../../../src/preset/node/utils/get-page-response-format.tsx"],"sourcesContent":["import type express from 'express';\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n * @todo Перенести в preset/node (или в preset/server но с именем getPageResponseFormatExpress?).\n * @deprecated Стоит использовать npm:accepts.\n */\nexport function getPageResponseFormat(req: express.Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAqBA,CAACC,GAAoB,EAAmB;EAC3E,IAAIC,MAAuB,GAAG,MAAM;EAEpC,IAAI,CAACD,GAAG,CAACE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;IAC3EH,MAAM,GAAG,MAAM;EACjB;EAEA,OAAOA,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-serve-measuring.js","names":["_constants","require","_utils","_getHandlerMetrics","getServeMeasuring","config","requestCount","renderDuration","responseDuration","getHandlerMetrics","getResponseLabels","req","res","version","appVersion","route","url","code","status","method","getRenderLabels","request","next","context","responseStart","process","hrtime","bigint","renderStart","events","addEventListener","PAGE_HANDLER_EVENT_TYPE","once","renderFinish","observe","toMilliseconds","response","responseFinish","inc"],"sources":["../../../../../src/preset/node/utils/get-serve-measuring.ts"],"sourcesContent":["import type { BaseConfig } from '../../../config';\nimport type { ServerMiddleware } from '../../server/types';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../../server/constants';\nimport { toMilliseconds } from '../../../utils';\nimport { LABEL_NAMES, getHandlerMetrics } from './get-handler-metrics';\n\n/**\n * Возвращает новый промежуточный слой метрки входящего http-запроса.\n * @param config Конфигурация.\n * @return Промежуточный слой.\n */\nexport function getServeMeasuring(config: BaseConfig): ServerMiddleware {\n const { requestCount, renderDuration, responseDuration } = getHandlerMetrics();\n\n /** @inheritdoc */\n const getResponseLabels = (req: Request, res: Response) =>\n ({\n version: config.appVersion,\n route: req.url,\n code: res.status,\n method: req.method,\n }) satisfies Record<(typeof LABEL_NAMES.httpResponse)[number], string | number>;\n\n /** @inheritdoc */\n const getRenderLabels = (request: 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 async (request, next, context) => {\n const responseStart = process.hrtime.bigint();\n let renderStart = 0n;\n\n context.events.addEventListener(\n PAGE_HANDLER_EVENT_TYPE.renderStart,\n () => {\n renderStart = process.hrtime.bigint();\n },\n { once: true },\n );\n\n context.events.addEventListener(\n PAGE_HANDLER_EVENT_TYPE.renderFinish,\n () => {\n const renderFinish = process.hrtime.bigint();\n\n renderDuration.observe(\n getRenderLabels(request),\n toMilliseconds(renderFinish - renderStart),\n );\n },\n { once: true },\n );\n\n const response = await next(request);\n const responseFinish = process.hrtime.bigint();\n\n responseDuration.observe(\n getResponseLabels(request, response),\n toMilliseconds(responseFinish - responseStart),\n );\n\n requestCount.inc(getResponseLabels(request, response), 1);\n\n return response;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAACC,MAAkB,EAAoB;EACtE,MAAM;IAAEC,YAAY;IAAEC,cAAc;IAAEC;EAAiB,CAAC,GAAG,IAAAC,oCAAiB,EAAC,CAAC;;EAE9E;EACA,MAAMC,iBAAiB,GAAGA,CAACC,GAAY,EAAEC,GAAa,MACnD;IACCC,OAAO,EAAER,MAAM,CAACS,UAAU;IAC1BC,KAAK,EAAEJ,GAAG,CAACK,GAAG;IACdC,IAAI,EAAEL,GAAG,CAACM,MAAM;IAChBC,MAAM,EAAER,GAAG,CAACQ;EACd,CAAC,CAA8E;;EAEjF;EACA,MAAMC,eAAe,GAAIC,OAAgB,KACtC;IACCR,OAAO,EAAER,MAAM,CAACS,UAAU;IAC1BK,MAAM,EAAEE,OAAO,CAACF,MAAM;IACtBJ,KAAK,EAAEM,OAAO,CAACL;EACjB,CAAC,CAA4E;EAE/E,OAAO,OAAOK,OAAO,EAAEC,IAAI,EAAEC,OAAO,KAAK;IACvC,MAAMC,aAAa,GAAGC,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IAC7C,IAAIC,WAAW,GAAG,EAAE;IAEpBL,OAAO,CAACM,MAAM,CAACC,gBAAgB,CAC7BC,kCAAuB,CAACH,WAAW,EACnC,MAAM;MACJA,WAAW,GAAGH,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IACvC,CAAC,EACD;MAAEK,IAAI,EAAE;IAAK,CACf,CAAC;IAEDT,OAAO,CAACM,MAAM,CAACC,gBAAgB,CAC7BC,kCAAuB,CAACE,YAAY,EACpC,MAAM;MACJ,MAAMA,YAAY,GAAGR,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAE5CpB,cAAc,CAAC2B,OAAO,CACpBd,eAAe,CAACC,OAAO,CAAC,EACxB,IAAAc,qBAAc,EAACF,YAAY,GAAGL,WAAW,CAC3C,CAAC;IACH,CAAC,EACD;MAAEI,IAAI,EAAE;IAAK,CACf,CAAC;IAED,MAAMI,QAAQ,GAAG,MAAMd,IAAI,CAACD,OAAO,CAAC;IACpC,MAAMgB,cAAc,GAAGZ,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IAE9CnB,gBAAgB,CAAC0B,OAAO,CACtBxB,iBAAiB,CAACW,OAAO,EAAEe,QAAQ,CAAC,EACpC,IAAAD,qBAAc,EAACE,cAAc,GAAGb,aAAa,CAC/C,CAAC;IAEDlB,YAAY,CAACgC,GAAG,CAAC5B,iBAAiB,CAACW,OAAO,EAAEe,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEzD,OAAOA,QAAQ;EACjB,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"get-serve-measuring.js","names":["_constants","require","_utils","_getHandlerMetrics","getServeMeasuring","config","requestCount","renderDuration","responseDuration","getHandlerMetrics","getResponseLabels","req","res","version","appVersion","route","url","code","status","method","getRenderLabels","request","next","context","responseStart","process","hrtime","bigint","renderStart","events","addEventListener","PAGE_HANDLER_EVENT_TYPE","once","renderFinish","observe","toMilliseconds","response","responseFinish","inc"],"sources":["../../../../../src/preset/node/utils/get-serve-measuring.ts"],"sourcesContent":["import type { BaseConfig } from '../../../config';\nimport type { ServerMiddleware } from '../../server/types';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../../server/constants';\nimport { toMilliseconds } from '../../../utils';\nimport { LABEL_NAMES, getHandlerMetrics } from './get-handler-metrics';\n\n/**\n * Возвращает новый промежуточный слой метрки входящего http-запроса.\n * @param config Конфигурация.\n * @return Промежуточный слой.\n */\nexport function getServeMeasuring(config: BaseConfig): ServerMiddleware {\n const { requestCount, renderDuration, responseDuration } = getHandlerMetrics();\n\n /** @inheritdoc */\n const getResponseLabels = (req: Request, res: Response) =>\n ({\n version: config.appVersion,\n route: req.url,\n code: res.status,\n method: req.method,\n }) satisfies Record<(typeof LABEL_NAMES.httpResponse)[number], string | number>;\n\n /** @inheritdoc */\n const getRenderLabels = (request: 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 async (request, next, context) => {\n const responseStart = process.hrtime.bigint();\n let renderStart = 0n;\n\n context.events.addEventListener(\n PAGE_HANDLER_EVENT_TYPE.renderStart,\n () => {\n renderStart = process.hrtime.bigint();\n },\n { once: true },\n );\n\n context.events.addEventListener(\n PAGE_HANDLER_EVENT_TYPE.renderFinish,\n () => {\n const renderFinish = process.hrtime.bigint();\n\n renderDuration.observe(\n getRenderLabels(request),\n toMilliseconds(renderFinish - renderStart),\n );\n },\n { once: true },\n );\n\n const response = await next(request);\n const responseFinish = process.hrtime.bigint();\n\n responseDuration.observe(\n getResponseLabels(request, response),\n toMilliseconds(responseFinish - responseStart),\n );\n\n requestCount.inc(getResponseLabels(request, response), 1);\n\n return response;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAACC,MAAkB,EAAoB;EACtE,MAAM;IAAEC,YAAY;IAAEC,cAAc;IAAEC;EAAiB,CAAC,GAAG,IAAAC,oCAAiB,EAAC,CAAC;;EAE9E;EACA,MAAMC,iBAAiB,GAAGA,CAACC,GAAY,EAAEC,GAAa,MACnD;IACCC,OAAO,EAAER,MAAM,CAACS,UAAU;IAC1BC,KAAK,EAAEJ,GAAG,CAACK,GAAG;IACdC,IAAI,EAAEL,GAAG,CAACM,MAAM;IAChBC,MAAM,EAAER,GAAG,CAACQ;EACd,CAAC,CAA8E;;EAEjF;EACA,MAAMC,eAAe,GAAIC,OAAgB,KACtC;IACCR,OAAO,EAAER,MAAM,CAACS,UAAU;IAC1BK,MAAM,EAAEE,OAAO,CAACF,MAAM;IACtBJ,KAAK,EAAEM,OAAO,CAACL;EACjB,CAAC,CAA4E;EAE/E,OAAO,OAAOK,OAAO,EAAEC,IAAI,EAAEC,OAAO,KAAK;IACvC,MAAMC,aAAa,GAAGC,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IAC7C,IAAIC,WAAW,GAAG,EAAE;IAEpBL,OAAO,CAACM,MAAM,CAACC,gBAAgB,CAC7BC,kCAAuB,CAACH,WAAW,EACnC,MAAM;MACJA,WAAW,GAAGH,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IACvC,CAAC,EACD;MAAEK,IAAI,EAAE;IAAK,CACf,CAAC;IAEDT,OAAO,CAACM,MAAM,CAACC,gBAAgB,CAC7BC,kCAAuB,CAACE,YAAY,EACpC,MAAM;MACJ,MAAMA,YAAY,GAAGR,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;MAE5CpB,cAAc,CAAC2B,OAAO,CACpBd,eAAe,CAACC,OAAO,CAAC,EACxB,IAAAc,qBAAc,EAACF,YAAY,GAAGL,WAAW,CAC3C,CAAC;IACH,CAAC,EACD;MAAEI,IAAI,EAAE;IAAK,CACf,CAAC;IAED,MAAMI,QAAQ,GAAG,MAAMd,IAAI,CAACD,OAAO,CAAC;IACpC,MAAMgB,cAAc,GAAGZ,OAAO,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;IAE9CnB,gBAAgB,CAAC0B,OAAO,CACtBxB,iBAAiB,CAACW,OAAO,EAAEe,QAAQ,CAAC,EACpC,IAAAD,qBAAc,EAACE,cAAc,GAAGb,aAAa,CAC/C,CAAC;IAEDlB,YAAY,CAACgC,GAAG,CAAC5B,iBAAiB,CAACW,OAAO,EAAEe,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEzD,OAAOA,QAAQ;EACjB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-provider.js","names":["_tokens","require","_di","HandlerProvider","getApp","resolve","parent","CURRENT_APP","req","res","next","app","attach","bind","KnownToken","ExpressHandler","context","toValue","get","main"],"sources":["../../../../../src/preset/node/utils/handler-provider.ts"],"sourcesContent":["import type express from 'express';\nimport { KnownToken } from '../../../tokens';\nimport { CURRENT_APP, type Application, type Provider, type Resolve } from '../../../di';\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application): Provider<express.Handler> {\n return (resolve: Resolve): express.Handler => {\n const parent = resolve(CURRENT_APP);\n\n return (req, res, next) => {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.ExpressHandler.context).toValue({ req, res, next });\n app.get(KnownToken.ExpressHandler.main)(req, res, next);\n };\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAACC,MAAyB,EAA6B;EACpF,OAAQC,OAAgB,IAAsB;IAC5C,MAAMC,MAAM,GAAGD,OAAO,CAACE,eAAW,CAAC;IAEnC,OAAO,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;MACzB,MAAMC,GAAG,GAAGP,MAAM,CAAC,CAAC;MAEpBO,GAAG,CAACC,MAAM,CAACN,MAAM,CAAC;MAClBK,GAAG,CAACE,IAAI,CAACC,kBAAU,CAACC,cAAc,CAACC,OAAO,CAAC,CAACC,OAAO,CAAC;QAAET,GAAG;QAAEC,GAAG;QAAEC;MAAK,CAAC,CAAC;MACvEC,GAAG,CAACO,GAAG,CAACJ,kBAAU,CAACC,cAAc,CAACI,IAAI,CAAC,CAACX,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC;IACzD,CAAC;EACH,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"handler-provider.js","names":["_tokens","require","_di","HandlerProvider","getApp","resolve","parent","CURRENT_APP","req","res","next","app","attach","bind","KnownToken","ExpressHandler","context","toValue","get","main"],"sources":["../../../../../src/preset/node/utils/handler-provider.ts"],"sourcesContent":["import type express from 'express';\nimport { KnownToken } from '../../../tokens';\nimport { CURRENT_APP, type Application, type Provider, type Resolve } from '../../../di';\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application): Provider<express.Handler> {\n return (resolve: Resolve): express.Handler => {\n const parent = resolve(CURRENT_APP);\n\n return (req, res, next) => {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.ExpressHandler.context).toValue({ req, res, next });\n app.get(KnownToken.ExpressHandler.main)(req, res, next);\n };\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAACC,MAAyB,EAA6B;EACpF,OAAQC,OAAgB,IAAsB;IAC5C,MAAMC,MAAM,GAAGD,OAAO,CAACE,eAAW,CAAC;IAEnC,OAAO,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;MACzB,MAAMC,GAAG,GAAGP,MAAM,CAAC,CAAC;MAEpBO,GAAG,CAACC,MAAM,CAACN,MAAM,CAAC;MAClBK,GAAG,CAACE,IAAI,CAACC,kBAAU,CAACC,cAAc,CAACC,OAAO,CAAC,CAACC,OAAO,CAAC;QAAET,GAAG;QAAEC,GAAG;QAAEC;MAAK,CAAC,CAAC;MACvEC,GAAG,CAACO,GAAG,CAACJ,kBAAU,CAACC,cAAc,CAACI,IAAI,CAAC,CAACX,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC;IACzD,CAAC;EACH,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","names":["_semanticConventions","require","getSemanticHeaders","headers","result","Object","entries","reduce","acc","key","value","ATTR_HTTP_REQUEST_HEADER","keys","length"],"sources":["../../../../../src/preset/node/utils/telemetry.ts"],"sourcesContent":["import { ATTR_HTTP_REQUEST_HEADER } from '@opentelemetry/semantic-conventions';\n\n/**\n * Формирует данные заголовков согласно семантике.\n * @todo Возможно стоит убрать cookie/Cookie.\n * @param headers Объект заголовков запроса.\n * @return Данные заголовков.\n */\nexport function getSemanticHeaders(headers: Record<string, any>): Record<string, string> | null {\n const result = Object.entries(headers).reduce<Record<string, string>>((acc, [key, value]) => {\n if (value || typeof value === 'number') {\n acc[ATTR_HTTP_REQUEST_HEADER(key)] = value;\n }\n return acc;\n }, {});\n\n return Object.keys(result).length ? result : null;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,OAA4B,EAAiC;EAC9F,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAACH,OAAO,CAAC,CAACI,MAAM,CAAyB,CAACC,GAAG,EAAE,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;IAC3F,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MACtCF,GAAG,CAAC,IAAAG,6CAAwB,EAACF,GAAG,CAAC,CAAC,GAAGC,KAAK;IAC5C;IACA,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EAEN,OAAOH,MAAM,CAACO,IAAI,CAACR,MAAM,CAAC,CAACS,MAAM,GAAGT,MAAM,GAAG,IAAI;AACnD"}
|
|
1
|
+
{"version":3,"file":"telemetry.js","names":["_semanticConventions","require","getSemanticHeaders","headers","result","Object","entries","reduce","acc","key","value","ATTR_HTTP_REQUEST_HEADER","keys","length"],"sources":["../../../../../src/preset/node/utils/telemetry.ts"],"sourcesContent":["import { ATTR_HTTP_REQUEST_HEADER } from '@opentelemetry/semantic-conventions';\n\n/**\n * Формирует данные заголовков согласно семантике.\n * @todo Возможно стоит убрать cookie/Cookie.\n * @param headers Объект заголовков запроса.\n * @return Данные заголовков.\n */\nexport function getSemanticHeaders(headers: Record<string, any>): Record<string, string> | null {\n const result = Object.entries(headers).reduce<Record<string, string>>((acc, [key, value]) => {\n if (value || typeof value === 'number') {\n acc[ATTR_HTTP_REQUEST_HEADER(key)] = value;\n }\n return acc;\n }, {});\n\n return Object.keys(result).length ? result : null;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,OAA4B,EAAiC;EAC9F,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAACH,OAAO,CAAC,CAACI,MAAM,CAAyB,CAACC,GAAG,EAAE,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;IAC3F,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MACtCF,GAAG,CAAC,IAAAG,6CAAwB,EAACF,GAAG,CAAC,CAAC,GAAGC,KAAK;IAC5C;IACA,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EAEN,OAAOH,MAAM,CAACO,IAAI,CAACR,MAAM,CAAC,CAACS,MAAM,GAAGT,MAAM,GAAG,IAAI;AACnD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_di","require","_tokens","_reduxMiddlewareSaga","_fetch","_abortController","_formatPageResponse","_elementToString","_axiosMiddleware","_axiosLogHandler","_handlerMain","_specificParams","_pageHelmet","_pageRender","_fetchMiddleware","_fetchLogHandler","_specificExtras","_acceptsType","_responseEvents","_axiosFactory","PresetHandler","customize","preset","createPreset","set","KnownToken","Http","fetch","provideFetch","Fetch","middleware","provideFetchMiddleware","abortController","provideAbortController","Middleware","Log","handler","provideFetchLogHandler","Redux","saga","provideReduxMiddlewareSaga","Axios","factory","provideAxiosFactory","provideAxiosMiddleware","provideAxiosLogHandler","ExpressHandler","main","provideHandlerMain","Handler","Request","acceptType","provideAcceptType","specificParams","provideSpecificParams","Response","specificExtras","SpecificExtras","events","provideResponseEvents","Page","assets","js","css","helmet","providePageHelmet","render","providePageRender","elementToString","provideElementToString","formatResponse","provideFormatPageResponse","override","bind"],"sources":["../../../../src/preset/node-handler/index.ts"],"sourcesContent":["import { Preset, createPreset } from '../../di';\nimport { KnownToken } from '../../tokens';\nimport { provideReduxMiddlewareSaga } from '../isomorphic/providers/redux-middleware-saga';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideAbortController } from '../isomorphic/providers/abort-controller';\nimport { PresetTuner } from '../isomorphic/types';\nimport { provideFormatPageResponse } from '../server/providers/format-page-response';\nimport { provideElementToString } from '../server/providers/element-to-string';\nimport { provideAxiosMiddleware } from './providers/axios-middleware';\nimport { provideAxiosLogHandler } from './providers/axios-log-handler';\nimport { provideHandlerMain } from './providers/handler-main';\nimport { provideSpecificParams } from './providers/specific-params';\nimport { providePageHelmet } from '../server/providers/page-helmet';\nimport { providePageRender } from '../server/providers/page-render';\nimport { provideFetchMiddleware } from './providers/fetch-middleware';\nimport { provideFetchLogHandler } from '../server/providers/fetch-log-handler';\nimport { SpecificExtras } from '../server/utils/specific-extras';\nimport { provideAcceptType } from './providers/accepts-type';\nimport { provideResponseEvents } from './providers/response-events';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @todo Возможно стоит переименовать в PresetPageHandler.\n * @return Preset.\n */\nexport function PresetHandler(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // fetch\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, provideFetchMiddleware);\n preset.set(KnownToken.Http.Fetch.abortController, provideAbortController);\n preset.set(KnownToken.Http.Fetch.Middleware.Log.handler, provideFetchLogHandler);\n\n // saga\n preset.set(KnownToken.Redux.Middleware.saga, provideReduxMiddlewareSaga);\n\n // axios\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, provideAxiosMiddleware);\n preset.set(KnownToken.Axios.Middleware.Log.handler, provideAxiosLogHandler);\n\n // express handler\n preset.set(KnownToken.ExpressHandler.main, provideHandlerMain);\n\n // http handler\n preset.set(KnownToken.Http.Handler.Request.acceptType, provideAcceptType);\n preset.set(KnownToken.Http.Handler.Request.specificParams, provideSpecificParams);\n preset.set(KnownToken.Http.Handler.Response.specificExtras, () => new SpecificExtras());\n preset.set(KnownToken.Http.Handler.Response.events, provideResponseEvents);\n preset.set(KnownToken.Http.Handler.Page.assets, () => ({ js: '', css: '' }));\n preset.set(KnownToken.Http.Handler.Page.helmet, providePageHelmet);\n preset.set(KnownToken.Http.Handler.Page.render, providePageRender);\n preset.set(KnownToken.Http.Handler.Page.elementToString, provideElementToString);\n preset.set(KnownToken.Http.Handler.Page.formatResponse, provideFormatPageResponse);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_di","require","_tokens","_reduxMiddlewareSaga","_fetch","_abortController","_formatPageResponse","_elementToString","_axiosMiddleware","_axiosLogHandler","_handlerMain","_specificParams","_pageHelmet","_pageRender","_fetchMiddleware","_fetchLogHandler","_specificExtras","_acceptsType","_responseEvents","_axiosFactory","PresetHandler","customize","preset","createPreset","set","KnownToken","Http","fetch","provideFetch","Fetch","middleware","provideFetchMiddleware","abortController","provideAbortController","Middleware","Log","handler","provideFetchLogHandler","Redux","saga","provideReduxMiddlewareSaga","Axios","factory","provideAxiosFactory","provideAxiosMiddleware","provideAxiosLogHandler","ExpressHandler","main","provideHandlerMain","Handler","Request","acceptType","provideAcceptType","specificParams","provideSpecificParams","Response","specificExtras","SpecificExtras","events","provideResponseEvents","Page","assets","js","css","helmet","providePageHelmet","render","providePageRender","elementToString","provideElementToString","formatResponse","provideFormatPageResponse","override","bind"],"sources":["../../../../src/preset/node-handler/index.ts"],"sourcesContent":["import { Preset, createPreset } from '../../di';\nimport { KnownToken } from '../../tokens';\nimport { provideReduxMiddlewareSaga } from '../isomorphic/providers/redux-middleware-saga';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideAbortController } from '../isomorphic/providers/abort-controller';\nimport { PresetTuner } from '../isomorphic/types';\nimport { provideFormatPageResponse } from '../server/providers/format-page-response';\nimport { provideElementToString } from '../server/providers/element-to-string';\nimport { provideAxiosMiddleware } from './providers/axios-middleware';\nimport { provideAxiosLogHandler } from './providers/axios-log-handler';\nimport { provideHandlerMain } from './providers/handler-main';\nimport { provideSpecificParams } from './providers/specific-params';\nimport { providePageHelmet } from '../server/providers/page-helmet';\nimport { providePageRender } from '../server/providers/page-render';\nimport { provideFetchMiddleware } from './providers/fetch-middleware';\nimport { provideFetchLogHandler } from '../server/providers/fetch-log-handler';\nimport { SpecificExtras } from '../server/utils/specific-extras';\nimport { provideAcceptType } from './providers/accepts-type';\nimport { provideResponseEvents } from './providers/response-events';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @todo Возможно стоит переименовать в PresetPageHandler.\n * @return Preset.\n */\nexport function PresetHandler(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // fetch\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, provideFetchMiddleware);\n preset.set(KnownToken.Http.Fetch.abortController, provideAbortController);\n preset.set(KnownToken.Http.Fetch.Middleware.Log.handler, provideFetchLogHandler);\n\n // saga\n preset.set(KnownToken.Redux.Middleware.saga, provideReduxMiddlewareSaga);\n\n // axios\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, provideAxiosMiddleware);\n preset.set(KnownToken.Axios.Middleware.Log.handler, provideAxiosLogHandler);\n\n // express handler\n preset.set(KnownToken.ExpressHandler.main, provideHandlerMain);\n\n // http handler\n preset.set(KnownToken.Http.Handler.Request.acceptType, provideAcceptType);\n preset.set(KnownToken.Http.Handler.Request.specificParams, provideSpecificParams);\n preset.set(KnownToken.Http.Handler.Response.specificExtras, () => new SpecificExtras());\n preset.set(KnownToken.Http.Handler.Response.events, provideResponseEvents);\n preset.set(KnownToken.Http.Handler.Page.assets, () => ({ js: '', css: '' }));\n preset.set(KnownToken.Http.Handler.Page.helmet, providePageHelmet);\n preset.set(KnownToken.Http.Handler.Page.render, providePageRender);\n preset.set(KnownToken.Http.Handler.Page.elementToString, provideElementToString);\n preset.set(KnownToken.Http.Handler.Page.formatResponse, provideFormatPageResponse);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accepts-type.js","names":["_tokens","require","provideAcceptType","resolve","context","KnownToken","ExpressHandler","req","accepts","bind"],"sources":["../../../../../src/preset/node-handler/providers/accepts-type.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер функции, которая определяет возможные типы ответа и их приоритет.\n * @param resolve Resolve.\n * @return Функция.\n */\nexport function provideAcceptType(resolve: Resolve) {\n const context = resolve(KnownToken.ExpressHandler.context);\n\n return context.req.accepts.bind(context.req);\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,OAAgB,EAAE;EAClD,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,cAAc,CAACF,OAAO,CAAC;EAE1D,OAAOA,OAAO,CAACG,GAAG,CAACC,OAAO,CAACC,IAAI,CAACL,OAAO,CAACG,GAAG,CAAC;AAC9C"}
|
|
1
|
+
{"version":3,"file":"accepts-type.js","names":["_tokens","require","provideAcceptType","resolve","context","KnownToken","ExpressHandler","req","accepts","bind"],"sources":["../../../../../src/preset/node-handler/providers/accepts-type.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер функции, которая определяет возможные типы ответа и их приоритет.\n * @param resolve Resolve.\n * @return Функция.\n */\nexport function provideAcceptType(resolve: Resolve) {\n const context = resolve(KnownToken.ExpressHandler.context);\n\n return context.req.accepts.bind(context.req);\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,OAAgB,EAAE;EAClD,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,cAAc,CAACF,OAAO,CAAC;EAE1D,OAAOA,OAAO,CAACG,GAAG,CAACC,OAAO,CAACC,IAAI,CAACL,OAAO,CAACG,GAAG,CAAC;AAC9C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-log-handler.js","names":["_tokens","require","_axiosLogging","provideAxiosLogHandler","resolve","logger","KnownToken","abortController","Http","Fetch","data","logHandler","AxiosLogging","disabled","signal","aborted"],"sources":["../../../../../src/preset/node-handler/providers/axios-log-handler.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { LogMiddlewareHandlerInit } from '../../../utils/axios';\nimport { AxiosLogging } from '../../isomorphic/utils/axios-logging';\n\n/**\n * Провайдер обработчика логирования axios.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик логирования.\n */\nexport function provideAxiosLogHandler(resolve: Resolve): LogMiddlewareHandlerInit {\n const logger = resolve(KnownToken.logger);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n return data => {\n const logHandler = new AxiosLogging(logger, data);\n\n // ВАЖНО: отключаем логирование если запрос прерван\n logHandler.disabled = () => abortController.signal.aborted;\n\n return logHandler;\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACC,OAAgB,EAA4B;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;EACzC,MAAME,eAAe,GAAGH,OAAO,CAACE,kBAAU,CAACE,IAAI,CAACC,KAAK,CAACF,eAAe,CAAC;EAEtE,OAAOG,IAAI,IAAI;IACb,MAAMC,UAAU,GAAG,IAAIC,0BAAY,CAACP,MAAM,EAAEK,IAAI,CAAC;;IAEjD;IACAC,UAAU,CAACE,QAAQ,GAAG,MAAMN,eAAe,CAACO,MAAM,CAACC,OAAO;IAE1D,OAAOJ,UAAU;EACnB,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"axios-log-handler.js","names":["_tokens","require","_axiosLogging","provideAxiosLogHandler","resolve","logger","KnownToken","abortController","Http","Fetch","data","logHandler","AxiosLogging","disabled","signal","aborted"],"sources":["../../../../../src/preset/node-handler/providers/axios-log-handler.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { LogMiddlewareHandlerInit } from '../../../utils/axios';\nimport { AxiosLogging } from '../../isomorphic/utils/axios-logging';\n\n/**\n * Провайдер обработчика логирования axios.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик логирования.\n */\nexport function provideAxiosLogHandler(resolve: Resolve): LogMiddlewareHandlerInit {\n const logger = resolve(KnownToken.logger);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n return data => {\n const logHandler = new AxiosLogging(logger, data);\n\n // ВАЖНО: отключаем логирование если запрос прерван\n logHandler.disabled = () => abortController.signal.aborted;\n\n return logHandler;\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACC,OAAgB,EAA4B;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;EACzC,MAAME,eAAe,GAAGH,OAAO,CAACE,kBAAU,CAACE,IAAI,CAACC,KAAK,CAACF,eAAe,CAAC;EAEtE,OAAOG,IAAI,IAAI;IACb,MAAMC,UAAU,GAAG,IAAIC,0BAAY,CAACP,MAAM,EAAEK,IAAI,CAAC;;IAEjD;IACAC,UAAU,CAACE,QAAQ,GAAG,MAAMN,eAAe,CAACO,MAAM,CAACC,OAAO;IAE1D,OAAOJ,UAAU;EACnB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-middleware.js","names":["_tokens","require","_httpStatus","_axiosTracingMiddleware","_axios","_getForwardedHeaders","provideAxiosMiddleware","resolve","appConfig","KnownToken","Config","base","tracer","Tracing","context","ExpressHandler","logHandler","Axios","Middleware","Log","handler","abortController","Http","Fetch","config","next","headers","getForwardedHeaders","req","innerController","AbortController","signal","addEventListener","abort","once","HttpStatus","axiosMiddleware","axiosTracingMiddleware","res","locals","tracing","rootContext","logMiddleware"],"sources":["../../../../../src/preset/node-handler/providers/axios-middleware.ts"],"sourcesContent":["import { Middleware } from 'middleware-axios';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { HttpStatus } from '../../isomorphic/utils/http-status';\nimport { axiosTracingMiddleware } from '../../node/utils/axios-tracing-middleware';\nimport { logMiddleware } from '../../../utils/axios';\nimport { getForwardedHeaders } from '../../node/utils/get-forwarded-headers';\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosMiddleware(resolve: Resolve): Middleware<any>[] {\n const appConfig = resolve(KnownToken.Config.base);\n const tracer = resolve(KnownToken.Tracing.tracer);\n const context = resolve(KnownToken.ExpressHandler.context);\n const logHandler = resolve(KnownToken.Axios.Middleware.Log.handler);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n return [\n // пробрасываемые заголовки по соглашению\n async (config, next) => {\n await next({\n ...config,\n headers: {\n ...getForwardedHeaders(appConfig, context.req),\n\n // ВАЖНО: заголовки из конфига важнее, поэтому идут в конце\n ...config.headers,\n },\n });\n },\n\n // обрывание по сигналу из обработчика входящего запроса и по сигналу из конфига исходящего запроса\n async (config, next) => {\n const innerController = new AbortController();\n\n abortController.signal.addEventListener(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n config.signal?.addEventListener?.(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n await next({ ...config, signal: innerController.signal });\n },\n\n HttpStatus.axiosMiddleware(),\n axiosTracingMiddleware(tracer, context.res.locals.tracing.rootContext),\n logMiddleware(logHandler),\n ];\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASK,sBAAsBA,CAACC,OAAgB,EAAqB;EAC1E,MAAMC,SAAS,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EACjD,MAAMC,MAAM,GAAGL,OAAO,CAACE,kBAAU,CAACI,OAAO,CAACD,MAAM,CAAC;EACjD,MAAME,OAAO,GAAGP,OAAO,CAACE,kBAAU,CAACM,cAAc,CAACD,OAAO,CAAC;EAC1D,MAAME,UAAU,GAAGT,OAAO,CAACE,kBAAU,CAACQ,KAAK,CAACC,UAAU,CAACC,GAAG,CAACC,OAAO,CAAC;EACnE,MAAMC,eAAe,GAAGd,OAAO,CAACE,kBAAU,CAACa,IAAI,CAACC,KAAK,CAACF,eAAe,CAAC;EAEtE,OAAO;EACL;EACA,OAAOG,MAAM,EAAEC,IAAI,KAAK;IACtB,MAAMA,IAAI,CAAC;MACT,GAAGD,MAAM;MACTE,OAAO,EAAE;QACP,GAAG,IAAAC,wCAAmB,EAACnB,SAAS,EAAEM,OAAO,CAACc,GAAG,CAAC;QAE9C;QACA,GAAGJ,MAAM,CAACE;MACZ;IACF,CAAC,CAAC;EACJ,CAAC;EAED;EACA,OAAOF,MAAM,EAAEC,IAAI,KAAK;IACtB,MAAMI,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;IAE7CT,eAAe,CAACU,MAAM,CAACC,gBAAgB,CACrC,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAEDV,MAAM,CAACO,MAAM,EAAEC,gBAAgB,GAC7B,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAED,MAAMT,IAAI,CAAC;MAAE,GAAGD,MAAM;MAAEO,MAAM,EAAEF,eAAe,CAACE;IAAO,CAAC,CAAC;EAC3D,CAAC,EAEDI,sBAAU,CAACC,eAAe,CAAC,CAAC,EAC5B,IAAAC,8CAAsB,EAACzB,MAAM,EAAEE,OAAO,CAACwB,GAAG,CAACC,MAAM,CAACC,OAAO,CAACC,WAAW,CAAC,EACtE,IAAAC,oBAAa,EAAC1B,UAAU,CAAC,CAC1B;AACH"}
|
|
1
|
+
{"version":3,"file":"axios-middleware.js","names":["_tokens","require","_httpStatus","_axiosTracingMiddleware","_axios","_getForwardedHeaders","provideAxiosMiddleware","resolve","appConfig","KnownToken","Config","base","tracer","Tracing","context","ExpressHandler","logHandler","Axios","Middleware","Log","handler","abortController","Http","Fetch","config","next","headers","getForwardedHeaders","req","innerController","AbortController","signal","addEventListener","abort","once","HttpStatus","axiosMiddleware","axiosTracingMiddleware","res","locals","tracing","rootContext","logMiddleware"],"sources":["../../../../../src/preset/node-handler/providers/axios-middleware.ts"],"sourcesContent":["import { Middleware } from 'middleware-axios';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { HttpStatus } from '../../isomorphic/utils/http-status';\nimport { axiosTracingMiddleware } from '../../node/utils/axios-tracing-middleware';\nimport { logMiddleware } from '../../../utils/axios';\nimport { getForwardedHeaders } from '../../node/utils/get-forwarded-headers';\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosMiddleware(resolve: Resolve): Middleware<any>[] {\n const appConfig = resolve(KnownToken.Config.base);\n const tracer = resolve(KnownToken.Tracing.tracer);\n const context = resolve(KnownToken.ExpressHandler.context);\n const logHandler = resolve(KnownToken.Axios.Middleware.Log.handler);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n return [\n // пробрасываемые заголовки по соглашению\n async (config, next) => {\n await next({\n ...config,\n headers: {\n ...getForwardedHeaders(appConfig, context.req),\n\n // ВАЖНО: заголовки из конфига важнее, поэтому идут в конце\n ...config.headers,\n },\n });\n },\n\n // обрывание по сигналу из обработчика входящего запроса и по сигналу из конфига исходящего запроса\n async (config, next) => {\n const innerController = new AbortController();\n\n abortController.signal.addEventListener(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n config.signal?.addEventListener?.(\n 'abort',\n () => {\n innerController.abort();\n },\n { once: true },\n );\n\n await next({ ...config, signal: innerController.signal });\n },\n\n HttpStatus.axiosMiddleware(),\n axiosTracingMiddleware(tracer, context.res.locals.tracing.rootContext),\n logMiddleware(logHandler),\n ];\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASK,sBAAsBA,CAACC,OAAgB,EAAqB;EAC1E,MAAMC,SAAS,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EACjD,MAAMC,MAAM,GAAGL,OAAO,CAACE,kBAAU,CAACI,OAAO,CAACD,MAAM,CAAC;EACjD,MAAME,OAAO,GAAGP,OAAO,CAACE,kBAAU,CAACM,cAAc,CAACD,OAAO,CAAC;EAC1D,MAAME,UAAU,GAAGT,OAAO,CAACE,kBAAU,CAACQ,KAAK,CAACC,UAAU,CAACC,GAAG,CAACC,OAAO,CAAC;EACnE,MAAMC,eAAe,GAAGd,OAAO,CAACE,kBAAU,CAACa,IAAI,CAACC,KAAK,CAACF,eAAe,CAAC;EAEtE,OAAO;EACL;EACA,OAAOG,MAAM,EAAEC,IAAI,KAAK;IACtB,MAAMA,IAAI,CAAC;MACT,GAAGD,MAAM;MACTE,OAAO,EAAE;QACP,GAAG,IAAAC,wCAAmB,EAACnB,SAAS,EAAEM,OAAO,CAACc,GAAG,CAAC;QAE9C;QACA,GAAGJ,MAAM,CAACE;MACZ;IACF,CAAC,CAAC;EACJ,CAAC;EAED;EACA,OAAOF,MAAM,EAAEC,IAAI,KAAK;IACtB,MAAMI,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;IAE7CT,eAAe,CAACU,MAAM,CAACC,gBAAgB,CACrC,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAEDV,MAAM,CAACO,MAAM,EAAEC,gBAAgB,GAC7B,OAAO,EACP,MAAM;MACJH,eAAe,CAACI,KAAK,CAAC,CAAC;IACzB,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAED,MAAMT,IAAI,CAAC;MAAE,GAAGD,MAAM;MAAEO,MAAM,EAAEF,eAAe,CAACE;IAAO,CAAC,CAAC;EAC3D,CAAC,EAEDI,sBAAU,CAACC,eAAe,CAAC,CAAC,EAC5B,IAAAC,8CAAsB,EAACzB,MAAM,EAAEE,OAAO,CAACwB,GAAG,CAACC,MAAM,CAACC,OAAO,CAACC,WAAW,CAAC,EACtE,IAAAC,oBAAa,EAAC1B,UAAU,CAAC,CAC1B;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-middleware.js","names":["_http","require","_tokens","_getFetchErrorLogging","_getFetchExtraAborting","_getFetchLogging","_getFetchTracing","_getForwardedHeaders","provideFetchMiddleware","resolve","config","KnownToken","Config","base","tracer","Tracing","context","ExpressHandler","logHandler","Http","Fetch","Middleware","Log","handler","abortController","getFetchErrorLogging","defaultHeaders","getForwardedHeaders","req","getFetchExtraAborting","getFetchTracing","res","locals","tracing","rootContext","getFetchLogging"],"sources":["../../../../../src/preset/node-handler/providers/fetch-middleware.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { Middleware, defaultHeaders } from '../../../http';\nimport { KnownToken } from '../../../tokens';\nimport { getFetchErrorLogging } from '../../isomorphic/utils/get-fetch-error-logging';\nimport { getFetchExtraAborting } from '../../isomorphic/utils/get-fetch-extra-aborting';\nimport { getFetchLogging } from '../../isomorphic/utils/get-fetch-logging';\nimport { getFetchTracing } from '../../node/utils/get-fetch-tracing';\nimport { getForwardedHeaders } from '../../node/utils/get-forwarded-headers';\n\n/**\n * Провайдер промежуточных слоев для fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Массив промежуточных слоев.\n */\nexport function provideFetchMiddleware(resolve: Resolve): Middleware[] {\n const config = resolve(KnownToken.Config.base);\n const tracer = resolve(KnownToken.Tracing.tracer);\n const context = resolve(KnownToken.ExpressHandler.context);\n const logHandler = resolve(KnownToken.Http.Fetch.Middleware.Log.handler);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n return [\n // ВАЖНО: слой логирования ошибки ПЕРЕД остальными слоями чтобы не упустить ошибки выше\n getFetchErrorLogging(logHandler),\n\n // пробрасываемые заголовки по соглашению\n defaultHeaders(getForwardedHeaders(config, context.req)),\n\n // обрывание по сигналу из обработчика входящего запроса и по сигналу из конфига исходящего запроса\n getFetchExtraAborting(abortController),\n\n getFetchTracing(tracer, context.res.locals.tracing.rootContext),\n\n // ВАЖНО: слой логирования запроса и ответа ПОСЛЕ остальных слоев чтобы использовать актуальные данные\n getFetchLogging(logHandler),\n ];\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASO,sBAAsBA,CAACC,OAAgB,EAAgB;EACrE,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,MAAM,GAAGL,OAAO,CAACE,kBAAU,CAACI,OAAO,CAACD,MAAM,CAAC;EACjD,MAAME,OAAO,GAAGP,OAAO,CAACE,kBAAU,CAACM,cAAc,CAACD,OAAO,CAAC;EAC1D,MAAME,UAAU,GAAGT,OAAO,CAACE,kBAAU,CAACQ,IAAI,CAACC,KAAK,CAACC,UAAU,CAACC,GAAG,CAACC,OAAO,CAAC;EACxE,MAAMC,eAAe,GAAGf,OAAO,CAACE,kBAAU,CAACQ,IAAI,CAACC,KAAK,CAACI,eAAe,CAAC;EAEtE,OAAO;EACL;EACA,IAAAC,0CAAoB,EAACP,UAAU,CAAC;EAEhC;EACA,IAAAQ,oBAAc,EAAC,IAAAC,wCAAmB,EAACjB,MAAM,EAAEM,OAAO,CAACY,GAAG,CAAC,CAAC;EAExD;EACA,IAAAC,4CAAqB,EAACL,eAAe,CAAC,EAEtC,IAAAM,gCAAe,EAAChB,MAAM,EAAEE,OAAO,CAACe,GAAG,CAACC,MAAM,CAACC,OAAO,CAACC,WAAW,CAAC;EAE/D;EACA,IAAAC,gCAAe,EAACjB,UAAU,CAAC,CAC5B;AACH"}
|
|
1
|
+
{"version":3,"file":"fetch-middleware.js","names":["_http","require","_tokens","_getFetchErrorLogging","_getFetchExtraAborting","_getFetchLogging","_getFetchTracing","_getForwardedHeaders","provideFetchMiddleware","resolve","config","KnownToken","Config","base","tracer","Tracing","context","ExpressHandler","logHandler","Http","Fetch","Middleware","Log","handler","abortController","getFetchErrorLogging","defaultHeaders","getForwardedHeaders","req","getFetchExtraAborting","getFetchTracing","res","locals","tracing","rootContext","getFetchLogging"],"sources":["../../../../../src/preset/node-handler/providers/fetch-middleware.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { Middleware, defaultHeaders } from '../../../http';\nimport { KnownToken } from '../../../tokens';\nimport { getFetchErrorLogging } from '../../isomorphic/utils/get-fetch-error-logging';\nimport { getFetchExtraAborting } from '../../isomorphic/utils/get-fetch-extra-aborting';\nimport { getFetchLogging } from '../../isomorphic/utils/get-fetch-logging';\nimport { getFetchTracing } from '../../node/utils/get-fetch-tracing';\nimport { getForwardedHeaders } from '../../node/utils/get-forwarded-headers';\n\n/**\n * Провайдер промежуточных слоев для fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Массив промежуточных слоев.\n */\nexport function provideFetchMiddleware(resolve: Resolve): Middleware[] {\n const config = resolve(KnownToken.Config.base);\n const tracer = resolve(KnownToken.Tracing.tracer);\n const context = resolve(KnownToken.ExpressHandler.context);\n const logHandler = resolve(KnownToken.Http.Fetch.Middleware.Log.handler);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n return [\n // ВАЖНО: слой логирования ошибки ПЕРЕД остальными слоями чтобы не упустить ошибки выше\n getFetchErrorLogging(logHandler),\n\n // пробрасываемые заголовки по соглашению\n defaultHeaders(getForwardedHeaders(config, context.req)),\n\n // обрывание по сигналу из обработчика входящего запроса и по сигналу из конфига исходящего запроса\n getFetchExtraAborting(abortController),\n\n getFetchTracing(tracer, context.res.locals.tracing.rootContext),\n\n // ВАЖНО: слой логирования запроса и ответа ПОСЛЕ остальных слоев чтобы использовать актуальные данные\n getFetchLogging(logHandler),\n ];\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASO,sBAAsBA,CAACC,OAAgB,EAAgB;EACrE,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,MAAM,GAAGL,OAAO,CAACE,kBAAU,CAACI,OAAO,CAACD,MAAM,CAAC;EACjD,MAAME,OAAO,GAAGP,OAAO,CAACE,kBAAU,CAACM,cAAc,CAACD,OAAO,CAAC;EAC1D,MAAME,UAAU,GAAGT,OAAO,CAACE,kBAAU,CAACQ,IAAI,CAACC,KAAK,CAACC,UAAU,CAACC,GAAG,CAACC,OAAO,CAAC;EACxE,MAAMC,eAAe,GAAGf,OAAO,CAACE,kBAAU,CAACQ,IAAI,CAACC,KAAK,CAACI,eAAe,CAAC;EAEtE,OAAO;EACL;EACA,IAAAC,0CAAoB,EAACP,UAAU,CAAC;EAEhC;EACA,IAAAQ,oBAAc,EAAC,IAAAC,wCAAmB,EAACjB,MAAM,EAAEM,OAAO,CAACY,GAAG,CAAC,CAAC;EAExD;EACA,IAAAC,4CAAqB,EAACL,eAAe,CAAC,EAEtC,IAAAM,gCAAe,EAAChB,MAAM,EAAEE,OAAO,CAACe,GAAG,CAACC,MAAM,CAACC,OAAO,CAACC,WAAW,CAAC;EAE/D;EACA,IAAAC,gCAAe,EAACjB,UAAU,CAAC,CAC5B;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-main.js","names":["_tokens","require","_regularHelmet","_formatHandlerError","_jsxRuntime","provideHandlerMain","resolve","config","KnownToken","Config","base","logger","context","ExpressHandler","render","Http","Handler","Page","assetsInit","assets","Helmet","helmet","abortController","Fetch","formatResponse","getAssets","jsx","HelmetContext","Provider","value","title","appName","children","body","headers","forEach","hValue","hName","res","setHeader","send","error","response","log","formatHandlerError","status","redirectLocation","redirect","level","abort"],"sources":["../../../../../src/preset/node-handler/providers/handler-main.tsx"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type express from 'express';\nimport { KnownToken } from '../../../tokens';\nimport { HelmetContext } from '../../server/utils/regular-helmet';\nimport { formatHandlerError } from '../../server/utils/format-handler-error';\n\n/**\n * Провайдер главной функции обработчика входящего http-запроса.\n * @param resolve Функция для получения зависимости по токену.\n * @return Главная функция.\n */\nexport function provideHandlerMain(resolve: Resolve): express.Handler {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n const context = resolve(KnownToken.ExpressHandler.context);\n const render = resolve(KnownToken.Http.Handler.Page.render);\n const assetsInit = resolve(KnownToken.Http.Handler.Page.assets);\n const Helmet = resolve(KnownToken.Http.Handler.Page.helmet);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n const formatResponse = resolve(KnownToken.Http.Handler.Page.formatResponse);\n\n const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;\n\n return async () => {\n try {\n const assets = await getAssets();\n\n const jsx = (\n <HelmetContext.Provider value={{ title: config.appName, assets }}>\n <Helmet>{await render()}</Helmet>\n </HelmetContext.Provider>\n );\n\n const { body, headers } = await formatResponse(jsx, assets);\n\n headers.forEach((hValue, hName) => context.res.setHeader(hName, hValue));\n context.res.send(body);\n } catch (error) {\n const { response, log } = formatHandlerError(error);\n\n if (response.status > 299 && response.status < 400 && response.redirectLocation) {\n context.res.redirect(response.status, response.redirectLocation);\n } else {\n context.res.status(response.status).send(response.body);\n }\n\n if (log.level && logger[log.level]) {\n logger[log.level](error);\n }\n }\n\n // ВАЖНО: прерываем исходящие в рамках обработчика http-запросы\n abortController.abort();\n };\n}\n\n// @todo а что если привести все зависимости к виду:\n// const getAppConfig = resolve.lazy(KnownToken.Config.base);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler-main.js","names":["_tokens","require","_regularHelmet","_formatHandlerError","_jsxRuntime","provideHandlerMain","resolve","config","KnownToken","Config","base","logger","context","ExpressHandler","render","Http","Handler","Page","assetsInit","assets","Helmet","helmet","abortController","Fetch","formatResponse","getAssets","jsx","HelmetContext","Provider","value","title","appName","children","body","headers","forEach","hValue","hName","res","setHeader","send","error","response","log","formatHandlerError","status","redirectLocation","redirect","level","abort"],"sources":["../../../../../src/preset/node-handler/providers/handler-main.tsx"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type express from 'express';\nimport { KnownToken } from '../../../tokens';\nimport { HelmetContext } from '../../server/utils/regular-helmet';\nimport { formatHandlerError } from '../../server/utils/format-handler-error';\n\n/**\n * Провайдер главной функции обработчика входящего http-запроса.\n * @param resolve Функция для получения зависимости по токену.\n * @return Главная функция.\n */\nexport function provideHandlerMain(resolve: Resolve): express.Handler {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n const context = resolve(KnownToken.ExpressHandler.context);\n const render = resolve(KnownToken.Http.Handler.Page.render);\n const assetsInit = resolve(KnownToken.Http.Handler.Page.assets);\n const Helmet = resolve(KnownToken.Http.Handler.Page.helmet);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n const formatResponse = resolve(KnownToken.Http.Handler.Page.formatResponse);\n\n const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;\n\n return async () => {\n try {\n const assets = await getAssets();\n\n const jsx = (\n <HelmetContext.Provider value={{ title: config.appName, assets }}>\n <Helmet>{await render()}</Helmet>\n </HelmetContext.Provider>\n );\n\n const { body, headers } = await formatResponse(jsx, assets);\n\n headers.forEach((hValue, hName) => context.res.setHeader(hName, hValue));\n context.res.send(body);\n } catch (error) {\n const { response, log } = formatHandlerError(error);\n\n if (response.status > 299 && response.status < 400 && response.redirectLocation) {\n context.res.redirect(response.status, response.redirectLocation);\n } else {\n context.res.status(response.status).send(response.body);\n }\n\n if (log.level && logger[log.level]) {\n logger[log.level](error);\n }\n }\n\n // ВАЖНО: прерываем исходящие в рамках обработчика http-запросы\n abortController.abort();\n };\n}\n\n// @todo а что если привести все зависимости к виду:\n// const getAppConfig = resolve.lazy(KnownToken.Config.base);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-events.js","names":["_tokens","require","_emitterAsTarget","provideResponseEvents","resolve","context","KnownToken","ExpressHandler","EmitterAsTarget","res"],"sources":["../../../../../src/preset/node-handler/providers/response-events.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { EmitterAsTarget } from '../../node/utils/emitter-as-target';\n\n/**\n * Провайдер объекта событий ответа.\n * @param resolve Resolve.\n * @return Объект событий.\n */\nexport function provideResponseEvents(resolve: Resolve): EventTarget {\n const context = resolve(KnownToken.ExpressHandler.context);\n\n return new EmitterAsTarget(context.res);\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,qBAAqBA,CAACC,OAAgB,EAAe;EACnE,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,cAAc,CAACF,OAAO,CAAC;EAE1D,OAAO,IAAIG,gCAAe,CAACH,OAAO,CAACI,GAAG,CAAC;AACzC"}
|
|
1
|
+
{"version":3,"file":"response-events.js","names":["_tokens","require","_emitterAsTarget","provideResponseEvents","resolve","context","KnownToken","ExpressHandler","EmitterAsTarget","res"],"sources":["../../../../../src/preset/node-handler/providers/response-events.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { EmitterAsTarget } from '../../node/utils/emitter-as-target';\n\n/**\n * Провайдер объекта событий ответа.\n * @param resolve Resolve.\n * @return Объект событий.\n */\nexport function provideResponseEvents(resolve: Resolve): EventTarget {\n const context = resolve(KnownToken.ExpressHandler.context);\n\n return new EmitterAsTarget(context.res);\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,qBAAqBA,CAACC,OAAgB,EAAe;EACnE,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,cAAc,CAACF,OAAO,CAAC;EAE1D,OAAO,IAAIG,gCAAe,CAACH,OAAO,CAACI,GAAG,CAAC;AACzC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specific-params.js","names":["_tokens","require","provideSpecificParams","resolve","context","KnownToken","ExpressHandler","headerValue","req","header","processedValue","Buffer","from","toString","JSON","parse"],"sources":["../../../../../src/preset/node-handler/providers/specific-params.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.\n * @param resolve Функция для получения зависимости по токену.\n * @return Параметры.\n */\nexport function provideSpecificParams(resolve: Resolve): Record<string, unknown> {\n const context = resolve(KnownToken.ExpressHandler.context);\n\n try {\n const headerValue = context.req.header('simaland-params');\n\n /**\n * Node.js переводит в ASCII.\n * @see {https://github.com/nodejs/node/issues/17390}\n */\n const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';\n\n return processedValue ? JSON.parse(processedValue) : {};\n } catch {\n return {};\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,OAAgB,EAA2B;EAC/E,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,cAAc,CAACF,OAAO,CAAC;EAE1D,IAAI;IACF,MAAMG,WAAW,GAAGH,OAAO,CAACI,GAAG,CAACC,MAAM,CAAC,iBAAiB,CAAC;;IAEzD;AACJ;AACA;AACA;IACI,MAAMC,cAAc,GAAGH,WAAW,GAAGI,MAAM,CAACC,IAAI,CAACL,WAAW,EAAE,QAAQ,CAAC,CAACM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE;IAE7F,OAAOH,cAAc,GAAGI,IAAI,CAACC,KAAK,CAACL,cAAc,CAAC,GAAG,CAAC,CAAC;EACzD,CAAC,CAAC,MAAM;IACN,OAAO,CAAC,CAAC;EACX;AACF"}
|
|
1
|
+
{"version":3,"file":"specific-params.js","names":["_tokens","require","provideSpecificParams","resolve","context","KnownToken","ExpressHandler","headerValue","req","header","processedValue","Buffer","from","toString","JSON","parse"],"sources":["../../../../../src/preset/node-handler/providers/specific-params.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.\n * @param resolve Функция для получения зависимости по токену.\n * @return Параметры.\n */\nexport function provideSpecificParams(resolve: Resolve): Record<string, unknown> {\n const context = resolve(KnownToken.ExpressHandler.context);\n\n try {\n const headerValue = context.req.header('simaland-params');\n\n /**\n * Node.js переводит в ASCII.\n * @see {https://github.com/nodejs/node/issues/17390}\n */\n const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';\n\n return processedValue ? JSON.parse(processedValue) : {};\n } catch {\n return {};\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,OAAgB,EAA2B;EAC/E,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,cAAc,CAACF,OAAO,CAAC;EAE1D,IAAI;IACF,MAAMG,WAAW,GAAGH,OAAO,CAACI,GAAG,CAACC,MAAM,CAAC,iBAAiB,CAAC;;IAEzD;AACJ;AACA;AACA;IACI,MAAMC,cAAc,GAAGH,WAAW,GAAGI,MAAM,CAACC,IAAI,CAACL,WAAW,EAAE,QAAQ,CAAC,CAACM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE;IAE7F,OAAOH,cAAc,GAAGI,IAAI,CAACC,KAAK,CAACL,cAAc,CAAC,GAAG,CAAC,CAAC;EACzD,CAAC,CAAC,MAAM;IACN,OAAO,CAAC,CAAC;EACX;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["PAGE_HANDLER_EVENT_TYPE","exports","renderStart","renderFinish","PAGE_FORMAT_PRIORITY"],"sources":["../../../../src/preset/server/constants.ts"],"sourcesContent":["/**\n * События в процессе ответа на запрос.\n */\nexport const PAGE_HANDLER_EVENT_TYPE = {\n // ВАЖНО: пусть здесь остаются строки в качестве значений чтобы их можно было использовать вместе с EventTarget\n renderStart: 'isomorph/render:start',\n renderFinish: 'isomorph/render:finish',\n} as const;\n\n/**\n * Приоритет форматов ответа на запрос страницы.\n * Нужен для использования вместе с пакетом accepts.\n */\nexport const PAGE_FORMAT_PRIORITY = ['json', 'html'];\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACO,MAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG;EACrC;EACAE,WAAW,EAAE,uBAAuB;EACpCC,YAAY,EAAE;AAChB,CAAU;;AAEV;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PAGE_HANDLER_EVENT_TYPE","exports","renderStart","renderFinish","PAGE_FORMAT_PRIORITY"],"sources":["../../../../src/preset/server/constants.ts"],"sourcesContent":["/**\n * События в процессе ответа на запрос.\n */\nexport const PAGE_HANDLER_EVENT_TYPE = {\n // ВАЖНО: пусть здесь остаются строки в качестве значений чтобы их можно было использовать вместе с EventTarget\n renderStart: 'isomorph/render:start',\n renderFinish: 'isomorph/render:finish',\n} as const;\n\n/**\n * Приоритет форматов ответа на запрос страницы.\n * Нужен для использования вместе с пакетом accepts.\n */\nexport const PAGE_FORMAT_PRIORITY = ['json', 'html'];\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACO,MAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG;EACrC;EACAE,WAAW,EAAE,uBAAuB;EACpCC,YAAY,EAAE;AAChB,CAAU;;AAEV;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_constants","require","_applyServerMiddleware","_getClientIp","_getForwardedHeaders","_getHealthCheck","_getPageResponseFormat","_getServeErrorLogging","_getServeLogging","_handlerProvider","_regularHelmet","_specificExtras"],"sources":["../../../../src/preset/server/index.ts"],"sourcesContent":["export type {\n ServerHandler,\n ServerMiddleware,\n ServerHandlerContext,\n PageResponseFormatter,\n PageResponseFormatResult,\n RouteInfo,\n RouteList,\n} from './types';\nexport { PAGE_HANDLER_EVENT_TYPE, PAGE_FORMAT_PRIORITY } from './constants';\n\n// доступные утилиты\nexport { applyServerMiddleware } from './utils/apply-server-middleware';\nexport { getClientIp } from './utils/get-client-ip';\nexport { getForwardedHeaders } from './utils/get-forwarded-headers';\nexport { getHealthCheck } from './utils/get-health-check';\nexport { getPageResponseFormat } from './utils/get-page-response-format';\nexport { getServeErrorLogging } from './utils/get-serve-error-logging';\nexport { getServeLogging } from './utils/get-serve-logging';\nexport { HandlerProvider } from './utils/handler-provider';\nexport { RegularHelmet, HelmetContext } from './utils/regular-helmet';\nexport { SpecificExtras } from './utils/specific-extras';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,sBAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_constants","require","_applyServerMiddleware","_getClientIp","_getForwardedHeaders","_getHealthCheck","_getPageResponseFormat","_getServeErrorLogging","_getServeLogging","_handlerProvider","_regularHelmet","_specificExtras"],"sources":["../../../../src/preset/server/index.ts"],"sourcesContent":["export type {\n ServerHandler,\n ServerMiddleware,\n ServerHandlerContext,\n PageResponseFormatter,\n PageResponseFormatResult,\n RouteInfo,\n RouteList,\n} from './types';\nexport { PAGE_HANDLER_EVENT_TYPE, PAGE_FORMAT_PRIORITY } from './constants';\n\n// доступные утилиты\nexport { applyServerMiddleware } from './utils/apply-server-middleware';\nexport { getClientIp } from './utils/get-client-ip';\nexport { getForwardedHeaders } from './utils/get-forwarded-headers';\nexport { getHealthCheck } from './utils/get-health-check';\nexport { getPageResponseFormat } from './utils/get-page-response-format';\nexport { getServeErrorLogging } from './utils/get-serve-error-logging';\nexport { getServeLogging } from './utils/get-serve-logging';\nexport { HandlerProvider } from './utils/handler-provider';\nexport { RegularHelmet, HelmetContext } from './utils/regular-helmet';\nexport { SpecificExtras } from './utils/specific-extras';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,sBAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-to-string.js","names":["_tokens","require","_server","_constants","provideElementToString","resolve","events","KnownToken","Http","Handler","Response","jsx","dispatchEvent","Event","PAGE_HANDLER_EVENT_TYPE","renderStart","result","renderToString","renderFinish"],"sources":["../../../../../src/preset/server/providers/element-to-string.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type { JSX } from 'react';\nimport { KnownToken } from '../../../tokens';\nimport { renderToString } from 'react-dom/server';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../constants';\n\n/**\n * Провайдера функции рендера элемента в строку.\n * @param resolve Resolve.\n * @return Функция рендера.\n */\nexport function provideElementToString(resolve: Resolve): (jsx: JSX.Element) => string {\n const events = resolve(KnownToken.Http.Handler.Response.events);\n\n return jsx => {\n events.dispatchEvent(new Event(PAGE_HANDLER_EVENT_TYPE.renderStart));\n const result = renderToString(jsx);\n events.dispatchEvent(new Event(PAGE_HANDLER_EVENT_TYPE.renderFinish));\n\n return result;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,sBAAsBA,CAACC,OAAgB,EAAgC;EACrF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACC,QAAQ,CAACJ,MAAM,CAAC;EAE/D,OAAOK,GAAG,IAAI;IACZL,MAAM,CAACM,aAAa,CAAC,IAAIC,KAAK,CAACC,kCAAuB,CAACC,WAAW,CAAC,CAAC;IACpE,MAAMC,MAAM,GAAG,IAAAC,sBAAc,EAACN,GAAG,CAAC;IAClCL,MAAM,CAACM,aAAa,CAAC,IAAIC,KAAK,CAACC,kCAAuB,CAACI,YAAY,CAAC,CAAC;IAErE,OAAOF,MAAM;EACf,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"element-to-string.js","names":["_tokens","require","_server","_constants","provideElementToString","resolve","events","KnownToken","Http","Handler","Response","jsx","dispatchEvent","Event","PAGE_HANDLER_EVENT_TYPE","renderStart","result","renderToString","renderFinish"],"sources":["../../../../../src/preset/server/providers/element-to-string.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type { JSX } from 'react';\nimport { KnownToken } from '../../../tokens';\nimport { renderToString } from 'react-dom/server';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../constants';\n\n/**\n * Провайдера функции рендера элемента в строку.\n * @param resolve Resolve.\n * @return Функция рендера.\n */\nexport function provideElementToString(resolve: Resolve): (jsx: JSX.Element) => string {\n const events = resolve(KnownToken.Http.Handler.Response.events);\n\n return jsx => {\n events.dispatchEvent(new Event(PAGE_HANDLER_EVENT_TYPE.renderStart));\n const result = renderToString(jsx);\n events.dispatchEvent(new Event(PAGE_HANDLER_EVENT_TYPE.renderFinish));\n\n return result;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,sBAAsBA,CAACC,OAAgB,EAAgC;EACrF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACC,QAAQ,CAACJ,MAAM,CAAC;EAE/D,OAAOK,GAAG,IAAI;IACZL,MAAM,CAACM,aAAa,CAAC,IAAIC,KAAK,CAACC,kCAAuB,CAACC,WAAW,CAAC,CAAC;IACpE,MAAMC,MAAM,GAAG,IAAAC,sBAAc,EAACN,GAAG,CAAC;IAClCL,MAAM,CAACM,aAAa,CAAC,IAAIC,KAAK,CAACC,kCAAuB,CAACI,YAAY,CAAC,CAAC;IAErE,OAAOF,MAAM;EACf,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-log-handler.js","names":["_tokens","require","_fetchLogging","provideFetchLogHandler","resolve","logger","KnownToken","abortController","Http","Fetch","logHandler","FetchLogging","disabled","signal","aborted"],"sources":["../../../../../src/preset/server/providers/fetch-log-handler.ts"],"sourcesContent":["import { LogHandler, LogHandlerFactory } from '../../../http';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { FetchLogging } from '../../isomorphic/utils/fetch-logging';\n\n/**\n * Провайдер обработчика логирования axios.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик логирования.\n */\nexport function provideFetchLogHandler(resolve: Resolve): LogHandler | LogHandlerFactory {\n const logger = resolve(KnownToken.logger);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n const logHandler = new FetchLogging(logger);\n\n // ВАЖНО: отключаем логирование если запрос прерван\n logHandler.disabled = () => abortController.signal.aborted;\n\n return logHandler;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACC,OAAgB,EAAkC;EACvF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;EACzC,MAAME,eAAe,GAAGH,OAAO,CAACE,kBAAU,CAACE,IAAI,CAACC,KAAK,CAACF,eAAe,CAAC;EAEtE,MAAMG,UAAU,GAAG,IAAIC,0BAAY,CAACN,MAAM,CAAC;;EAE3C;EACAK,UAAU,CAACE,QAAQ,GAAG,MAAML,eAAe,CAACM,MAAM,CAACC,OAAO;EAE1D,OAAOJ,UAAU;AACnB"}
|
|
1
|
+
{"version":3,"file":"fetch-log-handler.js","names":["_tokens","require","_fetchLogging","provideFetchLogHandler","resolve","logger","KnownToken","abortController","Http","Fetch","logHandler","FetchLogging","disabled","signal","aborted"],"sources":["../../../../../src/preset/server/providers/fetch-log-handler.ts"],"sourcesContent":["import { LogHandler, LogHandlerFactory } from '../../../http';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { FetchLogging } from '../../isomorphic/utils/fetch-logging';\n\n/**\n * Провайдер обработчика логирования axios.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик логирования.\n */\nexport function provideFetchLogHandler(resolve: Resolve): LogHandler | LogHandlerFactory {\n const logger = resolve(KnownToken.logger);\n const abortController = resolve(KnownToken.Http.Fetch.abortController);\n\n const logHandler = new FetchLogging(logger);\n\n // ВАЖНО: отключаем логирование если запрос прерван\n logHandler.disabled = () => abortController.signal.aborted;\n\n return logHandler;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACC,OAAgB,EAAkC;EACvF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;EACzC,MAAME,eAAe,GAAGH,OAAO,CAACE,kBAAU,CAACE,IAAI,CAACC,KAAK,CAACF,eAAe,CAAC;EAEtE,MAAMG,UAAU,GAAG,IAAIC,0BAAY,CAACN,MAAM,CAAC;;EAE3C;EACAK,UAAU,CAACE,QAAQ,GAAG,MAAML,eAAe,CAACM,MAAM,CAACC,OAAO;EAE1D,OAAOJ,UAAU;AACnB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-middleware.js","names":["provideFetchMiddleware"],"sources":["../../../../../src/preset/server/providers/fetch-middleware.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { Middleware } from '../../../http';\n\nexport function provideFetchMiddleware(): Middleware[] {\n // @todo добавить логирование ошибок?\n return [];\n}\n"],"mappings":";;;;;;AAAA;;AAGO,SAASA,sBAAsBA,CAAA,EAAiB;EACrD;EACA,OAAO,EAAE;AACX"}
|
|
1
|
+
{"version":3,"file":"fetch-middleware.js","names":["provideFetchMiddleware"],"sources":["../../../../../src/preset/server/providers/fetch-middleware.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { Middleware } from '../../../http';\n\nexport function provideFetchMiddleware(): Middleware[] {\n // @todo добавить логирование ошибок?\n return [];\n}\n"],"mappings":";;;;;;AAAA;;AAGO,SAASA,sBAAsBA,CAAA,EAAiB;EACrD;EACA,OAAO,EAAE;AACX","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-page-response.js","names":["_tokens","require","_constants","provideFormatPageResponse","resolve","config","KnownToken","Config","base","acceptType","Http","Handler","Request","elementToString","Page","extras","Response","specificExtras","jsx","assets","meta","getMeta","headers","Headers","body","PAGE_FORMAT_PRIORITY","set","JSON","stringify","markup","bundle_js","js","bundle_css","css","critical_js","criticalJs","critical_css","criticalCss","env"],"sources":["../../../../../src/preset/server/providers/format-page-response.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type { ConventionalJson } from '../../isomorphic';\nimport type { PageResponseFormatter } from '../types';\nimport { KnownToken } from '../../../tokens';\nimport { PAGE_FORMAT_PRIORITY } from '../constants';\n\n/**\n * Провайдер функции форматирования ответа.\n * Функция форматирования вернёт данные ответа на запрос страницы в нужном формате в зависимости от заголовка Accept.\n * @param resolve Резолвер.\n * @return Функция форматирования.\n */\nexport function provideFormatPageResponse(resolve: Resolve): PageResponseFormatter {\n const config = resolve(KnownToken.Config.base);\n const acceptType = resolve(KnownToken.Http.Handler.Request.acceptType);\n const elementToString = resolve(KnownToken.Http.Handler.Page.elementToString);\n const extras = resolve(KnownToken.Http.Handler.Response.specificExtras);\n\n return async (jsx, assets) => {\n const meta = extras.getMeta();\n const headers = new Headers();\n\n let body: string;\n\n switch (acceptType(PAGE_FORMAT_PRIORITY)) {\n case 'json': {\n headers.set('content-type', 'application/json');\n\n body = JSON.stringify({\n markup: await elementToString(jsx),\n bundle_js: assets.js,\n bundle_css: assets.css,\n critical_js: assets.criticalJs,\n critical_css: assets.criticalCss,\n meta,\n } satisfies ConventionalJson);\n\n break;\n }\n\n case 'html':\n default: {\n headers.set('content-type', 'text/html');\n headers.set('simaland-bundle-js', assets.js);\n headers.set('simaland-bundle-css', assets.css);\n\n if (assets.criticalJs) {\n headers.set('simaland-critical-js', assets.criticalJs);\n }\n\n if (assets.criticalCss) {\n headers.set('simaland-critical-css', assets.criticalCss);\n }\n\n if (meta) {\n headers.set('simaland-meta', JSON.stringify(meta));\n }\n\n // ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css\n // ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу\n // @todo переделать на проверку параметра ?html-doctype=false\n if (config.env === 'development') {\n body = `<!DOCTYPE html>${await elementToString(jsx)}`;\n } else {\n body = await elementToString(jsx);\n }\n\n break;\n }\n }\n\n return { body, headers };\n };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,yBAAyBA,CAACC,OAAgB,EAAyB;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,UAAU,GAAGL,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACC,OAAO,CAACH,UAAU,CAAC;EACtE,MAAMI,eAAe,GAAGT,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACG,IAAI,CAACD,eAAe,CAAC;EAC7E,MAAME,MAAM,GAAGX,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACK,QAAQ,CAACC,cAAc,CAAC;EAEvE,OAAO,OAAOC,GAAG,EAAEC,MAAM,KAAK;IAC5B,MAAMC,IAAI,GAAGL,MAAM,CAACM,OAAO,CAAC,CAAC;IAC7B,MAAMC,OAAO,GAAG,IAAIC,OAAO,CAAC,CAAC;IAE7B,IAAIC,IAAY;IAEhB,QAAQf,UAAU,CAACgB,+BAAoB,CAAC;MACtC,KAAK,MAAM;QAAE;UACXH,OAAO,CAACI,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC;UAE/CF,IAAI,GAAGG,IAAI,CAACC,SAAS,CAAC;YACpBC,MAAM,EAAE,MAAMhB,eAAe,CAACK,GAAG,CAAC;YAClCY,SAAS,EAAEX,MAAM,CAACY,EAAE;YACpBC,UAAU,EAAEb,MAAM,CAACc,GAAG;YACtBC,WAAW,EAAEf,MAAM,CAACgB,UAAU;YAC9BC,YAAY,EAAEjB,MAAM,CAACkB,WAAW;YAChCjB;UACF,CAA4B,CAAC;UAE7B;QACF;MAEA,KAAK,MAAM;MACX;QAAS;UACPE,OAAO,CAACI,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;UACxCJ,OAAO,CAACI,GAAG,CAAC,oBAAoB,EAAEP,MAAM,CAACY,EAAE,CAAC;UAC5CT,OAAO,CAACI,GAAG,CAAC,qBAAqB,EAAEP,MAAM,CAACc,GAAG,CAAC;UAE9C,IAAId,MAAM,CAACgB,UAAU,EAAE;YACrBb,OAAO,CAACI,GAAG,CAAC,sBAAsB,EAAEP,MAAM,CAACgB,UAAU,CAAC;UACxD;UAEA,IAAIhB,MAAM,CAACkB,WAAW,EAAE;YACtBf,OAAO,CAACI,GAAG,CAAC,uBAAuB,EAAEP,MAAM,CAACkB,WAAW,CAAC;UAC1D;UAEA,IAAIjB,IAAI,EAAE;YACRE,OAAO,CAACI,GAAG,CAAC,eAAe,EAAEC,IAAI,CAACC,SAAS,CAACR,IAAI,CAAC,CAAC;UACpD;;UAEA;UACA;UACA;UACA,IAAIf,MAAM,CAACiC,GAAG,KAAK,aAAa,EAAE;YAChCd,IAAI,
|
|
1
|
+
{"version":3,"file":"format-page-response.js","names":["_tokens","require","_constants","provideFormatPageResponse","resolve","config","KnownToken","Config","base","acceptType","Http","Handler","Request","elementToString","Page","extras","Response","specificExtras","jsx","assets","meta","getMeta","headers","Headers","body","PAGE_FORMAT_PRIORITY","set","JSON","stringify","markup","bundle_js","js","bundle_css","css","critical_js","criticalJs","critical_css","criticalCss","env"],"sources":["../../../../../src/preset/server/providers/format-page-response.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type { ConventionalJson } from '../../isomorphic';\nimport type { PageResponseFormatter } from '../types';\nimport { KnownToken } from '../../../tokens';\nimport { PAGE_FORMAT_PRIORITY } from '../constants';\n\n/**\n * Провайдер функции форматирования ответа.\n * Функция форматирования вернёт данные ответа на запрос страницы в нужном формате в зависимости от заголовка Accept.\n * @param resolve Резолвер.\n * @return Функция форматирования.\n */\nexport function provideFormatPageResponse(resolve: Resolve): PageResponseFormatter {\n const config = resolve(KnownToken.Config.base);\n const acceptType = resolve(KnownToken.Http.Handler.Request.acceptType);\n const elementToString = resolve(KnownToken.Http.Handler.Page.elementToString);\n const extras = resolve(KnownToken.Http.Handler.Response.specificExtras);\n\n return async (jsx, assets) => {\n const meta = extras.getMeta();\n const headers = new Headers();\n\n let body: string;\n\n switch (acceptType(PAGE_FORMAT_PRIORITY)) {\n case 'json': {\n headers.set('content-type', 'application/json');\n\n body = JSON.stringify({\n markup: await elementToString(jsx),\n bundle_js: assets.js,\n bundle_css: assets.css,\n critical_js: assets.criticalJs,\n critical_css: assets.criticalCss,\n meta,\n } satisfies ConventionalJson);\n\n break;\n }\n\n case 'html':\n default: {\n headers.set('content-type', 'text/html');\n headers.set('simaland-bundle-js', assets.js);\n headers.set('simaland-bundle-css', assets.css);\n\n if (assets.criticalJs) {\n headers.set('simaland-critical-js', assets.criticalJs);\n }\n\n if (assets.criticalCss) {\n headers.set('simaland-critical-css', assets.criticalCss);\n }\n\n if (meta) {\n headers.set('simaland-meta', JSON.stringify(meta));\n }\n\n // ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css\n // ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу\n // @todo переделать на проверку параметра ?html-doctype=false\n if (config.env === 'development') {\n body = `<!DOCTYPE html>${await elementToString(jsx)}`;\n } else {\n body = await elementToString(jsx);\n }\n\n break;\n }\n }\n\n return { body, headers };\n };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,yBAAyBA,CAACC,OAAgB,EAAyB;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,UAAU,GAAGL,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACC,OAAO,CAACH,UAAU,CAAC;EACtE,MAAMI,eAAe,GAAGT,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACG,IAAI,CAACD,eAAe,CAAC;EAC7E,MAAME,MAAM,GAAGX,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACK,QAAQ,CAACC,cAAc,CAAC;EAEvE,OAAO,OAAOC,GAAG,EAAEC,MAAM,KAAK;IAC5B,MAAMC,IAAI,GAAGL,MAAM,CAACM,OAAO,CAAC,CAAC;IAC7B,MAAMC,OAAO,GAAG,IAAIC,OAAO,CAAC,CAAC;IAE7B,IAAIC,IAAY;IAEhB,QAAQf,UAAU,CAACgB,+BAAoB,CAAC;MACtC,KAAK,MAAM;QAAE;UACXH,OAAO,CAACI,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC;UAE/CF,IAAI,GAAGG,IAAI,CAACC,SAAS,CAAC;YACpBC,MAAM,EAAE,MAAMhB,eAAe,CAACK,GAAG,CAAC;YAClCY,SAAS,EAAEX,MAAM,CAACY,EAAE;YACpBC,UAAU,EAAEb,MAAM,CAACc,GAAG;YACtBC,WAAW,EAAEf,MAAM,CAACgB,UAAU;YAC9BC,YAAY,EAAEjB,MAAM,CAACkB,WAAW;YAChCjB;UACF,CAA4B,CAAC;UAE7B;QACF;MAEA,KAAK,MAAM;MACX;QAAS;UACPE,OAAO,CAACI,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;UACxCJ,OAAO,CAACI,GAAG,CAAC,oBAAoB,EAAEP,MAAM,CAACY,EAAE,CAAC;UAC5CT,OAAO,CAACI,GAAG,CAAC,qBAAqB,EAAEP,MAAM,CAACc,GAAG,CAAC;UAE9C,IAAId,MAAM,CAACgB,UAAU,EAAE;YACrBb,OAAO,CAACI,GAAG,CAAC,sBAAsB,EAAEP,MAAM,CAACgB,UAAU,CAAC;UACxD;UAEA,IAAIhB,MAAM,CAACkB,WAAW,EAAE;YACtBf,OAAO,CAACI,GAAG,CAAC,uBAAuB,EAAEP,MAAM,CAACkB,WAAW,CAAC;UAC1D;UAEA,IAAIjB,IAAI,EAAE;YACRE,OAAO,CAACI,GAAG,CAAC,eAAe,EAAEC,IAAI,CAACC,SAAS,CAACR,IAAI,CAAC,CAAC;UACpD;;UAEA;UACA;UACA;UACA,IAAIf,MAAM,CAACiC,GAAG,KAAK,aAAa,EAAE;YAChCd,IAAI,GAAG,kBAAkB,MAAMX,eAAe,CAACK,GAAG,CAAC,EAAE;UACvD,CAAC,MAAM;YACLM,IAAI,GAAG,MAAMX,eAAe,CAACK,GAAG,CAAC;UACnC;UAEA;QACF;IACF;IAEA,OAAO;MAAEM,IAAI;MAAEF;IAAQ,CAAC;EAC1B,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"known-http-api-hosts.js","names":["_tokens","require","_httpApiHostPool","provideKnownHttpApiHosts","resolve","source","KnownToken","Config","HttpApiHostPool","ilium","simaV3","simaV4","simaV6","chponkiV2","shuttle","fileDispatcher"],"sources":["../../../../../src/preset/server/providers/known-http-api-hosts.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type { KnownHttpApiKey } from '../../isomorphic';\nimport { KnownToken } from '../../../tokens';\nimport { HttpApiHostPool } from '../../isomorphic/utils/http-api-host-pool';\n\n/**\n * Провайдер известных http-хостов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Пул известных http-хостов.\n */\nexport function provideKnownHttpApiHosts(resolve: Resolve): HttpApiHostPool<KnownHttpApiKey> {\n const source = resolve(KnownToken.Config.source);\n\n return new HttpApiHostPool(\n {\n ilium: 'API_URL_ILIUM',\n simaV3: 'API_URL_SIMALAND_V3',\n simaV4: 'API_URL_SIMALAND_V4',\n simaV6: 'API_URL_SIMALAND_V6',\n chponkiV2: 'API_URL_CHPONKI_V2',\n shuttle: 'API_URL_SHUTTLE',\n fileDispatcher: 'API_URL_FILE_DISPATCHER',\n },\n source,\n );\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,wBAAwBA,CAACC,OAAgB,EAAoC;EAC3F,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAEhD,OAAO,IAAIG,gCAAe,CACxB;IACEC,KAAK,EAAE,eAAe;IACtBC,MAAM,EAAE,qBAAqB;IAC7BC,MAAM,EAAE,qBAAqB;IAC7BC,MAAM,EAAE,qBAAqB;IAC7BC,SAAS,EAAE,oBAAoB;IAC/BC,OAAO,EAAE,iBAAiB;IAC1BC,cAAc,EAAE;EAClB,CAAC,EACDV,MACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"known-http-api-hosts.js","names":["_tokens","require","_httpApiHostPool","provideKnownHttpApiHosts","resolve","source","KnownToken","Config","HttpApiHostPool","ilium","simaV3","simaV4","simaV6","chponkiV2","shuttle","fileDispatcher"],"sources":["../../../../../src/preset/server/providers/known-http-api-hosts.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport type { KnownHttpApiKey } from '../../isomorphic';\nimport { KnownToken } from '../../../tokens';\nimport { HttpApiHostPool } from '../../isomorphic/utils/http-api-host-pool';\n\n/**\n * Провайдер известных http-хостов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Пул известных http-хостов.\n */\nexport function provideKnownHttpApiHosts(resolve: Resolve): HttpApiHostPool<KnownHttpApiKey> {\n const source = resolve(KnownToken.Config.source);\n\n return new HttpApiHostPool(\n {\n ilium: 'API_URL_ILIUM',\n simaV3: 'API_URL_SIMALAND_V3',\n simaV4: 'API_URL_SIMALAND_V4',\n simaV6: 'API_URL_SIMALAND_V6',\n chponkiV2: 'API_URL_CHPONKI_V2',\n shuttle: 'API_URL_SHUTTLE',\n fileDispatcher: 'API_URL_FILE_DISPATCHER',\n },\n source,\n );\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,wBAAwBA,CAACC,OAAgB,EAAoC;EAC3F,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAEhD,OAAO,IAAIG,gCAAe,CACxB;IACEC,KAAK,EAAE,eAAe;IACtBC,MAAM,EAAE,qBAAqB;IAC7BC,MAAM,EAAE,qBAAqB;IAC7BC,MAAM,EAAE,qBAAqB;IAC7BC,SAAS,EAAE,oBAAoB;IAC/BC,OAAO,EAAE,iBAAiB;IAC1BC,cAAc,EAAE;EAClB,CAAC,EACDV,MACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-helmet.js","names":["_react","require","_tokens","_regularHelmet","_constants","providePageHelmet","resolve","config","KnownToken","Config","base","acceptType","Http","Handler","Request","env","PAGE_FORMAT_PRIORITY","RegularHelmet","Fragment"],"sources":["../../../../../src/preset/server/providers/page-helmet.ts"],"sourcesContent":["import { Fragment } from 'react';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { RegularHelmet } from '../utils/regular-helmet';\nimport { PAGE_FORMAT_PRIORITY } from '../constants';\n\n/**\n * Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.\n * @param resolve Функция для получения зависимости по токену.\n * @return Helmet-компонент.\n */\nexport function providePageHelmet(resolve: Resolve) {\n const config = resolve(KnownToken.Config.base);\n const acceptType = resolve(KnownToken.Http.Handler.Request.acceptType);\n\n return config.env === 'development' && acceptType(PAGE_FORMAT_PRIORITY) === 'html'\n ? RegularHelmet\n : Fragment;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASI,iBAAiBA,CAACC,OAAgB,EAAE;EAClD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,UAAU,GAAGL,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACC,OAAO,CAACH,UAAU,CAAC;EAEtE,OAAOJ,MAAM,CAACQ,GAAG,KAAK,aAAa,IAAIJ,UAAU,CAACK,+BAAoB,CAAC,KAAK,MAAM,GAC9EC,4BAAa,GACbC,eAAQ;AACd"}
|
|
1
|
+
{"version":3,"file":"page-helmet.js","names":["_react","require","_tokens","_regularHelmet","_constants","providePageHelmet","resolve","config","KnownToken","Config","base","acceptType","Http","Handler","Request","env","PAGE_FORMAT_PRIORITY","RegularHelmet","Fragment"],"sources":["../../../../../src/preset/server/providers/page-helmet.ts"],"sourcesContent":["import { Fragment } from 'react';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { RegularHelmet } from '../utils/regular-helmet';\nimport { PAGE_FORMAT_PRIORITY } from '../constants';\n\n/**\n * Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.\n * @param resolve Функция для получения зависимости по токену.\n * @return Helmet-компонент.\n */\nexport function providePageHelmet(resolve: Resolve) {\n const config = resolve(KnownToken.Config.base);\n const acceptType = resolve(KnownToken.Http.Handler.Request.acceptType);\n\n return config.env === 'development' && acceptType(PAGE_FORMAT_PRIORITY) === 'html'\n ? RegularHelmet\n : Fragment;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASI,iBAAiBA,CAACC,OAAgB,EAAE;EAClD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,UAAU,GAAGL,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,OAAO,CAACC,OAAO,CAACH,UAAU,CAAC;EAEtE,OAAOJ,MAAM,CAACQ,GAAG,KAAK,aAAa,IAAIJ,UAAU,CAACK,+BAAoB,CAAC,KAAK,MAAM,GAC9EC,4BAAa,GACbC,eAAQ;AACd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-render.js","names":["providePageRender","_jsxRuntime","jsxs","Fragment","children","jsx"],"sources":["../../../../../src/preset/server/providers/page-render.tsx"],"sourcesContent":["/**\n * Провайдер render-функции.\n * @return Render-Функция.\n */\nexport function providePageRender() {\n return () => (\n <>\n <h1>Hello, world!</h1>\n <p>This is a stub page. Define the render component in your handler app</p>\n </>\n );\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAAA,EAAG;EAClC,OAAO,mBACL,IAAAC,WAAA,CAAAC,IAAA,EAAAD,WAAA,CAAAE,QAAA;IAAAC,QAAA,gBACE,IAAAH,WAAA,CAAAI,GAAA;MAAAD,QAAA,EAAI;IAAa,CAAI,CAAC,eACtB,IAAAH,WAAA,CAAAI,GAAA;MAAAD,QAAA,EAAG;IAAoE,CAAG,CAAC;EAAA,CAC3E,CACH;AACH"}
|
|
1
|
+
{"version":3,"file":"page-render.js","names":["providePageRender","_jsxRuntime","jsxs","Fragment","children","jsx"],"sources":["../../../../../src/preset/server/providers/page-render.tsx"],"sourcesContent":["/**\n * Провайдер render-функции.\n * @return Render-Функция.\n */\nexport function providePageRender() {\n return () => (\n <>\n <h1>Hello, world!</h1>\n <p>This is a stub page. Define the render component in your handler app</p>\n </>\n );\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAAA,EAAG;EAClC,OAAO,mBACL,IAAAC,WAAA,CAAAC,IAAA,EAAAD,WAAA,CAAAE,QAAA;IAAAC,QAAA,gBACE,IAAAH,WAAA,CAAAI,GAAA;MAAAD,QAAA,EAAI;IAAa,CAAI,CAAC,eACtB,IAAAH,WAAA,CAAAI,GAAA;MAAAD,QAAA,EAAG;IAAoE,CAAG,CAAC;EAAA,CAC3E,CACH;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-events.js","names":["_tokens","require","provideResponseEvents","resolve","context","KnownToken","Http","Handler","events"],"sources":["../../../../../src/preset/server/providers/response-events.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер объекта подписки на события и вызова событий ответа.\n * @param resolve Resolve.\n * @return EventTarget.\n */\nexport function provideResponseEvents(resolve: Resolve): EventTarget {\n const context = resolve(KnownToken.Http.Handler.context);\n\n return context.events;\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,OAAgB,EAAe;EACnE,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACH,OAAO,CAAC;EAExD,OAAOA,OAAO,CAACI,MAAM;AACvB"}
|
|
1
|
+
{"version":3,"file":"response-events.js","names":["_tokens","require","provideResponseEvents","resolve","context","KnownToken","Http","Handler","events"],"sources":["../../../../../src/preset/server/providers/response-events.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер объекта подписки на события и вызова событий ответа.\n * @param resolve Resolve.\n * @return EventTarget.\n */\nexport function provideResponseEvents(resolve: Resolve): EventTarget {\n const context = resolve(KnownToken.Http.Handler.context);\n\n return context.events;\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,OAAgB,EAAe;EACnE,MAAMC,OAAO,GAAGD,OAAO,CAACE,kBAAU,CAACC,IAAI,CAACC,OAAO,CAACH,OAAO,CAAC;EAExD,OAAOA,OAAO,CAACI,MAAM;AACvB","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ exports.provideServe = provideServe;
|
|
|
7
7
|
var _tokens = require("../../../tokens");
|
|
8
8
|
var _http = require("../../../http");
|
|
9
9
|
var _fetchTools = require("@krutoo/fetch-tools");
|
|
10
|
+
var _server = require("@krutoo/fetch-tools/server");
|
|
10
11
|
var _applyServerMiddleware = require("../utils/apply-server-middleware");
|
|
11
12
|
/* eslint-disable jsdoc/require-jsdoc */
|
|
12
13
|
|
|
@@ -17,7 +18,7 @@ function provideServe(resolve) {
|
|
|
17
18
|
const middleware = resolve(_tokens.KnownToken.Http.Serve.middleware);
|
|
18
19
|
const proxyConfig = resolve(_tokens.KnownToken.Http.Serve.Proxy.config);
|
|
19
20
|
const enhance = config.env === 'development' && proxyConfig ? (0, _fetchTools.applyMiddleware)(...(Array.isArray(proxyConfig) ? proxyConfig.map(_http.proxy) : [(0, _http.proxy)(proxyConfig)])) : identity;
|
|
20
|
-
const builder =
|
|
21
|
+
const builder = _server.router.builder();
|
|
21
22
|
|
|
22
23
|
// маршруты с промежуточными слоями
|
|
23
24
|
for (const [pattern, handler] of pageRoutes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","names":["_tokens","require","_http","_fetchTools","_applyServerMiddleware","provideServe","resolve","config","KnownToken","Config","base","pageRoutes","Http","Serve","serviceRoutes","middleware","proxyConfig","Proxy","enhance","env","applyMiddleware","Array","isArray","map","proxy","identity","builder","router","pattern","handler","path","method","pageHandler","applyServerMiddleware","request","events","EventTarget","build","value"],"sources":["../../../../../src/preset/server/providers/serve.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { Handler, proxy } from '../../../http';\nimport {
|
|
1
|
+
{"version":3,"file":"serve.js","names":["_tokens","require","_http","_fetchTools","_server","_applyServerMiddleware","provideServe","resolve","config","KnownToken","Config","base","pageRoutes","Http","Serve","serviceRoutes","middleware","proxyConfig","Proxy","enhance","env","applyMiddleware","Array","isArray","map","proxy","identity","builder","router","pattern","handler","path","method","pageHandler","applyServerMiddleware","request","events","EventTarget","build","value"],"sources":["../../../../../src/preset/server/providers/serve.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { Handler, proxy } from '../../../http';\nimport { applyMiddleware } from '@krutoo/fetch-tools';\nimport { router } from '@krutoo/fetch-tools/server';\nimport { applyServerMiddleware } from '../utils/apply-server-middleware';\n\nexport function provideServe(resolve: Resolve): Handler {\n const config = resolve(KnownToken.Config.base);\n const pageRoutes = resolve(KnownToken.Http.Serve.pageRoutes);\n const serviceRoutes = resolve(KnownToken.Http.Serve.serviceRoutes);\n const middleware = resolve(KnownToken.Http.Serve.middleware);\n const proxyConfig = resolve(KnownToken.Http.Serve.Proxy.config);\n\n const enhance =\n config.env === 'development' && proxyConfig\n ? applyMiddleware(\n ...(Array.isArray(proxyConfig) ? proxyConfig.map(proxy) : [proxy(proxyConfig)]),\n )\n : identity;\n\n const builder = router.builder();\n\n // маршруты с промежуточными слоями\n for (const [pattern, handler] of pageRoutes) {\n const path = typeof pattern === 'string' ? pattern : pattern.path;\n const method = typeof pattern === 'string' ? 'get' : pattern.method;\n const pageHandler = applyServerMiddleware(...middleware)(handler);\n\n builder[method](path, request => pageHandler(request, { events: new EventTarget() }));\n }\n\n // служебные маршруты (к ним не применяются промежуточные слои)\n for (const [pattern, handler] of serviceRoutes) {\n const path = typeof pattern === 'string' ? pattern : pattern.path;\n const method = typeof pattern === 'string' ? 'get' : pattern.method;\n\n builder[method](path, request => handler(request, { events: new EventTarget() }));\n }\n\n // @todo также добавить apiRoutes?\n return enhance(builder.build());\n}\n\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AANA;;AAQO,SAASK,YAAYA,CAACC,OAAgB,EAAW;EACtD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,UAAU,GAAGL,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC;EAC5D,MAAMG,aAAa,GAAGR,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,KAAK,CAACC,aAAa,CAAC;EAClE,MAAMC,UAAU,GAAGT,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,KAAK,CAACE,UAAU,CAAC;EAC5D,MAAMC,WAAW,GAAGV,OAAO,CAACE,kBAAU,CAACI,IAAI,CAACC,KAAK,CAACI,KAAK,CAACV,MAAM,CAAC;EAE/D,MAAMW,OAAO,GACXX,MAAM,CAACY,GAAG,KAAK,aAAa,IAAIH,WAAW,GACvC,IAAAI,2BAAe,EACb,IAAIC,KAAK,CAACC,OAAO,CAACN,WAAW,CAAC,GAAGA,WAAW,CAACO,GAAG,CAACC,WAAK,CAAC,GAAG,CAAC,IAAAA,WAAK,EAACR,WAAW,CAAC,CAAC,CAChF,CAAC,GACDS,QAAQ;EAEd,MAAMC,OAAO,GAAGC,cAAM,CAACD,OAAO,CAAC,CAAC;;EAEhC;EACA,KAAK,MAAM,CAACE,OAAO,EAAEC,OAAO,CAAC,IAAIlB,UAAU,EAAE;IAC3C,MAAMmB,IAAI,GAAG,OAAOF,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAGA,OAAO,CAACE,IAAI;IACjE,MAAMC,MAAM,GAAG,OAAOH,OAAO,KAAK,QAAQ,GAAG,KAAK,GAAGA,OAAO,CAACG,MAAM;IACnE,MAAMC,WAAW,GAAG,IAAAC,4CAAqB,EAAC,GAAGlB,UAAU,CAAC,CAACc,OAAO,CAAC;IAEjEH,OAAO,CAACK,MAAM,CAAC,CAACD,IAAI,EAAEI,OAAO,IAAIF,WAAW,CAACE,OAAO,EAAE;MAAEC,MAAM,EAAE,IAAIC,WAAW,CAAC;IAAE,CAAC,CAAC,CAAC;EACvF;;EAEA;EACA,KAAK,MAAM,CAACR,OAAO,EAAEC,OAAO,CAAC,IAAIf,aAAa,EAAE;IAC9C,MAAMgB,IAAI,GAAG,OAAOF,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAGA,OAAO,CAACE,IAAI;IACjE,MAAMC,MAAM,GAAG,OAAOH,OAAO,KAAK,QAAQ,GAAG,KAAK,GAAGA,OAAO,CAACG,MAAM;IAEnEL,OAAO,CAACK,MAAM,CAAC,CAACD,IAAI,EAAEI,OAAO,IAAIL,OAAO,CAACK,OAAO,EAAE;MAAEC,MAAM,EAAE,IAAIC,WAAW,CAAC;IAAE,CAAC,CAAC,CAAC;EACnF;;EAEA;EACA,OAAOlB,OAAO,CAACQ,OAAO,CAACW,KAAK,CAAC,CAAC,CAAC;AACjC;AAEA,SAASZ,QAAQA,CAAIa,KAAQ,EAAK;EAChC,OAAOA,KAAK;AACd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-bridge-server-side.js","names":["_ssr","require","_tokens","provideSsrBridgeServerSide","resolve","config","KnownToken","Config","base","SsrBridge","prepare","appName"],"sources":["../../../../../src/preset/server/providers/ssr-bridge-server-side.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { SsrBridge, BridgeServerSide } from '../../../utils/ssr';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер серверной части \"моста\" для передачи данных между сервером и клиентом.\n * @param resolve Функция для получения зависимости по токену.\n * @return Серверная часть \"моста\".\n */\nexport function provideSsrBridgeServerSide(resolve: Resolve): BridgeServerSide {\n const config = resolve(KnownToken.Config.base);\n\n return SsrBridge.prepare(config.appName);\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,0BAA0BA,CAACC,OAAgB,EAAoB;EAC7E,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAE9C,OAAOC,cAAS,CAACC,OAAO,CAACL,MAAM,CAACM,OAAO,CAAC;AAC1C"}
|
|
1
|
+
{"version":3,"file":"ssr-bridge-server-side.js","names":["_ssr","require","_tokens","provideSsrBridgeServerSide","resolve","config","KnownToken","Config","base","SsrBridge","prepare","appName"],"sources":["../../../../../src/preset/server/providers/ssr-bridge-server-side.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { SsrBridge, BridgeServerSide } from '../../../utils/ssr';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер серверной части \"моста\" для передачи данных между сервером и клиентом.\n * @param resolve Функция для получения зависимости по токену.\n * @return Серверная часть \"моста\".\n */\nexport function provideSsrBridgeServerSide(resolve: Resolve): BridgeServerSide {\n const config = resolve(KnownToken.Config.base);\n\n return SsrBridge.prepare(config.appName);\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,0BAA0BA,CAACC,OAAgB,EAAoB;EAC7E,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAE9C,OAAOC,cAAS,CAACC,OAAO,CAACL,MAAM,CAACM,OAAO,CAAC;AAC1C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/preset/server/types.ts"],"sourcesContent":["import type { PageAssets } from '../isomorphic';\n\n/**\n * На сервере между промежуточными слоями надо обмениваться данными поэтому появился такой интерфейс.\n * Возможно в будущем он перейдет в `@krutoo/fetch-tools`.\n */\nexport interface ServerHandlerContext {\n events: EventTarget;\n}\n\nexport interface ServerHandler {\n (request: Request, context: ServerHandlerContext): Response | Promise<Response>;\n}\n\nexport interface ServerEnhancer {\n (request: ServerHandler): ServerHandler;\n}\n\nexport interface ServerMiddleware {\n (\n request: Request,\n next: (req: Request, ctx?: ServerHandlerContext) => Response | Promise<Response>,\n context: ServerHandlerContext,\n ): Response | Promise<Response>;\n}\n\nexport interface PageResponseFormatResult {\n body: string;\n headers: Headers;\n}\n\nexport interface PageResponseFormatter {\n (\n jsx: JSX.Element,\n assets: PageAssets,\n ): PageResponseFormatResult | Promise<PageResponseFormatResult>;\n}\n\nexport interface RenderToString {\n (jsx: JSX.Element): string | Promise<string>;\n}\n\nexport interface RouteInfo {\n method: 'all' | 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head';\n path: string;\n}\n\nexport type RouteList = Array<[string | RouteInfo, ServerHandler]>;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/preset/server/types.ts"],"sourcesContent":["import type { PageAssets } from '../isomorphic';\n\n/**\n * На сервере между промежуточными слоями надо обмениваться данными поэтому появился такой интерфейс.\n * Возможно в будущем он перейдет в `@krutoo/fetch-tools`.\n */\nexport interface ServerHandlerContext {\n events: EventTarget;\n}\n\nexport interface ServerHandler {\n (request: Request, context: ServerHandlerContext): Response | Promise<Response>;\n}\n\nexport interface ServerEnhancer {\n (request: ServerHandler): ServerHandler;\n}\n\nexport interface ServerMiddleware {\n (\n request: Request,\n next: (req: Request, ctx?: ServerHandlerContext) => Response | Promise<Response>,\n context: ServerHandlerContext,\n ): Response | Promise<Response>;\n}\n\nexport interface PageResponseFormatResult {\n body: string;\n headers: Headers;\n}\n\nexport interface PageResponseFormatter {\n (\n jsx: JSX.Element,\n assets: PageAssets,\n ): PageResponseFormatResult | Promise<PageResponseFormatResult>;\n}\n\nexport interface RenderToString {\n (jsx: JSX.Element): string | Promise<string>;\n}\n\nexport interface RouteInfo {\n method: 'all' | 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head';\n path: string;\n}\n\nexport type RouteList = Array<[string | RouteInfo, ServerHandler]>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-server-middleware.js","names":["applyServerMiddleware","list","handler","result","item","reverse","next","request","context","req","ctx"],"sources":["../../../../../src/preset/server/utils/apply-server-middleware.ts"],"sourcesContent":["import type { ServerEnhancer, ServerMiddleware } from '../types';\n\n/**\n * Возвращает Enhancer который накидывает на обработчик промежуточные слои.\n * В будущем может быть перенесен в `@krutoo/fetch-tools` в более абстрактном виде.\n * @inheritdoc\n */\nexport function applyServerMiddleware(...list: ServerMiddleware[]): ServerEnhancer {\n return handler => {\n let result = handler;\n\n for (const item of list.reverse()) {\n const next = result;\n result = async (request, context) =>\n item(request, (req, ctx) => next(req, ctx ?? context), context);\n }\n\n return result;\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAqBA,CAAC,GAAGC,IAAwB,EAAkB;EACjF,OAAOC,OAAO,IAAI;IAChB,IAAIC,MAAM,GAAGD,OAAO;IAEpB,KAAK,MAAME,IAAI,IAAIH,IAAI,CAACI,OAAO,CAAC,CAAC,EAAE;MACjC,MAAMC,IAAI,GAAGH,MAAM;MACnBA,MAAM,GAAG,MAAAA,CAAOI,OAAO,EAAEC,OAAO,KAC9BJ,IAAI,CAACG,OAAO,EAAE,CAACE,GAAG,EAAEC,GAAG,KAAKJ,IAAI,CAACG,GAAG,EAAEC,GAAG,IAAIF,OAAO,CAAC,EAAEA,OAAO,CAAC;IACnE;IAEA,OAAOL,MAAM;EACf,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"apply-server-middleware.js","names":["applyServerMiddleware","list","handler","result","item","reverse","next","request","context","req","ctx"],"sources":["../../../../../src/preset/server/utils/apply-server-middleware.ts"],"sourcesContent":["import type { ServerEnhancer, ServerMiddleware } from '../types';\n\n/**\n * Возвращает Enhancer который накидывает на обработчик промежуточные слои.\n * В будущем может быть перенесен в `@krutoo/fetch-tools` в более абстрактном виде.\n * @inheritdoc\n */\nexport function applyServerMiddleware(...list: ServerMiddleware[]): ServerEnhancer {\n return handler => {\n let result = handler;\n\n for (const item of list.reverse()) {\n const next = result;\n result = async (request, context) =>\n item(request, (req, ctx) => next(req, ctx ?? context), context);\n }\n\n return result;\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAqBA,CAAC,GAAGC,IAAwB,EAAkB;EACjF,OAAOC,OAAO,IAAI;IAChB,IAAIC,MAAM,GAAGD,OAAO;IAEpB,KAAK,MAAME,IAAI,IAAIH,IAAI,CAACI,OAAO,CAAC,CAAC,EAAE;MACjC,MAAMC,IAAI,GAAGH,MAAM;MACnBA,MAAM,GAAG,MAAAA,CAAOI,OAAO,EAAEC,OAAO,KAC9BJ,IAAI,CAACG,OAAO,EAAE,CAACE,GAAG,EAAEC,GAAG,KAAKJ,IAAI,CAACG,GAAG,EAAEC,GAAG,IAAIF,OAAO,CAAC,EAAEA,OAAO,CAAC;IACnE;IAEA,OAAOL,MAAM;EACf,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-handler-error.js","names":["_http","require","formatHandlerError","error","logLevel","message","statusCode","redirectLocation","Error","ResponseError","String","response","status","body","log","level"],"sources":["../../../../../src/preset/server/utils/format-handler-error.ts"],"sourcesContent":["import { ResponseError } from '../../../http';\nimport { LogLevel } from '../../../log';\n\n/**\n * Функция форматирования ошибки обработчика запроса.\n * @param error Ошибка.\n * @return Формат ответа и лога ошибки.\n */\nexport function formatHandlerError(error: unknown) {\n let logLevel: LogLevel | null = 'error';\n let message: string;\n let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500\n let redirectLocation: string | null = null;\n\n if (error instanceof Error) {\n message = error.message;\n\n if (error instanceof ResponseError) {\n statusCode = error.statusCode;\n redirectLocation = error.redirectLocation;\n logLevel = error.logLevel;\n }\n } else {\n message = String(error);\n }\n\n return {\n response: {\n status: statusCode,\n body: message,\n redirectLocation,\n },\n log: {\n level: logLevel,\n message,\n },\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,KAAc,EAAE;EACjD,IAAIC,QAAyB,GAAG,OAAO;EACvC,IAAIC,OAAe;EACnB,IAAIC,UAAU,GAAG,GAAG,CAAC,CAAC;EACtB,IAAIC,gBAA+B,GAAG,IAAI;EAE1C,IAAIJ,KAAK,YAAYK,KAAK,EAAE;IAC1BH,OAAO,GAAGF,KAAK,CAACE,OAAO;IAEvB,IAAIF,KAAK,YAAYM,mBAAa,EAAE;MAClCH,UAAU,GAAGH,KAAK,CAACG,UAAU;MAC7BC,gBAAgB,GAAGJ,KAAK,CAACI,gBAAgB;MACzCH,QAAQ,GAAGD,KAAK,CAACC,QAAQ;IAC3B;EACF,CAAC,MAAM;IACLC,OAAO,GAAGK,MAAM,CAACP,KAAK,CAAC;EACzB;EAEA,OAAO;IACLQ,QAAQ,EAAE;MACRC,MAAM,EAAEN,UAAU;MAClBO,IAAI,EAAER,OAAO;MACbE;IACF,CAAC;IACDO,GAAG,EAAE;MACHC,KAAK,EAAEX,QAAQ;MACfC;IACF;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"format-handler-error.js","names":["_http","require","formatHandlerError","error","logLevel","message","statusCode","redirectLocation","Error","ResponseError","String","response","status","body","log","level"],"sources":["../../../../../src/preset/server/utils/format-handler-error.ts"],"sourcesContent":["import { ResponseError } from '../../../http';\nimport { LogLevel } from '../../../log';\n\n/**\n * Функция форматирования ошибки обработчика запроса.\n * @param error Ошибка.\n * @return Формат ответа и лога ошибки.\n */\nexport function formatHandlerError(error: unknown) {\n let logLevel: LogLevel | null = 'error';\n let message: string;\n let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500\n let redirectLocation: string | null = null;\n\n if (error instanceof Error) {\n message = error.message;\n\n if (error instanceof ResponseError) {\n statusCode = error.statusCode;\n redirectLocation = error.redirectLocation;\n logLevel = error.logLevel;\n }\n } else {\n message = String(error);\n }\n\n return {\n response: {\n status: statusCode,\n body: message,\n redirectLocation,\n },\n log: {\n level: logLevel,\n message,\n },\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,KAAc,EAAE;EACjD,IAAIC,QAAyB,GAAG,OAAO;EACvC,IAAIC,OAAe;EACnB,IAAIC,UAAU,GAAG,GAAG,CAAC,CAAC;EACtB,IAAIC,gBAA+B,GAAG,IAAI;EAE1C,IAAIJ,KAAK,YAAYK,KAAK,EAAE;IAC1BH,OAAO,GAAGF,KAAK,CAACE,OAAO;IAEvB,IAAIF,KAAK,YAAYM,mBAAa,EAAE;MAClCH,UAAU,GAAGH,KAAK,CAACG,UAAU;MAC7BC,gBAAgB,GAAGJ,KAAK,CAACI,gBAAgB;MACzCH,QAAQ,GAAGD,KAAK,CAACC,QAAQ;IAC3B;EACF,CAAC,MAAM;IACLC,OAAO,GAAGK,MAAM,CAACP,KAAK,CAAC;EACzB;EAEA,OAAO;IACLQ,QAAQ,EAAE;MACRC,MAAM,EAAEN,UAAU;MAClBO,IAAI,EAAER,OAAO;MACbE;IACF,CAAC;IACDO,GAAG,EAAE;MACHC,KAAK,EAAEX,QAAQ;MACfC;IACF;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-client-ip.js","names":["getClientIp","request","headerValue","headers","get"],"sources":["../../../../../src/preset/server/utils/get-client-ip.ts"],"sourcesContent":["/**\n * Вернет строку с IP на основе заголовков запроса.\n * @param request Запрос.\n * @return IP или null.\n */\nexport function getClientIp(request: Request): string | null {\n const headerValue = request.headers.get('x-client-ip') || request.headers.get('x-forwarded-for');\n\n return headerValue;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CAACC,OAAgB,EAAiB;EAC3D,MAAMC,WAAW,GAAGD,OAAO,CAACE,OAAO,CAACC,GAAG,CAAC,aAAa,CAAC,IAAIH,OAAO,CAACE,OAAO,CAACC,GAAG,CAAC,iBAAiB,CAAC;EAEhG,OAAOF,WAAW;AACpB"}
|
|
1
|
+
{"version":3,"file":"get-client-ip.js","names":["getClientIp","request","headerValue","headers","get"],"sources":["../../../../../src/preset/server/utils/get-client-ip.ts"],"sourcesContent":["/**\n * Вернет строку с IP на основе заголовков запроса.\n * @param request Запрос.\n * @return IP или null.\n */\nexport function getClientIp(request: Request): string | null {\n const headerValue = request.headers.get('x-client-ip') || request.headers.get('x-forwarded-for');\n\n return headerValue;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CAACC,OAAgB,EAAiB;EAC3D,MAAMC,WAAW,GAAGD,OAAO,CAACE,OAAO,CAACC,GAAG,CAAC,aAAa,CAAC,IAAIH,OAAO,CAACE,OAAO,CAACC,GAAG,CAAC,iBAAiB,CAAC;EAEhG,OAAOF,WAAW;AACpB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-forwarded-headers.js","names":["_getClientIp","require","getForwardedHeaders","config","request","result","Headers","set","appName","appVersion","clientIp","getClientIp","cookie","headers","get","forEach","headerValue","headerName","toLowerCase","startsWith"],"sources":["../../../../../src/preset/server/utils/get-forwarded-headers.ts"],"sourcesContent":["import type { BaseConfig } from '../../../config';\nimport { getClientIp } from './get-client-ip';\n\n/**\n * Вернет заголовки, которые должны содержаться в исходящих http-запросах при обработке входящего http-запроса.\n * @param config Конфигурация.\n * @param request Входящий запрос.\n * @return Заголовки.\n */\nexport function getForwardedHeaders(config: BaseConfig, request: Request): Headers {\n const result = new Headers();\n\n // user agent\n result.set('User-Agent', `simaland-${config.appName}/${config.appVersion}`);\n\n // client ip\n const clientIp = getClientIp(request);\n if (clientIp) {\n result.set('X-Client-Ip', clientIp);\n }\n\n // cookie\n const cookie = request.headers.get('cookie');\n if (cookie) {\n result.set('cookie', cookie);\n }\n\n // service headers\n request.headers.forEach((headerValue, headerName) => {\n if (\n headerName.toLowerCase().startsWith('simaland-') &&\n headerName.toLowerCase() !== 'simaland-params'\n ) {\n result.set(headerName, headerValue);\n }\n });\n\n return result;\n}\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAACC,MAAkB,EAAEC,OAAgB,EAAW;EACjF,MAAMC,MAAM,GAAG,IAAIC,OAAO,CAAC,CAAC;;EAE5B;EACAD,MAAM,CAACE,GAAG,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"get-forwarded-headers.js","names":["_getClientIp","require","getForwardedHeaders","config","request","result","Headers","set","appName","appVersion","clientIp","getClientIp","cookie","headers","get","forEach","headerValue","headerName","toLowerCase","startsWith"],"sources":["../../../../../src/preset/server/utils/get-forwarded-headers.ts"],"sourcesContent":["import type { BaseConfig } from '../../../config';\nimport { getClientIp } from './get-client-ip';\n\n/**\n * Вернет заголовки, которые должны содержаться в исходящих http-запросах при обработке входящего http-запроса.\n * @param config Конфигурация.\n * @param request Входящий запрос.\n * @return Заголовки.\n */\nexport function getForwardedHeaders(config: BaseConfig, request: Request): Headers {\n const result = new Headers();\n\n // user agent\n result.set('User-Agent', `simaland-${config.appName}/${config.appVersion}`);\n\n // client ip\n const clientIp = getClientIp(request);\n if (clientIp) {\n result.set('X-Client-Ip', clientIp);\n }\n\n // cookie\n const cookie = request.headers.get('cookie');\n if (cookie) {\n result.set('cookie', cookie);\n }\n\n // service headers\n request.headers.forEach((headerValue, headerName) => {\n if (\n headerName.toLowerCase().startsWith('simaland-') &&\n headerName.toLowerCase() !== 'simaland-params'\n ) {\n result.set(headerName, headerValue);\n }\n });\n\n return result;\n}\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAACC,MAAkB,EAAEC,OAAgB,EAAW;EACjF,MAAMC,MAAM,GAAG,IAAIC,OAAO,CAAC,CAAC;;EAE5B;EACAD,MAAM,CAACE,GAAG,CAAC,YAAY,EAAE,YAAYJ,MAAM,CAACK,OAAO,IAAIL,MAAM,CAACM,UAAU,EAAE,CAAC;;EAE3E;EACA,MAAMC,QAAQ,GAAG,IAAAC,wBAAW,EAACP,OAAO,CAAC;EACrC,IAAIM,QAAQ,EAAE;IACZL,MAAM,CAACE,GAAG,CAAC,aAAa,EAAEG,QAAQ,CAAC;EACrC;;EAEA;EACA,MAAME,MAAM,GAAGR,OAAO,CAACS,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;EAC5C,IAAIF,MAAM,EAAE;IACVP,MAAM,CAACE,GAAG,CAAC,QAAQ,EAAEK,MAAM,CAAC;EAC9B;;EAEA;EACAR,OAAO,CAACS,OAAO,CAACE,OAAO,CAAC,CAACC,WAAW,EAAEC,UAAU,KAAK;IACnD,IACEA,UAAU,CAACC,WAAW,CAAC,CAAC,CAACC,UAAU,CAAC,WAAW,CAAC,IAChDF,UAAU,CAACC,WAAW,CAAC,CAAC,KAAK,iBAAiB,EAC9C;MACAb,MAAM,CAACE,GAAG,CAACU,UAAU,EAAED,WAAW,CAAC;IACrC;EACF,CAAC,CAAC;EAEF,OAAOX,MAAM;AACf","ignoreList":[]}
|