@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,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The `meta` support-bundle section (issue #772): which platform packages are
|
|
3
|
+
// installed, at which versions, and which sections the bundle holds. Built in;
|
|
4
|
+
// registered by `DoctorModule.forRoot()`.
|
|
5
|
+
//
|
|
6
|
+
// NO ACTOR: the caller's id and email are audited, never written into the
|
|
7
|
+
// bundle.
|
|
8
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
9
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
10
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
11
|
+
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;
|
|
12
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
|
+
};
|
|
14
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
16
|
+
};
|
|
17
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
18
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.MetaSupportBundleSection = exports.PLATFORM_PACKAGE_NAMES = void 0;
|
|
22
|
+
const common_1 = require("@nestjs/common");
|
|
23
|
+
const zod_1 = require("zod");
|
|
24
|
+
const support_bundle_registry_1 = require("../support-bundle.registry");
|
|
25
|
+
/**
|
|
26
|
+
* The platform packages whose versions the `meta` section reports, when installed.
|
|
27
|
+
*
|
|
28
|
+
* @stability experimental
|
|
29
|
+
*/
|
|
30
|
+
exports.PLATFORM_PACKAGE_NAMES = Object.freeze([
|
|
31
|
+
'@marinoscar/platform-contract',
|
|
32
|
+
'@marinoscar/platform-api',
|
|
33
|
+
'@marinoscar/platform-web',
|
|
34
|
+
'@marinoscar/platform-db',
|
|
35
|
+
'@marinoscar/platform-cli',
|
|
36
|
+
'@marinoscar/platform-infra',
|
|
37
|
+
]);
|
|
38
|
+
const metaSectionSchema = zod_1.z
|
|
39
|
+
.object({
|
|
40
|
+
platformPackages: zod_1.z
|
|
41
|
+
.record(zod_1.z.string().regex(/^@marinoscar\/platform-[a-z]+$/), zod_1.z.string().max(64))
|
|
42
|
+
.describe('Installed platform packages and their versions; a package that is not installed is absent.'),
|
|
43
|
+
sections: zod_1.z.array(zod_1.z.string()).describe('The section ids this bundle holds, in registration order.'),
|
|
44
|
+
})
|
|
45
|
+
.strict();
|
|
46
|
+
/** Reads `<name>/package.json`'s version, or `null` when the package is not installed. */
|
|
47
|
+
function installedVersion(name) {
|
|
48
|
+
try {
|
|
49
|
+
// Every platform package exports `./package.json`.
|
|
50
|
+
const manifest = require(`${name}/package.json`);
|
|
51
|
+
return typeof manifest.version === 'string' ? manifest.version : null;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The built-in `meta` section: platform package versions and section ids.
|
|
59
|
+
*
|
|
60
|
+
* @stability experimental
|
|
61
|
+
*/
|
|
62
|
+
let MetaSupportBundleSection = class MetaSupportBundleSection {
|
|
63
|
+
registry;
|
|
64
|
+
id = 'meta';
|
|
65
|
+
label = 'Bundle metadata';
|
|
66
|
+
schema = metaSectionSchema;
|
|
67
|
+
constructor(registry) {
|
|
68
|
+
this.registry = registry;
|
|
69
|
+
}
|
|
70
|
+
onModuleInit() {
|
|
71
|
+
this.registry.register(this);
|
|
72
|
+
}
|
|
73
|
+
async collect() {
|
|
74
|
+
const platformPackages = {};
|
|
75
|
+
for (const name of exports.PLATFORM_PACKAGE_NAMES) {
|
|
76
|
+
const version = installedVersion(name);
|
|
77
|
+
if (version !== null)
|
|
78
|
+
platformPackages[name] = version;
|
|
79
|
+
}
|
|
80
|
+
return { platformPackages, sections: this.registry.list().map((section) => section.id) };
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
exports.MetaSupportBundleSection = MetaSupportBundleSection;
|
|
84
|
+
exports.MetaSupportBundleSection = MetaSupportBundleSection = __decorate([
|
|
85
|
+
(0, common_1.Injectable)(),
|
|
86
|
+
__param(0, (0, common_1.Inject)(support_bundle_registry_1.SupportBundleRegistry)),
|
|
87
|
+
__metadata("design:paramtypes", [support_bundle_registry_1.SupportBundleRegistry])
|
|
88
|
+
], MetaSupportBundleSection);
|
|
89
|
+
//# sourceMappingURL=meta.section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.section.js","sourceRoot":"","sources":["../../../../src/doctor/support-bundle/sections/meta.section.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,0CAA0C;AAC1C,EAAE;AACF,0EAA0E;AAC1E,UAAU;;;;;;;;;;;;;;;AAEV,2CAAkE;AAClE,6BAAwB;AAGxB,wEAAmE;AAEnE;;;;GAIG;AACU,QAAA,sBAAsB,GAAsB,MAAM,CAAC,MAAM,CAAC;IACrE,+BAA+B;IAC/B,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;IACzB,0BAA0B;IAC1B,4BAA4B;CAC7B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,OAAC;KACxB,MAAM,CAAC;IACN,gBAAgB,EAAE,OAAC;SAChB,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAC9E,QAAQ,CAAC,4FAA4F,CAAC;IACzG,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;CACpG,CAAC;KACD,MAAM,EAAE,CAAC;AASZ,0FAA0F;AAC1F,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,mDAAmD;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,eAAe,CAA0B,CAAC;QAC1E,OAAO,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAKyB;IAJnD,EAAE,GAAG,MAAM,CAAC;IACZ,KAAK,GAAG,iBAAiB,CAAC;IAC1B,MAAM,GAAG,iBAAiB,CAAC;IAEpC,YAA4D,QAA+B;QAA/B,aAAQ,GAAR,QAAQ,CAAuB;IAAG,CAAC;IAE/F,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,gBAAgB,GAA2B,EAAE,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,8BAAsB,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,OAAO,KAAK,IAAI;gBAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3F,CAAC;CACF,CAAA;AAnBY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;IAME,WAAA,IAAA,eAAM,EAAC,+CAAqB,CAAC,CAAA;qCAA4B,+CAAqB;GALhF,wBAAwB,CAmBpC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { ZodType } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* What a section's `collect()` receives.
|
|
4
|
+
*
|
|
5
|
+
* @stability experimental
|
|
6
|
+
*/
|
|
7
|
+
export interface SupportBundleSectionContext {
|
|
8
|
+
/** Who is downloading the bundle. For an audited read the section performs on their behalf; never copy it into the data. */
|
|
9
|
+
readonly actorUserId: string;
|
|
10
|
+
/** Every permission the caller holds. */
|
|
11
|
+
readonly permissions: ReadonlySet<string>;
|
|
12
|
+
/** When the bundle build started. Use it instead of `new Date()` so every section agrees. */
|
|
13
|
+
readonly now: Date;
|
|
14
|
+
/** Aborted when the section's timeout elapses. Pass it on to any I/O that accepts one. */
|
|
15
|
+
readonly signal: AbortSignal;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* One section of the support bundle. Implement it in the module that owns the
|
|
19
|
+
* capability, inject `SupportBundleRegistry` and call
|
|
20
|
+
* `registry.register(this)` from `onModuleInit`.
|
|
21
|
+
*
|
|
22
|
+
* @typeParam T - the data the section returns, as its `schema` describes it.
|
|
23
|
+
*
|
|
24
|
+
* @extensionPoint registry
|
|
25
|
+
* @stability experimental
|
|
26
|
+
*/
|
|
27
|
+
export interface SupportBundleSection<T = unknown> {
|
|
28
|
+
/** Unique across the application; the key of the section in the bundle (`'doctor'`, `'versions'`, `'telemetry'`). Lowercase letters, digits, `.`, `_` and `-`. */
|
|
29
|
+
readonly id: string;
|
|
30
|
+
/** Human label, for logs and docs. */
|
|
31
|
+
readonly label: string;
|
|
32
|
+
/**
|
|
33
|
+
* A permission needed IN ADDITION to the route's own (`system_settings:read`
|
|
34
|
+
* by default). A caller without it gets `{ status: 'omitted' }` for this
|
|
35
|
+
* section.
|
|
36
|
+
*/
|
|
37
|
+
readonly permission?: string;
|
|
38
|
+
/** Strict schema (`.strict()` objects): an unexpected field fails the section closed. */
|
|
39
|
+
readonly schema: ZodType<T>;
|
|
40
|
+
/** Ceiling for `collect()`, in milliseconds. Default 10_000. */
|
|
41
|
+
readonly timeoutMs?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Gathers the section's data. READ-ONLY, like a doctor check: no writes, no
|
|
44
|
+
* jobs, no model calls, no "test" services. Return
|
|
45
|
+
* {@link SupportBundleOmission} (`omitSupportBundleSection(reason)`) when the
|
|
46
|
+
* capability is off and there is nothing to collect.
|
|
47
|
+
*
|
|
48
|
+
* @param ctx - the caller, the build instant and the timeout signal.
|
|
49
|
+
*/
|
|
50
|
+
collect(ctx: SupportBundleSectionContext): Promise<T | SupportBundleOmission>;
|
|
51
|
+
}
|
|
52
|
+
declare const OMISSION: unique symbol;
|
|
53
|
+
/**
|
|
54
|
+
* What `collect()` returns to say "nothing to collect" (the capability is
|
|
55
|
+
* switched off or not configured). Build it with {@link omitSupportBundleSection}.
|
|
56
|
+
*
|
|
57
|
+
* @stability experimental
|
|
58
|
+
*/
|
|
59
|
+
export interface SupportBundleOmission {
|
|
60
|
+
/** Brand; do not construct by hand. */
|
|
61
|
+
readonly [OMISSION]: true;
|
|
62
|
+
/** One line saying why, shown as the section's `reason`. */
|
|
63
|
+
readonly reason: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Marks a section as `omitted` from inside `collect()`.
|
|
67
|
+
*
|
|
68
|
+
* @param reason - one line saying why (`'telemetry is switched off'`).
|
|
69
|
+
* @returns the omission marker to return from `collect()`.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* if (!policy.enabled) return omitSupportBundleSection('telemetry is switched off');
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @stability experimental
|
|
77
|
+
*/
|
|
78
|
+
export declare function omitSupportBundleSection(reason: string): SupportBundleOmission;
|
|
79
|
+
/**
|
|
80
|
+
* Whether `value` is the marker {@link omitSupportBundleSection} returns.
|
|
81
|
+
*
|
|
82
|
+
* @param value - what a section's `collect()` resolved with.
|
|
83
|
+
* @returns `true` for an omission.
|
|
84
|
+
*
|
|
85
|
+
* @stability experimental
|
|
86
|
+
*/
|
|
87
|
+
export declare function isSupportBundleOmission(value: unknown): value is SupportBundleOmission;
|
|
88
|
+
/**
|
|
89
|
+
* Who is downloading the bundle, as the route resolves them from the request.
|
|
90
|
+
*
|
|
91
|
+
* @stability experimental
|
|
92
|
+
*/
|
|
93
|
+
export interface SupportBundlePrincipal {
|
|
94
|
+
/** The caller's user id. Audited; never written into the bundle. */
|
|
95
|
+
readonly userId: string;
|
|
96
|
+
/** Every permission the caller holds. */
|
|
97
|
+
readonly permissions: readonly string[];
|
|
98
|
+
}
|
|
99
|
+
export {};
|
|
100
|
+
//# sourceMappingURL=support-bundle-section.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle-section.interface.d.ts","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle-section.interface.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,4HAA4H;IAC5H,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,6FAA6F;IAC7F,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C,kKAAkK;IAClK,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC;CAC/E;AAED,QAAA,MAAM,QAAQ,eAAkE,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAE9E;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAEtF;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// The support-bundle section contract (issue #772, PP-13.1)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// A SECTION is one capability's contribution to the support bundle
|
|
7
|
+
// (`GET /api/admin/doctor/support-bundle`): the Doctor report, the versions,
|
|
8
|
+
// a telemetry summary, an app's own facts. It mirrors a doctor check:
|
|
9
|
+
//
|
|
10
|
+
// 1. READ-ONLY, like a doctor check (rule 3 of `doctor-check.interface.ts`):
|
|
11
|
+
// no writes, no jobs, no model calls, no "test" services. An audited
|
|
12
|
+
// read the capability already performs (the telemetry dashboard's
|
|
13
|
+
// `telemetry:dashboard` row) is fine; a new write is not.
|
|
14
|
+
// 2. ALLOWLIST, NEVER DENYLIST. `collect()` copies the fields it means to
|
|
15
|
+
// send into a new object; it never spreads a service's response. The
|
|
16
|
+
// section's `schema` is STRICT (`.strict()` objects), so a field nobody
|
|
17
|
+
// chose fails the section closed (status `error`, data dropped) instead
|
|
18
|
+
// of leaking.
|
|
19
|
+
// 3. NO SECRET MATERIAL, no personal data beyond counts. A central redaction
|
|
20
|
+
// pass (`redact.ts`) runs over the whole bundle afterwards, but it is the
|
|
21
|
+
// second line of defence, not the first.
|
|
22
|
+
// 4. BOUNDED. Each section runs under `timeoutMs` (default 10 s) and its
|
|
23
|
+
// serialized data is capped at 512 KiB.
|
|
24
|
+
//
|
|
25
|
+
// Sections self-register with `SupportBundleRegistry` from `onModuleInit`,
|
|
26
|
+
// exactly as checks register with `DoctorCheckRegistry`.
|
|
27
|
+
// =============================================================================
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.omitSupportBundleSection = omitSupportBundleSection;
|
|
30
|
+
exports.isSupportBundleOmission = isSupportBundleOmission;
|
|
31
|
+
const OMISSION = Symbol.for('@marinoscar/platform/doctor/SupportBundleOmission');
|
|
32
|
+
/**
|
|
33
|
+
* Marks a section as `omitted` from inside `collect()`.
|
|
34
|
+
*
|
|
35
|
+
* @param reason - one line saying why (`'telemetry is switched off'`).
|
|
36
|
+
* @returns the omission marker to return from `collect()`.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* if (!policy.enabled) return omitSupportBundleSection('telemetry is switched off');
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @stability experimental
|
|
44
|
+
*/
|
|
45
|
+
function omitSupportBundleSection(reason) {
|
|
46
|
+
return Object.freeze({ [OMISSION]: true, reason });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether `value` is the marker {@link omitSupportBundleSection} returns.
|
|
50
|
+
*
|
|
51
|
+
* @param value - what a section's `collect()` resolved with.
|
|
52
|
+
* @returns `true` for an omission.
|
|
53
|
+
*
|
|
54
|
+
* @stability experimental
|
|
55
|
+
*/
|
|
56
|
+
function isSupportBundleOmission(value) {
|
|
57
|
+
return typeof value === 'object' && value !== null && value[OMISSION] === true;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=support-bundle-section.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle-section.interface.js","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle-section.interface.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,4DAA4D;AAC5D,gFAAgF;AAChF,EAAE;AACF,mEAAmE;AACnE,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,uEAAuE;AACvE,+DAA+D;AAC/D,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,mBAAmB;AACnB,+EAA+E;AAC/E,+EAA+E;AAC/E,8CAA8C;AAC9C,2EAA2E;AAC3E,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,yDAAyD;AACzD,gFAAgF;;AAoFhF,4DAEC;AAUD,0DAEC;AA1CD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;AAejF;;;;;;;;;;;;GAYG;AACH,SAAgB,wBAAwB,CAAC,MAAc;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAa,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,KAAc;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAAiC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AAC9G,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import type { FastifyReply } from 'fastify';
|
|
3
|
+
import type { ResolvedDoctorModuleOptions } from '../doctor.options';
|
|
4
|
+
declare const SupportBundleDto_base: import("nestjs-zod").ZodDto<import("zod").ZodObject<{
|
|
5
|
+
bundleVersion: import("zod").ZodLiteral<1>;
|
|
6
|
+
generatedAt: import("zod").ZodString;
|
|
7
|
+
redaction: import("zod").ZodObject<{
|
|
8
|
+
rules: import("zod").ZodLiteral<"v1">;
|
|
9
|
+
replacements: import("zod").ZodNumber;
|
|
10
|
+
}, import("zod/v4/core").$strip>;
|
|
11
|
+
sections: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
12
|
+
status: import("zod").ZodLiteral<"ok">;
|
|
13
|
+
data: import("zod").ZodUnknown;
|
|
14
|
+
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
15
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
16
|
+
status: import("zod").ZodLiteral<"omitted">;
|
|
17
|
+
reason: import("zod").ZodString;
|
|
18
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
19
|
+
status: import("zod").ZodLiteral<"error">;
|
|
20
|
+
error: import("zod").ZodString;
|
|
21
|
+
}, import("zod/v4/core").$strip>], "status">>;
|
|
22
|
+
}, import("zod/v4/core").$strip>, false>;
|
|
23
|
+
/**
|
|
24
|
+
* The bundle's OpenAPI schema (from `@marinoscar/platform-contract/doctor`).
|
|
25
|
+
*
|
|
26
|
+
* @stability experimental
|
|
27
|
+
*/
|
|
28
|
+
export declare class SupportBundleDto extends SupportBundleDto_base {
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The shape of the controller class {@link createSupportBundleController} returns.
|
|
32
|
+
*
|
|
33
|
+
* @stability experimental
|
|
34
|
+
*/
|
|
35
|
+
export interface SupportBundleControllerInstance {
|
|
36
|
+
/**
|
|
37
|
+
* `GET <path>/support-bundle`: builds the bundle and sends it as a JSON attachment.
|
|
38
|
+
*
|
|
39
|
+
* @param request - the framework request (the caller is resolved from it).
|
|
40
|
+
* @param reply - the Fastify reply the file is written to.
|
|
41
|
+
*/
|
|
42
|
+
download(request: unknown, reply: FastifyReply): Promise<FastifyReply>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates the support bundle's controller class for one set of options: the
|
|
46
|
+
* route at `<options.path>/support-bundle`, guarded by
|
|
47
|
+
* `options.host.access.requirePermissions([options.permission])`.
|
|
48
|
+
* `DoctorModule.forRoot()` calls it; an app never needs to.
|
|
49
|
+
*
|
|
50
|
+
* @param options - the resolved Doctor module options.
|
|
51
|
+
* @returns a controller class named `SupportBundleController` with a `download` handler.
|
|
52
|
+
*
|
|
53
|
+
* @stability experimental
|
|
54
|
+
*/
|
|
55
|
+
export declare function createSupportBundleController(options: ResolvedDoctorModuleOptions): Type<SupportBundleControllerInstance>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=support-bundle.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.controller.d.ts","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.controller.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAyD,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;AAIrE;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,qBAAiC;CAAG;AAE1E;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACxE;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAAC,+BAA+B,CAAC,CA+CzH"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// GET /api/admin/doctor/support-bundle, created per app (issue #772, PP-13.1)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// The controller-factory recipe (core README, "Host ports"), as the Doctor's
|
|
7
|
+
// own controller: the class is defined inside a function
|
|
8
|
+
// `DoctorModule.forRoot()` calls, with the access decorator the app's host
|
|
9
|
+
// supplies, so the route gets exactly the app's `@Auth()`.
|
|
10
|
+
//
|
|
11
|
+
// A SIBLING of `DoctorController`, not a new handler on it, so the Doctor's
|
|
12
|
+
// own OpenAPI operation (`doctor_getReport`) stays word for word what it was.
|
|
13
|
+
// Same path prefix, same permission (`system_settings:read` by default): the
|
|
14
|
+
// bundle describes the deployment's configuration and health, exactly what
|
|
15
|
+
// that permission covers, and no new permission is invented. A section that
|
|
16
|
+
// needs more (telemetry needs `telemetry:query`) declares it and is `omitted`
|
|
17
|
+
// for a caller without it.
|
|
18
|
+
//
|
|
19
|
+
// The body is the FILE, not the `{ data, meta }` envelope: the handler writes
|
|
20
|
+
// the reply itself (`@Res()`), like the telemetry export.
|
|
21
|
+
//
|
|
22
|
+
// Not `@AllowDuringMaintenance()`, the same as the Doctor route: the doctor
|
|
23
|
+
// section performs network I/O through the checks.
|
|
24
|
+
// =============================================================================
|
|
25
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
26
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
27
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
28
|
+
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;
|
|
29
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
30
|
+
};
|
|
31
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
+
};
|
|
34
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
35
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.SupportBundleDto = void 0;
|
|
39
|
+
exports.createSupportBundleController = createSupportBundleController;
|
|
40
|
+
const common_1 = require("@nestjs/common");
|
|
41
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
42
|
+
const nestjs_zod_1 = require("nestjs-zod");
|
|
43
|
+
const doctor_1 = require("@marinoscar/platform-contract/doctor");
|
|
44
|
+
const support_bundle_options_1 = require("./support-bundle.options");
|
|
45
|
+
const support_bundle_service_1 = require("./support-bundle.service");
|
|
46
|
+
/**
|
|
47
|
+
* The bundle's OpenAPI schema (from `@marinoscar/platform-contract/doctor`).
|
|
48
|
+
*
|
|
49
|
+
* @stability experimental
|
|
50
|
+
*/
|
|
51
|
+
class SupportBundleDto extends (0, nestjs_zod_1.createZodDto)(doctor_1.supportBundleSchema) {
|
|
52
|
+
}
|
|
53
|
+
exports.SupportBundleDto = SupportBundleDto;
|
|
54
|
+
function describeOperation(options) {
|
|
55
|
+
return ('Builds one JSON file for a support ticket: the doctor report, the deployment versions, ' +
|
|
56
|
+
'a 24-hour telemetry summary and every section the application registers, each validated ' +
|
|
57
|
+
'by its own strict schema and then passed through a central redaction pass that removes ' +
|
|
58
|
+
'secrets and personal data (rules `v1`; `redaction.replacements` counts what it replaced). ' +
|
|
59
|
+
'Raw logs, traces and query results are never included.\n\n' +
|
|
60
|
+
'**Returned as an attachment** (`Content-Disposition: attachment; filename="support-bundle-' +
|
|
61
|
+
`${options.supportBundle.appSlug}-<yyyyMMdd'T'HHmmss'Z'>.json"\`), not in the \`{ data }\` envelope.\n\n` +
|
|
62
|
+
'**Per-section outcome.** `ok` (collected), `omitted` (a section-specific permission is missing — ' +
|
|
63
|
+
'the telemetry section needs `telemetry:query` — or the capability is off) or `error` (the section ' +
|
|
64
|
+
'threw, timed out or broke its schema; its data is dropped). The rest of the bundle is always intact.\n\n' +
|
|
65
|
+
`**Bounded.** Sections run in parallel, each cut off after ${options.supportBundle.sectionTimeoutMs} ms ` +
|
|
66
|
+
`unless it declares otherwise; ${support_bundle_options_1.SUPPORT_BUNDLE_SECTION_MAX_BYTES} bytes per section and ` +
|
|
67
|
+
`${support_bundle_options_1.SUPPORT_BUNDLE_MAX_BYTES} bytes per bundle (larger sections are truncated). The doctor report is ` +
|
|
68
|
+
'served from its cache, so a download never multiplies probes.\n\n' +
|
|
69
|
+
'Audited as `support_bundle:download`. ' +
|
|
70
|
+
`Requires \`${options.permission}\`.`);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates the support bundle's controller class for one set of options: the
|
|
74
|
+
* route at `<options.path>/support-bundle`, guarded by
|
|
75
|
+
* `options.host.access.requirePermissions([options.permission])`.
|
|
76
|
+
* `DoctorModule.forRoot()` calls it; an app never needs to.
|
|
77
|
+
*
|
|
78
|
+
* @param options - the resolved Doctor module options.
|
|
79
|
+
* @returns a controller class named `SupportBundleController` with a `download` handler.
|
|
80
|
+
*
|
|
81
|
+
* @stability experimental
|
|
82
|
+
*/
|
|
83
|
+
function createSupportBundleController(options) {
|
|
84
|
+
const requireAccess = options.host.access.requirePermissions([options.permission]);
|
|
85
|
+
let SupportBundleController = class SupportBundleController {
|
|
86
|
+
bundles;
|
|
87
|
+
constructor(bundles) {
|
|
88
|
+
this.bundles = bundles;
|
|
89
|
+
}
|
|
90
|
+
async download(request, reply) {
|
|
91
|
+
const actor = options.supportBundle.principal(request);
|
|
92
|
+
if (!actor)
|
|
93
|
+
throw new common_1.ForbiddenException('The caller could not be identified.');
|
|
94
|
+
const built = await this.bundles.download(actor);
|
|
95
|
+
return reply
|
|
96
|
+
.status(200)
|
|
97
|
+
.header('Content-Type', 'application/json; charset=utf-8')
|
|
98
|
+
.header('Content-Disposition', `attachment; filename="${built.filename}"`)
|
|
99
|
+
.header('Content-Length', String(built.body.length))
|
|
100
|
+
.header('Cache-Control', 'no-store')
|
|
101
|
+
.header('X-Content-Type-Options', 'nosniff')
|
|
102
|
+
.send(built.body);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
__decorate([
|
|
106
|
+
(0, common_1.Get)(support_bundle_options_1.SUPPORT_BUNDLE_SUBPATH),
|
|
107
|
+
requireAccess,
|
|
108
|
+
(0, swagger_1.ApiOperation)({
|
|
109
|
+
summary: 'Download a redacted support bundle (Admin only)',
|
|
110
|
+
description: describeOperation(options),
|
|
111
|
+
}),
|
|
112
|
+
(0, swagger_1.ApiProduces)('application/json'),
|
|
113
|
+
(0, swagger_1.ApiResponse)({
|
|
114
|
+
status: 200,
|
|
115
|
+
description: 'The support bundle, as a JSON attachment.',
|
|
116
|
+
type: SupportBundleDto,
|
|
117
|
+
headers: {
|
|
118
|
+
'Content-Disposition': {
|
|
119
|
+
description: "`attachment; filename=\"support-bundle-<slug>-<yyyyMMdd'T'HHmmss'Z'>.json\"`",
|
|
120
|
+
schema: { type: 'string' },
|
|
121
|
+
},
|
|
122
|
+
'Cache-Control': { description: '`no-store`', schema: { type: 'string' } },
|
|
123
|
+
},
|
|
124
|
+
}),
|
|
125
|
+
(0, swagger_1.ApiResponse)({ status: 401, description: 'Not signed in' }),
|
|
126
|
+
(0, swagger_1.ApiResponse)({ status: 403, description: `Missing \`${options.permission}\`` }),
|
|
127
|
+
__param(0, (0, common_1.Req)()),
|
|
128
|
+
__param(1, (0, common_1.Res)()),
|
|
129
|
+
__metadata("design:type", Function),
|
|
130
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
131
|
+
__metadata("design:returntype", Promise)
|
|
132
|
+
], SupportBundleController.prototype, "download", null);
|
|
133
|
+
SupportBundleController = __decorate([
|
|
134
|
+
(0, swagger_1.ApiTags)('Doctor'),
|
|
135
|
+
(0, common_1.Controller)(options.path),
|
|
136
|
+
__param(0, (0, common_1.Inject)(support_bundle_service_1.SupportBundleService)),
|
|
137
|
+
__metadata("design:paramtypes", [support_bundle_service_1.SupportBundleService])
|
|
138
|
+
], SupportBundleController);
|
|
139
|
+
return SupportBundleController;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=support-bundle.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.controller.js","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.controller.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,yDAAyD;AACzD,2EAA2E;AAC3E,2DAA2D;AAC3D,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,2BAA2B;AAC3B,EAAE;AACF,8EAA8E;AAC9E,0DAA0D;AAC1D,EAAE;AACF,4EAA4E;AAC5E,mDAAmD;AACnD,gFAAgF;;;;;;;;;;;;;;;AAkEhF,sEA+CC;AA/GD,2CAA6F;AAC7F,6CAAkF;AAElF,2CAA0C;AAC1C,iEAA2E;AAG3E,qEAA8H;AAC9H,qEAAgE;AAEhE;;;;GAIG;AACH,MAAa,gBAAiB,SAAQ,IAAA,yBAAY,EAAC,4BAAmB,CAAC;CAAG;AAA1E,4CAA0E;AAiB1E,SAAS,iBAAiB,CAAC,OAAoC;IAC7D,OAAO,CACL,yFAAyF;QACzF,0FAA0F;QAC1F,yFAAyF;QACzF,4FAA4F;QAC5F,4DAA4D;QAC5D,4FAA4F;QAC5F,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,yEAAyE;QACzG,mGAAmG;QACnG,oGAAoG;QACpG,0GAA0G;QAC1G,6DAA6D,OAAO,CAAC,aAAa,CAAC,gBAAgB,MAAM;QACzG,iCAAiC,yDAAgC,yBAAyB;QAC1F,GAAG,iDAAwB,0EAA0E;QACrG,mEAAmE;QACnE,wCAAwC;QACxC,cAAc,OAAO,CAAC,UAAU,KAAK,CACtC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,6BAA6B,CAAC,OAAoC;IAChF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnF,IAEM,uBAAuB,GAF7B,MAEM,uBAAuB;QACgC;QAA3D,YAA2D,OAA6B;YAA7B,YAAO,GAAP,OAAO,CAAsB;QAAG,CAAC;QAuBtF,AAAN,KAAK,CAAC,QAAQ,CAAQ,OAAgB,EAAS,KAAmB;YAChE,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,2BAAkB,CAAC,qCAAqC,CAAC,CAAC;YAEhF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEjD,OAAO,KAAK;iBACT,MAAM,CAAC,GAAG,CAAC;iBACX,MAAM,CAAC,cAAc,EAAE,iCAAiC,CAAC;iBACzD,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,KAAK,CAAC,QAAQ,GAAG,CAAC;iBACzE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACnD,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;iBACnC,MAAM,CAAC,wBAAwB,EAAE,SAAS,CAAC;iBAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;KACF,CAAA;IAfO;QArBL,IAAA,YAAG,EAAC,+CAAsB,CAAC;QAC3B,aAAa;QACb,IAAA,sBAAY,EAAC;YACZ,OAAO,EAAE,iDAAiD;YAC1D,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC;QACD,IAAA,qBAAW,EAAC,kBAAkB,CAAC;QAC/B,IAAA,qBAAW,EAAC;YACX,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,2CAA2C;YACxD,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE;gBACP,qBAAqB,EAAE;oBACrB,WAAW,EAAE,8EAA8E;oBAC3F,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC3B;gBACD,eAAe,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;aAC3E;SACF,CAAC;QACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;QAC1D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC/D,WAAA,IAAA,YAAG,GAAE,CAAA;QAAoB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;2DAc7C;IAtCG,uBAAuB;QAF5B,IAAA,iBAAO,EAAC,QAAQ,CAAC;QACjB,IAAA,mBAAU,EAAC,OAAO,CAAC,IAAI,CAAC;QAEV,WAAA,IAAA,eAAM,EAAC,6CAAoB,CAAC,CAAA;yCAA2B,6CAAoB;OADpF,uBAAuB,CAuC5B;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { SupportBundlePrincipal } from './support-bundle-section.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Ceiling for one section's `collect()` when it declares no `timeoutMs`, in
|
|
4
|
+
* milliseconds.
|
|
5
|
+
*
|
|
6
|
+
* @stability experimental
|
|
7
|
+
*/
|
|
8
|
+
export declare const SUPPORT_BUNDLE_SECTION_TIMEOUT_MS = 10000;
|
|
9
|
+
/**
|
|
10
|
+
* A section whose serialized data is larger than this many bytes is replaced
|
|
11
|
+
* by `{ status: 'ok', data: null, truncated: true }`.
|
|
12
|
+
*
|
|
13
|
+
* @stability experimental
|
|
14
|
+
*/
|
|
15
|
+
export declare const SUPPORT_BUNDLE_SECTION_MAX_BYTES: number;
|
|
16
|
+
/**
|
|
17
|
+
* The whole bundle's ceiling, in bytes of pretty-printed JSON. Above it the
|
|
18
|
+
* largest sections are truncated first until it fits.
|
|
19
|
+
*
|
|
20
|
+
* @stability experimental
|
|
21
|
+
*/
|
|
22
|
+
export declare const SUPPORT_BUNDLE_MAX_BYTES: number;
|
|
23
|
+
/**
|
|
24
|
+
* The route path under the Doctor's own path (`admin/doctor/support-bundle`).
|
|
25
|
+
*
|
|
26
|
+
* @stability experimental
|
|
27
|
+
*/
|
|
28
|
+
export declare const SUPPORT_BUNDLE_SUBPATH = "support-bundle";
|
|
29
|
+
/**
|
|
30
|
+
* The audit action of one download.
|
|
31
|
+
*
|
|
32
|
+
* @stability experimental
|
|
33
|
+
*/
|
|
34
|
+
export declare const SUPPORT_BUNDLE_AUDIT_ACTION = "support_bundle:download";
|
|
35
|
+
/**
|
|
36
|
+
* What an app passes as `DoctorModuleOptions.supportBundle`.
|
|
37
|
+
*
|
|
38
|
+
* @extensionPoint option
|
|
39
|
+
* @stability experimental
|
|
40
|
+
*/
|
|
41
|
+
export interface SupportBundleOptions {
|
|
42
|
+
/**
|
|
43
|
+
* The app's slug, used in the download's filename
|
|
44
|
+
* (`support-bundle-<appSlug>-<yyyyMMdd'T'HHmmss'Z'>.json`). Lowercase
|
|
45
|
+
* letters, digits and dashes. Default `'app'`.
|
|
46
|
+
*/
|
|
47
|
+
appSlug?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Resolves the signed-in caller from the request, after the route's access
|
|
50
|
+
* check has passed. Default: `request.requestUser`, then `request.user`,
|
|
51
|
+
* when either has a string `id` and a string-array `permissions`. Returning
|
|
52
|
+
* `null` refuses the download with 403.
|
|
53
|
+
*/
|
|
54
|
+
principal?: (request: unknown) => SupportBundlePrincipal | null;
|
|
55
|
+
/** Per-section ceiling when a section declares none, in milliseconds. Default {@link SUPPORT_BUNDLE_SECTION_TIMEOUT_MS}. */
|
|
56
|
+
sectionTimeoutMs?: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* `SupportBundleOptions` with every default applied.
|
|
60
|
+
*
|
|
61
|
+
* @stability experimental
|
|
62
|
+
*/
|
|
63
|
+
export interface ResolvedSupportBundleOptions {
|
|
64
|
+
/** `false` when the app passed `supportBundle: false`: no route, no built-in sections. */
|
|
65
|
+
readonly enabled: boolean;
|
|
66
|
+
/** The slug in the download's filename. */
|
|
67
|
+
readonly appSlug: string;
|
|
68
|
+
/** Resolves the caller from the request. */
|
|
69
|
+
readonly principal: (request: unknown) => SupportBundlePrincipal | null;
|
|
70
|
+
/** Per-section ceiling when a section declares none, in milliseconds. */
|
|
71
|
+
readonly sectionTimeoutMs: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The default {@link SupportBundleOptions.principal}: `request.requestUser`,
|
|
75
|
+
* then `request.user`, when either carries a string `id` and a string-array
|
|
76
|
+
* `permissions` (the reference app's `RequestUser`).
|
|
77
|
+
*
|
|
78
|
+
* @param request - the framework request.
|
|
79
|
+
* @returns the caller, or `null` when neither property has that shape.
|
|
80
|
+
*
|
|
81
|
+
* @stability experimental
|
|
82
|
+
*/
|
|
83
|
+
export declare function defaultSupportBundlePrincipal(request: unknown): SupportBundlePrincipal | null;
|
|
84
|
+
/**
|
|
85
|
+
* Validates `supportBundle` and applies its defaults.
|
|
86
|
+
*
|
|
87
|
+
* @param options - what the app passed (`undefined`, `false` or an object).
|
|
88
|
+
* @param fail - throws the module's own error.
|
|
89
|
+
* @returns the resolved, frozen options.
|
|
90
|
+
*/
|
|
91
|
+
export declare function resolveSupportBundleOptions(options: SupportBundleOptions | false | undefined, fail: (why: string) => never): ResolvedSupportBundleOptions;
|
|
92
|
+
//# sourceMappingURL=support-bundle.options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-bundle.options.d.ts","sourceRoot":"","sources":["../../../src/doctor/support-bundle/support-bundle.options.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAAa,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,sBAAsB,GAAG,IAAI,CAAC;IAChE,4HAA4H;IAC5H,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,sBAAsB,GAAG,IAAI,CAAC;IACxE,yEAAyE;IACzE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAMD;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAS7F;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,GAAG,KAAK,GAAG,SAAS,EACjD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC3B,4BAA4B,CAuB9B"}
|