@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,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Stub host ports for the telemetry slice (PP-4.6)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// The six host ports (`../ports.ts`) as in-memory fakes, for a TEST that has to
|
|
7
|
+
// boot `TelemetryModule.forRoot` without an app: the conformance suite, and an
|
|
8
|
+
// app's own boot test. Never import it from production code.
|
|
9
|
+
//
|
|
10
|
+
// What is seedable is what a test needs to prove: the credential store can hold
|
|
11
|
+
// KNOWN passwords (so a test can assert none reaches a response), and the
|
|
12
|
+
// settings store can hold a `telemetry_connection` row. Everything else is the
|
|
13
|
+
// smallest stub that satisfies the port: audit rows are collected, jobs are
|
|
14
|
+
// recorded, AI is off.
|
|
15
|
+
// =============================================================================
|
|
16
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
17
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
18
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
19
|
+
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;
|
|
20
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.createStubTelemetryPorts = createStubTelemetryPorts;
|
|
24
|
+
const common_1 = require("@nestjs/common");
|
|
25
|
+
const ports_1 = require("../ports");
|
|
26
|
+
const telemetry_settings_1 = require("../telemetry.settings");
|
|
27
|
+
/**
|
|
28
|
+
* A Nest module exporting one in-memory provider per telemetry host port, with
|
|
29
|
+
* its state. Pass the module in `TelemetryModule.forRoot({ imports: [module] })`.
|
|
30
|
+
*
|
|
31
|
+
* @param options - what the credential and settings stores hold.
|
|
32
|
+
* @returns the module class and the state its stubs write to.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* const { module, state } = createStubTelemetryPorts({ credentials: { reader: 'known-password' } });
|
|
37
|
+
* TelemetryModule.forRoot({ host: createTestPlatformHost(), imports: [module] });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @stability experimental
|
|
41
|
+
*/
|
|
42
|
+
function createStubTelemetryPorts(options = {}) {
|
|
43
|
+
const state = { audit: [], handlers: [] };
|
|
44
|
+
const secrets = new Map(Object.entries(options.credentials ?? {}));
|
|
45
|
+
const rows = new Map(Object.entries(options.rows ?? {}));
|
|
46
|
+
const savedAt = new Date('2026-01-01T00:00:00.000Z');
|
|
47
|
+
const describe = async (purpose, name) => {
|
|
48
|
+
const secret = secrets.get(name);
|
|
49
|
+
if (secret === undefined || purpose !== 'telemetry_greptime')
|
|
50
|
+
return null;
|
|
51
|
+
return { purpose, name, hint: secret.slice(-4), label: null, updatedByUserId: null, createdAt: savedAt, updatedAt: savedAt };
|
|
52
|
+
};
|
|
53
|
+
let StubTelemetryPortsModule = class StubTelemetryPortsModule {
|
|
54
|
+
};
|
|
55
|
+
StubTelemetryPortsModule = __decorate([
|
|
56
|
+
(0, common_1.Module)({
|
|
57
|
+
providers: [
|
|
58
|
+
{ provide: ports_1.TELEMETRY_AUDIT_SINK, useValue: { record: async (event) => void state.audit.push(event) } },
|
|
59
|
+
{
|
|
60
|
+
provide: ports_1.TELEMETRY_SETTINGS_STORE,
|
|
61
|
+
useValue: {
|
|
62
|
+
getTelemetryPolicy: async () => structuredClone(telemetry_settings_1.TELEMETRY_SETTINGS_DEFAULTS),
|
|
63
|
+
replaceTelemetryPolicy: async () => undefined,
|
|
64
|
+
readPolicyProvenance: async () => null,
|
|
65
|
+
readRow: async (key) => rows.has(key) ? { value: structuredClone(rows.get(key)), version: 1, updatedAt: savedAt, updatedBy: null } : null,
|
|
66
|
+
writeRow: async (key, value) => void rows.set(key, value),
|
|
67
|
+
deleteRow: async (key) => void rows.delete(key),
|
|
68
|
+
readFeatureFlag: async () => false,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
provide: ports_1.TELEMETRY_CREDENTIAL_STORE,
|
|
73
|
+
useValue: {
|
|
74
|
+
getSecret: async (purpose, name) => (purpose === 'telemetry_greptime' ? (secrets.get(name) ?? null) : null),
|
|
75
|
+
setSecret: async (_purpose, name, secret) => {
|
|
76
|
+
if (secret)
|
|
77
|
+
secrets.set(name, secret);
|
|
78
|
+
else
|
|
79
|
+
secrets.delete(name);
|
|
80
|
+
},
|
|
81
|
+
deleteSecret: async (_purpose, name) => void secrets.delete(name),
|
|
82
|
+
describe,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
provide: ports_1.TELEMETRY_JOBS,
|
|
87
|
+
useValue: {
|
|
88
|
+
enqueue: async () => ({ id: 'job-1', status: 'pending' }),
|
|
89
|
+
enqueueHousekeepingJob: async () => undefined,
|
|
90
|
+
registerHandler: (handler) => void state.handlers.push(handler.type),
|
|
91
|
+
findLatest: async () => null,
|
|
92
|
+
updatePayload: async () => undefined,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
provide: ports_1.TELEMETRY_AI,
|
|
97
|
+
useValue: {
|
|
98
|
+
forUser: () => ({ runTools: async () => ({ final: {}, steps: [], stopReason: 'completed' }) }),
|
|
99
|
+
defineTool: (definition) => definition,
|
|
100
|
+
isAiError: () => false,
|
|
101
|
+
assertEnabled: async () => undefined,
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
provide: ports_1.TELEMETRY_APP_INFO,
|
|
106
|
+
useValue: {
|
|
107
|
+
slug: 'stub-app',
|
|
108
|
+
serviceName: () => 'stub-app-api',
|
|
109
|
+
apiVersion: () => '0.0.0',
|
|
110
|
+
readDeployInfo: async () => ({ status: 'absent', document: null }),
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
exports: [ports_1.TELEMETRY_AUDIT_SINK, ports_1.TELEMETRY_SETTINGS_STORE, ports_1.TELEMETRY_CREDENTIAL_STORE, ports_1.TELEMETRY_JOBS, ports_1.TELEMETRY_AI, ports_1.TELEMETRY_APP_INFO],
|
|
115
|
+
})
|
|
116
|
+
], StubTelemetryPortsModule);
|
|
117
|
+
return { module: StubTelemetryPortsModule, state };
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=stub-ports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub-ports.js","sourceRoot":"","sources":["../../../src/telemetry/testing/stub-ports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The slice of a test runner the harness needs, so it works under Jest and
|
|
3
|
+
* Vitest (`globals: true`) without depending on either.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* // A recording fake, for testing a suite without a runner.
|
|
8
|
+
* const calls: string[] = [];
|
|
9
|
+
* const fake: ConformanceTestApi = {
|
|
10
|
+
* describe: (name, fn) => { calls.push(name); fn(); },
|
|
11
|
+
* it: (name) => { calls.push(name); },
|
|
12
|
+
* expect: () => ({ toEqual() {}, toBeGreaterThanOrEqual() {}, toContain() {} }),
|
|
13
|
+
* };
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @stability experimental
|
|
17
|
+
*/
|
|
18
|
+
export interface ConformanceTestApi {
|
|
19
|
+
/** Registers a group of tests. */
|
|
20
|
+
describe(name: string, fn: () => void): void;
|
|
21
|
+
/** Registers one test. */
|
|
22
|
+
it(name: string, fn: () => void | Promise<void>): void;
|
|
23
|
+
/** The assertion entry point; only the matchers below are ever used. */
|
|
24
|
+
expect: (actual: unknown) => {
|
|
25
|
+
/** Deep equality with `expected`. */
|
|
26
|
+
toEqual(expected: unknown): void;
|
|
27
|
+
/** The actual number is at least `n`. */
|
|
28
|
+
toBeGreaterThanOrEqual(n: number): void;
|
|
29
|
+
/** The actual array contains `item`. */
|
|
30
|
+
toContain(item: unknown): void;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* One violation a suite found.
|
|
35
|
+
*
|
|
36
|
+
* @stability experimental
|
|
37
|
+
*/
|
|
38
|
+
export interface ConformanceFinding {
|
|
39
|
+
/** The offending file, relative to the source root that holds it, with `/` separators. */
|
|
40
|
+
file: string;
|
|
41
|
+
/** What is wrong, phrased to complete "<file>: ". */
|
|
42
|
+
message: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* What a suite saw and what it objects to.
|
|
46
|
+
*
|
|
47
|
+
* @stability experimental
|
|
48
|
+
*/
|
|
49
|
+
export interface ConformanceReport {
|
|
50
|
+
/** Counts of what the scan saw, for vacuity guards (for example `cronFiles`). */
|
|
51
|
+
scanned: Record<string, number>;
|
|
52
|
+
/** The files behind each count, relative to their source root, for suites that assert a file was seen. */
|
|
53
|
+
scannedFiles: Record<string, readonly string[]>;
|
|
54
|
+
/** Every violation, in scan order. Empty means the app conforms. */
|
|
55
|
+
findings: ConformanceFinding[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Where a suite scans.
|
|
59
|
+
*
|
|
60
|
+
* @stability experimental
|
|
61
|
+
*/
|
|
62
|
+
export interface ConformanceContext {
|
|
63
|
+
/** Absolute directories holding the app's non-test TypeScript sources. */
|
|
64
|
+
sourceRoots: readonly string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* One test a suite asks the harness to register.
|
|
68
|
+
*
|
|
69
|
+
* @stability experimental
|
|
70
|
+
*/
|
|
71
|
+
export interface ConformanceCase {
|
|
72
|
+
/** The test title; stable, because dashboards and CI filters read it. */
|
|
73
|
+
name: string;
|
|
74
|
+
/**
|
|
75
|
+
* Asserts against the (memoised) report of the suite's single scan. May be
|
|
76
|
+
* async: a case that has to boot something (the telemetry suite boots the
|
|
77
|
+
* slice's module) awaits it here, and the runner awaits the returned promise.
|
|
78
|
+
*/
|
|
79
|
+
run(report: ConformanceReport, expect: ConformanceTestApi['expect']): void | Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* A runnable invariant. Register one in {@link conformanceSuites}; the harness
|
|
83
|
+
* registers a `describe` block for it when the app enables it.
|
|
84
|
+
*
|
|
85
|
+
* @typeParam TOptions - what the app passes to configure the suite.
|
|
86
|
+
*
|
|
87
|
+
* @extensionPoint registry
|
|
88
|
+
* @stability experimental
|
|
89
|
+
*/
|
|
90
|
+
export interface ConformanceSuite<TOptions> {
|
|
91
|
+
/** Stable id, for example `'cron-enqueue-only'`. The app's option key is its camelCase form. */
|
|
92
|
+
readonly id: string;
|
|
93
|
+
/** The `describe` title; part of every generated test's full name. */
|
|
94
|
+
readonly title: string;
|
|
95
|
+
/** One sentence: the invariant this enforces. */
|
|
96
|
+
readonly description: string;
|
|
97
|
+
/**
|
|
98
|
+
* Pure: scans and returns findings. Never throws for a finding; throws only
|
|
99
|
+
* on misconfiguration (an unreadable root, an option that makes the check
|
|
100
|
+
* vacuous).
|
|
101
|
+
*/
|
|
102
|
+
check(context: ConformanceContext, options: TOptions): ConformanceReport;
|
|
103
|
+
/** The tests to register, in order. Each receives the one report `check` produced. */
|
|
104
|
+
cases(options: TOptions): ReadonlyArray<ConformanceCase>;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=conformance-suite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance-suite.d.ts","sourceRoot":"","sources":["../../src/testing/conformance-suite.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC7C,0BAA0B;IAC1B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,wEAAwE;IACxE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK;QAC3B,qCAAqC;QACrC,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;QACjC,yCAAyC;QACzC,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,wCAAwC;QACxC,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;KAChC,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0GAA0G;IAC1G,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAChD,oEAAoE;IACpE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB,CAAC,QAAQ;IACxC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IACzE,sFAAsF;IACtF,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;CAC1D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The contract between the harness (run-platform-conformance.ts) and a
|
|
3
|
+
// conformance suite (suites/*.ts). Nothing in src/testing imports Jest or
|
|
4
|
+
// Vitest: the harness is handed a minimal test API, so one package serves the
|
|
5
|
+
// Jest API and the Vitest web and CLI apps (docs/specs/platform-packages.md,
|
|
6
|
+
// "Conformance suites travel with packages").
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
//# sourceMappingURL=conformance-suite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance-suite.js","sourceRoot":"","sources":["../../src/testing/conformance-suite.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,8CAA8C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ConformanceSuite } from './conformance-suite';
|
|
2
|
+
/**
|
|
3
|
+
* Every conformance suite `runPlatformConformance` can run, keyed by suite id.
|
|
4
|
+
*
|
|
5
|
+
* A static registry (`defineRegistry`), filled here at import time and frozen
|
|
6
|
+
* by the harness on its first run: test processes never bootstrap Nest, so
|
|
7
|
+
* `RegistryFreezeService` does not run there. A later suite registers by adding
|
|
8
|
+
* itself to this file; the runner is not edited.
|
|
9
|
+
*
|
|
10
|
+
* @extensionPoint registry
|
|
11
|
+
* @stability experimental
|
|
12
|
+
*/
|
|
13
|
+
export declare const conformanceSuites: import("../core/index").Registry<ConformanceSuite<any>>;
|
|
14
|
+
//# sourceMappingURL=conformance-suites.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance-suites.d.ts","sourceRoot":"","sources":["../../src/testing/conformance-suites.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D;;;;;;;;;;GAUG;AAGH,eAAO,MAAM,iBAAiB,yDAI5B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.conformanceSuites = void 0;
|
|
4
|
+
const index_1 = require("../core/index");
|
|
5
|
+
const cron_enqueue_only_1 = require("./suites/cron-enqueue-only");
|
|
6
|
+
const user_owned_data_1 = require("./suites/user-owned-data");
|
|
7
|
+
/**
|
|
8
|
+
* Every conformance suite `runPlatformConformance` can run, keyed by suite id.
|
|
9
|
+
*
|
|
10
|
+
* A static registry (`defineRegistry`), filled here at import time and frozen
|
|
11
|
+
* by the harness on its first run: test processes never bootstrap Nest, so
|
|
12
|
+
* `RegistryFreezeService` does not run there. A later suite registers by adding
|
|
13
|
+
* itself to this file; the runner is not edited.
|
|
14
|
+
*
|
|
15
|
+
* @extensionPoint registry
|
|
16
|
+
* @stability experimental
|
|
17
|
+
*/
|
|
18
|
+
// `any` only at the registry boundary: each entry has its own options type, and
|
|
19
|
+
// the runner narrows through the typed `PlatformConformanceOptions.suites` map.
|
|
20
|
+
exports.conformanceSuites = (0, index_1.defineRegistry)({
|
|
21
|
+
name: 'platform-conformance-suites',
|
|
22
|
+
idOf: (suite) => suite.id,
|
|
23
|
+
order: 'registration',
|
|
24
|
+
});
|
|
25
|
+
exports.conformanceSuites.register(cron_enqueue_only_1.cronEnqueueOnlySuite);
|
|
26
|
+
exports.conformanceSuites.register(user_owned_data_1.userOwnedDataSuite);
|
|
27
|
+
//# sourceMappingURL=conformance-suites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conformance-suites.js","sourceRoot":"","sources":["../../src/testing/conformance-suites.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAG/C,kEAAkE;AAClE,8DAA8D;AAE9D;;;;;;;;;;GAUG;AACH,gFAAgF;AAChF,gFAAgF;AACnE,QAAA,iBAAiB,GAAG,IAAA,sBAAc,EAAwB;IACrE,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE;IACzB,KAAK,EAAE,cAAc;CACtB,CAAC,CAAC;AAEH,yBAAiB,CAAC,QAAQ,CAAC,wCAAoB,CAAC,CAAC;AACjD,yBAAiB,CAAC,QAAQ,CAAC,oCAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AuditEventInput, AuditSink } from '../../core/index';
|
|
2
|
+
/**
|
|
3
|
+
* An {@link AuditSink} that keeps events in memory, for package tests.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const audit = new InMemoryAuditSink();
|
|
8
|
+
* PlatformHostModule.forRoot({ audit: { useFactory: () => audit } });
|
|
9
|
+
* // ...
|
|
10
|
+
* expect(audit.events).toEqual([expect.objectContaining({ action: 'settings.updated' })]);
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @stability experimental
|
|
14
|
+
*/
|
|
15
|
+
export declare class InMemoryAuditSink implements AuditSink {
|
|
16
|
+
/** Every recorded event, oldest first (copies, so later edits never leak in). */
|
|
17
|
+
readonly events: AuditEventInput[];
|
|
18
|
+
/** Records one event. */
|
|
19
|
+
record(event: AuditEventInput): Promise<void>;
|
|
20
|
+
/** Forgets every recorded event. */
|
|
21
|
+
clear(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=in-memory-audit-sink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-audit-sink.d.ts","sourceRoot":"","sources":["../../../src/testing/host/in-memory-audit-sink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,YAAW,SAAS;IACjD,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAM;IAExC,yBAAyB;IACnB,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,oCAAoC;IACpC,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryAuditSink = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* An {@link AuditSink} that keeps events in memory, for package tests.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const audit = new InMemoryAuditSink();
|
|
10
|
+
* PlatformHostModule.forRoot({ audit: { useFactory: () => audit } });
|
|
11
|
+
* // ...
|
|
12
|
+
* expect(audit.events).toEqual([expect.objectContaining({ action: 'settings.updated' })]);
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @stability experimental
|
|
16
|
+
*/
|
|
17
|
+
class InMemoryAuditSink {
|
|
18
|
+
/** Every recorded event, oldest first (copies, so later edits never leak in). */
|
|
19
|
+
events = [];
|
|
20
|
+
/** Records one event. */
|
|
21
|
+
async record(event) {
|
|
22
|
+
this.events.push({ ...event, ...(event.meta ? { meta: { ...event.meta } } : {}) });
|
|
23
|
+
}
|
|
24
|
+
/** Forgets every recorded event. */
|
|
25
|
+
clear() {
|
|
26
|
+
this.events.length = 0;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.InMemoryAuditSink = InMemoryAuditSink;
|
|
30
|
+
//# sourceMappingURL=in-memory-audit-sink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-audit-sink.js","sourceRoot":"","sources":["../../../src/testing/host/in-memory-audit-sink.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;GAYG;AACH,MAAa,iBAAiB;IAC5B,iFAAiF;IACxE,MAAM,GAAsB,EAAE,CAAC;IAExC,yBAAyB;IACzB,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,oCAAoC;IACpC,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAbD,8CAaC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SystemSettingsSnapshot, SystemSettingsStore } from '../../core/index';
|
|
2
|
+
/**
|
|
3
|
+
* A {@link SystemSettingsStore} over an in-memory document, for package tests.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors the app's semantics: one version for the whole document (one
|
|
6
|
+
* settings row), bumped on every patch; a patch with a stale
|
|
7
|
+
* `ifMatchVersion` throws `ConflictException` (the app's 409) and changes
|
|
8
|
+
* nothing; a namespace patch is merged shallowly into the namespace.
|
|
9
|
+
*
|
|
10
|
+
* @stability experimental
|
|
11
|
+
*/
|
|
12
|
+
export declare class InMemorySystemSettingsStore implements SystemSettingsStore {
|
|
13
|
+
private document;
|
|
14
|
+
private currentVersion;
|
|
15
|
+
/**
|
|
16
|
+
* @param initial - namespace to value; the namespaces the store knows.
|
|
17
|
+
* @param version - the starting row version. Default 1.
|
|
18
|
+
*/
|
|
19
|
+
constructor(initial?: Record<string, unknown>, version?: number);
|
|
20
|
+
/** The current row version. */
|
|
21
|
+
get version(): number;
|
|
22
|
+
/** The namespace's value and the row version. Throws on an unknown namespace. */
|
|
23
|
+
read(namespace: string): Promise<SystemSettingsSnapshot>;
|
|
24
|
+
/** Merges `patch` into the namespace and bumps the version; 409 on a stale `ifMatchVersion`. */
|
|
25
|
+
patch(namespace: string, patch: Record<string, unknown>, ctx: {
|
|
26
|
+
actorUserId: string;
|
|
27
|
+
ifMatchVersion?: number;
|
|
28
|
+
}): Promise<SystemSettingsSnapshot>;
|
|
29
|
+
private assertKnown;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=in-memory-system-settings-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-system-settings-store.d.ts","sourceRoot":"","sources":["../../../src/testing/host/in-memory-system-settings-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEpF;;;;;;;;;GASG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,cAAc,CAAS;IAE/B;;;OAGG;gBACS,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,OAAO,SAAI;IAK9D,+BAA+B;IAC/B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,iFAAiF;IAC3E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK9D,gGAAgG;IAC1F,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GACpD,OAAO,CAAC,sBAAsB,CAAC;IAclC,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemorySystemSettingsStore = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
/**
|
|
6
|
+
* A {@link SystemSettingsStore} over an in-memory document, for package tests.
|
|
7
|
+
*
|
|
8
|
+
* Mirrors the app's semantics: one version for the whole document (one
|
|
9
|
+
* settings row), bumped on every patch; a patch with a stale
|
|
10
|
+
* `ifMatchVersion` throws `ConflictException` (the app's 409) and changes
|
|
11
|
+
* nothing; a namespace patch is merged shallowly into the namespace.
|
|
12
|
+
*
|
|
13
|
+
* @stability experimental
|
|
14
|
+
*/
|
|
15
|
+
class InMemorySystemSettingsStore {
|
|
16
|
+
document;
|
|
17
|
+
currentVersion;
|
|
18
|
+
/**
|
|
19
|
+
* @param initial - namespace to value; the namespaces the store knows.
|
|
20
|
+
* @param version - the starting row version. Default 1.
|
|
21
|
+
*/
|
|
22
|
+
constructor(initial = {}, version = 1) {
|
|
23
|
+
this.document = structuredClone(initial);
|
|
24
|
+
this.currentVersion = version;
|
|
25
|
+
}
|
|
26
|
+
/** The current row version. */
|
|
27
|
+
get version() {
|
|
28
|
+
return this.currentVersion;
|
|
29
|
+
}
|
|
30
|
+
/** The namespace's value and the row version. Throws on an unknown namespace. */
|
|
31
|
+
async read(namespace) {
|
|
32
|
+
this.assertKnown(namespace);
|
|
33
|
+
return { value: structuredClone(this.document[namespace]), version: this.currentVersion };
|
|
34
|
+
}
|
|
35
|
+
/** Merges `patch` into the namespace and bumps the version; 409 on a stale `ifMatchVersion`. */
|
|
36
|
+
async patch(namespace, patch, ctx) {
|
|
37
|
+
this.assertKnown(namespace);
|
|
38
|
+
if (ctx.ifMatchVersion !== undefined && ctx.ifMatchVersion !== this.currentVersion) {
|
|
39
|
+
throw new common_1.ConflictException(`Settings version mismatch. Expected ${ctx.ifMatchVersion}, found ${this.currentVersion}`);
|
|
40
|
+
}
|
|
41
|
+
const current = this.document[namespace];
|
|
42
|
+
const base = current !== null && typeof current === 'object' && !Array.isArray(current) ? current : {};
|
|
43
|
+
this.document = { ...this.document, [namespace]: { ...base, ...structuredClone(patch) } };
|
|
44
|
+
this.currentVersion += 1;
|
|
45
|
+
return this.read(namespace);
|
|
46
|
+
}
|
|
47
|
+
assertKnown(namespace) {
|
|
48
|
+
if (!Object.prototype.hasOwnProperty.call(this.document, namespace)) {
|
|
49
|
+
throw new Error(`Unknown settings namespace "${namespace}".`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.InMemorySystemSettingsStore = InMemorySystemSettingsStore;
|
|
54
|
+
//# sourceMappingURL=in-memory-system-settings-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-system-settings-store.js","sourceRoot":"","sources":["../../../src/testing/host/in-memory-system-settings-store.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;AAInD;;;;;;;;;GASG;AACH,MAAa,2BAA2B;IAC9B,QAAQ,CAA0B;IAClC,cAAc,CAAS;IAE/B;;;OAGG;IACH,YAAY,UAAmC,EAAE,EAAE,OAAO,GAAG,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5F,CAAC;IAED,gGAAgG;IAChG,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,KAA8B,EAC9B,GAAqD;QAErD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACnF,MAAM,IAAI,0BAAiB,CACzB,uCAAuC,GAAG,CAAC,cAAc,WAAW,IAAI,CAAC,cAAc,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC1F,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAEO,WAAW,CAAC,SAAiB;QACnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,IAAI,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF;AAhDD,kEAgDC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createTestPlatformHost, TEST_PERMISSIONS_HEADER, TEST_REQUIRED_PERMISSIONS_KEY } from './test-platform-host';
|
|
2
|
+
export { InMemoryAuditSink } from './in-memory-audit-sink';
|
|
3
|
+
export { InMemorySystemSettingsStore } from './in-memory-system-settings-store';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/host/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemorySystemSettingsStore = exports.InMemoryAuditSink = exports.TEST_REQUIRED_PERMISSIONS_KEY = exports.TEST_PERMISSIONS_HEADER = exports.createTestPlatformHost = void 0;
|
|
4
|
+
// Test doubles for the host ports (issue #696). For package tests only.
|
|
5
|
+
var test_platform_host_1 = require("./test-platform-host");
|
|
6
|
+
Object.defineProperty(exports, "createTestPlatformHost", { enumerable: true, get: function () { return test_platform_host_1.createTestPlatformHost; } });
|
|
7
|
+
Object.defineProperty(exports, "TEST_PERMISSIONS_HEADER", { enumerable: true, get: function () { return test_platform_host_1.TEST_PERMISSIONS_HEADER; } });
|
|
8
|
+
Object.defineProperty(exports, "TEST_REQUIRED_PERMISSIONS_KEY", { enumerable: true, get: function () { return test_platform_host_1.TEST_REQUIRED_PERMISSIONS_KEY; } });
|
|
9
|
+
var in_memory_audit_sink_1 = require("./in-memory-audit-sink");
|
|
10
|
+
Object.defineProperty(exports, "InMemoryAuditSink", { enumerable: true, get: function () { return in_memory_audit_sink_1.InMemoryAuditSink; } });
|
|
11
|
+
var in_memory_system_settings_store_1 = require("./in-memory-system-settings-store");
|
|
12
|
+
Object.defineProperty(exports, "InMemorySystemSettingsStore", { enumerable: true, get: function () { return in_memory_system_settings_store_1.InMemorySystemSettingsStore; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/host/index.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AACxE,2DAAsH;AAA7G,4HAAA,sBAAsB,OAAA;AAAE,6HAAA,uBAAuB,OAAA;AAAE,mIAAA,6BAA6B,OAAA;AACvF,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA;AAC1B,qFAAgF;AAAvE,8IAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { PlatformHost } from '../../core/index';
|
|
2
|
+
/**
|
|
3
|
+
* The request header the test host reads: a comma-separated permission list.
|
|
4
|
+
* Absent means "not signed in" (401); present means signed in with exactly
|
|
5
|
+
* those permissions.
|
|
6
|
+
*
|
|
7
|
+
* @stability experimental
|
|
8
|
+
*/
|
|
9
|
+
export declare const TEST_PERMISSIONS_HEADER = "x-test-permissions";
|
|
10
|
+
/**
|
|
11
|
+
* Metadata key under which the test host records the permissions a handler
|
|
12
|
+
* requires, so a package test can assert what a controller declares.
|
|
13
|
+
*
|
|
14
|
+
* @stability experimental
|
|
15
|
+
*/
|
|
16
|
+
export declare const TEST_REQUIRED_PERMISSIONS_KEY = "platform:test-required-permissions";
|
|
17
|
+
/**
|
|
18
|
+
* A {@link PlatformHost} whose access decorators read the
|
|
19
|
+
* `x-test-permissions` request header: no header is 401, a missing permission
|
|
20
|
+
* is 403. For package tests only, never for apps.
|
|
21
|
+
*
|
|
22
|
+
* @returns a validated host (built with `definePlatformHost`).
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const module = await Test.createTestingModule({
|
|
27
|
+
* imports: [DoctorModule.forRoot({ host: createTestPlatformHost() })],
|
|
28
|
+
* }).compile();
|
|
29
|
+
* // GET /admin/doctor with `x-test-permissions: system_settings:read` -> 200
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @stability experimental
|
|
33
|
+
*/
|
|
34
|
+
export declare function createTestPlatformHost(): PlatformHost;
|
|
35
|
+
//# sourceMappingURL=test-platform-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-platform-host.d.ts","sourceRoot":"","sources":["../../../src/testing/host/test-platform-host.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,uCAAuC,CAAC;AA0BlF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAYrD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// A platform host for PACKAGE tests (issue #696, PP-2.7)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// ⚠ NEVER FOR AN APP. The access decorators below trust a request header: the
|
|
7
|
+
// caller names its own permissions in `x-test-permissions`. That is exactly
|
|
8
|
+
// what a package test needs (drive 401/403/200 through a real Nest app without
|
|
9
|
+
// the app's JWT stack) and exactly what production must never do. An app
|
|
10
|
+
// builds its host from its own auth decorators (`definePlatformHost`).
|
|
11
|
+
// =============================================================================
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TEST_REQUIRED_PERMISSIONS_KEY = exports.TEST_PERMISSIONS_HEADER = void 0;
|
|
14
|
+
exports.createTestPlatformHost = createTestPlatformHost;
|
|
15
|
+
const common_1 = require("@nestjs/common");
|
|
16
|
+
const index_1 = require("../../core/index");
|
|
17
|
+
/**
|
|
18
|
+
* The request header the test host reads: a comma-separated permission list.
|
|
19
|
+
* Absent means "not signed in" (401); present means signed in with exactly
|
|
20
|
+
* those permissions.
|
|
21
|
+
*
|
|
22
|
+
* @stability experimental
|
|
23
|
+
*/
|
|
24
|
+
exports.TEST_PERMISSIONS_HEADER = 'x-test-permissions';
|
|
25
|
+
/**
|
|
26
|
+
* Metadata key under which the test host records the permissions a handler
|
|
27
|
+
* requires, so a package test can assert what a controller declares.
|
|
28
|
+
*
|
|
29
|
+
* @stability experimental
|
|
30
|
+
*/
|
|
31
|
+
exports.TEST_REQUIRED_PERMISSIONS_KEY = 'platform:test-required-permissions';
|
|
32
|
+
function headerOf(context) {
|
|
33
|
+
const request = context.switchToHttp().getRequest();
|
|
34
|
+
const raw = request?.headers?.[exports.TEST_PERMISSIONS_HEADER];
|
|
35
|
+
return Array.isArray(raw) ? raw.join(',') : raw;
|
|
36
|
+
}
|
|
37
|
+
class TestAccessGuard {
|
|
38
|
+
required;
|
|
39
|
+
constructor(required) {
|
|
40
|
+
this.required = required;
|
|
41
|
+
}
|
|
42
|
+
canActivate(context) {
|
|
43
|
+
const header = headerOf(context);
|
|
44
|
+
if (header === undefined)
|
|
45
|
+
throw new common_1.UnauthorizedException('No x-test-permissions header');
|
|
46
|
+
const held = new Set(header
|
|
47
|
+
.split(',')
|
|
48
|
+
.map((p) => p.trim())
|
|
49
|
+
.filter(Boolean));
|
|
50
|
+
const missing = this.required.filter((p) => !held.has(p));
|
|
51
|
+
if (missing.length > 0)
|
|
52
|
+
throw new common_1.ForbiddenException(`Missing permission(s): ${missing.join(', ')}`);
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A {@link PlatformHost} whose access decorators read the
|
|
58
|
+
* `x-test-permissions` request header: no header is 401, a missing permission
|
|
59
|
+
* is 403. For package tests only, never for apps.
|
|
60
|
+
*
|
|
61
|
+
* @returns a validated host (built with `definePlatformHost`).
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* const module = await Test.createTestingModule({
|
|
66
|
+
* imports: [DoctorModule.forRoot({ host: createTestPlatformHost() })],
|
|
67
|
+
* }).compile();
|
|
68
|
+
* // GET /admin/doctor with `x-test-permissions: system_settings:read` -> 200
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @stability experimental
|
|
72
|
+
*/
|
|
73
|
+
function createTestPlatformHost() {
|
|
74
|
+
return (0, index_1.definePlatformHost)({
|
|
75
|
+
access: {
|
|
76
|
+
requirePermissions: (permissions) => (0, common_1.applyDecorators)((0, common_1.SetMetadata)(exports.TEST_REQUIRED_PERMISSIONS_KEY, [...permissions]), (0, common_1.UseGuards)(new TestAccessGuard([...permissions]))),
|
|
77
|
+
requireAuthenticated: () => (0, common_1.applyDecorators)((0, common_1.SetMetadata)(exports.TEST_REQUIRED_PERMISSIONS_KEY, []), (0, common_1.UseGuards)(new TestAccessGuard([]))),
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=test-platform-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-platform-host.js","sourceRoot":"","sources":["../../../src/testing/host/test-platform-host.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yDAAyD;AACzD,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,yEAAyE;AACzE,uEAAuE;AACvE,gFAAgF;;;AAyEhF,wDAYC;AAnFD,2CAQwB;AAExB,4CAAsD;AAGtD;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAG,oBAAoB,CAAC;AAE5D;;;;;GAKG;AACU,QAAA,6BAA6B,GAAG,oCAAoC,CAAC;AAElF,SAAS,QAAQ,CAAC,OAAyB;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAA+D,CAAC;IACjH,MAAM,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,+BAAuB,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAClD,CAAC;AAED,MAAM,eAAe;IACU;IAA7B,YAA6B,QAA2B;QAA3B,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;IAE5D,WAAW,CAAC,OAAyB;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,8BAAqB,CAAC,8BAA8B,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,MAAM;aACH,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,2BAAkB,CAAC,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,sBAAsB;IACpC,OAAO,IAAA,0BAAkB,EAAC;QACxB,MAAM,EAAE;YACN,kBAAkB,EAAE,CAAC,WAAW,EAAE,EAAE,CAClC,IAAA,wBAAe,EACb,IAAA,oBAAW,EAAC,qCAA6B,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAC5D,IAAA,kBAAS,EAAC,IAAI,eAAe,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CACjD;YACH,oBAAoB,EAAE,GAAG,EAAE,CACzB,IAAA,wBAAe,EAAC,IAAA,oBAAW,EAAC,qCAA6B,EAAE,EAAE,CAAC,EAAE,IAAA,kBAAS,EAAC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;SACtG;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { runPlatformConformance } from './run-platform-conformance';
|
|
2
|
+
export type { PlatformConformanceOptions, PlatformConformanceSuiteOptions } from './run-platform-conformance';
|
|
3
|
+
export { conformanceSuites } from './conformance-suites';
|
|
4
|
+
export type { ConformanceCase, ConformanceContext, ConformanceFinding, ConformanceReport, ConformanceSuite, ConformanceTestApi, } from './conformance-suite';
|
|
5
|
+
export { cronEnqueueOnlySuite } from './suites/cron-enqueue-only';
|
|
6
|
+
export type { CronEnqueueOnlyOptions } from './suites/cron-enqueue-only';
|
|
7
|
+
export { createTestPlatformHost, InMemoryAuditSink, InMemorySystemSettingsStore, TEST_PERMISSIONS_HEADER, TEST_REQUIRED_PERMISSIONS_KEY, } from './host/index';
|
|
8
|
+
export { userOwnedDataSuite } from './suites/user-owned-data';
|
|
9
|
+
export type { UserOwnedDataOptions } from './suites/user-owned-data';
|
|
10
|
+
export { effectiveOnDelete, parsePrismaSchema, readSchemaDatamodel, readSchemaText } from './prisma-schema';
|
|
11
|
+
export type { DatamodelField, DatamodelModel, DatamodelRelation } from './prisma-schema';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAIzE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5G,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|