@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":"index.js","names":[],"sources":["../../../src/cache/index.ts"],"sourcesContent":["export type { Cache } from './types';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/cache/index.ts"],"sourcesContent":["export type { Cache } from './types';\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/cache/types.ts"],"sourcesContent":["/**\n * Простейший интерфейс кэша.\n * @todo Рассмотреть web-стандарт CacheStorage.\n */\nexport interface Cache {\n /**\n * Возвращает значение из кэша по ключу.\n * @param key Ключ.\n * @return Значение.\n */\n get: (key: string) => unknown;\n\n /**\n * Записывает значение в кэш по ключу.\n * @param key Ключ.\n */\n set: (key: string, value: any) => void;\n\n /**\n * Удаляет значение из кэша по ключу.\n * @param key Ключ.\n */\n delete: (key: string) => void;\n\n /**\n * Полностью очищает кэш.\n */\n clear: () => void;\n\n /**\n * Возвращает `true` в случае, если значение под переданным ключом присутствует в кэше, `false` в противном случае.\n */\n has: (key: string) => boolean;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/cache/types.ts"],"sourcesContent":["/**\n * Простейший интерфейс кэша.\n * @todo Рассмотреть web-стандарт CacheStorage.\n */\nexport interface Cache {\n /**\n * Возвращает значение из кэша по ключу.\n * @param key Ключ.\n * @return Значение.\n */\n get: (key: string) => unknown;\n\n /**\n * Записывает значение в кэш по ключу.\n * @param key Ключ.\n */\n set: (key: string, value: any) => void;\n\n /**\n * Удаляет значение из кэша по ключу.\n * @param key Ключ.\n */\n delete: (key: string) => void;\n\n /**\n * Полностью очищает кэш.\n */\n clear: () => void;\n\n /**\n * Возвращает `true` в случае, если значение под переданным ключом присутствует в кэше, `false` в противном случае.\n */\n has: (key: string) => boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":["createBaseConfig","source","env","require","appName","appVersion"],"sources":["../../../src/config/base.ts"],"sourcesContent":["import type { ConfigSource, BaseConfig } from './types';\n\n/**\n * Возвращает новую базовую конфигурацию.\n * @param source Источник конфигурации.\n * @return Базовая конфигурация.\n */\nexport function createBaseConfig(source: ConfigSource): BaseConfig {\n const env = source.require('NODE_ENV');\n const appName = source.require('APP_NAME');\n const appVersion = source.require('APP_VERSION');\n\n return {\n env,\n appName,\n appVersion,\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAgBA,CAACC,MAAoB,EAAc;EACjE,MAAMC,GAAG,GAAGD,MAAM,CAACE,OAAO,CAAC,UAAU,CAAC;EACtC,MAAMC,OAAO,GAAGH,MAAM,CAACE,OAAO,CAAC,UAAU,CAAC;EAC1C,MAAME,UAAU,GAAGJ,MAAM,CAACE,OAAO,CAAC,aAAa,CAAC;EAEhD,OAAO;IACLD,GAAG;IACHE,OAAO;IACPC;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"base.js","names":["createBaseConfig","source","env","require","appName","appVersion"],"sources":["../../../src/config/base.ts"],"sourcesContent":["import type { ConfigSource, BaseConfig } from './types';\n\n/**\n * Возвращает новую базовую конфигурацию.\n * @param source Источник конфигурации.\n * @return Базовая конфигурация.\n */\nexport function createBaseConfig(source: ConfigSource): BaseConfig {\n const env = source.require('NODE_ENV');\n const appName = source.require('APP_NAME');\n const appVersion = source.require('APP_VERSION');\n\n return {\n env,\n appName,\n appVersion,\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAgBA,CAACC,MAAoB,EAAc;EACjE,MAAMC,GAAG,GAAGD,MAAM,CAACE,OAAO,CAAC,UAAU,CAAC;EACtC,MAAMC,OAAO,GAAGH,MAAM,CAACE,OAAO,CAAC,UAAU,CAAC;EAC1C,MAAME,UAAU,GAAGJ,MAAM,CAACE,OAAO,CAAC,aAAa,CAAC;EAEhD,OAAO;IACLD,GAAG;IACHE,OAAO;IACPC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_source","require","_base"],"sources":["../../../src/config/index.ts"],"sourcesContent":["export type { ConfigSource, BaseConfig } from './types';\nexport { createConfigSource } from './source';\nexport { createBaseConfig } from './base';\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_source","require","_base"],"sources":["../../../src/config/index.ts"],"sourcesContent":["export type { ConfigSource, BaseConfig } from './types';\nexport { createConfigSource } from './source';\nexport { createBaseConfig } from './base';\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","names":["_env","require","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__","APP_NAME","globalThis","Env"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\nimport { Env } from '@humanwhocodes/env';\n\ndeclare const __ISOMORPH_ENV__: unknown;\n\n/**\n * Возвращает новый источник конфигурации.\n * @param dictionary Опции.\n * @return Источник.\n */\nexport function createConfigSource(dictionary: Dictionary): ConfigSource {\n const source: Dictionary = {};\n\n // берем все переменные из предоставленной среды\n Object.assign(source, dictionary);\n\n // докидываем зашиваемые переменные окружения\n if (typeof __ISOMORPH_ENV__ !== 'undefined') {\n Object.assign(source, __ISOMORPH_ENV__);\n }\n\n // докидываем публичные переменные сервиса из глобального окружения\n if (source.APP_NAME && typeof (globalThis as any)[`${source.APP_NAME}__envs`] !== 'undefined') {\n Object.assign(source, (globalThis as any)[`${source.APP_NAME}__envs`]);\n }\n\n return new Env(source);\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,UAAsB,EAAgB;EACvE,MAAMC,MAAkB,GAAG,CAAC,CAAC;;EAE7B;EACAC,MAAM,CAACC,MAAM,CAACF,MAAM,EAAED,UAAU,CAAC;;EAEjC;EACA,IAAI,OAAOI,gBAAgB,KAAK,WAAW,EAAE;IAC3CF,MAAM,CAACC,MAAM,CAACF,MAAM,EAAEG,gBAAgB,CAAC;EACzC;;EAEA;EACA,IAAIH,MAAM,CAACI,QAAQ,IAAI,OAAQC,UAAU,
|
|
1
|
+
{"version":3,"file":"source.js","names":["_env","require","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__","APP_NAME","globalThis","Env"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\nimport { Env } from '@humanwhocodes/env';\n\ndeclare const __ISOMORPH_ENV__: unknown;\n\n/**\n * Возвращает новый источник конфигурации.\n * @param dictionary Опции.\n * @return Источник.\n */\nexport function createConfigSource(dictionary: Dictionary): ConfigSource {\n const source: Dictionary = {};\n\n // берем все переменные из предоставленной среды\n Object.assign(source, dictionary);\n\n // докидываем зашиваемые переменные окружения\n if (typeof __ISOMORPH_ENV__ !== 'undefined') {\n Object.assign(source, __ISOMORPH_ENV__);\n }\n\n // докидываем публичные переменные сервиса из глобального окружения\n if (source.APP_NAME && typeof (globalThis as any)[`${source.APP_NAME}__envs`] !== 'undefined') {\n Object.assign(source, (globalThis as any)[`${source.APP_NAME}__envs`]);\n }\n\n return new Env(source);\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,UAAsB,EAAgB;EACvE,MAAMC,MAAkB,GAAG,CAAC,CAAC;;EAE7B;EACAC,MAAM,CAACC,MAAM,CAACF,MAAM,EAAED,UAAU,CAAC;;EAEjC;EACA,IAAI,OAAOI,gBAAgB,KAAK,WAAW,EAAE;IAC3CF,MAAM,CAACC,MAAM,CAACF,MAAM,EAAEG,gBAAgB,CAAC;EACzC;;EAEA;EACA,IAAIH,MAAM,CAACI,QAAQ,IAAI,OAAQC,UAAU,CAAS,GAAGL,MAAM,CAACI,QAAQ,QAAQ,CAAC,KAAK,WAAW,EAAE;IAC7FH,MAAM,CAACC,MAAM,CAACF,MAAM,EAAGK,UAAU,CAAS,GAAGL,MAAM,CAACI,QAAQ,QAAQ,CAAC,CAAC;EACxE;EAEA,OAAO,IAAIE,QAAG,CAACN,MAAM,CAAC;AACxB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/config/types.ts"],"sourcesContent":["import type { Env } from '@humanwhocodes/env';\n\n/** Источник конфигурации. */\nexport type ConfigSource = Env;\n\n/**\n * Базовая информация о приложении, необходимая в большинстве мест.\n */\nexport interface BaseConfig {\n /** Строка, характеризующая среду выполнения, например \"production\". */\n env: string;\n\n /** Имя приложения. */\n appName: string;\n\n /** Версия приложения. */\n appVersion: string;\n}\n\n/**\n * Словарь.\n */\nexport interface Dictionary {\n readonly [key: string]: string | undefined;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/config/types.ts"],"sourcesContent":["import type { Env } from '@humanwhocodes/env';\n\n/** Источник конфигурации. */\nexport type ConfigSource = Env;\n\n/**\n * Базовая информация о приложении, необходимая в большинстве мест.\n */\nexport interface BaseConfig {\n /** Строка, характеризующая среду выполнения, например \"production\". */\n env: string;\n\n /** Имя приложения. */\n appName: string;\n\n /** Версия приложения. */\n appVersion: string;\n}\n\n/**\n * Словарь.\n */\nexport interface Dictionary {\n readonly [key: string]: string | undefined;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","names":["_errors","require","_token","CURRENT_APP","exports","createToken","ApplicationImplementation","constructor","providers","Map","components","presets","initialized","toString","bind","token","has","_key","AlreadyBoundError","toValue","value","set","toProvider","provider","get","resolve","chain","preset","apply","nextChain","includes","CircularDependencyError","component","otherToken","parent","NothingBoundError","attach","Error","push","invoke","tokens","fn","map","createApplication"],"sources":["../../../src/di/application.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport type { Application, Provider, Token, Binding, ExtractType, Preset } from './types';\nimport { AlreadyBoundError, CircularDependencyError, NothingBoundError } from './errors';\nimport { createToken } from './token';\n\n/**\n * Токен, с помощью которого можно достать из приложения само приложение.\n */\nexport const CURRENT_APP = createToken<Application>('application/self');\n\n/**\n * Реализация Application.\n */\nclass ApplicationImplementation implements Application {\n /** Родительское приложение. */\n private parent?: ApplicationImplementation;\n\n /** Зарегистрированные пресеты. */\n private presets: Preset[];\n\n /** Зарегистрированные провайдеры. */\n private providers: Map<symbol, Provider<unknown>>;\n\n /** Инициализированные компоненты (синглтоны). */\n private components: Map<symbol, unknown>;\n\n /** Инициализировано ли приложение. */\n private initialized: boolean;\n\n constructor() {\n this.providers = new Map();\n this.components = new Map();\n this.presets = [];\n this.initialized = false;\n }\n\n toString() {\n return 'Application';\n }\n\n bind<T>(token: Token<T>): Binding<T> {\n if (this.providers.has(token._key)) {\n throw new AlreadyBoundError(token, this.toString());\n }\n\n return {\n toValue: value => {\n this.providers.set(token._key, () => value);\n },\n toProvider: provider => {\n this.providers.set(token._key, provider);\n },\n };\n }\n\n get<T>(token: Token<T>): T {\n return this.resolve(token, []);\n }\n\n protected resolve<T>(token: Token<T>, chain: Token<any>[]): T {\n if (!this.initialized) {\n this.bind(CURRENT_APP).toValue(this);\n\n for (const preset of this.presets) {\n preset.apply(this);\n }\n\n this.initialized = true;\n }\n\n const nextChain = () => [...chain, token];\n\n if (chain.includes(token)) {\n throw new CircularDependencyError(nextChain(), this.toString());\n }\n\n if (this.components.has(token._key)) {\n return this.components.get(token._key) as T;\n }\n\n if (this.providers.has(token._key)) {\n const provider = this.providers.get(token._key) as Provider<T>;\n\n const component = provider(otherToken => this.resolve(otherToken, nextChain()));\n\n // ВАЖНО: всегда как singleton\n this.components.set(token._key, component);\n\n return component as T;\n }\n\n if (this.parent) {\n // ВАЖНО: передаём именно chain а не nextChain()\n return this.parent.resolve(token, chain);\n }\n\n throw new NothingBoundError(token, this.toString());\n }\n\n attach(parent: ApplicationImplementation): void {\n if (this.parent) {\n throw new Error('Cannot reattach application');\n }\n\n this.parent = parent;\n }\n\n preset(preset: Preset): void {\n this.presets.push(preset);\n }\n\n invoke<Tokens extends readonly Token<any>[]>(\n tokens: [...Tokens],\n fn: (...args: ExtractType<Tokens>) => void,\n ): void {\n fn(...(tokens.map(token => this.get(token)) as any));\n }\n}\n\n/**\n * Возвращает новое DI-приложение.\n * @return DI-приложение.\n */\nexport function createApplication(): Application {\n return new ApplicationImplementation();\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"application.js","names":["_errors","require","_token","CURRENT_APP","exports","createToken","ApplicationImplementation","constructor","providers","Map","components","presets","initialized","toString","bind","token","has","_key","AlreadyBoundError","toValue","value","set","toProvider","provider","get","resolve","chain","preset","apply","nextChain","includes","CircularDependencyError","component","otherToken","parent","NothingBoundError","attach","Error","push","invoke","tokens","fn","map","createApplication"],"sources":["../../../src/di/application.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport type { Application, Provider, Token, Binding, ExtractType, Preset } from './types';\nimport { AlreadyBoundError, CircularDependencyError, NothingBoundError } from './errors';\nimport { createToken } from './token';\n\n/**\n * Токен, с помощью которого можно достать из приложения само приложение.\n */\nexport const CURRENT_APP = createToken<Application>('application/self');\n\n/**\n * Реализация Application.\n */\nclass ApplicationImplementation implements Application {\n /** Родительское приложение. */\n private parent?: ApplicationImplementation;\n\n /** Зарегистрированные пресеты. */\n private presets: Preset[];\n\n /** Зарегистрированные провайдеры. */\n private providers: Map<symbol, Provider<unknown>>;\n\n /** Инициализированные компоненты (синглтоны). */\n private components: Map<symbol, unknown>;\n\n /** Инициализировано ли приложение. */\n private initialized: boolean;\n\n constructor() {\n this.providers = new Map();\n this.components = new Map();\n this.presets = [];\n this.initialized = false;\n }\n\n toString() {\n return 'Application';\n }\n\n bind<T>(token: Token<T>): Binding<T> {\n if (this.providers.has(token._key)) {\n throw new AlreadyBoundError(token, this.toString());\n }\n\n return {\n toValue: value => {\n this.providers.set(token._key, () => value);\n },\n toProvider: provider => {\n this.providers.set(token._key, provider);\n },\n };\n }\n\n get<T>(token: Token<T>): T {\n return this.resolve(token, []);\n }\n\n protected resolve<T>(token: Token<T>, chain: Token<any>[]): T {\n if (!this.initialized) {\n this.bind(CURRENT_APP).toValue(this);\n\n for (const preset of this.presets) {\n preset.apply(this);\n }\n\n this.initialized = true;\n }\n\n const nextChain = () => [...chain, token];\n\n if (chain.includes(token)) {\n throw new CircularDependencyError(nextChain(), this.toString());\n }\n\n if (this.components.has(token._key)) {\n return this.components.get(token._key) as T;\n }\n\n if (this.providers.has(token._key)) {\n const provider = this.providers.get(token._key) as Provider<T>;\n\n const component = provider(otherToken => this.resolve(otherToken, nextChain()));\n\n // ВАЖНО: всегда как singleton\n this.components.set(token._key, component);\n\n return component as T;\n }\n\n if (this.parent) {\n // ВАЖНО: передаём именно chain а не nextChain()\n return this.parent.resolve(token, chain);\n }\n\n throw new NothingBoundError(token, this.toString());\n }\n\n attach(parent: ApplicationImplementation): void {\n if (this.parent) {\n throw new Error('Cannot reattach application');\n }\n\n this.parent = parent;\n }\n\n preset(preset: Preset): void {\n this.presets.push(preset);\n }\n\n invoke<Tokens extends readonly Token<any>[]>(\n tokens: [...Tokens],\n fn: (...args: ExtractType<Tokens>) => void,\n ): void {\n fn(...(tokens.map(token => this.get(token)) as any));\n }\n}\n\n/**\n * Возвращает новое DI-приложение.\n * @return DI-приложение.\n */\nexport function createApplication(): Application {\n return new ApplicationImplementation();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","names":["_errors","require","ContainerImplementation","constructor","cache","Map","registry","set","token","provider","has","_key","AlreadyBoundError","get","resolve","chain","includes","CircularDependencyError","push","Error","value","otherToken","NothingBoundError","createContainer"],"sources":["../../../src/di/container.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport type { Container, Provider, Token } from './types';\nimport { AlreadyBoundError, CircularDependencyError, NothingBoundError } from './errors';\n\nclass ContainerImplementation implements Container {\n cache: Map<symbol, any>;\n registry: Map<symbol, Provider<any>>;\n\n constructor() {\n this.cache = new Map<symbol, any>();\n this.registry = new Map<symbol, Provider<any>>();\n }\n\n set<T>(token: Token<T>, provider: Provider<T>): void {\n if (this.registry.has(token._key)) {\n throw new AlreadyBoundError(token);\n }\n\n this.registry.set(token._key, provider);\n }\n\n get<T>(token: Token<T>): T {\n return this.resolve(token, []);\n }\n\n private resolve<T>(token: Token<T>, chain: Token<any>[]): T {\n if (chain.includes(token)) {\n throw new CircularDependencyError([...chain, token]);\n } else {\n chain.push(token);\n }\n\n if (this.cache.has(token._key)) {\n return this.cache.get(token._key);\n } else if (this.registry.has(token._key)) {\n const provider = this.registry.get(token._key);\n\n if (typeof provider !== 'function') {\n throw new Error('Provider is not a function');\n }\n\n const value = provider(otherToken => this.resolve(otherToken, chain));\n\n // всегда как singleton\n this.cache.set(token._key, value);\n\n return value;\n } else {\n throw new NothingBoundError(token);\n }\n }\n}\n\n/**\n * Возвращает новый DI-контейнер.\n * @return DI-контейнер.\n */\nexport function createContainer(): Container {\n return new ContainerImplementation();\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AAFA;;AAIA,MAAMC,uBAAuB,CAAsB;EAIjDC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,KAAK,GAAG,IAAIC,GAAG,CAAc,CAAC;IACnC,IAAI,CAACC,QAAQ,GAAG,IAAID,GAAG,CAAwB,CAAC;EAClD;EAEAE,GAAGA,CAAIC,KAAe,EAAEC,QAAqB,EAAQ;IACnD,IAAI,IAAI,CAACH,QAAQ,CAACI,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;MACjC,MAAM,IAAIC,yBAAiB,CAACJ,KAAK,CAAC;IACpC;IAEA,IAAI,CAACF,QAAQ,CAACC,GAAG,CAACC,KAAK,CAACG,IAAI,EAAEF,QAAQ,CAAC;EACzC;EAEAI,GAAGA,CAAIL,KAAe,EAAK;IACzB,OAAO,IAAI,CAACM,OAAO,CAACN,KAAK,EAAE,EAAE,CAAC;EAChC;EAEQM,OAAOA,CAAIN,KAAe,EAAEO,KAAmB,EAAK;IAC1D,IAAIA,KAAK,CAACC,QAAQ,CAACR,KAAK,CAAC,EAAE;MACzB,MAAM,IAAIS,+BAAuB,CAAC,CAAC,GAAGF,KAAK,EAAEP,KAAK,CAAC,CAAC;IACtD,CAAC,MAAM;MACLO,KAAK,CAACG,IAAI,CAACV,KAAK,CAAC;IACnB;IAEA,IAAI,IAAI,CAACJ,KAAK,CAACM,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;MAC9B,OAAO,IAAI,CAACP,KAAK,CAACS,GAAG,CAACL,KAAK,CAACG,IAAI,CAAC;IACnC,CAAC,MAAM,IAAI,IAAI,CAACL,QAAQ,CAACI,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;MACxC,MAAMF,QAAQ,GAAG,IAAI,CAACH,QAAQ,CAACO,GAAG,CAACL,KAAK,CAACG,IAAI,CAAC;MAE9C,IAAI,OAAOF,QAAQ,KAAK,UAAU,EAAE;QAClC,MAAM,IAAIU,KAAK,CAAC,4BAA4B,CAAC;MAC/C;MAEA,MAAMC,KAAK,GAAGX,QAAQ,CAACY,UAAU,IAAI,IAAI,CAACP,OAAO,CAACO,UAAU,EAAEN,KAAK,CAAC,CAAC;;MAErE;MACA,IAAI,CAACX,KAAK,CAACG,GAAG,CAACC,KAAK,CAACG,IAAI,EAAES,KAAK,CAAC;MAEjC,OAAOA,KAAK;IACd,CAAC,MAAM;MACL,MAAM,IAAIE,yBAAiB,CAACd,KAAK,CAAC;IACpC;EACF;AACF;;AAEA;AACA;AACA;AACA;AACO,SAASe,eAAeA,CAAA,EAAc;EAC3C,OAAO,IAAIrB,uBAAuB,CAAC,CAAC;AACtC"}
|
|
1
|
+
{"version":3,"file":"container.js","names":["_errors","require","ContainerImplementation","constructor","cache","Map","registry","set","token","provider","has","_key","AlreadyBoundError","get","resolve","chain","includes","CircularDependencyError","push","Error","value","otherToken","NothingBoundError","createContainer"],"sources":["../../../src/di/container.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport type { Container, Provider, Token } from './types';\nimport { AlreadyBoundError, CircularDependencyError, NothingBoundError } from './errors';\n\nclass ContainerImplementation implements Container {\n cache: Map<symbol, any>;\n registry: Map<symbol, Provider<any>>;\n\n constructor() {\n this.cache = new Map<symbol, any>();\n this.registry = new Map<symbol, Provider<any>>();\n }\n\n set<T>(token: Token<T>, provider: Provider<T>): void {\n if (this.registry.has(token._key)) {\n throw new AlreadyBoundError(token);\n }\n\n this.registry.set(token._key, provider);\n }\n\n get<T>(token: Token<T>): T {\n return this.resolve(token, []);\n }\n\n private resolve<T>(token: Token<T>, chain: Token<any>[]): T {\n if (chain.includes(token)) {\n throw new CircularDependencyError([...chain, token]);\n } else {\n chain.push(token);\n }\n\n if (this.cache.has(token._key)) {\n return this.cache.get(token._key);\n } else if (this.registry.has(token._key)) {\n const provider = this.registry.get(token._key);\n\n if (typeof provider !== 'function') {\n throw new Error('Provider is not a function');\n }\n\n const value = provider(otherToken => this.resolve(otherToken, chain));\n\n // всегда как singleton\n this.cache.set(token._key, value);\n\n return value;\n } else {\n throw new NothingBoundError(token);\n }\n }\n}\n\n/**\n * Возвращает новый DI-контейнер.\n * @return DI-контейнер.\n */\nexport function createContainer(): Container {\n return new ContainerImplementation();\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AAFA;;AAIA,MAAMC,uBAAuB,CAAsB;EAIjDC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,KAAK,GAAG,IAAIC,GAAG,CAAc,CAAC;IACnC,IAAI,CAACC,QAAQ,GAAG,IAAID,GAAG,CAAwB,CAAC;EAClD;EAEAE,GAAGA,CAAIC,KAAe,EAAEC,QAAqB,EAAQ;IACnD,IAAI,IAAI,CAACH,QAAQ,CAACI,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;MACjC,MAAM,IAAIC,yBAAiB,CAACJ,KAAK,CAAC;IACpC;IAEA,IAAI,CAACF,QAAQ,CAACC,GAAG,CAACC,KAAK,CAACG,IAAI,EAAEF,QAAQ,CAAC;EACzC;EAEAI,GAAGA,CAAIL,KAAe,EAAK;IACzB,OAAO,IAAI,CAACM,OAAO,CAACN,KAAK,EAAE,EAAE,CAAC;EAChC;EAEQM,OAAOA,CAAIN,KAAe,EAAEO,KAAmB,EAAK;IAC1D,IAAIA,KAAK,CAACC,QAAQ,CAACR,KAAK,CAAC,EAAE;MACzB,MAAM,IAAIS,+BAAuB,CAAC,CAAC,GAAGF,KAAK,EAAEP,KAAK,CAAC,CAAC;IACtD,CAAC,MAAM;MACLO,KAAK,CAACG,IAAI,CAACV,KAAK,CAAC;IACnB;IAEA,IAAI,IAAI,CAACJ,KAAK,CAACM,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;MAC9B,OAAO,IAAI,CAACP,KAAK,CAACS,GAAG,CAACL,KAAK,CAACG,IAAI,CAAC;IACnC,CAAC,MAAM,IAAI,IAAI,CAACL,QAAQ,CAACI,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;MACxC,MAAMF,QAAQ,GAAG,IAAI,CAACH,QAAQ,CAACO,GAAG,CAACL,KAAK,CAACG,IAAI,CAAC;MAE9C,IAAI,OAAOF,QAAQ,KAAK,UAAU,EAAE;QAClC,MAAM,IAAIU,KAAK,CAAC,4BAA4B,CAAC;MAC/C;MAEA,MAAMC,KAAK,GAAGX,QAAQ,CAACY,UAAU,IAAI,IAAI,CAACP,OAAO,CAACO,UAAU,EAAEN,KAAK,CAAC,CAAC;;MAErE;MACA,IAAI,CAACX,KAAK,CAACG,GAAG,CAACC,KAAK,CAACG,IAAI,EAAES,KAAK,CAAC;MAEjC,OAAOA,KAAK;IACd,CAAC,MAAM;MACL,MAAM,IAAIE,yBAAiB,CAACd,KAAK,CAAC;IACpC;EACF;AACF;;AAEA;AACA;AACA;AACA;AACO,SAASe,eAAeA,CAAA,EAAc;EAC3C,OAAO,IAAIrB,uBAAuB,CAAC,CAAC;AACtC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":["NothingBoundError","Error","constructor","token","containerName","String","display","name","exports","AlreadyBoundError","CircularDependencyError","trace","names","map","join"],"sources":["../../../src/di/errors.ts"],"sourcesContent":["import type { Token } from './types';\n\n/**\n * Ошибка, сообщающая, что в контейнере нет сервиса по заданному ключу.\n */\nexport class NothingBoundError extends Error {\n readonly token: Token<unknown>;\n\n /**\n * Конструктор.\n * @param token Токен.\n * @param containerName Имя контейнера.\n */\n constructor(token: Token<unknown>, containerName?: string) {\n super(`Nothing bound to ${String(token)} in ${display(containerName)}`);\n this.name = 'NothingBoundError';\n this.token = token;\n }\n}\n\n/**\n * Ошибка, сообщающая, что в контейнере уже зарегистрирован компонент под таким токеном.\n */\nexport class AlreadyBoundError extends Error {\n /**\n * Конструктор.\n * @param token Токен.\n * @param containerName Имя контейнера.\n */\n constructor(token: Token<unknown>, containerName?: string) {\n super(`Cannot rebind token in ${display(containerName)}, already bound: ${String(token)}`);\n this.name = 'AlreadyBoundError';\n }\n}\n\n/**\n * Ошибка, сообщающая, что обнаружена циклическая зависимость.\n */\nexport class CircularDependencyError extends Error {\n /**\n * Конструктор.\n * @param trace Список токенов, в котором обнаружен цикл.\n * @param containerName Имя контейнера.\n */\n constructor(trace: Token<unknown>[], containerName?: string) {\n const names = trace.map(String).join(' >> ');\n super(`Circular dependency found in ${display(containerName)}, trace: ${names}`);\n this.name = 'CircularDependencyError';\n }\n}\n\n/**\n * Вернёт переданное имя контейнера или заглушку.\n * @param containerName Имя.\n * @return Имя или заглушка.\n */\nfunction display(containerName?: string) {\n return containerName ?? '[unknown container]';\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAG3C;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,KAAqB,EAAEC,aAAsB,EAAE;IACzD,KAAK,
|
|
1
|
+
{"version":3,"file":"errors.js","names":["NothingBoundError","Error","constructor","token","containerName","String","display","name","exports","AlreadyBoundError","CircularDependencyError","trace","names","map","join"],"sources":["../../../src/di/errors.ts"],"sourcesContent":["import type { Token } from './types';\n\n/**\n * Ошибка, сообщающая, что в контейнере нет сервиса по заданному ключу.\n */\nexport class NothingBoundError extends Error {\n readonly token: Token<unknown>;\n\n /**\n * Конструктор.\n * @param token Токен.\n * @param containerName Имя контейнера.\n */\n constructor(token: Token<unknown>, containerName?: string) {\n super(`Nothing bound to ${String(token)} in ${display(containerName)}`);\n this.name = 'NothingBoundError';\n this.token = token;\n }\n}\n\n/**\n * Ошибка, сообщающая, что в контейнере уже зарегистрирован компонент под таким токеном.\n */\nexport class AlreadyBoundError extends Error {\n /**\n * Конструктор.\n * @param token Токен.\n * @param containerName Имя контейнера.\n */\n constructor(token: Token<unknown>, containerName?: string) {\n super(`Cannot rebind token in ${display(containerName)}, already bound: ${String(token)}`);\n this.name = 'AlreadyBoundError';\n }\n}\n\n/**\n * Ошибка, сообщающая, что обнаружена циклическая зависимость.\n */\nexport class CircularDependencyError extends Error {\n /**\n * Конструктор.\n * @param trace Список токенов, в котором обнаружен цикл.\n * @param containerName Имя контейнера.\n */\n constructor(trace: Token<unknown>[], containerName?: string) {\n const names = trace.map(String).join(' >> ');\n super(`Circular dependency found in ${display(containerName)}, trace: ${names}`);\n this.name = 'CircularDependencyError';\n }\n}\n\n/**\n * Вернёт переданное имя контейнера или заглушку.\n * @param containerName Имя.\n * @return Имя или заглушка.\n */\nfunction display(containerName?: string) {\n return containerName ?? '[unknown container]';\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAG3C;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,KAAqB,EAAEC,aAAsB,EAAE;IACzD,KAAK,CAAC,oBAAoBC,MAAM,CAACF,KAAK,CAAC,OAAOG,OAAO,CAACF,aAAa,CAAC,EAAE,CAAC;IACvE,IAAI,CAACG,IAAI,GAAG,mBAAmB;IAC/B,IAAI,CAACJ,KAAK,GAAGA,KAAK;EACpB;AACF;;AAEA;AACA;AACA;AAFAK,OAAA,CAAAR,iBAAA,GAAAA,iBAAA;AAGO,MAAMS,iBAAiB,SAASR,KAAK,CAAC;EAC3C;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,KAAqB,EAAEC,aAAsB,EAAE;IACzD,KAAK,CAAC,0BAA0BE,OAAO,CAACF,aAAa,CAAC,oBAAoBC,MAAM,CAACF,KAAK,CAAC,EAAE,CAAC;IAC1F,IAAI,CAACI,IAAI,GAAG,mBAAmB;EACjC;AACF;;AAEA;AACA;AACA;AAFAC,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAGO,MAAMC,uBAAuB,SAAST,KAAK,CAAC;EACjD;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACS,KAAuB,EAAEP,aAAsB,EAAE;IAC3D,MAAMQ,KAAK,GAAGD,KAAK,CAACE,GAAG,CAACR,MAAM,CAAC,CAACS,IAAI,CAAC,MAAM,CAAC;IAC5C,KAAK,CAAC,gCAAgCR,OAAO,CAACF,aAAa,CAAC,YAAYQ,KAAK,EAAE,CAAC;IAChF,IAAI,CAACL,IAAI,GAAG,yBAAyB;EACvC;AACF;;AAEA;AACA;AACA;AACA;AACA;AAJAC,OAAA,CAAAE,uBAAA,GAAAA,uBAAA;AAKA,SAASJ,OAAOA,CAACF,aAAsB,EAAE;EACvC,OAAOA,aAAa,IAAI,qBAAqB;AAC/C","ignoreList":[]}
|
package/dist/cjs/di/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_errors","require","_token","_container","_preset","_application"],"sources":["../../../src/di/index.ts"],"sourcesContent":["export type { Token, Resolve, Provider, Container, Application, Preset } from './types';\nexport { NothingBoundError, CircularDependencyError, AlreadyBoundError } from './errors';\nexport { createToken } from './token';\nexport { createContainer } from './container';\nexport { createPreset } from './preset';\nexport { createApplication, CURRENT_APP } from './application';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_errors","require","_token","_container","_preset","_application"],"sources":["../../../src/di/index.ts"],"sourcesContent":["export type { Token, Resolve, Provider, Container, Application, Preset } from './types';\nexport { NothingBoundError, CircularDependencyError, AlreadyBoundError } from './errors';\nexport { createToken } from './token';\nexport { createContainer } from './container';\nexport { createPreset } from './preset';\nexport { createApplication, CURRENT_APP } from './application';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","names":["PresetImplementation","constructor","defaults","registry","Map","set","token","provider","apply","app","bind","toProvider","createPreset"],"sources":["../../../src/di/preset.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport type { Application, Provider, Token, Preset } from './types';\n\ntype PresetEntry<T = any> = [Token<T>, Provider<T>];\n\nclass PresetImplementation implements Preset {\n private registry: Map<Token<any>, Provider<any>>;\n\n constructor(defaults?: Iterable<PresetEntry>) {\n this.registry = new Map<Token<any>, Provider<any>>(defaults);\n }\n\n set<T>(token: Token<T>, provider: Provider<T>): this {\n this.registry.set(token, provider);\n return this;\n }\n\n apply(app: Application): void {\n for (const [token, provider] of this.registry) {\n app.bind(token).toProvider(provider);\n }\n }\n}\n\n/**\n * Возвращает новый \"preset\" для DI-приложения - набор предустановленных компонентов которые можно переопределять.\n * @param defaults Предустановленные зависимости.\n * @return Preset.\n */\nexport function createPreset(defaults?: PresetEntry[]): Preset {\n return new PresetImplementation(defaults);\n}\n"],"mappings":";;;;;;AAAA;;AAKA,MAAMA,oBAAoB,CAAmB;EAG3CC,WAAWA,CAACC,QAAgC,EAAE;IAC5C,IAAI,CAACC,QAAQ,GAAG,IAAIC,GAAG,CAA4BF,QAAQ,CAAC;EAC9D;EAEAG,GAAGA,CAAIC,KAAe,EAAEC,QAAqB,EAAQ;IACnD,IAAI,CAACJ,QAAQ,CAACE,GAAG,CAACC,KAAK,EAAEC,QAAQ,CAAC;IAClC,OAAO,IAAI;EACb;EAEAC,KAAKA,CAACC,GAAgB,EAAQ;IAC5B,KAAK,MAAM,CAACH,KAAK,EAAEC,QAAQ,CAAC,IAAI,IAAI,CAACJ,QAAQ,EAAE;MAC7CM,GAAG,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACK,UAAU,CAACJ,QAAQ,CAAC;IACtC;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASK,YAAYA,CAACV,QAAwB,EAAU;EAC7D,OAAO,IAAIF,oBAAoB,CAACE,QAAQ,CAAC;AAC3C"}
|
|
1
|
+
{"version":3,"file":"preset.js","names":["PresetImplementation","constructor","defaults","registry","Map","set","token","provider","apply","app","bind","toProvider","createPreset"],"sources":["../../../src/di/preset.ts"],"sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport type { Application, Provider, Token, Preset } from './types';\n\ntype PresetEntry<T = any> = [Token<T>, Provider<T>];\n\nclass PresetImplementation implements Preset {\n private registry: Map<Token<any>, Provider<any>>;\n\n constructor(defaults?: Iterable<PresetEntry>) {\n this.registry = new Map<Token<any>, Provider<any>>(defaults);\n }\n\n set<T>(token: Token<T>, provider: Provider<T>): this {\n this.registry.set(token, provider);\n return this;\n }\n\n apply(app: Application): void {\n for (const [token, provider] of this.registry) {\n app.bind(token).toProvider(provider);\n }\n }\n}\n\n/**\n * Возвращает новый \"preset\" для DI-приложения - набор предустановленных компонентов которые можно переопределять.\n * @param defaults Предустановленные зависимости.\n * @return Preset.\n */\nexport function createPreset(defaults?: PresetEntry[]): Preset {\n return new PresetImplementation(defaults);\n}\n"],"mappings":";;;;;;AAAA;;AAKA,MAAMA,oBAAoB,CAAmB;EAG3CC,WAAWA,CAACC,QAAgC,EAAE;IAC5C,IAAI,CAACC,QAAQ,GAAG,IAAIC,GAAG,CAA4BF,QAAQ,CAAC;EAC9D;EAEAG,GAAGA,CAAIC,KAAe,EAAEC,QAAqB,EAAQ;IACnD,IAAI,CAACJ,QAAQ,CAACE,GAAG,CAACC,KAAK,EAAEC,QAAQ,CAAC;IAClC,OAAO,IAAI;EACb;EAEAC,KAAKA,CAACC,GAAgB,EAAQ;IAC5B,KAAK,MAAM,CAACH,KAAK,EAAEC,QAAQ,CAAC,IAAI,IAAI,CAACJ,QAAQ,EAAE;MAC7CM,GAAG,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACK,UAAU,CAACJ,QAAQ,CAAC;IACtC;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASK,YAAYA,CAACV,QAAwB,EAAU;EAC7D,OAAO,IAAIF,oBAAoB,CAACE,QAAQ,CAAC;AAC3C","ignoreList":[]}
|
package/dist/cjs/di/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","names":["TokenImplementation","constructor","name","_key","Symbol","_resolve","registry","get","toString","description","createToken"],"sources":["../../../src/di/token.ts"],"sourcesContent":["import { Token } from './types';\n\n/**\n * Реализация токена.\n */\nclass TokenImplementation<T = never> implements Token<T> {\n readonly _key: symbol;\n\n /**\n * Конструктор.\n * @param name Имя для отладки.\n */\n constructor(name?: string) {\n this._key = Symbol(name);\n }\n\n /**\n * Получив реестр вернет из него нужный компонент.\n * @param registry Реестр.\n * @return Компонент.\n */\n _resolve(registry: Map<symbol, any>): T {\n return registry.get(this._key);\n }\n\n /**\n * @inheritdoc\n */\n toString(): string {\n return `Token(${this._key.description ?? 'unknown'})`;\n }\n}\n\n/**\n * Возвращает новый токен.\n * @param name Имя токена для отладки в случае ошибок.\n * @return Токен.\n */\nexport function createToken<T = never>(name?: string): Token<T> {\n return new TokenImplementation(name);\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA,MAAMA,mBAAmB,CAAgC;EAGvD;AACF;AACA;AACA;EACEC,WAAWA,CAACC,IAAa,EAAE;IACzB,IAAI,CAACC,IAAI,GAAGC,MAAM,CAACF,IAAI,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;AACA;EACEG,QAAQA,CAACC,QAA0B,EAAK;IACtC,OAAOA,QAAQ,CAACC,GAAG,CAAC,IAAI,CAACJ,IAAI,CAAC;EAChC;;EAEA;AACF;AACA;EACEK,QAAQA,CAAA,EAAW;IACjB,
|
|
1
|
+
{"version":3,"file":"token.js","names":["TokenImplementation","constructor","name","_key","Symbol","_resolve","registry","get","toString","description","createToken"],"sources":["../../../src/di/token.ts"],"sourcesContent":["import { Token } from './types';\n\n/**\n * Реализация токена.\n */\nclass TokenImplementation<T = never> implements Token<T> {\n readonly _key: symbol;\n\n /**\n * Конструктор.\n * @param name Имя для отладки.\n */\n constructor(name?: string) {\n this._key = Symbol(name);\n }\n\n /**\n * Получив реестр вернет из него нужный компонент.\n * @param registry Реестр.\n * @return Компонент.\n */\n _resolve(registry: Map<symbol, any>): T {\n return registry.get(this._key);\n }\n\n /**\n * @inheritdoc\n */\n toString(): string {\n return `Token(${this._key.description ?? 'unknown'})`;\n }\n}\n\n/**\n * Возвращает новый токен.\n * @param name Имя токена для отладки в случае ошибок.\n * @return Токен.\n */\nexport function createToken<T = never>(name?: string): Token<T> {\n return new TokenImplementation(name);\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA,MAAMA,mBAAmB,CAAgC;EAGvD;AACF;AACA;AACA;EACEC,WAAWA,CAACC,IAAa,EAAE;IACzB,IAAI,CAACC,IAAI,GAAGC,MAAM,CAACF,IAAI,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;AACA;EACEG,QAAQA,CAACC,QAA0B,EAAK;IACtC,OAAOA,QAAQ,CAACC,GAAG,CAAC,IAAI,CAACJ,IAAI,CAAC;EAChC;;EAEA;AACF;AACA;EACEK,QAAQA,CAAA,EAAW;IACjB,OAAO,SAAS,IAAI,CAACL,IAAI,CAACM,WAAW,IAAI,SAAS,GAAG;EACvD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAAYR,IAAa,EAAY;EAC9D,OAAO,IAAIF,mBAAmB,CAACE,IAAI,CAAC;AACtC","ignoreList":[]}
|
package/dist/cjs/di/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/di/types.ts"],"sourcesContent":["/**\n * Токен - ключ который можно использовать для привязки реализации и получения компонента из контейнера.\n * За токеном можно закрепить интерфейс. В дальнейшем это поможет нне ошибиться при привязке реализации.\n */\nexport interface Token<T> {\n readonly _key: symbol;\n readonly _resolve: (registry: Map<symbol, any>) => T;\n}\n\n/**\n * Резолвер. Получив токен вернет реализацию интерфейса, который за ним закреплён.\n */\nexport interface Resolve {\n <T>(token: Token<T>): T;\n}\n\n/**\n * Провайдер - функция, которая, получив резолвер, должна вернуть реализацию интерфейса.\n */\nexport interface Provider<T> {\n (resolve: Resolve): T;\n}\n\n/**\n * DI-контейнер.\n * Позволяет зарегистрировать за токеном компонент в виде функции-провайдера и в дальнейшем получить его по токену.\n */\nexport interface Container {\n /**\n * Регистрирует провайдер.\n */\n set: <T = never>(token: Token<T>, provider: Provider<T>) => void;\n\n get: Resolve;\n}\n\n/**\n * Интерфейс привязки компонента к токену.\n */\nexport interface Binding<T> {\n /**\n * Привязывает к токену конкретное \"статическое\" значение.\n */\n toValue: (value: T) => void;\n\n /**\n * Привязывает к токену функцию-провайдер.\n */\n toProvider: (provider: Provider<T>) => void;\n}\n\n/** @internal */\nexport type ExtractType<T extends readonly Token<any>[]> = {\n [index in keyof T]: T[index] extends T[number] ? ReturnType<T[index]['_resolve']> : never;\n};\n\n/**\n * DI-Приложение. Расширенная версия DI-контейнера.\n * Позволяет применять пресеты, задавать \"родительские\" приложения, вызывать callback-функции с инъекцией компонентов.\n */\nexport interface Application {\n /**\n * Добавляет пресет к приложению. Пресет будет применен в момент первой попытки получить компонент или вызвать функцию.\n */\n preset(preset: Preset): void;\n\n /**\n * Получив приложение, пометит его как \"родительское\".\n * При попытке достать компонент, в случае если его нет в текущем приложении, будет произведена попытка найти его в \"родительском\".\n */\n attach(parent: Application): void;\n\n /**\n * Аналог метода set у Container. Получив токен вернет интерфейс привязки реализации.\n * @param token Токен.\n */\n bind<T>(token: Token<T>): Binding<T>;\n\n /**\n * Получив токен, вернет его реализацию если она была зарегистрирована.\n * @param token Токен.\n */\n get<T>(token: Token<T>): T;\n\n /**\n * Получив список токенов и callback-функцию, вызовет функцию с компонентами по соответствующим токенам.\n */\n invoke<Tokens extends readonly Token<any>[]>(\n tokens: [...Tokens],\n fn: (...args: ExtractType<Tokens>) => void,\n ): void;\n}\n\n/**\n * Пресет - набор провайдеров (с возможностью их добавлять/переопределять) который можно применить к DI-приложению.\n */\nexport interface Preset {\n /** Добавляет провайдер в пресет. */\n set: <T>(token: Token<T>, provider: Provider<T>) => this;\n\n /** Применяет пресет к переданному приложению. */\n apply: (app: Application) => void;\n\n // @todo preventExtensions()\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/di/types.ts"],"sourcesContent":["/**\n * Токен - ключ который можно использовать для привязки реализации и получения компонента из контейнера.\n * За токеном можно закрепить интерфейс. В дальнейшем это поможет нне ошибиться при привязке реализации.\n */\nexport interface Token<T> {\n readonly _key: symbol;\n readonly _resolve: (registry: Map<symbol, any>) => T;\n}\n\n/**\n * Резолвер. Получив токен вернет реализацию интерфейса, который за ним закреплён.\n */\nexport interface Resolve {\n <T>(token: Token<T>): T;\n}\n\n/**\n * Провайдер - функция, которая, получив резолвер, должна вернуть реализацию интерфейса.\n */\nexport interface Provider<T> {\n (resolve: Resolve): T;\n}\n\n/**\n * DI-контейнер.\n * Позволяет зарегистрировать за токеном компонент в виде функции-провайдера и в дальнейшем получить его по токену.\n */\nexport interface Container {\n /**\n * Регистрирует провайдер.\n */\n set: <T = never>(token: Token<T>, provider: Provider<T>) => void;\n\n get: Resolve;\n}\n\n/**\n * Интерфейс привязки компонента к токену.\n */\nexport interface Binding<T> {\n /**\n * Привязывает к токену конкретное \"статическое\" значение.\n */\n toValue: (value: T) => void;\n\n /**\n * Привязывает к токену функцию-провайдер.\n */\n toProvider: (provider: Provider<T>) => void;\n}\n\n/** @internal */\nexport type ExtractType<T extends readonly Token<any>[]> = {\n [index in keyof T]: T[index] extends T[number] ? ReturnType<T[index]['_resolve']> : never;\n};\n\n/**\n * DI-Приложение. Расширенная версия DI-контейнера.\n * Позволяет применять пресеты, задавать \"родительские\" приложения, вызывать callback-функции с инъекцией компонентов.\n */\nexport interface Application {\n /**\n * Добавляет пресет к приложению. Пресет будет применен в момент первой попытки получить компонент или вызвать функцию.\n */\n preset(preset: Preset): void;\n\n /**\n * Получив приложение, пометит его как \"родительское\".\n * При попытке достать компонент, в случае если его нет в текущем приложении, будет произведена попытка найти его в \"родительском\".\n */\n attach(parent: Application): void;\n\n /**\n * Аналог метода set у Container. Получив токен вернет интерфейс привязки реализации.\n * @param token Токен.\n */\n bind<T>(token: Token<T>): Binding<T>;\n\n /**\n * Получив токен, вернет его реализацию если она была зарегистрирована.\n * @param token Токен.\n */\n get<T>(token: Token<T>): T;\n\n /**\n * Получив список токенов и callback-функцию, вызовет функцию с компонентами по соответствующим токенам.\n */\n invoke<Tokens extends readonly Token<any>[]>(\n tokens: [...Tokens],\n fn: (...args: ExtractType<Tokens>) => void,\n ): void;\n}\n\n/**\n * Пресет - набор провайдеров (с возможностью их добавлять/переопределять) который можно применить к DI-приложению.\n */\nexport interface Preset {\n /** Добавляет провайдер в пресет. */\n set: <T>(token: Token<T>, provider: Provider<T>) => this;\n\n /** Применяет пресет к переданному приложению. */\n apply: (app: Application) => void;\n\n // @todo preventExtensions()\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":["StatusError","Error","constructor","response","status","name","is","value","exports","ResponseError","message","statusCodeOrInit","logLevel","statusCode","redirectLocation"],"sources":["../../../src/http/errors.ts"],"sourcesContent":["import type { LogLevel } from '../log';\nimport type { ResponseErrorInit } from './types';\n\n/**\n * Ошибка валидации статуса ответа.\n * @todo Переименовать в HttpStatusValidationError?\n */\nexport class StatusError extends Error {\n readonly response: Response;\n\n /**\n * @param response Ответ.\n */\n constructor(response: Response) {\n super(`HTTP Request failed with status ${response.status}`);\n this.name = 'StatusError';\n this.response = response;\n }\n\n /**\n * Определяет, является ли переданное значение ошибкой валидации статуса.\n * @param value Значение.\n * @return Результат.\n */\n static is(value: unknown): value is StatusError {\n return (value as any)?.name === 'StatusError';\n }\n}\n\n/**\n * Ошибка в процессе формирования ответа.\n */\nexport class ResponseError extends Error {\n logLevel: LogLevel | null;\n statusCode: number;\n redirectLocation: string | null;\n\n /**\n * @param message Сообщение.\n * @param statusCodeOrInit Код ответа.\n */\n constructor(message: string, statusCodeOrInit: number | ResponseErrorInit = 500) {\n super(message);\n this.name = 'ResponseError';\n\n if (typeof statusCodeOrInit === 'number') {\n this.logLevel = 'error';\n this.statusCode = statusCodeOrInit;\n this.redirectLocation = null;\n } else {\n this.logLevel = statusCodeOrInit.logLevel ?? 'error';\n this.statusCode = statusCodeOrInit.statusCode ?? 500;\n this.redirectLocation = statusCodeOrInit.redirectLocation ?? null;\n }\n }\n}\n"],"mappings":";;;;;;AAGA;AACA;AACA;AACA;AACO,MAAMA,WAAW,SAASC,KAAK,CAAC;EAGrC;AACF;AACA;EACEC,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,
|
|
1
|
+
{"version":3,"file":"errors.js","names":["StatusError","Error","constructor","response","status","name","is","value","exports","ResponseError","message","statusCodeOrInit","logLevel","statusCode","redirectLocation"],"sources":["../../../src/http/errors.ts"],"sourcesContent":["import type { LogLevel } from '../log';\nimport type { ResponseErrorInit } from './types';\n\n/**\n * Ошибка валидации статуса ответа.\n * @todo Переименовать в HttpStatusValidationError?\n */\nexport class StatusError extends Error {\n readonly response: Response;\n\n /**\n * @param response Ответ.\n */\n constructor(response: Response) {\n super(`HTTP Request failed with status ${response.status}`);\n this.name = 'StatusError';\n this.response = response;\n }\n\n /**\n * Определяет, является ли переданное значение ошибкой валидации статуса.\n * @param value Значение.\n * @return Результат.\n */\n static is(value: unknown): value is StatusError {\n return (value as any)?.name === 'StatusError';\n }\n}\n\n/**\n * Ошибка в процессе формирования ответа.\n */\nexport class ResponseError extends Error {\n logLevel: LogLevel | null;\n statusCode: number;\n redirectLocation: string | null;\n\n /**\n * @param message Сообщение.\n * @param statusCodeOrInit Код ответа.\n */\n constructor(message: string, statusCodeOrInit: number | ResponseErrorInit = 500) {\n super(message);\n this.name = 'ResponseError';\n\n if (typeof statusCodeOrInit === 'number') {\n this.logLevel = 'error';\n this.statusCode = statusCodeOrInit;\n this.redirectLocation = null;\n } else {\n this.logLevel = statusCodeOrInit.logLevel ?? 'error';\n this.statusCode = statusCodeOrInit.statusCode ?? 500;\n this.redirectLocation = statusCodeOrInit.redirectLocation ?? null;\n }\n }\n}\n"],"mappings":";;;;;;AAGA;AACA;AACA;AACA;AACO,MAAMA,WAAW,SAASC,KAAK,CAAC;EAGrC;AACF;AACA;EACEC,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,CAAC,mCAAmCA,QAAQ,CAACC,MAAM,EAAE,CAAC;IAC3D,IAAI,CAACC,IAAI,GAAG,aAAa;IACzB,IAAI,CAACF,QAAQ,GAAGA,QAAQ;EAC1B;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOG,EAAEA,CAACC,KAAc,EAAwB;IAC9C,OAAQA,KAAK,EAAUF,IAAI,KAAK,aAAa;EAC/C;AACF;;AAEA;AACA;AACA;AAFAG,OAAA,CAAAR,WAAA,GAAAA,WAAA;AAGO,MAAMS,aAAa,SAASR,KAAK,CAAC;EAKvC;AACF;AACA;AACA;EACEC,WAAWA,CAACQ,OAAe,EAAEC,gBAA4C,GAAG,GAAG,EAAE;IAC/E,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACL,IAAI,GAAG,eAAe;IAE3B,IAAI,OAAOM,gBAAgB,KAAK,QAAQ,EAAE;MACxC,IAAI,CAACC,QAAQ,GAAG,OAAO;MACvB,IAAI,CAACC,UAAU,GAAGF,gBAAgB;MAClC,IAAI,CAACG,gBAAgB,GAAG,IAAI;IAC9B,CAAC,MAAM;MACL,IAAI,CAACF,QAAQ,GAAGD,gBAAgB,CAACC,QAAQ,IAAI,OAAO;MACpD,IAAI,CAACC,UAAU,GAAGF,gBAAgB,CAACE,UAAU,IAAI,GAAG;MACpD,IAAI,CAACC,gBAAgB,GAAGH,gBAAgB,CAACG,gBAAgB,IAAI,IAAI;IACnE;EACF;AACF;AAACN,OAAA,CAAAC,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_fetchTools","require","_middleware","_errors","_utils"],"sources":["../../../src/http/index.ts"],"sourcesContent":["export type {\n Handler,\n Enhancer,\n Middleware,\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n EitherResponse,\n ResponseDone,\n ResponseFail,\n ResponseErrorInit,\n} from './types';\nexport { configureFetch, applyMiddleware } from '@krutoo/fetch-tools';\nexport { log, proxy, defaultHeaders, validateStatus } from '@krutoo/fetch-tools/middleware';\nexport { StatusError, ResponseError } from './errors';\nexport { FetchUtil } from './utils';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_fetchTools","require","_middleware","_errors","_utils"],"sources":["../../../src/http/index.ts"],"sourcesContent":["export type {\n Handler,\n Enhancer,\n Middleware,\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n EitherResponse,\n ResponseDone,\n ResponseFail,\n ResponseErrorInit,\n} from './types';\nexport { configureFetch, applyMiddleware } from '@krutoo/fetch-tools';\nexport { log, proxy, defaultHeaders, validateStatus } from '@krutoo/fetch-tools/middleware';\nexport { StatusError, ResponseError } from './errors';\nexport { FetchUtil } from './utils';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/http/types.ts"],"sourcesContent":["import type { LogLevel } from '../log';\n\nexport type { Handler, Enhancer, Middleware } from '@krutoo/fetch-tools';\n\nexport type {\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n} from '@krutoo/fetch-tools/middleware';\n\nexport type URLSearchParamsInit = Record<string, string | number | boolean | undefined | null>;\n\nexport interface ResponseDone<T = unknown> {\n ok: true;\n data: T;\n error: null;\n status: number;\n statusText: string;\n headers: Headers;\n}\n\nexport interface ResponseFail<T = unknown> {\n ok: false;\n data?: T;\n error: unknown;\n status?: number;\n statusText?: string;\n headers?: Headers;\n}\n\nexport type EitherResponse<T> = ResponseDone<T> | ResponseFail<T>;\n\nexport interface ResponseErrorInit {\n statusCode?: number;\n redirectLocation?: string;\n logLevel?: LogLevel | null;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/http/types.ts"],"sourcesContent":["import type { LogLevel } from '../log';\n\nexport type { Handler, Enhancer, Middleware } from '@krutoo/fetch-tools';\n\nexport type {\n LogData,\n DoneLogData,\n FailLogData,\n LogHandler,\n LogHandlerFactory,\n ProxyOptions,\n} from '@krutoo/fetch-tools/middleware';\n\nexport type URLSearchParamsInit = Record<string, string | number | boolean | undefined | null>;\n\nexport interface ResponseDone<T = unknown> {\n ok: true;\n data: T;\n error: null;\n status: number;\n statusText: string;\n headers: Headers;\n}\n\nexport interface ResponseFail<T = unknown> {\n ok: false;\n data?: T;\n error: unknown;\n status?: number;\n statusText?: string;\n headers?: Headers;\n}\n\nexport type EitherResponse<T> = ResponseDone<T> | ResponseFail<T>;\n\nexport interface ResponseErrorInit {\n statusCode?: number;\n redirectLocation?: string;\n logLevel?: LogLevel | null;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["FetchUtil","exports","setParams","url","params","paramName","paramValue","Object","entries","searchParams","delete","undefined","set","String","withParams","resultUrl","URL","withoutParams","search","eitherResponse","parseBody","response","json","parse","ok","data","error","Error","status","statusText","headers","isError","value","prototype","toString","call","networkErrorMessages","Set","isNetworkError","isValid","name","message","stack","has","isAbortError"],"sources":["../../../src/http/utils.ts"],"sourcesContent":["import type { URLSearchParamsInit, ResponseDone, ResponseFail } from './types';\n\n/**\n * Утилиты для работы с URL, URLSearchParams, Headers, Request, Response.\n */\nexport const FetchUtil = {\n /**\n * Получив параметры применит их к переданному URL.\n * @param url URL.\n * @param params Параметры.\n */\n setParams(url: URL, params: URLSearchParamsInit): void {\n for (const [paramName, paramValue] of Object.entries(params)) {\n if (paramValue === null) {\n url.searchParams.delete(paramName);\n continue;\n }\n\n if (paramValue !== undefined) {\n url.searchParams.set(paramName, String(paramValue));\n continue;\n }\n }\n },\n\n // @todo resetPrams?\n\n /**\n * Получив URL и параметры вернет новый URL с примененными параметрами.\n * @param url URL.\n * @param params Параметры.\n * @return URL.\n */\n withParams(url: string | URL, params: URLSearchParamsInit): URL {\n const resultUrl = new URL(url);\n\n FetchUtil.setParams(resultUrl, params);\n\n return resultUrl;\n },\n\n /**\n * Получив URL вернет его копию но без параметров.\n * @param url URL.\n * @return URL.\n */\n withoutParams(url: string | URL): URL {\n const resultUrl = new URL(url);\n\n resultUrl.search = '';\n\n return resultUrl;\n },\n\n /**\n * Возвращает кортеж обработчиков для Promise из fetch.\n * Полученный Promise никогда не уйдет в состояние rejected.\n * @param options Опции.\n * @return Кортеж.\n */\n eitherResponse<T = unknown>({\n parseBody = response => response.json(),\n }: {\n /** Парсер body. */\n parseBody?: (response: Response) => Promise<T>;\n } = {}) {\n /** @inheritdoc */\n const parse = async (response: Response): Promise<T | null> => {\n try {\n return await parseBody(response);\n } catch {\n return null;\n }\n };\n\n return [\n // then\n async (response: Response): Promise<ResponseDone<T> | ResponseFail<T>> => {\n if (!response.ok) {\n return {\n ok: false,\n data: (await parse(response)) as T,\n error: new Error(`Request failed with status code ${response.status}`),\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n return {\n ok: true,\n data: (await parse(response)) as T,\n error: null,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n },\n\n // catch\n async (error: unknown): Promise<ResponseFail<T>> => ({\n ok: false,\n error,\n }),\n ] as const;\n },\n} as const;\n\n/**\n * Проверяет, является ли переданное значение ошибкой.\n * @param value Значение.\n * @return Является ли значение ошибкой.\n */\nfunction isError(value: unknown): value is Error {\n return Object.prototype.toString.call(value) === '[object Error]';\n}\n\n// Основано на исходном коде пакета https://github.com/sindresorhus/is-network-error\nconst networkErrorMessages = new Set([\n 'network error', // Chrome\n 'Failed to fetch', // Chrome\n 'NetworkError when attempting to fetch resource.', // Firefox\n 'The Internet connection appears to be offline.', // Safari 16\n 'Load failed', // Safari 17+\n 'Network request failed', // `cross-fetch`\n 'fetch failed', // Undici (Node.js)\n 'terminated', // Undici (Node.js)\n\n // дальше идут наши наработки (основано на данных из Sentry)\n 'Network Error', // Safari 17.4\n]);\n\n/**\n * Проверяет, является ли переданное значение ошибкой сети.\n * Основано на исходном коде пакета https://github.com/sindresorhus/is-network-error.\n * Нет возможности использовать пакет is-network-error по причине того что он - ESM only.\n * @param value Проверяемое значение.\n * @return Является ли значение TypeError о том что произошла ошибка сети.\n */\nexport function isNetworkError(value: unknown): value is TypeError {\n const isValid = isError(value) && value.name === 'TypeError' && typeof value.message === 'string';\n\n if (!isValid) {\n return false;\n }\n\n // ВАЖНО: в Safari 17+ ошибки имеют определенное сообщение и не имеют свойства stack\n if (value.message === 'Load failed') {\n return value.stack === undefined;\n }\n\n return networkErrorMessages.has(value.message);\n}\n\n/**\n * Проверяет является ли переданное значение ошибкой обрывания с помощью AbortController.\n * @param value Проверяемое значение.\n * @return Является ли значение ошибкой обрывания.\n */\nexport function isAbortError(value: unknown): value is { name: 'AbortError' } {\n return typeof value === 'object' && value !== null && (value as any).name === 'AbortError';\n}\n"],"mappings":";;;;;;;;AAEA;AACA;AACA;AACO,MAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACvB;AACF;AACA;AACA;AACA;EACEE,SAASA,CAACC,GAAQ,EAAEC,MAA2B,EAAQ;IACrD,KAAK,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;MAC5D,IAAIE,UAAU,KAAK,IAAI,EAAE;QACvBH,GAAG,CAACM,YAAY,CAACC,MAAM,CAACL,SAAS,CAAC;QAClC;MACF;MAEA,IAAIC,UAAU,KAAKK,SAAS,EAAE;QAC5BR,GAAG,CAACM,YAAY,CAACG,GAAG,CAACP,SAAS,EAAEQ,MAAM,CAACP,UAAU,CAAC,CAAC;QACnD;MACF;IACF;EACF,CAAC;EAED;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEQ,UAAUA,CAACX,GAAiB,EAAEC,MAA2B,EAAO;IAC9D,MAAMW,SAAS,GAAG,IAAIC,GAAG,CAACb,GAAG,CAAC;IAE9BH,SAAS,CAACE,SAAS,CAACa,SAAS,EAAEX,MAAM,CAAC;IAEtC,OAAOW,SAAS;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;EACEE,aAAaA,CAACd,GAAiB,EAAO;IACpC,MAAMY,SAAS,GAAG,IAAIC,GAAG,CAACb,GAAG,CAAC;IAE9BY,SAAS,CAACG,MAAM,GAAG,EAAE;IAErB,OAAOH,SAAS;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEI,cAAcA,CAAc;IAC1BC,SAAS,GAAGC,QAAQ,IAAIA,QAAQ,CAACC,IAAI,CAAC;EAIxC,CAAC,GAAG,CAAC,CAAC,EAAE;IACN;IACA,MAAMC,KAAK,GAAG,MAAOF,QAAkB,IAAwB;MAC7D,IAAI;QACF,OAAO,MAAMD,SAAS,CAACC,QAAQ,CAAC;MAClC,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF,CAAC;IAED,OAAO;IACL;IACA,MAAOA,QAAkB,IAAiD;MACxE,IAAI,CAACA,QAAQ,CAACG,EAAE,EAAE;QAChB,OAAO;UACLA,EAAE,EAAE,KAAK;UACTC,IAAI,EAAG,MAAMF,KAAK,CAACF,QAAQ,CAAO;UAClCK,KAAK,EAAE,IAAIC,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["FetchUtil","exports","setParams","url","params","paramName","paramValue","Object","entries","searchParams","delete","undefined","set","String","withParams","resultUrl","URL","withoutParams","search","eitherResponse","parseBody","response","json","parse","ok","data","error","Error","status","statusText","headers","isError","value","prototype","toString","call","networkErrorMessages","Set","isNetworkError","isValid","name","message","stack","has","isAbortError"],"sources":["../../../src/http/utils.ts"],"sourcesContent":["import type { URLSearchParamsInit, ResponseDone, ResponseFail } from './types';\n\n/**\n * Утилиты для работы с URL, URLSearchParams, Headers, Request, Response.\n */\nexport const FetchUtil = {\n /**\n * Получив параметры применит их к переданному URL.\n * @param url URL.\n * @param params Параметры.\n */\n setParams(url: URL, params: URLSearchParamsInit): void {\n for (const [paramName, paramValue] of Object.entries(params)) {\n if (paramValue === null) {\n url.searchParams.delete(paramName);\n continue;\n }\n\n if (paramValue !== undefined) {\n url.searchParams.set(paramName, String(paramValue));\n continue;\n }\n }\n },\n\n // @todo resetPrams?\n\n /**\n * Получив URL и параметры вернет новый URL с примененными параметрами.\n * @param url URL.\n * @param params Параметры.\n * @return URL.\n */\n withParams(url: string | URL, params: URLSearchParamsInit): URL {\n const resultUrl = new URL(url);\n\n FetchUtil.setParams(resultUrl, params);\n\n return resultUrl;\n },\n\n /**\n * Получив URL вернет его копию но без параметров.\n * @param url URL.\n * @return URL.\n */\n withoutParams(url: string | URL): URL {\n const resultUrl = new URL(url);\n\n resultUrl.search = '';\n\n return resultUrl;\n },\n\n /**\n * Возвращает кортеж обработчиков для Promise из fetch.\n * Полученный Promise никогда не уйдет в состояние rejected.\n * @param options Опции.\n * @return Кортеж.\n */\n eitherResponse<T = unknown>({\n parseBody = response => response.json(),\n }: {\n /** Парсер body. */\n parseBody?: (response: Response) => Promise<T>;\n } = {}) {\n /** @inheritdoc */\n const parse = async (response: Response): Promise<T | null> => {\n try {\n return await parseBody(response);\n } catch {\n return null;\n }\n };\n\n return [\n // then\n async (response: Response): Promise<ResponseDone<T> | ResponseFail<T>> => {\n if (!response.ok) {\n return {\n ok: false,\n data: (await parse(response)) as T,\n error: new Error(`Request failed with status code ${response.status}`),\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n return {\n ok: true,\n data: (await parse(response)) as T,\n error: null,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n },\n\n // catch\n async (error: unknown): Promise<ResponseFail<T>> => ({\n ok: false,\n error,\n }),\n ] as const;\n },\n} as const;\n\n/**\n * Проверяет, является ли переданное значение ошибкой.\n * @param value Значение.\n * @return Является ли значение ошибкой.\n */\nfunction isError(value: unknown): value is Error {\n return Object.prototype.toString.call(value) === '[object Error]';\n}\n\n// Основано на исходном коде пакета https://github.com/sindresorhus/is-network-error\nconst networkErrorMessages = new Set([\n 'network error', // Chrome\n 'Failed to fetch', // Chrome\n 'NetworkError when attempting to fetch resource.', // Firefox\n 'The Internet connection appears to be offline.', // Safari 16\n 'Load failed', // Safari 17+\n 'Network request failed', // `cross-fetch`\n 'fetch failed', // Undici (Node.js)\n 'terminated', // Undici (Node.js)\n\n // дальше идут наши наработки (основано на данных из Sentry)\n 'Network Error', // Safari 17.4\n]);\n\n/**\n * Проверяет, является ли переданное значение ошибкой сети.\n * Основано на исходном коде пакета https://github.com/sindresorhus/is-network-error.\n * Нет возможности использовать пакет is-network-error по причине того что он - ESM only.\n * @param value Проверяемое значение.\n * @return Является ли значение TypeError о том что произошла ошибка сети.\n */\nexport function isNetworkError(value: unknown): value is TypeError {\n const isValid = isError(value) && value.name === 'TypeError' && typeof value.message === 'string';\n\n if (!isValid) {\n return false;\n }\n\n // ВАЖНО: в Safari 17+ ошибки имеют определенное сообщение и не имеют свойства stack\n if (value.message === 'Load failed') {\n return value.stack === undefined;\n }\n\n return networkErrorMessages.has(value.message);\n}\n\n/**\n * Проверяет является ли переданное значение ошибкой обрывания с помощью AbortController.\n * @param value Проверяемое значение.\n * @return Является ли значение ошибкой обрывания.\n */\nexport function isAbortError(value: unknown): value is { name: 'AbortError' } {\n return typeof value === 'object' && value !== null && (value as any).name === 'AbortError';\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":["DetailedError","Error","constructor","message","data","exports","Breadcrumb","type"],"sources":["../../../src/log/errors.ts"],"sourcesContent":["import type { ErrorDetails, BreadcrumbDetails } from './types';\n\n/**\n * Ошибка с данными.\n */\nexport class DetailedError extends Error {\n data: ErrorDetails;\n\n /**\n * @param message Сообщение.\n * @param data Данные.\n */\n constructor(message?: string, data: ErrorDetails = {}) {\n super(message);\n this.data = data;\n }\n}\n\n/**\n * Хлебная крошка.\n */\nexport class Breadcrumb {\n type: string;\n data: BreadcrumbDetails;\n\n /**\n * @param data Данные.\n */\n constructor(data: BreadcrumbDetails) {\n this.type = 'breadcrumb';\n this.data = data;\n }\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,aAAa,SAASC,KAAK,CAAC;EAGvC;AACF;AACA;AACA;EACEC,WAAWA,CAACC,OAAgB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAAE;IACrD,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;;AAEA;AACA;AACA;AAFAC,OAAA,CAAAL,aAAA,GAAAA,aAAA;AAGO,MAAMM,UAAU,CAAC;EAItB;AACF;AACA;EACEJ,WAAWA,CAACE,IAAuB,EAAE;IACnC,IAAI,CAACG,IAAI,GAAG,YAAY;IACxB,IAAI,CAACH,IAAI,GAAGA,IAAI;EAClB;AACF;AAACC,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
|
|
1
|
+
{"version":3,"file":"errors.js","names":["DetailedError","Error","constructor","message","data","exports","Breadcrumb","type"],"sources":["../../../src/log/errors.ts"],"sourcesContent":["import type { ErrorDetails, BreadcrumbDetails } from './types';\n\n/**\n * Ошибка с данными.\n */\nexport class DetailedError extends Error {\n data: ErrorDetails;\n\n /**\n * @param message Сообщение.\n * @param data Данные.\n */\n constructor(message?: string, data: ErrorDetails = {}) {\n super(message);\n this.data = data;\n }\n}\n\n/**\n * Хлебная крошка.\n */\nexport class Breadcrumb {\n type: string;\n data: BreadcrumbDetails;\n\n /**\n * @param data Данные.\n */\n constructor(data: BreadcrumbDetails) {\n this.type = 'breadcrumb';\n this.data = data;\n }\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,aAAa,SAASC,KAAK,CAAC;EAGvC;AACF;AACA;AACA;EACEC,WAAWA,CAACC,OAAgB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAAE;IACrD,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;;AAEA;AACA;AACA;AAFAC,OAAA,CAAAL,aAAA,GAAAA,aAAA;AAGO,MAAMM,UAAU,CAAC;EAItB;AACF;AACA;EACEJ,WAAWA,CAACE,IAAuB,EAAE;IACnC,IAAI,CAACG,IAAI,GAAG,YAAY;IACxB,IAAI,CAACH,IAAI,GAAGA,IAAI;EAClB;AACF;AAACC,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pino.js","names":["createPinoHandler","pinoInstance","pinoHandler","event","type","info","data","warn","debug","error"],"sources":["../../../../src/log/handler/pino.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport type pino from 'pino';\n\n/**\n * Возвращает новый handler для logger'а для вывода событий в терминал.\n * @param pinoInstance Конфиг.\n * @return Handler.\n */\nexport function createPinoHandler(pinoInstance: pino.Logger): LogHandler {\n return function pinoHandler(event) {\n switch (event.type) {\n case 'log':\n case 'info':\n pinoInstance.info(event.data);\n break;\n case 'warn':\n pinoInstance.warn(event.data);\n break;\n case 'debug':\n pinoInstance.debug(event.data);\n break;\n case 'error':\n pinoInstance.error(event.data);\n break;\n }\n };\n}\n"],"mappings":";;;;;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAACC,YAAyB,EAAc;EACvE,OAAO,SAASC,WAAWA,CAACC,KAAK,EAAE;IACjC,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,KAAK;MACV,KAAK,MAAM;QACTH,YAAY,CAACI,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,MAAM;QACTL,YAAY,CAACM,IAAI,CAACJ,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,OAAO;QACVL,YAAY,CAACO,KAAK,CAACL,KAAK,CAACG,IAAI,CAAC;QAC9B;MACF,KAAK,OAAO;QACVL,YAAY,CAACQ,KAAK,CAACN,KAAK,CAACG,IAAI,CAAC;QAC9B;IACJ;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"pino.js","names":["createPinoHandler","pinoInstance","pinoHandler","event","type","info","data","warn","debug","error"],"sources":["../../../../src/log/handler/pino.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport type pino from 'pino';\n\n/**\n * Возвращает новый handler для logger'а для вывода событий в терминал.\n * @param pinoInstance Конфиг.\n * @return Handler.\n */\nexport function createPinoHandler(pinoInstance: pino.Logger): LogHandler {\n return function pinoHandler(event) {\n switch (event.type) {\n case 'log':\n case 'info':\n pinoInstance.info(event.data);\n break;\n case 'warn':\n pinoInstance.warn(event.data);\n break;\n case 'debug':\n pinoInstance.debug(event.data);\n break;\n case 'error':\n pinoInstance.error(event.data);\n break;\n }\n };\n}\n"],"mappings":";;;;;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAACC,YAAyB,EAAc;EACvE,OAAO,SAASC,WAAWA,CAACC,KAAK,EAAE;IACjC,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,KAAK;MACV,KAAK,MAAM;QACTH,YAAY,CAACI,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,MAAM;QACTL,YAAY,CAACM,IAAI,CAACJ,KAAK,CAACG,IAAI,CAAC;QAC7B;MACF,KAAK,OAAO;QACVL,YAAY,CAACO,KAAK,CAACL,KAAK,CAACG,IAAI,CAAC;QAC9B;MACF,KAAK,OAAO;QACVL,YAAY,CAACQ,KAAK,CAACN,KAAK,CAACG,IAAI,CAAC;QAC9B;IACJ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","names":["_log","require","createSentryHandler","scopeInit","getScope","event","scope","type","error","data","DetailedError","level","context","extra","setLevel","list","Array","isArray","item","setContext","key","setExtra","captureException","Breadcrumb","breadcrumb","addBreadcrumb"],"sources":["../../../../src/log/handler/sentry.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport { Breadcrumb, DetailedError } from '../../log';\nimport type { Scope as BrowserScope } from '@sentry/browser';\nimport type { Scope as NodeScope } from '@sentry/node';\n\ntype Scope = BrowserScope | NodeScope;\n\n/**\n * Возвращает новый handler для logger'а для отправки событий в Sentry.\n * @param scopeInit Sentry Hub или функция которая его вернёт.\n * @return Handler.\n */\nexport function createSentryHandler(scopeInit: Scope | (() => Scope)): LogHandler {\n const getScope = typeof scopeInit === 'function' ? scopeInit : () => scopeInit;\n\n return event => {\n // ВАЖНО: каждый входящий http-запрос должен иметь свой собственный hub (ныне scope)\n // подробности: https://github.com/getsentry/sentry-javascript/discussions/5648\n // поэтому если передана функция - вызываем каждый раз (внутри обработчика)\n const scope = getScope();\n\n // error\n if (event.type === 'error') {\n const error = event.data;\n\n if (error instanceof DetailedError) {\n const { level, context, extra } = error.data;\n\n if (level) {\n scope.setLevel(level);\n }\n\n if (context) {\n const list = Array.isArray(context) ? context : [context];\n\n for (const item of list) {\n scope.setContext(item.key, item.data);\n }\n }\n\n if (extra) {\n scope.setExtra(extra.key, extra.data);\n }\n }\n\n scope.captureException(error);\n }\n\n // breadcrumb\n if (event.data instanceof Breadcrumb) {\n const breadcrumb = event.data.data;\n\n scope.addBreadcrumb(breadcrumb);\n }\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAMA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAACC,SAAgC,EAAc;EAChF,MAAMC,QAAQ,GAAG,OAAOD,SAAS,KAAK,UAAU,GAAGA,SAAS,GAAG,MAAMA,SAAS;EAE9E,OAAOE,KAAK,IAAI;IACd;IACA;IACA;IACA,MAAMC,KAAK,GAAGF,QAAQ,CAAC,CAAC;;IAExB;IACA,IAAIC,KAAK,CAACE,IAAI,KAAK,OAAO,EAAE;MAC1B,MAAMC,KAAK,GAAGH,KAAK,CAACI,IAAI;MAExB,IAAID,KAAK,YAAYE,kBAAa,EAAE;QAClC,MAAM;UAAEC,KAAK;UAAEC,OAAO;UAAEC;QAAM,CAAC,GAAGL,KAAK,CAACC,IAAI;QAE5C,IAAIE,KAAK,EAAE;UACTL,KAAK,CAACQ,QAAQ,CAACH,KAAK,CAAC;QACvB;QAEA,IAAIC,OAAO,EAAE;UACX,MAAMG,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;UAEzD,KAAK,MAAMM,IAAI,IAAIH,IAAI,EAAE;YACvBT,KAAK,CAACa,UAAU,CAACD,IAAI,CAACE,GAAG,EAAEF,IAAI,CAACT,IAAI,CAAC;UACvC;QACF;QAEA,IAAII,KAAK,EAAE;UACTP,KAAK,CAACe,QAAQ,CAACR,KAAK,CAACO,GAAG,EAAEP,KAAK,CAACJ,IAAI,CAAC;QACvC;MACF;MAEAH,KAAK,CAACgB,gBAAgB,CAACd,KAAK,CAAC;IAC/B;;IAEA;IACA,IAAIH,KAAK,CAACI,IAAI,YAAYc,eAAU,EAAE;MACpC,MAAMC,UAAU,GAAGnB,KAAK,CAACI,IAAI,CAACA,IAAI;MAElCH,KAAK,CAACmB,aAAa,CAACD,UAAU,CAAC;IACjC;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"sentry.js","names":["_log","require","createSentryHandler","scopeInit","getScope","event","scope","type","error","data","DetailedError","level","context","extra","setLevel","list","Array","isArray","item","setContext","key","setExtra","captureException","Breadcrumb","breadcrumb","addBreadcrumb"],"sources":["../../../../src/log/handler/sentry.ts"],"sourcesContent":["import type { LogHandler } from '../types';\nimport { Breadcrumb, DetailedError } from '../../log';\nimport type { Scope as BrowserScope } from '@sentry/browser';\nimport type { Scope as NodeScope } from '@sentry/node';\n\ntype Scope = BrowserScope | NodeScope;\n\n/**\n * Возвращает новый handler для logger'а для отправки событий в Sentry.\n * @param scopeInit Sentry Hub или функция которая его вернёт.\n * @return Handler.\n */\nexport function createSentryHandler(scopeInit: Scope | (() => Scope)): LogHandler {\n const getScope = typeof scopeInit === 'function' ? scopeInit : () => scopeInit;\n\n return event => {\n // ВАЖНО: каждый входящий http-запрос должен иметь свой собственный hub (ныне scope)\n // подробности: https://github.com/getsentry/sentry-javascript/discussions/5648\n // поэтому если передана функция - вызываем каждый раз (внутри обработчика)\n const scope = getScope();\n\n // error\n if (event.type === 'error') {\n const error = event.data;\n\n if (error instanceof DetailedError) {\n const { level, context, extra } = error.data;\n\n if (level) {\n scope.setLevel(level);\n }\n\n if (context) {\n const list = Array.isArray(context) ? context : [context];\n\n for (const item of list) {\n scope.setContext(item.key, item.data);\n }\n }\n\n if (extra) {\n scope.setExtra(extra.key, extra.data);\n }\n }\n\n scope.captureException(error);\n }\n\n // breadcrumb\n if (event.data instanceof Breadcrumb) {\n const breadcrumb = event.data.data;\n\n scope.addBreadcrumb(breadcrumb);\n }\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAMA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAACC,SAAgC,EAAc;EAChF,MAAMC,QAAQ,GAAG,OAAOD,SAAS,KAAK,UAAU,GAAGA,SAAS,GAAG,MAAMA,SAAS;EAE9E,OAAOE,KAAK,IAAI;IACd;IACA;IACA;IACA,MAAMC,KAAK,GAAGF,QAAQ,CAAC,CAAC;;IAExB;IACA,IAAIC,KAAK,CAACE,IAAI,KAAK,OAAO,EAAE;MAC1B,MAAMC,KAAK,GAAGH,KAAK,CAACI,IAAI;MAExB,IAAID,KAAK,YAAYE,kBAAa,EAAE;QAClC,MAAM;UAAEC,KAAK;UAAEC,OAAO;UAAEC;QAAM,CAAC,GAAGL,KAAK,CAACC,IAAI;QAE5C,IAAIE,KAAK,EAAE;UACTL,KAAK,CAACQ,QAAQ,CAACH,KAAK,CAAC;QACvB;QAEA,IAAIC,OAAO,EAAE;UACX,MAAMG,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;UAEzD,KAAK,MAAMM,IAAI,IAAIH,IAAI,EAAE;YACvBT,KAAK,CAACa,UAAU,CAACD,IAAI,CAACE,GAAG,EAAEF,IAAI,CAACT,IAAI,CAAC;UACvC;QACF;QAEA,IAAII,KAAK,EAAE;UACTP,KAAK,CAACe,QAAQ,CAACR,KAAK,CAACO,GAAG,EAAEP,KAAK,CAACJ,IAAI,CAAC;QACvC;MACF;MAEAH,KAAK,CAACgB,gBAAgB,CAACd,KAAK,CAAC;IAC/B;;IAEA;IACA,IAAIH,KAAK,CAACI,IAAI,YAAYc,eAAU,EAAE;MACpC,MAAMC,UAAU,GAAGnB,KAAK,CAACI,IAAI,CAACA,IAAI;MAElCH,KAAK,CAACmB,aAAa,CAACD,UAAU,CAAC;IACjC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_logger","require","_errors","_pino","_sentry"],"sources":["../../../src/log/index.ts"],"sourcesContent":["export type {\n Logger,\n LogEvent,\n LogLevel,\n LogHandler,\n ErrorDetails,\n BreadcrumbDetails,\n ContextData,\n} from './types';\n\nexport { createLogger } from './logger';\nexport { DetailedError, Breadcrumb } from './errors';\nexport { createPinoHandler } from './handler/pino';\nexport { createSentryHandler } from './handler/sentry';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_logger","require","_errors","_pino","_sentry"],"sources":["../../../src/log/index.ts"],"sourcesContent":["export type {\n Logger,\n LogEvent,\n LogLevel,\n LogHandler,\n ErrorDetails,\n BreadcrumbDetails,\n ContextData,\n} from './types';\n\nexport { createLogger } from './logger';\nexport { DetailedError, Breadcrumb } from './errors';\nexport { createPinoHandler } from './handler/pino';\nexport { createSentryHandler } from './handler/sentry';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","names":["createLogger","handlers","createMethod","type","data","event","handler","log","info","warn","error","debug","subscribe","push"],"sources":["../../../src/log/logger.ts"],"sourcesContent":["import type { Logger, LogEvent, LogLevel, LogHandler } from './types';\n\n/**\n * Возвращает новый logger - объект для журналирования событий подобно console.\n * @return Logger.\n */\nexport function createLogger(): Logger {\n const handlers: LogHandler[] = [];\n\n // eslint-disable-next-line jsdoc/require-jsdoc\n const createMethod = (type: LogLevel) => (data:
|
|
1
|
+
{"version":3,"file":"logger.js","names":["createLogger","handlers","createMethod","type","data","event","handler","log","info","warn","error","debug","subscribe","push"],"sources":["../../../src/log/logger.ts"],"sourcesContent":["import type { Logger, LogEvent, LogLevel, LogHandler } from './types';\n\n/**\n * Возвращает новый logger - объект для журналирования событий подобно console.\n * @return Logger.\n */\nexport function createLogger(): Logger {\n const handlers: LogHandler[] = [];\n\n // eslint-disable-next-line jsdoc/require-jsdoc\n const createMethod = (type: LogLevel) => (data: unknown) => {\n const event: LogEvent = { type, data };\n\n for (const handler of handlers) {\n handler(event);\n }\n };\n\n return {\n log: createMethod('log'),\n info: createMethod('info'),\n warn: createMethod('warn'),\n error: createMethod('error'),\n debug: createMethod('debug'),\n\n subscribe: handler => {\n handlers.push(handler);\n },\n };\n}\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACO,SAASA,YAAYA,CAAA,EAAW;EACrC,MAAMC,QAAsB,GAAG,EAAE;;EAEjC;EACA,MAAMC,YAAY,GAAIC,IAAc,IAAMC,IAAa,IAAK;IAC1D,MAAMC,KAAe,GAAG;MAAEF,IAAI;MAAEC;IAAK,CAAC;IAEtC,KAAK,MAAME,OAAO,IAAIL,QAAQ,EAAE;MAC9BK,OAAO,CAACD,KAAK,CAAC;IAChB;EACF,CAAC;EAED,OAAO;IACLE,GAAG,EAAEL,YAAY,CAAC,KAAK,CAAC;IACxBM,IAAI,EAAEN,YAAY,CAAC,MAAM,CAAC;IAC1BO,IAAI,EAAEP,YAAY,CAAC,MAAM,CAAC;IAC1BQ,KAAK,EAAER,YAAY,CAAC,OAAO,CAAC;IAC5BS,KAAK,EAAET,YAAY,CAAC,OAAO,CAAC;IAE5BU,SAAS,EAAEN,OAAO,IAAI;MACpBL,QAAQ,CAACY,IAAI,CAACP,OAAO,CAAC;IACxB;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/log/types.ts"],"sourcesContent":["import type { SeverityLevel, Context,
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/log/types.ts"],"sourcesContent":["import type { SeverityLevel, Context, Breadcrumb } from '@sentry/browser';\n\n/**\n * Тип события.\n */\nexport type LogLevel = 'error' | 'log' | 'info' | 'warn' | 'debug';\n\n/**\n * Интерфейс события.\n */\nexport interface LogEvent {\n type: LogLevel;\n data: unknown;\n}\n\n/**\n * Интерфейс функции-обработчика события.\n */\nexport interface LogHandler {\n (event: LogEvent): void;\n}\n\n/**\n * Logger.\n * Поддерживает наиболее распространенные события жизненного цикла программы.\n */\nexport interface Logger {\n error(data: unknown): void;\n log(data: unknown): void;\n info(data: unknown): void;\n warn(data: unknown): void;\n debug(data: unknown): void;\n\n // @todo вынести в интерфейс SubscribableLogger?\n subscribe(handler: LogHandler): void;\n}\n\n/**\n * Контекст ошибки.\n */\nexport interface ContextData {\n key: string;\n data: Context | null;\n}\n\n/**\n * Детали ошибки.\n */\nexport interface ErrorDetails {\n level?: SeverityLevel;\n\n context?: ContextData | ContextData[];\n\n extra?: {\n key: string;\n data: unknown;\n };\n}\n\n/**\n * Детали хлебной крошки.\n */\nexport type BreadcrumbDetails = Breadcrumb;\n\n/**\n * Структура данных, которую необходимо выводить в терминал по соглашению внутри компании.\n * @todo Убрать в preset'ы.\n */\nexport interface ConventionalFluentInfo {\n version: string;\n latency: number;\n method: string;\n remote_ip: string;\n route: string;\n status: number;\n}\n"],"mappings":"","ignoreList":[]}
|
package/dist/cjs/package.json
CHANGED
|
@@ -3,35 +3,35 @@
|
|
|
3
3
|
"name": "@sima-land/isomorph",
|
|
4
4
|
"version": "0.0.0",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@
|
|
7
|
-
"@krutoo/fetch-tools": "^0.0.16",
|
|
6
|
+
"@krutoo/fetch-tools": "^0.1.1",
|
|
8
7
|
"@opentelemetry/api": "^1.9.0",
|
|
9
|
-
"@opentelemetry/exporter-prometheus": "^0.
|
|
10
|
-
"@opentelemetry/exporter-trace-otlp-grpc": "^0.
|
|
11
|
-
"@opentelemetry/resources": "^2.
|
|
12
|
-
"@opentelemetry/sdk-metrics": "^2.
|
|
13
|
-
"@opentelemetry/sdk-trace-base": "^2.
|
|
14
|
-
"@opentelemetry/sdk-trace-node": "^2.
|
|
15
|
-
"@opentelemetry/semantic-conventions": "^1.
|
|
16
|
-
"@sentry/browser": "^
|
|
17
|
-
"@sentry/node": "^
|
|
8
|
+
"@opentelemetry/exporter-prometheus": "^0.212.0",
|
|
9
|
+
"@opentelemetry/exporter-trace-otlp-grpc": "^0.212.0",
|
|
10
|
+
"@opentelemetry/resources": "^2.5.1",
|
|
11
|
+
"@opentelemetry/sdk-metrics": "^2.5.1",
|
|
12
|
+
"@opentelemetry/sdk-trace-base": "^2.5.1",
|
|
13
|
+
"@opentelemetry/sdk-trace-node": "^2.5.1",
|
|
14
|
+
"@opentelemetry/semantic-conventions": "^1.39.0",
|
|
15
|
+
"@sentry/browser": "^10.39.0",
|
|
16
|
+
"@sentry/node": "^10.39.0",
|
|
18
17
|
"accepts": "^1.3.8",
|
|
19
|
-
"dotenv": "^
|
|
20
|
-
"express": "^
|
|
21
|
-
"http-proxy-middleware": "^3.0.
|
|
22
|
-
"jsesc": "^3.0
|
|
18
|
+
"dotenv": "^17.3.1",
|
|
19
|
+
"express": "^5.2.1",
|
|
20
|
+
"http-proxy-middleware": "^3.0.5",
|
|
21
|
+
"jsesc": "^3.1.0",
|
|
23
22
|
"middleware-axios": "^3.0.0",
|
|
24
|
-
"pino": "^
|
|
25
|
-
"pino-pretty": "^
|
|
26
|
-
"prom-client": "^
|
|
27
|
-
"webpack": "^5.
|
|
23
|
+
"pino": "^10.3.1",
|
|
24
|
+
"pino-pretty": "^13.1.3",
|
|
25
|
+
"prom-client": "^15.1.3",
|
|
26
|
+
"webpack": "^5.105.2"
|
|
28
27
|
},
|
|
29
28
|
"peerDependencies": {
|
|
30
|
-
"@
|
|
31
|
-
"
|
|
29
|
+
"@humanwhocodes/env": "^4.0.1",
|
|
30
|
+
"@reduxjs/toolkit": "^1.9.7",
|
|
31
|
+
"axios": "^1.13.5",
|
|
32
32
|
"react": "^17.0 || ^18.0",
|
|
33
33
|
"react-dom": "^17.0 || ^18.0",
|
|
34
|
-
"react-redux": "^8.
|
|
35
|
-
"redux-saga": "^1.
|
|
34
|
+
"react-redux": "^8.1.3",
|
|
35
|
+
"redux-saga": "^1.3.0"
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_axiosLogging","require","_fetchLogging","_getFetchErrorLogging","_getFetchExtraAborting","_getFetchLogging","_httpApiHostPool","_httpStatus","_sagaLogging","_severityFromStatus"],"sources":["../../../../src/preset/isomorphic/index.ts"],"sourcesContent":["export type {\n PresetTuner,\n KnownHttpApiKey,\n StrictMap,\n PageAssets,\n ConventionalJson,\n} from './types';\n\n// доступные утилиты\nexport { AxiosLogging } from './utils/axios-logging';\nexport { FetchLogging } from './utils/fetch-logging';\nexport { getFetchErrorLogging } from './utils/get-fetch-error-logging';\nexport { getFetchExtraAborting } from './utils/get-fetch-extra-aborting';\nexport { getFetchLogging } from './utils/get-fetch-logging';\nexport { HttpApiHostPool } from './utils/http-api-host-pool';\nexport { HttpStatus } from './utils/http-status';\nexport { SagaLogging } from './utils/saga-logging';\nexport { severityFromStatus } from './utils/severity-from-status';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,mBAAA,GAAAR,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_axiosLogging","require","_fetchLogging","_getFetchErrorLogging","_getFetchExtraAborting","_getFetchLogging","_httpApiHostPool","_httpStatus","_sagaLogging","_severityFromStatus"],"sources":["../../../../src/preset/isomorphic/index.ts"],"sourcesContent":["export type {\n PresetTuner,\n KnownHttpApiKey,\n StrictMap,\n PageAssets,\n ConventionalJson,\n} from './types';\n\n// доступные утилиты\nexport { AxiosLogging } from './utils/axios-logging';\nexport { FetchLogging } from './utils/fetch-logging';\nexport { getFetchErrorLogging } from './utils/get-fetch-error-logging';\nexport { getFetchExtraAborting } from './utils/get-fetch-extra-aborting';\nexport { getFetchLogging } from './utils/get-fetch-logging';\nexport { HttpApiHostPool } from './utils/http-api-host-pool';\nexport { HttpStatus } from './utils/http-status';\nexport { SagaLogging } from './utils/saga-logging';\nexport { severityFromStatus } from './utils/severity-from-status';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,mBAAA,GAAAR,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abort-controller.js","names":["provideAbortController","AbortController"],"sources":["../../../../../src/preset/isomorphic/providers/abort-controller.ts"],"sourcesContent":["/**\n * Провайдер AbortController.\n * @return AbortController.\n */\nexport function provideAbortController(): AbortController {\n return new AbortController();\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,sBAAsBA,CAAA,EAAoB;EACxD,OAAO,IAAIC,eAAe,CAAC,CAAC;AAC9B"}
|
|
1
|
+
{"version":3,"file":"abort-controller.js","names":["provideAbortController","AbortController"],"sources":["../../../../../src/preset/isomorphic/providers/abort-controller.ts"],"sourcesContent":["/**\n * Провайдер AbortController.\n * @return AbortController.\n */\nexport function provideAbortController(): AbortController {\n return new AbortController();\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,sBAAsBA,CAAA,EAAoB;EACxD,OAAO,IAAIC,eAAe,CAAC,CAAC;AAC9B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-factory.js","names":["_tokens","require","_middlewareAxios","provideAxiosFactory","resolve","middleware","KnownToken","Axios","config","instance","create","item","use"],"sources":["../../../../../src/preset/isomorphic/providers/axios-factory.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\n\n/**\n * Провайдер фабрики экземпляров AxiosInstanceWrapper.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosFactory(resolve: Resolve) {\n const middleware = resolve(KnownToken.Axios.middleware);\n\n return (config: CreateAxiosDefaults = {}) => {\n const instance = create(config);\n\n for (const item of middleware) {\n instance.use(item);\n }\n\n return instance;\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,mBAAmBA,CAACC,OAAgB,EAAE;EACpD,MAAMC,UAAU,GAAGD,OAAO,CAACE,kBAAU,CAACC,KAAK,CAACF,UAAU,CAAC;EAEvD,OAAO,CAACG,MAA2B,GAAG,CAAC,CAAC,KAAK;IAC3C,MAAMC,QAAQ,GAAG,IAAAC,uBAAM,EAACF,MAAM,CAAC;IAE/B,KAAK,MAAMG,IAAI,IAAIN,UAAU,EAAE;MAC7BI,QAAQ,CAACG,GAAG,CAACD,IAAI,CAAC;IACpB;IAEA,OAAOF,QAAQ;EACjB,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"axios-factory.js","names":["_tokens","require","_middlewareAxios","provideAxiosFactory","resolve","middleware","KnownToken","Axios","config","instance","create","item","use"],"sources":["../../../../../src/preset/isomorphic/providers/axios-factory.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\n\n/**\n * Провайдер фабрики экземпляров AxiosInstanceWrapper.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideAxiosFactory(resolve: Resolve) {\n const middleware = resolve(KnownToken.Axios.middleware);\n\n return (config: CreateAxiosDefaults = {}) => {\n const instance = create(config);\n\n for (const item of middleware) {\n instance.use(item);\n }\n\n return instance;\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,mBAAmBA,CAACC,OAAgB,EAAE;EACpD,MAAMC,UAAU,GAAGD,OAAO,CAACE,kBAAU,CAACC,KAAK,CAACF,UAAU,CAAC;EAEvD,OAAO,CAACG,MAA2B,GAAG,CAAC,CAAC,KAAK;IAC3C,MAAMC,QAAQ,GAAG,IAAAC,uBAAM,EAACF,MAAM,CAAC;IAE/B,KAAK,MAAMG,IAAI,IAAIN,UAAU,EAAE;MAC7BI,QAAQ,CAACG,GAAG,CAACD,IAAI,CAAC;IACpB;IAEA,OAAOF,QAAQ;EACjB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-log-handler.js","names":["_tokens","require","_axiosLogging","provideAxiosLogHandler","resolve","logger","KnownToken","data","AxiosLogging"],"sources":["../../../../../src/preset/isomorphic/providers/axios-log-handler.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { LogMiddlewareHandlerInit } from '../../../utils/axios/middleware/log';\nimport { KnownToken } from '../../../tokens';\nimport { AxiosLogging } from '../utils/axios-logging';\n\n/**\n * Провайдер обработчика логирования исходящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик.\n */\nexport function provideAxiosLogHandler(resolve: Resolve): LogMiddlewareHandlerInit {\n const logger = resolve(KnownToken.logger);\n\n return data => new AxiosLogging(logger, data);\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,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;EAEzC,OAAOE,IAAI,IAAI,IAAIC,0BAAY,CAACH,MAAM,EAAEE,IAAI,CAAC;AAC/C"}
|
|
1
|
+
{"version":3,"file":"axios-log-handler.js","names":["_tokens","require","_axiosLogging","provideAxiosLogHandler","resolve","logger","KnownToken","data","AxiosLogging"],"sources":["../../../../../src/preset/isomorphic/providers/axios-log-handler.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { LogMiddlewareHandlerInit } from '../../../utils/axios/middleware/log';\nimport { KnownToken } from '../../../tokens';\nimport { AxiosLogging } from '../utils/axios-logging';\n\n/**\n * Провайдер обработчика логирования исходящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик.\n */\nexport function provideAxiosLogHandler(resolve: Resolve): LogMiddlewareHandlerInit {\n const logger = resolve(KnownToken.logger);\n\n return data => new AxiosLogging(logger, data);\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,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;EAEzC,OAAOE,IAAI,IAAI,IAAIC,0BAAY,CAACH,MAAM,EAAEE,IAAI,CAAC;AAC/C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-config.js","names":["_base","require","_tokens","provideBaseConfig","resolve","source","KnownToken","Config","createBaseConfig"],"sources":["../../../../../src/preset/isomorphic/providers/base-config.ts"],"sourcesContent":["import { createBaseConfig } from '../../../config/base';\nimport { BaseConfig } from '../../../config/types';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер базовой конфигурации приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Базовая конфигурация.\n */\nexport function provideBaseConfig(resolve: Resolve): BaseConfig {\n const source = resolve(KnownToken.Config.source);\n\n return createBaseConfig(source);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAACC,OAAgB,EAAc;EAC9D,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAEhD,OAAO,IAAAG,sBAAgB,EAACH,MAAM,CAAC;AACjC"}
|
|
1
|
+
{"version":3,"file":"base-config.js","names":["_base","require","_tokens","provideBaseConfig","resolve","source","KnownToken","Config","createBaseConfig"],"sources":["../../../../../src/preset/isomorphic/providers/base-config.ts"],"sourcesContent":["import { createBaseConfig } from '../../../config/base';\nimport { BaseConfig } from '../../../config/types';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер базовой конфигурации приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Базовая конфигурация.\n */\nexport function provideBaseConfig(resolve: Resolve): BaseConfig {\n const source = resolve(KnownToken.Config.source);\n\n return createBaseConfig(source);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAACC,OAAgB,EAAc;EAC9D,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAEhD,OAAO,IAAAG,sBAAgB,EAACH,MAAM,CAAC;AACjC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","names":["_tokens","require","_http","provideFetch","resolve","middleware","KnownToken","Http","Fetch","configureFetch","fetch","applyMiddleware"],"sources":["../../../../../src/preset/isomorphic/providers/fetch.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { applyMiddleware, configureFetch } from '../../../http';\n\n/**\n * Провайдер функции fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Функция fetch.\n */\nexport function provideFetch(resolve: Resolve) {\n const middleware = resolve(KnownToken.Http.Fetch.middleware);\n\n return configureFetch(fetch, applyMiddleware(...middleware));\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAACC,OAAgB,EAAE;EAC7C,MAAMC,UAAU,GAAGD,OAAO,CAACE,kBAAU,CAACC,IAAI,CAACC,KAAK,CAACH,UAAU,CAAC;EAE5D,OAAO,IAAAI,oBAAc,EAACC,KAAK,EAAE,IAAAC,qBAAe,EAAC,GAAGN,UAAU,CAAC,CAAC;AAC9D"}
|
|
1
|
+
{"version":3,"file":"fetch.js","names":["_tokens","require","_http","provideFetch","resolve","middleware","KnownToken","Http","Fetch","configureFetch","fetch","applyMiddleware"],"sources":["../../../../../src/preset/isomorphic/providers/fetch.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { applyMiddleware, configureFetch } from '../../../http';\n\n/**\n * Провайдер функции fetch.\n * @param resolve Функция для получения зависимости по токену.\n * @return Функция fetch.\n */\nexport function provideFetch(resolve: Resolve) {\n const middleware = resolve(KnownToken.Http.Fetch.middleware);\n\n return configureFetch(fetch, applyMiddleware(...middleware));\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAACC,OAAgB,EAAE;EAC7C,MAAMC,UAAU,GAAGD,OAAO,CAACE,kBAAU,CAACC,IAAI,CAACC,KAAK,CAACH,UAAU,CAAC;EAE5D,OAAO,IAAAI,oBAAc,EAACC,KAAK,EAAE,IAAAC,qBAAe,EAAC,GAAGN,UAAU,CAAC,CAAC;AAC9D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redux-middleware-saga.js","names":["_tokens","require","_sagaLogging","_reduxSaga","_interopRequireDefault","e","__esModule","default","provideReduxMiddlewareSaga","resolve","logger","KnownToken","logHandler","SagaLogging","createSagaMiddleware","onError","error","errorInfo","onSagaError"],"sources":["../../../../../src/preset/isomorphic/providers/redux-middleware-saga.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { SagaLogging } from '../utils/saga-logging';\nimport createSagaMiddleware, { SagaMiddleware } from 'redux-saga';\n\n/**\n * Провайдер промежуточного слоя redux-saga для redux-хранилища.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой для redux-хранилища.\n */\nexport function provideReduxMiddlewareSaga(resolve: Resolve): SagaMiddleware {\n const logger = resolve(KnownToken.logger);\n\n const logHandler = new SagaLogging(logger);\n\n return createSagaMiddleware({\n /** @inheritdoc */\n onError(error, errorInfo) {\n logHandler.onSagaError(error, errorInfo);\n },\n });\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAkE,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElE;AACA;AACA;AACA;AACA;AACO,SAASG,0BAA0BA,CAACC,OAAgB,EAAkB;EAC3E,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;EAEzC,MAAME,UAAU,GAAG,IAAIC,wBAAW,CAACH,MAAM,CAAC;EAE1C,OAAO,IAAAI,kBAAoB,EAAC;IAC1B;IACAC,OAAOA,CAACC,KAAK,EAAEC,SAAS,EAAE;MACxBL,UAAU,CAACM,WAAW,CAACF,KAAK,EAAEC,SAAS,CAAC;IAC1C;EACF,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"redux-middleware-saga.js","names":["_tokens","require","_sagaLogging","_reduxSaga","_interopRequireDefault","e","__esModule","default","provideReduxMiddlewareSaga","resolve","logger","KnownToken","logHandler","SagaLogging","createSagaMiddleware","onError","error","errorInfo","onSagaError"],"sources":["../../../../../src/preset/isomorphic/providers/redux-middleware-saga.ts"],"sourcesContent":["import { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { SagaLogging } from '../utils/saga-logging';\nimport createSagaMiddleware, { SagaMiddleware } from 'redux-saga';\n\n/**\n * Провайдер промежуточного слоя redux-saga для redux-хранилища.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой для redux-хранилища.\n */\nexport function provideReduxMiddlewareSaga(resolve: Resolve): SagaMiddleware {\n const logger = resolve(KnownToken.logger);\n\n const logHandler = new SagaLogging(logger);\n\n return createSagaMiddleware({\n /** @inheritdoc */\n onError(error, errorInfo) {\n logHandler.onSagaError(error, errorInfo);\n },\n });\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAkE,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElE;AACA;AACA;AACA;AACA;AACO,SAASG,0BAA0BA,CAACC,OAAgB,EAAkB;EAC3E,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACD,MAAM,CAAC;EAEzC,MAAME,UAAU,GAAG,IAAIC,wBAAW,CAACH,MAAM,CAAC;EAE1C,OAAO,IAAAI,kBAAoB,EAAC;IAC1B;IACAC,OAAOA,CAACC,KAAK,EAAEC,SAAS,EAAE;MACxBL,UAAU,CAACM,WAAW,CAACF,KAAK,EAAEC,SAAS,CAAC;IAC1C;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/preset/isomorphic/types.ts"],"sourcesContent":["import type { Provider, Token } from '../../di';\n\nexport interface PresetTuner {\n (tools: { override: <T>(token: Token<T>, provider: Provider<T>) => void }): void;\n}\n\nexport type KnownHttpApiKey =\n | 'ilium'\n | 'simaV3'\n | 'simaV4'\n | 'simaV6'\n | 'chponkiV2'\n | 'shuttle'\n | 'fileDispatcher';\n\n/**\n * Строгая версия Map без возможности добавлять/удалять.\n */\nexport interface StrictMap<Key extends string> {\n /** Возвращает значение по ключу. */\n get(key: Key): string;\n}\n\n/**\n * Внутренний интерфейс для хранения ссылок на ассеты.\n */\nexport interface PageAssets {\n js: string;\n css: string;\n criticalJs?: string;\n criticalCss?: string;\n}\n\n/**\n * Структура ответа от frontend-микросервиса в формате JSON по соглашению.\n */\nexport interface ConventionalJson {\n markup: string;\n bundle_js: string;\n bundle_css: string;\n critical_js?: string;\n critical_css?: string;\n meta?: any;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/preset/isomorphic/types.ts"],"sourcesContent":["import type { Provider, Token } from '../../di';\n\nexport interface PresetTuner {\n (tools: { override: <T>(token: Token<T>, provider: Provider<T>) => void }): void;\n}\n\nexport type KnownHttpApiKey =\n | 'ilium'\n | 'simaV3'\n | 'simaV4'\n | 'simaV6'\n | 'chponkiV2'\n | 'shuttle'\n | 'fileDispatcher';\n\n/**\n * Строгая версия Map без возможности добавлять/удалять.\n */\nexport interface StrictMap<Key extends string> {\n /** Возвращает значение по ключу. */\n get(key: Key): string;\n}\n\n/**\n * Внутренний интерфейс для хранения ссылок на ассеты.\n */\nexport interface PageAssets {\n js: string;\n css: string;\n criticalJs?: string;\n criticalCss?: string;\n}\n\n/**\n * Структура ответа от frontend-микросервиса в формате JSON по соглашению.\n */\nexport interface ConventionalJson {\n markup: string;\n bundle_js: string;\n bundle_css: string;\n critical_js?: string;\n critical_css?: string;\n meta?: any;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-logging.js","names":["_utils","require","_log","_axios","_disableable","_displayUrl","_severityFromStatus","_axios2","_interopRequireDefault","e","__esModule","default","AxiosLogging","Disableable","constructor","logger","data","config","applyAxiosDefaults","defaults","requestInfo","readyURL","displayUrl","baseURL","url","beforeRequest","isDisabled","method","params","info","Breadcrumb","category","type","level","afterResponse","response","status_code","status","onCatch","error","axios","isAxiosError","statusCode","isNetworkError","cause","isAbortError","DetailedError","message","severityFromStatus","context","key","headers","toJSON","exports"],"sources":["../../../../../src/preset/isomorphic/utils/axios-logging.ts"],"sourcesContent":["import { isAbortError, isNetworkError } from '../../../http/utils';\nimport { Breadcrumb, DetailedError, type Logger } from '../../../log';\nimport {\n type LogMiddlewareHandler,\n applyAxiosDefaults,\n SharedData,\n DoneSharedData,\n FailSharedData,\n} from '../../../utils/axios';\nimport { Disableable } from './disableable';\nimport { displayUrl } from './display-url';\nimport { severityFromStatus } from './severity-from-status';\nimport axios from 'axios';\n\n/**\n * Обработчик для промежуточного слоя логирования исходящих http-запросов.\n * Отправляет хлебные крошки и данные ошибки, пригодные для Sentry.\n */\nexport class AxiosLogging extends Disableable implements LogMiddlewareHandler {\n logger: Logger;\n\n protected readonly requestInfo: ReturnType<typeof applyAxiosDefaults> & {\n readyURL: string;\n };\n\n /**\n * Конструктор.\n * @param logger Logger.\n * @param data Данные запроса.\n */\n constructor(logger: Logger, data: SharedData) {\n super();\n const config = applyAxiosDefaults(data.config, data.defaults);\n\n this.logger = logger;\n\n this.requestInfo = {\n ...config,\n readyURL: displayUrl(config.baseURL, config.url),\n };\n }\n\n /**\n * Отправит хлебные крошки перед запросом.\n */\n beforeRequest() {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.request',\n type: 'http',\n data: {\n url: readyURL,\n method,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит хлебные крошки после запроса.\n * @param data Данные ответа.\n */\n afterResponse({ response }: DoneSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: readyURL,\n method,\n status_code: response.status,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит данные ошибки при перехвате.\n * @param data Данные запроса.\n */\n onCatch({ error }: FailSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n // если это не AxiosError тогда выполняем простое логирование\n if (!axios.isAxiosError(error)) {\n this.logger.error(error);\n return;\n }\n\n const statusCode = error.response?.status ?? 'UNKNOWN';\n const { requestInfo } = this;\n\n if (typeof statusCode === 'number') {\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: requestInfo.readyURL,\n method: requestInfo.method,\n status_code: statusCode,\n params: requestInfo.params,\n },\n level: 'error',\n }),\n );\n }\n\n // по общему соглашению фильтруем сетевые ошибки\n if (isNetworkError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем ошибки обрывания\n if (isAbortError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем все статусы < 500\n if (typeof statusCode === 'number' && statusCode < 500) {\n return;\n }\n\n // @todo добавить метод в духе errorStatusFilter(s => s !== 422)\n\n this.logger.error(\n new DetailedError(\n `HTTP request failed, status code: ${statusCode}, error message: ${error.message}`,\n {\n level: severityFromStatus(error.response?.status),\n context: [\n {\n key: 'Request details',\n data: {\n url: requestInfo.url,\n baseURL: requestInfo.baseURL,\n method: requestInfo.method,\n headers: requestInfo.headers,\n data: requestInfo.data,\n params: requestInfo.params,\n },\n },\n {\n key: 'Response details',\n data: {\n data: error.response?.data,\n\n // копируем так как в Sentry падает ошибка: **non-serializable** (TypeError: Object.getPrototypeOf(...) is null)\n headers: { ...error.response?.headers },\n\n error: error.toJSON(),\n },\n },\n ],\n },\n ),\n );\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"axios-logging.js","names":["_utils","require","_log","_axios","_disableable","_displayUrl","_severityFromStatus","_axios2","_interopRequireDefault","e","__esModule","default","AxiosLogging","Disableable","constructor","logger","data","config","applyAxiosDefaults","defaults","requestInfo","readyURL","displayUrl","baseURL","url","beforeRequest","isDisabled","method","params","info","Breadcrumb","category","type","level","afterResponse","response","status_code","status","onCatch","error","axios","isAxiosError","statusCode","isNetworkError","cause","isAbortError","DetailedError","message","severityFromStatus","context","key","headers","toJSON","exports"],"sources":["../../../../../src/preset/isomorphic/utils/axios-logging.ts"],"sourcesContent":["import { isAbortError, isNetworkError } from '../../../http/utils';\nimport { Breadcrumb, DetailedError, type Logger } from '../../../log';\nimport {\n type LogMiddlewareHandler,\n applyAxiosDefaults,\n SharedData,\n DoneSharedData,\n FailSharedData,\n} from '../../../utils/axios';\nimport { Disableable } from './disableable';\nimport { displayUrl } from './display-url';\nimport { severityFromStatus } from './severity-from-status';\nimport axios from 'axios';\n\n/**\n * Обработчик для промежуточного слоя логирования исходящих http-запросов.\n * Отправляет хлебные крошки и данные ошибки, пригодные для Sentry.\n */\nexport class AxiosLogging extends Disableable implements LogMiddlewareHandler {\n logger: Logger;\n\n protected readonly requestInfo: ReturnType<typeof applyAxiosDefaults> & {\n readyURL: string;\n };\n\n /**\n * Конструктор.\n * @param logger Logger.\n * @param data Данные запроса.\n */\n constructor(logger: Logger, data: SharedData) {\n super();\n const config = applyAxiosDefaults(data.config, data.defaults);\n\n this.logger = logger;\n\n this.requestInfo = {\n ...config,\n readyURL: displayUrl(config.baseURL, config.url),\n };\n }\n\n /**\n * Отправит хлебные крошки перед запросом.\n */\n beforeRequest() {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.request',\n type: 'http',\n data: {\n url: readyURL,\n method,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит хлебные крошки после запроса.\n * @param data Данные ответа.\n */\n afterResponse({ response }: DoneSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n const { readyURL, method, params } = this.requestInfo;\n\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: readyURL,\n method,\n status_code: response.status,\n params,\n },\n level: 'info',\n }),\n );\n }\n\n /**\n * Отправит данные ошибки при перехвате.\n * @param data Данные запроса.\n */\n onCatch({ error }: FailSharedData) {\n if (this.isDisabled()) {\n return;\n }\n\n // если это не AxiosError тогда выполняем простое логирование\n if (!axios.isAxiosError(error)) {\n this.logger.error(error);\n return;\n }\n\n const statusCode = error.response?.status ?? 'UNKNOWN';\n const { requestInfo } = this;\n\n if (typeof statusCode === 'number') {\n this.logger.info(\n new Breadcrumb({\n category: 'http.response',\n type: 'http',\n data: {\n url: requestInfo.readyURL,\n method: requestInfo.method,\n status_code: statusCode,\n params: requestInfo.params,\n },\n level: 'error',\n }),\n );\n }\n\n // по общему соглашению фильтруем сетевые ошибки\n if (isNetworkError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем ошибки обрывания\n if (isAbortError(error.cause)) {\n return;\n }\n\n // по общему соглашению фильтруем все статусы < 500\n if (typeof statusCode === 'number' && statusCode < 500) {\n return;\n }\n\n // @todo добавить метод в духе errorStatusFilter(s => s !== 422)\n\n this.logger.error(\n new DetailedError(\n `HTTP request failed, status code: ${statusCode}, error message: ${error.message}`,\n {\n level: severityFromStatus(error.response?.status),\n context: [\n {\n key: 'Request details',\n data: {\n url: requestInfo.url,\n baseURL: requestInfo.baseURL,\n method: requestInfo.method,\n headers: requestInfo.headers,\n data: requestInfo.data,\n params: requestInfo.params,\n },\n },\n {\n key: 'Response details',\n data: {\n data: error.response?.data,\n\n // копируем так как в Sentry падает ошибка: **non-serializable** (TypeError: Object.getPrototypeOf(...) is null)\n headers: { ...error.response?.headers },\n\n error: error.toJSON(),\n },\n },\n ],\n },\n ),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disableable.js","names":["Disableable","constructor","disabled","isDisabled","exports"],"sources":["../../../../../src/preset/isomorphic/utils/disableable.ts"],"sourcesContent":["/**\n * Объект, который может быть помечен как disabled.\n * @todo Возможно стоит заменить наследование от этого класса на передачу параметра в конструктор.\n * Например в виде объекта класса DisableController (по аналогии с AbortController).\n * Чтобы нельзя было включить обработчик в том месте где хочется.\n * Также возможно стоит просто научить классы принимать AbortController.\n */\nexport class Disableable {\n disabled: boolean | (() => boolean);\n\n /** @inheritdoc */\n constructor() {\n this.disabled = false;\n }\n\n /**\n * Определяет отключен ли обработчик.\n * @return Отключен ли обработчик.\n */\n isDisabled() {\n if (typeof this.disabled === 'function') {\n return this.disabled();\n }\n\n return this.disabled;\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,CAAC;EAGvB;EACAC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,QAAQ,GAAG,KAAK;EACvB;;EAEA;AACF;AACA;AACA;EACEC,UAAUA,CAAA,EAAG;IACX,IAAI,OAAO,IAAI,CAACD,QAAQ,KAAK,UAAU,EAAE;MACvC,OAAO,IAAI,CAACA,QAAQ,CAAC,CAAC;IACxB;IAEA,OAAO,IAAI,CAACA,QAAQ;EACtB;AACF;AAACE,OAAA,CAAAJ,WAAA,GAAAA,WAAA"}
|
|
1
|
+
{"version":3,"file":"disableable.js","names":["Disableable","constructor","disabled","isDisabled","exports"],"sources":["../../../../../src/preset/isomorphic/utils/disableable.ts"],"sourcesContent":["/**\n * Объект, который может быть помечен как disabled.\n * @todo Возможно стоит заменить наследование от этого класса на передачу параметра в конструктор.\n * Например в виде объекта класса DisableController (по аналогии с AbortController).\n * Чтобы нельзя было включить обработчик в том месте где хочется.\n * Также возможно стоит просто научить классы принимать AbortController.\n */\nexport class Disableable {\n disabled: boolean | (() => boolean);\n\n /** @inheritdoc */\n constructor() {\n this.disabled = false;\n }\n\n /**\n * Определяет отключен ли обработчик.\n * @return Отключен ли обработчик.\n */\n isDisabled() {\n if (typeof this.disabled === 'function') {\n return this.disabled();\n }\n\n return this.disabled;\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,CAAC;EAGvB;EACAC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,QAAQ,GAAG,KAAK;EACvB;;EAEA;AACF;AACA;AACA;EACEC,UAAUA,CAAA,EAAG;IACX,IAAI,OAAO,IAAI,CAACD,QAAQ,KAAK,UAAU,EAAE;MACvC,OAAO,IAAI,CAACA,QAAQ,CAAC,CAAC;IACxB;IAEA,OAAO,IAAI,CAACA,QAAQ;EACtB;AACF;AAACE,OAAA,CAAAJ,WAAA,GAAAA,WAAA","ignoreList":[]}
|