@marinoscar/platform-api 0.0.0-stage → 0.1.0-next.3
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/CHANGELOG.md +54 -0
- package/LICENSE +21 -0
- package/README.md +106 -2
- package/dist/core/crypto/encryption-key-startup-check.d.ts +29 -0
- package/dist/core/crypto/encryption-key-startup-check.d.ts.map +1 -0
- package/dist/core/crypto/encryption-key-startup-check.js +221 -0
- package/dist/core/crypto/encryption-key-startup-check.js.map +1 -0
- package/dist/core/crypto/secret-cipher.d.ts +151 -0
- package/dist/core/crypto/secret-cipher.d.ts.map +1 -0
- package/dist/core/crypto/secret-cipher.js +452 -0
- package/dist/core/crypto/secret-cipher.js.map +1 -0
- package/dist/core/data-access/index.d.ts +6 -0
- package/dist/core/data-access/index.d.ts.map +1 -0
- package/dist/core/data-access/index.js +19 -0
- package/dist/core/data-access/index.js.map +1 -0
- package/dist/core/data-access/scoped-access.error.d.ts +35 -0
- package/dist/core/data-access/scoped-access.error.d.ts.map +1 -0
- package/dist/core/data-access/scoped-access.error.js +43 -0
- package/dist/core/data-access/scoped-access.error.js.map +1 -0
- package/dist/core/data-access/scoped-client.d.ts +104 -0
- package/dist/core/data-access/scoped-client.d.ts.map +1 -0
- package/dist/core/data-access/scoped-client.js +270 -0
- package/dist/core/data-access/scoped-client.js.map +1 -0
- package/dist/core/data-access/types.d.ts +85 -0
- package/dist/core/data-access/types.d.ts.map +1 -0
- package/dist/core/data-access/types.js +12 -0
- package/dist/core/data-access/types.js.map +1 -0
- package/dist/core/data-access/user-owned-data.registry.d.ts +60 -0
- package/dist/core/data-access/user-owned-data.registry.d.ts.map +1 -0
- package/dist/core/data-access/user-owned-data.registry.js +140 -0
- package/dist/core/data-access/user-owned-data.registry.js.map +1 -0
- package/dist/core/errors/database-seed.exception.d.ts +23 -0
- package/dist/core/errors/database-seed.exception.d.ts.map +1 -0
- package/dist/core/errors/database-seed.exception.js +49 -0
- package/dist/core/errors/database-seed.exception.js.map +1 -0
- package/dist/core/errors/error.dto.d.ts +47 -0
- package/dist/core/errors/error.dto.d.ts.map +1 -0
- package/dist/core/errors/error.dto.js +121 -0
- package/dist/core/errors/error.dto.js.map +1 -0
- package/dist/core/errors/http-exception.filter.d.ts +63 -0
- package/dist/core/errors/http-exception.filter.d.ts.map +1 -0
- package/dist/core/errors/http-exception.filter.js +234 -0
- package/dist/core/errors/http-exception.filter.js.map +1 -0
- package/dist/core/errors/verbatim-error-body.exception.d.ts +46 -0
- package/dist/core/errors/verbatim-error-body.exception.d.ts.map +1 -0
- package/dist/core/errors/verbatim-error-body.exception.js +135 -0
- package/dist/core/errors/verbatim-error-body.exception.js.map +1 -0
- package/dist/core/host/index.d.ts +7 -0
- package/dist/core/host/index.d.ts.map +1 -0
- package/dist/core/host/index.js +14 -0
- package/dist/core/host/index.js.map +1 -0
- package/dist/core/host/platform-host.d.ts +58 -0
- package/dist/core/host/platform-host.d.ts.map +1 -0
- package/dist/core/host/platform-host.js +104 -0
- package/dist/core/host/platform-host.js.map +1 -0
- package/dist/core/host/platform-host.module.d.ts +53 -0
- package/dist/core/host/platform-host.module.d.ts.map +1 -0
- package/dist/core/host/platform-host.module.js +90 -0
- package/dist/core/host/platform-host.module.js.map +1 -0
- package/dist/core/host/ports.d.ts +132 -0
- package/dist/core/host/ports.d.ts.map +1 -0
- package/dist/core/host/ports.js +48 -0
- package/dist/core/host/ports.js.map +1 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +77 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/openapi/openapi-tag.registry.d.ts +80 -0
- package/dist/core/openapi/openapi-tag.registry.d.ts.map +1 -0
- package/dist/core/openapi/openapi-tag.registry.js +72 -0
- package/dist/core/openapi/openapi-tag.registry.js.map +1 -0
- package/dist/core/principal/index.d.ts +6 -0
- package/dist/core/principal/index.d.ts.map +1 -0
- package/dist/core/principal/index.js +3 -0
- package/dist/core/principal/index.js.map +1 -0
- package/dist/core/principal/principal.types.d.ts +222 -0
- package/dist/core/principal/principal.types.d.ts.map +1 -0
- package/dist/core/principal/principal.types.js +22 -0
- package/dist/core/principal/principal.types.js.map +1 -0
- package/dist/core/registry/index.d.ts +4 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +19 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/registry-freeze.service.d.ts +14 -0
- package/dist/core/registry/registry-freeze.service.d.ts.map +1 -0
- package/dist/core/registry/registry-freeze.service.js +55 -0
- package/dist/core/registry/registry-freeze.service.js.map +1 -0
- package/dist/core/registry/registry.d.ts +268 -0
- package/dist/core/registry/registry.d.ts.map +1 -0
- package/dist/core/registry/registry.js +351 -0
- package/dist/core/registry/registry.js.map +1 -0
- package/dist/core/registry/testing.d.ts +29 -0
- package/dist/core/registry/testing.d.ts.map +1 -0
- package/dist/core/registry/testing.js +63 -0
- package/dist/core/registry/testing.js.map +1 -0
- package/dist/doctor/doctor-check.interface.d.ts +100 -0
- package/dist/doctor/doctor-check.interface.d.ts.map +1 -0
- package/dist/doctor/doctor-check.interface.js +95 -0
- package/dist/doctor/doctor-check.interface.js.map +1 -0
- package/dist/doctor/doctor-check.registry.d.ts +37 -0
- package/dist/doctor/doctor-check.registry.d.ts.map +1 -0
- package/dist/doctor/doctor-check.registry.js +96 -0
- package/dist/doctor/doctor-check.registry.js.map +1 -0
- package/dist/doctor/doctor.controller.factory.d.ts +29 -0
- package/dist/doctor/doctor.controller.factory.d.ts.map +1 -0
- package/dist/doctor/doctor.controller.factory.js +121 -0
- package/dist/doctor/doctor.controller.factory.js.map +1 -0
- package/dist/doctor/doctor.module.d.ts +78 -0
- package/dist/doctor/doctor.module.d.ts.map +1 -0
- package/dist/doctor/doctor.module.js +158 -0
- package/dist/doctor/doctor.module.js.map +1 -0
- package/dist/doctor/doctor.options.d.ts +39 -0
- package/dist/doctor/doctor.options.d.ts.map +1 -0
- package/dist/doctor/doctor.options.js +21 -0
- package/dist/doctor/doctor.options.js.map +1 -0
- package/dist/doctor/doctor.service.d.ts +80 -0
- package/dist/doctor/doctor.service.d.ts.map +1 -0
- package/dist/doctor/doctor.service.js +301 -0
- package/dist/doctor/doctor.service.js.map +1 -0
- package/dist/doctor/dto/doctor-query.dto.d.ts +15 -0
- package/dist/doctor/dto/doctor-query.dto.d.ts.map +1 -0
- package/dist/doctor/dto/doctor-query.dto.js +16 -0
- package/dist/doctor/dto/doctor-query.dto.js.map +1 -0
- package/dist/doctor/dto/doctor-report.dto.d.ts +27 -0
- package/dist/doctor/dto/doctor-report.dto.d.ts.map +1 -0
- package/dist/doctor/dto/doctor-report.dto.js +23 -0
- package/dist/doctor/dto/doctor-report.dto.js.map +1 -0
- package/dist/doctor/egress/classify-host.d.ts +73 -0
- package/dist/doctor/egress/classify-host.d.ts.map +1 -0
- package/dist/doctor/egress/classify-host.js +210 -0
- package/dist/doctor/egress/classify-host.js.map +1 -0
- package/dist/doctor/egress/egress.registry.d.ts +34 -0
- package/dist/doctor/egress/egress.registry.d.ts.map +1 -0
- package/dist/doctor/egress/egress.registry.js +70 -0
- package/dist/doctor/egress/egress.registry.js.map +1 -0
- package/dist/doctor/egress/egress.types.d.ts +135 -0
- package/dist/doctor/egress/egress.types.d.ts.map +1 -0
- package/dist/doctor/egress/egress.types.js +42 -0
- package/dist/doctor/egress/egress.types.js.map +1 -0
- package/dist/doctor/egress/index.d.ts +6 -0
- package/dist/doctor/egress/index.d.ts.map +1 -0
- package/dist/doctor/egress/index.js +23 -0
- package/dist/doctor/egress/index.js.map +1 -0
- package/dist/doctor/egress/network-egress.doctor-check.d.ts +78 -0
- package/dist/doctor/egress/network-egress.doctor-check.d.ts.map +1 -0
- package/dist/doctor/egress/network-egress.doctor-check.js +226 -0
- package/dist/doctor/egress/network-egress.doctor-check.js.map +1 -0
- package/dist/doctor/index.d.ts +19 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +66 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/support-bundle/index.d.ts +12 -0
- package/dist/doctor/support-bundle/index.d.ts.map +1 -0
- package/dist/doctor/support-bundle/index.js +32 -0
- package/dist/doctor/support-bundle/index.js.map +1 -0
- package/dist/doctor/support-bundle/redact.d.ts +76 -0
- package/dist/doctor/support-bundle/redact.d.ts.map +1 -0
- package/dist/doctor/support-bundle/redact.js +236 -0
- package/dist/doctor/support-bundle/redact.js.map +1 -0
- package/dist/doctor/support-bundle/sections/doctor.section.d.ts +81 -0
- package/dist/doctor/support-bundle/sections/doctor.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/doctor.section.js +83 -0
- package/dist/doctor/support-bundle/sections/doctor.section.js.map +1 -0
- package/dist/doctor/support-bundle/sections/egress.section.d.ts +73 -0
- package/dist/doctor/support-bundle/sections/egress.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/egress.section.js +97 -0
- package/dist/doctor/support-bundle/sections/egress.section.js.map +1 -0
- package/dist/doctor/support-bundle/sections/meta.section.d.ts +39 -0
- package/dist/doctor/support-bundle/sections/meta.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/meta.section.js +89 -0
- package/dist/doctor/support-bundle/sections/meta.section.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts +100 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.js +59 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.controller.d.ts +57 -0
- package/dist/doctor/support-bundle/support-bundle.controller.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.controller.js +141 -0
- package/dist/doctor/support-bundle/support-bundle.controller.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.options.d.ts +92 -0
- package/dist/doctor/support-bundle/support-bundle.options.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.options.js +100 -0
- package/dist/doctor/support-bundle/support-bundle.options.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.registry.d.ts +38 -0
- package/dist/doctor/support-bundle/support-bundle.registry.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.registry.js +90 -0
- package/dist/doctor/support-bundle/support-bundle.registry.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.service.d.ts +63 -0
- package/dist/doctor/support-bundle/support-bundle.service.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.service.js +244 -0
- package/dist/doctor/support-bundle/support-bundle.service.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/otel-core/index.d.ts +9 -0
- package/dist/otel-core/index.d.ts.map +1 -0
- package/dist/otel-core/index.js +58 -0
- package/dist/otel-core/index.js.map +1 -0
- package/dist/otel-core/metrics/gauge-provider.d.ts +44 -0
- package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -0
- package/dist/otel-core/metrics/gauge-provider.js +37 -0
- package/dist/otel-core/metrics/gauge-provider.js.map +1 -0
- package/dist/otel-core/metrics/labels.d.ts +79 -0
- package/dist/otel-core/metrics/labels.d.ts.map +1 -0
- package/dist/otel-core/metrics/labels.js +135 -0
- package/dist/otel-core/metrics/labels.js.map +1 -0
- package/dist/otel-core/metrics/metric-name.registry.d.ts +130 -0
- package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -0
- package/dist/otel-core/metrics/metric-name.registry.js +134 -0
- package/dist/otel-core/metrics/metric-name.registry.js.map +1 -0
- package/dist/otel-core/metrics/metrics-host.service.d.ts +163 -0
- package/dist/otel-core/metrics/metrics-host.service.d.ts.map +1 -0
- package/dist/otel-core/metrics/metrics-host.service.js +344 -0
- package/dist/otel-core/metrics/metrics-host.service.js.map +1 -0
- package/dist/otel-core/metrics/otel-metrics.module.d.ts +54 -0
- package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -0
- package/dist/otel-core/metrics/otel-metrics.module.js +83 -0
- package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -0
- package/dist/otel-core/sdk/index.d.ts +5 -0
- package/dist/otel-core/sdk/index.d.ts.map +1 -0
- package/dist/otel-core/sdk/index.js +27 -0
- package/dist/otel-core/sdk/index.js.map +1 -0
- package/dist/otel-core/sdk/initialize-otel.d.ts +126 -0
- package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -0
- package/dist/otel-core/sdk/initialize-otel.js +204 -0
- package/dist/otel-core/sdk/initialize-otel.js.map +1 -0
- package/dist/otel-core/sdk/instance-id.d.ts +29 -0
- package/dist/otel-core/sdk/instance-id.d.ts.map +1 -0
- package/dist/otel-core/sdk/instance-id.js +65 -0
- package/dist/otel-core/sdk/instance-id.js.map +1 -0
- package/dist/otel-core/sdk/service-name.d.ts +28 -0
- package/dist/otel-core/sdk/service-name.d.ts.map +1 -0
- package/dist/otel-core/sdk/service-name.js +63 -0
- package/dist/otel-core/sdk/service-name.js.map +1 -0
- package/dist/otel-core/sdk/telemetry-gate.d.ts +116 -0
- package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -0
- package/dist/otel-core/sdk/telemetry-gate.js +297 -0
- package/dist/otel-core/sdk/telemetry-gate.js.map +1 -0
- package/dist/otel-core/spans/request-span-attributes.d.ts +58 -0
- package/dist/otel-core/spans/request-span-attributes.d.ts.map +1 -0
- package/dist/otel-core/spans/request-span-attributes.js +155 -0
- package/dist/otel-core/spans/request-span-attributes.js.map +1 -0
- package/dist/otel-core/spans/trace.decorator.d.ts +36 -0
- package/dist/otel-core/spans/trace.decorator.d.ts.map +1 -0
- package/dist/otel-core/spans/trace.decorator.js +74 -0
- package/dist/otel-core/spans/trace.decorator.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts +15 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js +50 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts +14 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.js +178 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +147 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.js +495 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +216 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.js +1256 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts +69 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.js +471 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts +15 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.js +68 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.js.map +1 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +92 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts.map +1 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.js +41 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts +45 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.js +303 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +41 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.js +187 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.controller.d.ts +14 -0
- package/dist/telemetry/connection/telemetry-connection.controller.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.controller.js +192 -0
- package/dist/telemetry/connection/telemetry-connection.controller.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts +28 -0
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.schema.js +106 -0
- package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.service.d.ts +197 -0
- package/dist/telemetry/connection/telemetry-connection.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.service.js +461 -0
- package/dist/telemetry/connection/telemetry-connection.service.js.map +1 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts +19 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -0
- package/dist/telemetry/dashboard/sql-literals.js +75 -0
- package/dist/telemetry/dashboard/sql-literals.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts +14 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +277 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +112 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js +904 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +212 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +486 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +235 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +269 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -0
- package/dist/telemetry/dashboard/verdict-policy.d.ts +51 -0
- package/dist/telemetry/dashboard/verdict-policy.d.ts.map +1 -0
- package/dist/telemetry/dashboard/verdict-policy.js +77 -0
- package/dist/telemetry/dashboard/verdict-policy.js.map +1 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts +21 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts.map +1 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js +59 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.js +69 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts +33 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.js +105 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +38 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +104 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +65 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.js +91 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.js.map +1 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.d.ts +14 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.js +29 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-config.dto.d.ts +59 -0
- package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-config.dto.js +18 -0
- package/dist/telemetry/dto/telemetry-config.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +397 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.js +118 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-query.dto.d.ts +44 -0
- package/dist/telemetry/dto/telemetry-query.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-query.dto.js +42 -0
- package/dist/telemetry/dto/telemetry-query.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-status.dto.d.ts +22 -0
- package/dist/telemetry/dto/telemetry-status.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-status.dto.js +12 -0
- package/dist/telemetry/dto/telemetry-status.dto.js.map +1 -0
- package/dist/telemetry/export/parquet-writer.loader.d.ts +13 -0
- package/dist/telemetry/export/parquet-writer.loader.d.ts.map +1 -0
- package/dist/telemetry/export/parquet-writer.loader.js +29 -0
- package/dist/telemetry/export/parquet-writer.loader.js.map +1 -0
- package/dist/telemetry/export/telemetry-export.service.d.ts +39 -0
- package/dist/telemetry/export/telemetry-export.service.d.ts.map +1 -0
- package/dist/telemetry/export/telemetry-export.service.js +185 -0
- package/dist/telemetry/export/telemetry-export.service.js.map +1 -0
- package/dist/telemetry/greptime/greptime-host.d.ts +44 -0
- package/dist/telemetry/greptime/greptime-host.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime-host.js +114 -0
- package/dist/telemetry/greptime/greptime-host.js.map +1 -0
- package/dist/telemetry/greptime/greptime.client.d.ts +171 -0
- package/dist/telemetry/greptime/greptime.client.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime.client.js +352 -0
- package/dist/telemetry/greptime/greptime.client.js.map +1 -0
- package/dist/telemetry/greptime/greptime.errors.d.ts +59 -0
- package/dist/telemetry/greptime/greptime.errors.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime.errors.js +100 -0
- package/dist/telemetry/greptime/greptime.errors.js.map +1 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +27 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.js +123 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -0
- package/dist/telemetry/index.d.ts +37 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +97 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/internal/blank-secret.d.ts +3 -0
- package/dist/telemetry/internal/blank-secret.d.ts.map +1 -0
- package/dist/telemetry/internal/blank-secret.js +14 -0
- package/dist/telemetry/internal/blank-secret.js.map +1 -0
- package/dist/telemetry/internal/csv.d.ts +9 -0
- package/dist/telemetry/internal/csv.d.ts.map +1 -0
- package/dist/telemetry/internal/csv.js +23 -0
- package/dist/telemetry/internal/csv.js.map +1 -0
- package/dist/telemetry/internal/sse.d.ts +23 -0
- package/dist/telemetry/internal/sse.d.ts.map +1 -0
- package/dist/telemetry/internal/sse.js +43 -0
- package/dist/telemetry/internal/sse.js.map +1 -0
- package/dist/telemetry/metrics/groups/database.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/database.metric-group.js +159 -0
- package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/host.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/host.metric-group.js +146 -0
- package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js +159 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js +144 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.js +163 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.js +103 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.d.ts +324 -0
- package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +30 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.js +37 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.js +180 -0
- package/dist/telemetry/metrics/metric-catalog.js.map +1 -0
- package/dist/telemetry/metrics/metric-group-registry.service.d.ts +59 -0
- package/dist/telemetry/metrics/metric-group-registry.service.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group-registry.service.js +99 -0
- package/dist/telemetry/metrics/metric-group-registry.service.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.d.ts +113 -0
- package/dist/telemetry/metrics/metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.js +647 -0
- package/dist/telemetry/metrics/metric-group.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.manifest.d.ts +2 -0
- package/dist/telemetry/metrics/metric-group.manifest.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.manifest.js +30 -0
- package/dist/telemetry/metrics/metric-group.manifest.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.registry.d.ts +109 -0
- package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.registry.js +181 -0
- package/dist/telemetry/metrics/metric-group.registry.js.map +1 -0
- package/dist/telemetry/metrics/metric-sql.d.ts +98 -0
- package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-sql.js +259 -0
- package/dist/telemetry/metrics/metric-sql.js.map +1 -0
- package/dist/telemetry/metrics/metric-values.d.ts +19 -0
- package/dist/telemetry/metrics/metric-values.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-values.js +97 -0
- package/dist/telemetry/metrics/metric-values.js.map +1 -0
- package/dist/telemetry/metrics/metric-verdict.d.ts +20 -0
- package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-verdict.js +218 -0
- package/dist/telemetry/metrics/metric-verdict.js.map +1 -0
- package/dist/telemetry/ports.d.ts +575 -0
- package/dist/telemetry/ports.d.ts.map +1 -0
- package/dist/telemetry/ports.js +78 -0
- package/dist/telemetry/ports.js.map +1 -0
- package/dist/telemetry/query/sql-guard.d.ts +71 -0
- package/dist/telemetry/query/sql-guard.d.ts.map +1 -0
- package/dist/telemetry/query/sql-guard.js +258 -0
- package/dist/telemetry/query/sql-guard.js.map +1 -0
- package/dist/telemetry/query/telemetry-availability.d.ts +11 -0
- package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-availability.js +55 -0
- package/dist/telemetry/query/telemetry-availability.js.map +1 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts +48 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-query.errors.js +100 -0
- package/dist/telemetry/query/telemetry-query.errors.js.map +1 -0
- package/dist/telemetry/query/telemetry-query.service.d.ts +57 -0
- package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-query.service.js +194 -0
- package/dist/telemetry/query/telemetry-query.service.js.map +1 -0
- package/dist/telemetry/query/telemetry-schema.service.d.ts +36 -0
- package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-schema.service.js +154 -0
- package/dist/telemetry/query/telemetry-schema.service.js.map +1 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +29 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts.map +1 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.js +27 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.js.map +1 -0
- package/dist/telemetry/stack/stack-agent.client.d.ts +76 -0
- package/dist/telemetry/stack/stack-agent.client.d.ts.map +1 -0
- package/dist/telemetry/stack/stack-agent.client.js +208 -0
- package/dist/telemetry/stack/stack-agent.client.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +43 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +159 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.controller.d.ts +14 -0
- package/dist/telemetry/stack/telemetry-stack.controller.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.controller.js +107 -0
- package/dist/telemetry/stack/telemetry-stack.controller.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.service.d.ts +19 -0
- package/dist/telemetry/stack/telemetry-stack.service.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.service.js +122 -0
- package/dist/telemetry/stack/telemetry-stack.service.js.map +1 -0
- package/dist/telemetry/tasks/telemetry-retention.task.d.ts +8 -0
- package/dist/telemetry/tasks/telemetry-retention.task.d.ts.map +1 -0
- package/dist/telemetry/tasks/telemetry-retention.task.js +61 -0
- package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -0
- package/dist/telemetry/telemetry-admin.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-admin.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-admin.controller.js +148 -0
- package/dist/telemetry/telemetry-admin.controller.js.map +1 -0
- package/dist/telemetry/telemetry-config.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-config.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-config.controller.js +73 -0
- package/dist/telemetry/telemetry-config.controller.js.map +1 -0
- package/dist/telemetry/telemetry-explorer.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-explorer.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-explorer.controller.js +193 -0
- package/dist/telemetry/telemetry-explorer.controller.js.map +1 -0
- package/dist/telemetry/telemetry-settings.service.d.ts +85 -0
- package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -0
- package/dist/telemetry/telemetry-settings.service.js +278 -0
- package/dist/telemetry/telemetry-settings.service.js.map +1 -0
- package/dist/telemetry/telemetry-status.service.d.ts +28 -0
- package/dist/telemetry/telemetry-status.service.d.ts.map +1 -0
- package/dist/telemetry/telemetry-status.service.js +185 -0
- package/dist/telemetry/telemetry-status.service.js.map +1 -0
- package/dist/telemetry/telemetry-support-bundle.section.d.ts +163 -0
- package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -0
- package/dist/telemetry/telemetry-support-bundle.section.js +187 -0
- package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -0
- package/dist/telemetry/telemetry.module.d.ts +35 -0
- package/dist/telemetry/telemetry.module.d.ts.map +1 -0
- package/dist/telemetry/telemetry.module.js +210 -0
- package/dist/telemetry/telemetry.module.js.map +1 -0
- package/dist/telemetry/telemetry.options.d.ts +176 -0
- package/dist/telemetry/telemetry.options.d.ts.map +1 -0
- package/dist/telemetry/telemetry.options.js +246 -0
- package/dist/telemetry/telemetry.options.js.map +1 -0
- package/dist/telemetry/telemetry.permissions.d.ts +76 -0
- package/dist/telemetry/telemetry.permissions.d.ts.map +1 -0
- package/dist/telemetry/telemetry.permissions.js +85 -0
- package/dist/telemetry/telemetry.permissions.js.map +1 -0
- package/dist/telemetry/telemetry.settings.d.ts +79 -0
- package/dist/telemetry/telemetry.settings.d.ts.map +1 -0
- package/dist/telemetry/telemetry.settings.js +92 -0
- package/dist/telemetry/telemetry.settings.js.map +1 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.d.ts +17 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.d.ts.map +1 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.js +128 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.js.map +1 -0
- package/dist/telemetry/testing/conformance.d.ts +257 -0
- package/dist/telemetry/testing/conformance.d.ts.map +1 -0
- package/dist/telemetry/testing/conformance.js +626 -0
- package/dist/telemetry/testing/conformance.js.map +1 -0
- package/dist/telemetry/testing/index.d.ts +10 -0
- package/dist/telemetry/testing/index.d.ts.map +1 -0
- package/dist/telemetry/testing/index.js +41 -0
- package/dist/telemetry/testing/index.js.map +1 -0
- package/dist/telemetry/testing/metric-schema.fixture.d.ts +73 -0
- package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -0
- package/dist/telemetry/testing/metric-schema.fixture.js +362 -0
- package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -0
- package/dist/telemetry/testing/stub-ports.d.ts +46 -0
- package/dist/telemetry/testing/stub-ports.d.ts.map +1 -0
- package/dist/telemetry/testing/stub-ports.js +119 -0
- package/dist/telemetry/testing/stub-ports.js.map +1 -0
- package/dist/testing/conformance-suite.d.ts +106 -0
- package/dist/testing/conformance-suite.d.ts.map +1 -0
- package/dist/testing/conformance-suite.js +8 -0
- package/dist/testing/conformance-suite.js.map +1 -0
- package/dist/testing/conformance-suites.d.ts +14 -0
- package/dist/testing/conformance-suites.d.ts.map +1 -0
- package/dist/testing/conformance-suites.js +27 -0
- package/dist/testing/conformance-suites.js.map +1 -0
- package/dist/testing/host/in-memory-audit-sink.d.ts +23 -0
- package/dist/testing/host/in-memory-audit-sink.d.ts.map +1 -0
- package/dist/testing/host/in-memory-audit-sink.js +30 -0
- package/dist/testing/host/in-memory-audit-sink.js.map +1 -0
- package/dist/testing/host/in-memory-system-settings-store.d.ts +31 -0
- package/dist/testing/host/in-memory-system-settings-store.d.ts.map +1 -0
- package/dist/testing/host/in-memory-system-settings-store.js +54 -0
- package/dist/testing/host/in-memory-system-settings-store.js.map +1 -0
- package/dist/testing/host/index.d.ts +4 -0
- package/dist/testing/host/index.d.ts.map +1 -0
- package/dist/testing/host/index.js +13 -0
- package/dist/testing/host/index.js.map +1 -0
- package/dist/testing/host/test-platform-host.d.ts +35 -0
- package/dist/testing/host/test-platform-host.d.ts.map +1 -0
- package/dist/testing/host/test-platform-host.js +81 -0
- package/dist/testing/host/test-platform-host.js.map +1 -0
- package/dist/testing/index.d.ts +12 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +32 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/prisma-schema.d.ts +99 -0
- package/dist/testing/prisma-schema.d.ts.map +1 -0
- package/dist/testing/prisma-schema.js +175 -0
- package/dist/testing/prisma-schema.js.map +1 -0
- package/dist/testing/run-platform-conformance.d.ts +70 -0
- package/dist/testing/run-platform-conformance.d.ts.map +1 -0
- package/dist/testing/run-platform-conformance.js +77 -0
- package/dist/testing/run-platform-conformance.js.map +1 -0
- package/dist/testing/suites/cron-enqueue-only.d.ts +46 -0
- package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -0
- package/dist/testing/suites/cron-enqueue-only.js +177 -0
- package/dist/testing/suites/cron-enqueue-only.js.map +1 -0
- package/dist/testing/suites/user-owned-data.d.ts +86 -0
- package/dist/testing/suites/user-owned-data.d.ts.map +1 -0
- package/dist/testing/suites/user-owned-data.js +329 -0
- package/dist/testing/suites/user-owned-data.js.map +1 -0
- package/package.json +129 -4
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The support bundle's options, part of `DoctorModuleOptions` (issue #772).
|
|
3
|
+
// Kept apart from doctor.module.ts so the service and the controller factory
|
|
4
|
+
// can read them without importing the module.
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SUPPORT_BUNDLE_AUDIT_ACTION = exports.SUPPORT_BUNDLE_SUBPATH = exports.SUPPORT_BUNDLE_MAX_BYTES = exports.SUPPORT_BUNDLE_SECTION_MAX_BYTES = exports.SUPPORT_BUNDLE_SECTION_TIMEOUT_MS = void 0;
|
|
7
|
+
exports.defaultSupportBundlePrincipal = defaultSupportBundlePrincipal;
|
|
8
|
+
exports.resolveSupportBundleOptions = resolveSupportBundleOptions;
|
|
9
|
+
/**
|
|
10
|
+
* Ceiling for one section's `collect()` when it declares no `timeoutMs`, in
|
|
11
|
+
* milliseconds.
|
|
12
|
+
*
|
|
13
|
+
* @stability experimental
|
|
14
|
+
*/
|
|
15
|
+
exports.SUPPORT_BUNDLE_SECTION_TIMEOUT_MS = 10_000;
|
|
16
|
+
/**
|
|
17
|
+
* A section whose serialized data is larger than this many bytes is replaced
|
|
18
|
+
* by `{ status: 'ok', data: null, truncated: true }`.
|
|
19
|
+
*
|
|
20
|
+
* @stability experimental
|
|
21
|
+
*/
|
|
22
|
+
exports.SUPPORT_BUNDLE_SECTION_MAX_BYTES = 512 * 1024;
|
|
23
|
+
/**
|
|
24
|
+
* The whole bundle's ceiling, in bytes of pretty-printed JSON. Above it the
|
|
25
|
+
* largest sections are truncated first until it fits.
|
|
26
|
+
*
|
|
27
|
+
* @stability experimental
|
|
28
|
+
*/
|
|
29
|
+
exports.SUPPORT_BUNDLE_MAX_BYTES = 2 * 1024 * 1024;
|
|
30
|
+
/**
|
|
31
|
+
* The route path under the Doctor's own path (`admin/doctor/support-bundle`).
|
|
32
|
+
*
|
|
33
|
+
* @stability experimental
|
|
34
|
+
*/
|
|
35
|
+
exports.SUPPORT_BUNDLE_SUBPATH = 'support-bundle';
|
|
36
|
+
/**
|
|
37
|
+
* The audit action of one download.
|
|
38
|
+
*
|
|
39
|
+
* @stability experimental
|
|
40
|
+
*/
|
|
41
|
+
exports.SUPPORT_BUNDLE_AUDIT_ACTION = 'support_bundle:download';
|
|
42
|
+
function isStringArray(value) {
|
|
43
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The default {@link SupportBundleOptions.principal}: `request.requestUser`,
|
|
47
|
+
* then `request.user`, when either carries a string `id` and a string-array
|
|
48
|
+
* `permissions` (the reference app's `RequestUser`).
|
|
49
|
+
*
|
|
50
|
+
* @param request - the framework request.
|
|
51
|
+
* @returns the caller, or `null` when neither property has that shape.
|
|
52
|
+
*
|
|
53
|
+
* @stability experimental
|
|
54
|
+
*/
|
|
55
|
+
function defaultSupportBundlePrincipal(request) {
|
|
56
|
+
if (request === null || typeof request !== 'object')
|
|
57
|
+
return null;
|
|
58
|
+
const { requestUser, user } = request;
|
|
59
|
+
for (const candidate of [requestUser, user]) {
|
|
60
|
+
if (candidate === null || typeof candidate !== 'object')
|
|
61
|
+
continue;
|
|
62
|
+
const { id, permissions } = candidate;
|
|
63
|
+
if (typeof id === 'string' && id !== '' && isStringArray(permissions))
|
|
64
|
+
return { userId: id, permissions };
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Validates `supportBundle` and applies its defaults.
|
|
70
|
+
*
|
|
71
|
+
* @param options - what the app passed (`undefined`, `false` or an object).
|
|
72
|
+
* @param fail - throws the module's own error.
|
|
73
|
+
* @returns the resolved, frozen options.
|
|
74
|
+
*/
|
|
75
|
+
function resolveSupportBundleOptions(options, fail) {
|
|
76
|
+
if (options === false) {
|
|
77
|
+
return Object.freeze({
|
|
78
|
+
enabled: false,
|
|
79
|
+
appSlug: 'app',
|
|
80
|
+
principal: defaultSupportBundlePrincipal,
|
|
81
|
+
sectionTimeoutMs: exports.SUPPORT_BUNDLE_SECTION_TIMEOUT_MS,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (options !== undefined && (options === null || typeof options !== 'object')) {
|
|
85
|
+
fail('`supportBundle` must be an object or false');
|
|
86
|
+
}
|
|
87
|
+
const appSlug = options?.appSlug ?? 'app';
|
|
88
|
+
if (typeof appSlug !== 'string' || !/^[a-z0-9][a-z0-9-]{0,62}$/.test(appSlug)) {
|
|
89
|
+
fail('`supportBundle.appSlug` must be lowercase letters, digits and dashes');
|
|
90
|
+
}
|
|
91
|
+
const principal = options?.principal ?? defaultSupportBundlePrincipal;
|
|
92
|
+
if (typeof principal !== 'function')
|
|
93
|
+
fail('`supportBundle.principal` must be a function');
|
|
94
|
+
const sectionTimeoutMs = options?.sectionTimeoutMs ?? exports.SUPPORT_BUNDLE_SECTION_TIMEOUT_MS;
|
|
95
|
+
if (typeof sectionTimeoutMs !== 'number' || !Number.isFinite(sectionTimeoutMs) || sectionTimeoutMs <= 0) {
|
|
96
|
+
fail('`supportBundle.sectionTimeoutMs` must be a positive number of milliseconds');
|
|
97
|
+
}
|
|
98
|
+
return Object.freeze({ enabled: true, appSlug, principal, sectionTimeoutMs });
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=support-bundle.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.options.js","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.options.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,8CAA8C;;;AAgG9C,sEASC;AASD,kEA0BC;AAxID;;;;;GAKG;AACU,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAExD;;;;;GAKG;AACU,QAAA,gCAAgC,GAAG,GAAG,GAAG,IAAI,CAAC;AAE3D;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD;;;;GAIG;AACU,QAAA,2BAA2B,GAAG,yBAAyB,CAAC;AA0CrE,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAAC,OAAgB;IAC5D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAoD,CAAC;IACnF,KAAK,MAAM,SAAS,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,SAAS;QAClE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,SAAoD,CAAC;QACjF,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE,IAAI,aAAa,CAAC,WAAW,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;IAC5G,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,2BAA2B,CACzC,OAAiD,EACjD,IAA4B;IAE5B,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,6BAA6B;YACxC,gBAAgB,EAAE,yCAAiC;SACpD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC,sEAAsE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,6BAA6B,CAAC;IACtE,IAAI,OAAO,SAAS,KAAK,UAAU;QAAE,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC1F,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,IAAI,yCAAiC,CAAC;IACxF,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QACxG,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { OnApplicationBootstrap } from '@nestjs/common';
|
|
2
|
+
import type { SupportBundleSection } from './support-bundle-section.interface';
|
|
3
|
+
/**
|
|
4
|
+
* The sections the support bundle collects. Provided (globally) by
|
|
5
|
+
* `DoctorModule.forRoot()`; a feature module's section injects it and
|
|
6
|
+
* registers itself from `onModuleInit`.
|
|
7
|
+
*
|
|
8
|
+
* @stability experimental
|
|
9
|
+
*/
|
|
10
|
+
export declare class SupportBundleRegistry implements OnApplicationBootstrap {
|
|
11
|
+
private readonly sections;
|
|
12
|
+
/**
|
|
13
|
+
* Adds `section`. Call it from the section's own `onModuleInit`.
|
|
14
|
+
*
|
|
15
|
+
* @param section - the section; its `id` must be unique across the application.
|
|
16
|
+
* @throws RegistryError `DUPLICATE_ID` when another section already uses its
|
|
17
|
+
* id, `INVALID_ID` for an id that is not a lowercase identifier,
|
|
18
|
+
* `INVALID_ENTRY` without `collect()` or a zod `schema`, `FROZEN` after the
|
|
19
|
+
* application has bootstrapped.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* onModuleInit(): void {
|
|
24
|
+
* this.registry.register(this);
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @extensionPoint registry
|
|
29
|
+
*/
|
|
30
|
+
register(section: SupportBundleSection): void;
|
|
31
|
+
/** The section registered under `id`, or `undefined`. */
|
|
32
|
+
get(id: string): SupportBundleSection | undefined;
|
|
33
|
+
/** Every registered section, in registration order. */
|
|
34
|
+
list(): SupportBundleSection[];
|
|
35
|
+
/** Refuses further registrations once every module's `onModuleInit` has run. */
|
|
36
|
+
onApplicationBootstrap(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=support-bundle.registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.registry.d.ts","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.registry.ts"],"names":[],"mappings":"AAcA,OAAO,EAAc,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK/E;;;;;;GAMG;AACH,qBACa,qBAAsB,YAAW,sBAAsB;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAgBtB;IAEH;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAI7C,yDAAyD;IACzD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIjD,uDAAuD;IACvD,IAAI,IAAI,oBAAoB,EAAE;IAI9B,gFAAgF;IAChF,sBAAsB,IAAI,IAAI;CAG/B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Support-bundle section registry (issue #772, PP-13.1)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// The one place that knows which sections `GET /api/admin/doctor/support-bundle`
|
|
7
|
+
// collects. The same mechanism as `DoctorCheckRegistry` and for the same
|
|
8
|
+
// reasons (read its header): explicit self-registration from `onModuleInit`,
|
|
9
|
+
// duplicate ids THROW at boot, and the registry freezes in
|
|
10
|
+
// `onApplicationBootstrap`, after every module's `onModuleInit` has run.
|
|
11
|
+
//
|
|
12
|
+
// Ids are restricted to lowercase identifiers because they become JSON keys of
|
|
13
|
+
// the bundle and the keys of the download's audit row.
|
|
14
|
+
// =============================================================================
|
|
15
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
16
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
17
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
18
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
19
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.SupportBundleRegistry = void 0;
|
|
23
|
+
const common_1 = require("@nestjs/common");
|
|
24
|
+
const index_1 = require("../../core/index");
|
|
25
|
+
/** Lowercase letters, digits, `.`, `_` and `-`, starting with a letter. */
|
|
26
|
+
const SECTION_ID_PATTERN = /^[a-z][a-z0-9._-]*$/;
|
|
27
|
+
/**
|
|
28
|
+
* The sections the support bundle collects. Provided (globally) by
|
|
29
|
+
* `DoctorModule.forRoot()`; a feature module's section injects it and
|
|
30
|
+
* registers itself from `onModuleInit`.
|
|
31
|
+
*
|
|
32
|
+
* @stability experimental
|
|
33
|
+
*/
|
|
34
|
+
let SupportBundleRegistry = class SupportBundleRegistry {
|
|
35
|
+
sections = new index_1.Registry({
|
|
36
|
+
name: 'support-bundle-sections',
|
|
37
|
+
idOf: (section) => section.id,
|
|
38
|
+
idPattern: SECTION_ID_PATTERN,
|
|
39
|
+
validate: (section) => {
|
|
40
|
+
if (typeof section.collect !== 'function')
|
|
41
|
+
throw new Error(`Support-bundle section "${section.id}" has no collect().`);
|
|
42
|
+
if (!section.schema || typeof section.schema.safeParse !== 'function') {
|
|
43
|
+
throw new Error(`Support-bundle section "${section.id}" has no zod schema.`);
|
|
44
|
+
}
|
|
45
|
+
if (section.timeoutMs !== undefined && (!Number.isFinite(section.timeoutMs) || section.timeoutMs <= 0)) {
|
|
46
|
+
throw new Error(`Support-bundle section "${section.id}" has an invalid timeoutMs.`);
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
describeDuplicate: (existing, incoming) => `Duplicate support-bundle section id "${incoming.id}": ${existing.constructor.name} and ` +
|
|
50
|
+
`${incoming.constructor.name} both register it. Section ids must be unique.`,
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Adds `section`. Call it from the section's own `onModuleInit`.
|
|
54
|
+
*
|
|
55
|
+
* @param section - the section; its `id` must be unique across the application.
|
|
56
|
+
* @throws RegistryError `DUPLICATE_ID` when another section already uses its
|
|
57
|
+
* id, `INVALID_ID` for an id that is not a lowercase identifier,
|
|
58
|
+
* `INVALID_ENTRY` without `collect()` or a zod `schema`, `FROZEN` after the
|
|
59
|
+
* application has bootstrapped.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* onModuleInit(): void {
|
|
64
|
+
* this.registry.register(this);
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @extensionPoint registry
|
|
69
|
+
*/
|
|
70
|
+
register(section) {
|
|
71
|
+
this.sections.register(section);
|
|
72
|
+
}
|
|
73
|
+
/** The section registered under `id`, or `undefined`. */
|
|
74
|
+
get(id) {
|
|
75
|
+
return this.sections.get(id);
|
|
76
|
+
}
|
|
77
|
+
/** Every registered section, in registration order. */
|
|
78
|
+
list() {
|
|
79
|
+
return this.sections.list();
|
|
80
|
+
}
|
|
81
|
+
/** Refuses further registrations once every module's `onModuleInit` has run. */
|
|
82
|
+
onApplicationBootstrap() {
|
|
83
|
+
this.sections.freeze();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
exports.SupportBundleRegistry = SupportBundleRegistry;
|
|
87
|
+
exports.SupportBundleRegistry = SupportBundleRegistry = __decorate([
|
|
88
|
+
(0, common_1.Injectable)()
|
|
89
|
+
], SupportBundleRegistry);
|
|
90
|
+
//# sourceMappingURL=support-bundle.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.registry.js","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.registry.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,wDAAwD;AACxD,gFAAgF;AAChF,EAAE;AACF,iFAAiF;AACjF,yEAAyE;AACzE,6EAA6E;AAC7E,2DAA2D;AAC3D,yEAAyE;AACzE,EAAE;AACF,+EAA+E;AAC/E,uDAAuD;AACvD,gFAAgF;;;;;;;;;AAEhF,2CAAoE;AAEpE,4CAA4C;AAG5C,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD;;;;;;GAMG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACf,QAAQ,GAAG,IAAI,gBAAQ,CAAuB;QAC7D,IAAI,EAAE,yBAAyB;QAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE;QAC7B,SAAS,EAAE,kBAAkB;QAC7B,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YACpB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;YACvH,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAQ,OAAO,CAAC,MAAkC,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;gBACvG,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACxC,wCAAwC,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO;YACzF,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,gDAAgD;KAC/E,CAAC,CAAC;IAEH;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,OAA6B;QACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,yDAAyD;IACzD,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,uDAAuD;IACvD,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,gFAAgF;IAChF,sBAAsB;QACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACF,CAAA;AAvDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAuDjC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { SupportBundle, SupportBundleSectionStatus } from '@marinoscar/platform-contract/doctor';
|
|
2
|
+
import type { AuditSink } from '../../core/index';
|
|
3
|
+
import type { ResolvedDoctorModuleOptions } from '../doctor.options';
|
|
4
|
+
import type { SupportBundlePrincipal } from './support-bundle-section.interface';
|
|
5
|
+
import { SupportBundleRegistry } from './support-bundle.registry';
|
|
6
|
+
/**
|
|
7
|
+
* One built bundle: the file, its name and what the audit row records.
|
|
8
|
+
*
|
|
9
|
+
* @stability experimental
|
|
10
|
+
*/
|
|
11
|
+
export interface SupportBundleBuild {
|
|
12
|
+
/** The file: pretty-printed JSON, UTF-8. */
|
|
13
|
+
body: Buffer;
|
|
14
|
+
/** `support-bundle-<appSlug>-<yyyyMMdd'T'HHmmss'Z'>.json`. */
|
|
15
|
+
filename: string;
|
|
16
|
+
/** The bundle the body serializes. */
|
|
17
|
+
bundle: SupportBundle;
|
|
18
|
+
/** Facts about the build, for the audit row and logs. */
|
|
19
|
+
meta: {
|
|
20
|
+
/** Each section's final status. */
|
|
21
|
+
sections: Record<string, SupportBundleSectionStatus>;
|
|
22
|
+
/** `body.length`. */
|
|
23
|
+
bytes: number;
|
|
24
|
+
/** `bundle.redaction.replacements`. */
|
|
25
|
+
replacements: number;
|
|
26
|
+
/** How long the build took, in milliseconds. */
|
|
27
|
+
durationMs: number;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Builds the support bundle from every section in {@link SupportBundleRegistry}.
|
|
32
|
+
* Provided by `DoctorModule.forRoot()`.
|
|
33
|
+
*
|
|
34
|
+
* @stability experimental
|
|
35
|
+
*/
|
|
36
|
+
export declare class SupportBundleService {
|
|
37
|
+
private readonly registry;
|
|
38
|
+
private readonly options;
|
|
39
|
+
private readonly audit?;
|
|
40
|
+
private readonly logger;
|
|
41
|
+
constructor(registry: SupportBundleRegistry, options: ResolvedDoctorModuleOptions, audit?: AuditSink | undefined);
|
|
42
|
+
/**
|
|
43
|
+
* Builds a bundle for `actor`, without auditing it.
|
|
44
|
+
*
|
|
45
|
+
* @param actor - the caller: their id (never written into the bundle) and permissions.
|
|
46
|
+
* @param now - the build instant. Default: now.
|
|
47
|
+
* @returns the file, its name, the bundle and its audit facts.
|
|
48
|
+
*/
|
|
49
|
+
build(actor: SupportBundlePrincipal, now?: Date): Promise<SupportBundleBuild>;
|
|
50
|
+
/**
|
|
51
|
+
* Builds a bundle for `actor` and records one `support_bundle:download`
|
|
52
|
+
* audit event (after the body is built; a failed write is logged, not thrown).
|
|
53
|
+
*
|
|
54
|
+
* @param actor - the caller.
|
|
55
|
+
* @returns the built bundle.
|
|
56
|
+
*/
|
|
57
|
+
download(actor: SupportBundlePrincipal): Promise<SupportBundleBuild>;
|
|
58
|
+
private describeSections;
|
|
59
|
+
private record;
|
|
60
|
+
/** Runs one section under its permission, timeout and schema. Never throws. */
|
|
61
|
+
private collect;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=support-bundle.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.service.d.ts","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.service.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,aAAa,EAEb,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,sBAAsB,EAAwB,MAAM,oCAAoC,CAAC;AAMvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAQlE;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,MAAM,EAAE,aAAa,CAAC;IACtB,yDAAyD;IACzD,IAAI,EAAE;QACJ,mCAAmC;QACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;QACrD,qBAAqB;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,uCAAuC;QACvC,YAAY,EAAE,MAAM,CAAC;QACrB,gDAAgD;QAChD,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAkCD;;;;;GAKG;AACH,qBACa,oBAAoB;IAIE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IALzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAGX,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,2BAA2B,EACnC,KAAK,CAAC,EAAE,SAAS,YAAA;IAUpE;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,sBAAsB,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6D/F;;;;;;OAMG;IACG,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAU1E,OAAO,CAAC,gBAAgB;YAMV,MAAM;IAiBpB,+EAA+E;YACjE,OAAO;CA2CtB"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// SupportBundleService: builds the support bundle (issue #772, PP-13.1)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// One JSON file an operator can attach to a support ticket: every registered
|
|
7
|
+
// section, collected in parallel, each validated by its own strict schema,
|
|
8
|
+
// then the central redaction pass (`redact.ts`), then the size caps.
|
|
9
|
+
//
|
|
10
|
+
// BOUNDED, SO NOT A QUEUE JOB (CLAUDE.md: "every long-running activity is a
|
|
11
|
+
// queue job"). The work finishes inside the request, like the telemetry
|
|
12
|
+
// export:
|
|
13
|
+
// - sections run in parallel, each cut off after its `timeoutMs` (default
|
|
14
|
+
// 10 s), so the build takes at most the longest section timeout;
|
|
15
|
+
// - the doctor section reads the Doctor's 15 s report cache
|
|
16
|
+
// (`run({ refresh: false })`), so downloading never multiplies probes;
|
|
17
|
+
// - the telemetry section reads the dashboard's 15 s result cache;
|
|
18
|
+
// - 512 KiB per section and 2 MiB per bundle.
|
|
19
|
+
// A fork that registers a slow section is bounded by that section's timeout.
|
|
20
|
+
//
|
|
21
|
+
// FAIL CLOSED, PER SECTION. A throw, a timeout or output that breaks the
|
|
22
|
+
// section's schema becomes `{ status: 'error', error: <one redacted line> }`
|
|
23
|
+
// and the section's data is DROPPED; the rest of the bundle is intact.
|
|
24
|
+
//
|
|
25
|
+
// AUDITED after the body is built: one `support_bundle:download` row per
|
|
26
|
+
// download, without the actor's email. A failed audit write is logged, not
|
|
27
|
+
// fatal (the bundle has been built; refusing it would not undo anything).
|
|
28
|
+
// =============================================================================
|
|
29
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
30
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
31
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
32
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
34
|
+
};
|
|
35
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
36
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
37
|
+
};
|
|
38
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
39
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.SupportBundleService = void 0;
|
|
43
|
+
const common_1 = require("@nestjs/common");
|
|
44
|
+
const index_1 = require("../../core/index");
|
|
45
|
+
const doctor_options_1 = require("../doctor.options");
|
|
46
|
+
const redact_1 = require("./redact");
|
|
47
|
+
const support_bundle_section_interface_1 = require("./support-bundle-section.interface");
|
|
48
|
+
const support_bundle_options_1 = require("./support-bundle.options");
|
|
49
|
+
const support_bundle_registry_1 = require("./support-bundle.registry");
|
|
50
|
+
/** What a schema failure says. Never the value, never zod's message (it can quote input). */
|
|
51
|
+
const SCHEMA_ERROR = 'section output did not match its schema';
|
|
52
|
+
/** An `error` line longer than this is cut. */
|
|
53
|
+
const MAX_ERROR_LENGTH = 300;
|
|
54
|
+
class SectionTimeoutError extends Error {
|
|
55
|
+
constructor(ms) {
|
|
56
|
+
super(`timed out after ${ms} ms`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** One line, cut, with no stack: what an `error` field may say. */
|
|
60
|
+
function oneLine(message) {
|
|
61
|
+
const line = (message.split(/\r?\n/)[0] ?? '').trim() || 'section failed';
|
|
62
|
+
return line.length > MAX_ERROR_LENGTH ? `${line.slice(0, MAX_ERROR_LENGTH - 1)}…` : line;
|
|
63
|
+
}
|
|
64
|
+
function messageOf(error) {
|
|
65
|
+
return error instanceof Error ? error.message : String(error);
|
|
66
|
+
}
|
|
67
|
+
function pad(n) {
|
|
68
|
+
return String(n).padStart(2, '0');
|
|
69
|
+
}
|
|
70
|
+
/** `yyyyMMdd'T'HHmmss'Z'`, UTC. */
|
|
71
|
+
function filenameStamp(at) {
|
|
72
|
+
return (`${at.getUTCFullYear()}${pad(at.getUTCMonth() + 1)}${pad(at.getUTCDate())}` +
|
|
73
|
+
`T${pad(at.getUTCHours())}${pad(at.getUTCMinutes())}${pad(at.getUTCSeconds())}Z`);
|
|
74
|
+
}
|
|
75
|
+
function bytesOf(value) {
|
|
76
|
+
return Buffer.byteLength(JSON.stringify(value ?? null, null, 2), 'utf8');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Builds the support bundle from every section in {@link SupportBundleRegistry}.
|
|
80
|
+
* Provided by `DoctorModule.forRoot()`.
|
|
81
|
+
*
|
|
82
|
+
* @stability experimental
|
|
83
|
+
*/
|
|
84
|
+
let SupportBundleService = class SupportBundleService {
|
|
85
|
+
registry;
|
|
86
|
+
options;
|
|
87
|
+
audit;
|
|
88
|
+
logger = new common_1.Logger('SupportBundleService');
|
|
89
|
+
constructor(registry, options, audit) {
|
|
90
|
+
this.registry = registry;
|
|
91
|
+
this.options = options;
|
|
92
|
+
this.audit = audit;
|
|
93
|
+
if (!audit && options.supportBundle.enabled) {
|
|
94
|
+
this.logger.warn('No AUDIT_SINK is bound: support-bundle downloads will not be audited. ' +
|
|
95
|
+
'Bind one with PlatformHostModule.forRoot({ audit }).');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Builds a bundle for `actor`, without auditing it.
|
|
100
|
+
*
|
|
101
|
+
* @param actor - the caller: their id (never written into the bundle) and permissions.
|
|
102
|
+
* @param now - the build instant. Default: now.
|
|
103
|
+
* @returns the file, its name, the bundle and its audit facts.
|
|
104
|
+
*/
|
|
105
|
+
async build(actor, now = new Date()) {
|
|
106
|
+
const started = Date.now();
|
|
107
|
+
const permissions = new Set(actor.permissions);
|
|
108
|
+
const sections = this.registry.list();
|
|
109
|
+
const results = await Promise.all(sections.map(async (section) => [section.id, await this.collect(section, actor.userId, permissions, now)]));
|
|
110
|
+
// The central redaction pass, one section at a time so a section id is
|
|
111
|
+
// never itself mistaken for a sensitive key.
|
|
112
|
+
let replacements = 0;
|
|
113
|
+
const redacted = {};
|
|
114
|
+
for (const [id, result] of results) {
|
|
115
|
+
const pass = (0, redact_1.redactValue)(result, { path: ['sections', id] });
|
|
116
|
+
replacements += pass.replacements;
|
|
117
|
+
redacted[id] = pass.value;
|
|
118
|
+
}
|
|
119
|
+
// Per-section cap, after redaction (what is measured is what is sent).
|
|
120
|
+
for (const [id, result] of Object.entries(redacted)) {
|
|
121
|
+
if (result.status === 'ok' && bytesOf(result.data) > support_bundle_options_1.SUPPORT_BUNDLE_SECTION_MAX_BYTES) {
|
|
122
|
+
this.logger.warn(`Support-bundle section "${id}" exceeded ${support_bundle_options_1.SUPPORT_BUNDLE_SECTION_MAX_BYTES} bytes and was truncated.`);
|
|
123
|
+
redacted[id] = { status: 'ok', data: null, truncated: true };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const bundle = {
|
|
127
|
+
bundleVersion: 1,
|
|
128
|
+
generatedAt: now.toISOString(),
|
|
129
|
+
redaction: { rules: redact_1.SUPPORT_BUNDLE_REDACTION_VERSION, replacements },
|
|
130
|
+
sections: redacted,
|
|
131
|
+
};
|
|
132
|
+
// Whole-bundle cap: the largest sections go first.
|
|
133
|
+
let body = JSON.stringify(bundle, null, 2);
|
|
134
|
+
while (Buffer.byteLength(body, 'utf8') > support_bundle_options_1.SUPPORT_BUNDLE_MAX_BYTES) {
|
|
135
|
+
const largest = Object.entries(redacted)
|
|
136
|
+
.filter(([, result]) => result.status === 'ok' && result.data !== null)
|
|
137
|
+
.map(([id, result]) => [id, bytesOf(result.data)])
|
|
138
|
+
.sort((a, b) => b[1] - a[1])[0];
|
|
139
|
+
if (!largest)
|
|
140
|
+
break;
|
|
141
|
+
this.logger.warn(`Support bundle exceeded ${support_bundle_options_1.SUPPORT_BUNDLE_MAX_BYTES} bytes; truncated section "${largest[0]}".`);
|
|
142
|
+
redacted[largest[0]] = { status: 'ok', data: null, truncated: true };
|
|
143
|
+
body = JSON.stringify(bundle, null, 2);
|
|
144
|
+
}
|
|
145
|
+
const buffer = Buffer.from(`${body}\n`, 'utf8');
|
|
146
|
+
return {
|
|
147
|
+
body: buffer,
|
|
148
|
+
filename: `support-bundle-${this.options.supportBundle.appSlug}-${filenameStamp(now)}.json`,
|
|
149
|
+
bundle,
|
|
150
|
+
meta: {
|
|
151
|
+
sections: Object.fromEntries(Object.entries(redacted).map(([id, result]) => [id, result.status])),
|
|
152
|
+
bytes: buffer.length,
|
|
153
|
+
replacements,
|
|
154
|
+
durationMs: Date.now() - started,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Builds a bundle for `actor` and records one `support_bundle:download`
|
|
160
|
+
* audit event (after the body is built; a failed write is logged, not thrown).
|
|
161
|
+
*
|
|
162
|
+
* @param actor - the caller.
|
|
163
|
+
* @returns the built bundle.
|
|
164
|
+
*/
|
|
165
|
+
async download(actor) {
|
|
166
|
+
const built = await this.build(actor);
|
|
167
|
+
await this.record(actor, built);
|
|
168
|
+
this.logger.log(`Support bundle built: ${built.meta.bytes} bytes, ${built.meta.replacements} replacement(s), ` +
|
|
169
|
+
`${built.meta.durationMs} ms (${this.describeSections(built)}).`);
|
|
170
|
+
return built;
|
|
171
|
+
}
|
|
172
|
+
describeSections(built) {
|
|
173
|
+
return Object.entries(built.meta.sections)
|
|
174
|
+
.map(([id, status]) => `${id}=${status}`)
|
|
175
|
+
.join(',');
|
|
176
|
+
}
|
|
177
|
+
async record(actor, built) {
|
|
178
|
+
if (!this.audit)
|
|
179
|
+
return;
|
|
180
|
+
try {
|
|
181
|
+
await this.audit.record({
|
|
182
|
+
action: support_bundle_options_1.SUPPORT_BUNDLE_AUDIT_ACTION,
|
|
183
|
+
actorUserId: actor.userId,
|
|
184
|
+
targetType: 'deployment',
|
|
185
|
+
targetId: 'support_bundle',
|
|
186
|
+
// Scalars only (the AuditSink contract): the section statuses as one
|
|
187
|
+
// `id=status` list. Never the actor's email.
|
|
188
|
+
meta: { sections: this.describeSections(built), bytes: built.meta.bytes, replacements: built.meta.replacements },
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
this.logger.warn(`Could not audit a support-bundle download: ${(0, redact_1.redactString)(oneLine(messageOf(error))).value}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/** Runs one section under its permission, timeout and schema. Never throws. */
|
|
196
|
+
async collect(section, actorUserId, permissions, now) {
|
|
197
|
+
if (section.permission && !permissions.has(section.permission)) {
|
|
198
|
+
return { status: 'omitted', reason: `requires the ${section.permission} permission` };
|
|
199
|
+
}
|
|
200
|
+
const timeoutMs = section.timeoutMs ?? this.options.supportBundle.sectionTimeoutMs;
|
|
201
|
+
const controller = new AbortController();
|
|
202
|
+
let timer;
|
|
203
|
+
try {
|
|
204
|
+
const raw = await Promise.race([
|
|
205
|
+
Promise.resolve().then(() => section.collect({ actorUserId, permissions, now, signal: controller.signal })),
|
|
206
|
+
new Promise((_resolve, reject) => {
|
|
207
|
+
timer = setTimeout(() => {
|
|
208
|
+
controller.abort();
|
|
209
|
+
reject(new SectionTimeoutError(timeoutMs));
|
|
210
|
+
}, timeoutMs);
|
|
211
|
+
}),
|
|
212
|
+
]);
|
|
213
|
+
if ((0, support_bundle_section_interface_1.isSupportBundleOmission)(raw))
|
|
214
|
+
return { status: 'omitted', reason: oneLine(raw.reason) };
|
|
215
|
+
const parsed = section.schema.safeParse(raw);
|
|
216
|
+
if (!parsed.success) {
|
|
217
|
+
// Paths only: zod's messages can quote the offending input.
|
|
218
|
+
const paths = parsed.error.issues.map((issue) => issue.path.join('.') || '(root)').slice(0, 5);
|
|
219
|
+
this.logger.warn(`Support-bundle section "${section.id}" broke its schema at ${paths.join(', ')}; its data was dropped.`);
|
|
220
|
+
return { status: 'error', error: SCHEMA_ERROR };
|
|
221
|
+
}
|
|
222
|
+
return { status: 'ok', data: parsed.data ?? null };
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
const line = oneLine(messageOf(error));
|
|
226
|
+
this.logger.warn(`Support-bundle section "${section.id}" failed: ${(0, redact_1.redactString)(line).value}`);
|
|
227
|
+
return { status: 'error', error: line };
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
if (timer)
|
|
231
|
+
clearTimeout(timer);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
exports.SupportBundleService = SupportBundleService;
|
|
236
|
+
exports.SupportBundleService = SupportBundleService = __decorate([
|
|
237
|
+
(0, common_1.Injectable)(),
|
|
238
|
+
__param(0, (0, common_1.Inject)(support_bundle_registry_1.SupportBundleRegistry)),
|
|
239
|
+
__param(1, (0, common_1.Inject)(doctor_options_1.DOCTOR_MODULE_OPTIONS)),
|
|
240
|
+
__param(2, (0, common_1.Optional)()),
|
|
241
|
+
__param(2, (0, common_1.Inject)(index_1.AUDIT_SINK)),
|
|
242
|
+
__metadata("design:paramtypes", [support_bundle_registry_1.SupportBundleRegistry, Object, Object])
|
|
243
|
+
], SupportBundleService);
|
|
244
|
+
//# sourceMappingURL=support-bundle.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.service.js","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The npm name of this package, which holds NestJS dynamic modules of the platform.
|
|
3
|
+
*
|
|
4
|
+
* A placeholder export so the build, the pack check and the smoke imports in
|
|
5
|
+
* CI have something to load end to end. Real slices arrive as subpath
|
|
6
|
+
* exports (`@marinoscar/platform-api/<slice>`).
|
|
7
|
+
*
|
|
8
|
+
* @stability experimental
|
|
9
|
+
*/
|
|
10
|
+
export declare const PLATFORM_PACKAGE: "@marinoscar/platform-api";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAG,0BAAmC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PLATFORM_PACKAGE = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The npm name of this package, which holds NestJS dynamic modules of the platform.
|
|
6
|
+
*
|
|
7
|
+
* A placeholder export so the build, the pack check and the smoke imports in
|
|
8
|
+
* CI have something to load end to end. Real slices arrive as subpath
|
|
9
|
+
* exports (`@marinoscar/platform-api/<slice>`).
|
|
10
|
+
*
|
|
11
|
+
* @stability experimental
|
|
12
|
+
*/
|
|
13
|
+
exports.PLATFORM_PACKAGE = '@marinoscar/platform-api';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACU,QAAA,gBAAgB,GAAG,0BAAmC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './sdk/index';
|
|
2
|
+
export { APP_METRIC_ATTRIBUTE_KEY_PATTERN, APP_METRIC_KEY_PATTERN, APP_METRIC_NAME_PATTERN, appMetricRegistry, assertAppMetric, registerAppMetrics, type AppMetricAttribute, type AppMetricDef, type AppMetricKeys, type AppMetricKind, } from './metrics/metric-name.registry';
|
|
3
|
+
export { LabelBudget, MAX_DISTINCT_VALUES, OTHER_LABEL, UNKNOWN_LABEL, enumLabel, nonNegative, shapeLabel, } from './metrics/labels';
|
|
4
|
+
export { createRegisteredGauge, type AppGaugeContext, type AppMetricKeyLike, type GaugeProvider, } from './metrics/gauge-provider';
|
|
5
|
+
export { APP_METER_NAME, METRICS_HOST_OPTIONS, MetricsHostService, type MetricsHostOptions, } from './metrics/metrics-host.service';
|
|
6
|
+
export { OtelMetricsModule, type OtelMetricsModuleAsyncOptions } from './metrics/otel-metrics.module';
|
|
7
|
+
export { ATTR_APP_REQUEST_BEARER, ATTR_APP_ROUTE_MATCHED, ATTR_HTTP_ROUTE, hasBearer, registerRequestSpanAttributes, requestSpanAttributesHook, } from './spans/request-span-attributes';
|
|
8
|
+
export { Trace, type TraceOptions } from './spans/trace.decorator';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/otel-core/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAC;AAE5B,OAAO,EACL,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,KAAK,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAEtG,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
|