quidproquo-webserver 0.1.19 → 0.1.21
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/README.md +1 -2
- package/lib/commonjs/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js +7 -5
- package/lib/commonjs/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js.map +1 -1
- package/lib/commonjs/actions/dns/DnsActionType.d.ts +3 -1
- package/lib/commonjs/actions/dns/DnsActionType.js +2 -0
- package/lib/commonjs/actions/dns/DnsActionType.js.map +1 -1
- package/lib/commonjs/actions/dns/askDnsList.d.ts +2 -1
- package/lib/commonjs/actions/dns/askDnsList.js +1 -0
- package/lib/commonjs/actions/dns/askDnsList.js.map +1 -1
- package/lib/commonjs/actions/dns/askDnsResolveHosts.d.ts +9 -0
- package/lib/commonjs/actions/dns/askDnsResolveHosts.js +11 -0
- package/lib/commonjs/actions/dns/askDnsResolveHosts.js.map +1 -0
- package/lib/commonjs/actions/dns/index.d.ts +1 -0
- package/lib/commonjs/actions/dns/index.js +1 -0
- package/lib/commonjs/actions/dns/index.js.map +1 -1
- package/lib/commonjs/actions/index.d.ts +1 -1
- package/lib/commonjs/actions/index.js +1 -1
- package/lib/commonjs/actions/index.js.map +1 -1
- package/lib/commonjs/actions/openApi/OpenApiActionType.d.ts +3 -0
- package/lib/commonjs/actions/openApi/OpenApiActionType.js +8 -0
- package/lib/commonjs/actions/openApi/OpenApiActionType.js.map +1 -0
- package/lib/commonjs/actions/openApi/askOpenApiGetDocument.d.ts +9 -0
- package/lib/commonjs/actions/openApi/askOpenApiGetDocument.js +12 -0
- package/lib/commonjs/actions/openApi/askOpenApiGetDocument.js.map +1 -0
- package/lib/commonjs/actions/openApi/index.d.ts +2 -0
- package/lib/commonjs/actions/{openApiSpec → openApi}/index.js +2 -2
- package/lib/commonjs/actions/openApi/index.js.map +1 -0
- package/lib/commonjs/config/QPQConfig.d.ts +0 -1
- package/lib/commonjs/config/QPQConfig.js +0 -1
- package/lib/commonjs/config/QPQConfig.js.map +1 -1
- package/lib/commonjs/config/settings/api.d.ts +1 -2
- package/lib/commonjs/config/settings/api.js +1 -2
- package/lib/commonjs/config/settings/api.js.map +1 -1
- package/lib/commonjs/config/settings/dns.d.ts +15 -5
- package/lib/commonjs/config/settings/dns.js +10 -5
- package/lib/commonjs/config/settings/dns.js.map +1 -1
- package/lib/commonjs/config/settings/domainProxy.d.ts +0 -1
- package/lib/commonjs/config/settings/domainProxy.js.map +1 -1
- package/lib/commonjs/config/settings/emailSender.d.ts +3 -4
- package/lib/commonjs/config/settings/emailSender.js +5 -7
- package/lib/commonjs/config/settings/emailSender.js.map +1 -1
- package/lib/commonjs/config/settings/index.d.ts +0 -1
- package/lib/commonjs/config/settings/index.js +0 -1
- package/lib/commonjs/config/settings/index.js.map +1 -1
- package/lib/commonjs/config/settings/route.d.ts +2 -0
- package/lib/commonjs/config/settings/route.js.map +1 -1
- package/lib/commonjs/config/settings/webEntry.d.ts +0 -1
- package/lib/commonjs/config/settings/webEntry.js.map +1 -1
- package/lib/commonjs/config/settings/websocket.d.ts +1 -2
- package/lib/commonjs/config/settings/websocket.js +3 -12
- package/lib/commonjs/config/settings/websocket.js.map +1 -1
- package/lib/commonjs/config/types/JsonSchema.d.ts +1 -0
- package/lib/commonjs/config/types/JsonSchema.js +3 -0
- package/lib/commonjs/config/types/JsonSchema.js.map +1 -0
- package/lib/commonjs/config/types/RouteSchema.d.ts +10 -0
- package/lib/commonjs/config/types/RouteSchema.js +3 -0
- package/lib/commonjs/config/types/RouteSchema.js.map +1 -0
- package/lib/commonjs/config/types/index.d.ts +2 -0
- package/lib/commonjs/config/types/index.js +2 -0
- package/lib/commonjs/config/types/index.js.map +1 -1
- package/lib/commonjs/configUtils/dns/getDnsConfig.d.ts +4 -0
- package/lib/commonjs/configUtils/dns/getDnsConfig.js +16 -0
- package/lib/commonjs/configUtils/dns/getDnsConfig.js.map +1 -0
- package/lib/commonjs/configUtils/dns/getPrimaryRootDomain.d.ts +3 -0
- package/lib/commonjs/configUtils/dns/getPrimaryRootDomain.js +8 -0
- package/lib/commonjs/configUtils/dns/getPrimaryRootDomain.js.map +1 -0
- package/lib/commonjs/configUtils/dns/getRootDomains.d.ts +3 -0
- package/lib/commonjs/configUtils/dns/getRootDomains.js +8 -0
- package/lib/commonjs/configUtils/dns/getRootDomains.js.map +1 -0
- package/lib/commonjs/configUtils/dns/index.d.ts +3 -0
- package/lib/commonjs/configUtils/dns/index.js +20 -0
- package/lib/commonjs/configUtils/dns/index.js.map +1 -0
- package/lib/commonjs/configUtils/index.d.ts +2 -0
- package/lib/commonjs/configUtils/index.js +19 -0
- package/lib/commonjs/configUtils/index.js.map +1 -0
- package/lib/commonjs/configUtils/storageDrive/getStorageDriveCorsSettingsByName.d.ts +4 -0
- package/lib/commonjs/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js +14 -0
- package/lib/commonjs/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js.map +1 -0
- package/lib/commonjs/configUtils/storageDrive/index.d.ts +1 -0
- package/lib/commonjs/configUtils/storageDrive/index.js +18 -0
- package/lib/commonjs/configUtils/storageDrive/index.js.map +1 -0
- package/lib/commonjs/domain/index.d.ts +2 -0
- package/lib/commonjs/domain/index.js +19 -0
- package/lib/commonjs/domain/index.js.map +1 -0
- package/lib/commonjs/domain/logic/host/findRootDomainForHost.d.ts +6 -0
- package/lib/commonjs/domain/logic/host/findRootDomainForHost.js +19 -0
- package/lib/commonjs/domain/logic/host/findRootDomainForHost.js.map +1 -0
- package/lib/commonjs/domain/logic/host/getDomainTargetKey.d.ts +3 -0
- package/lib/commonjs/domain/logic/host/getDomainTargetKey.js +7 -0
- package/lib/commonjs/domain/logic/host/getDomainTargetKey.js.map +1 -0
- package/lib/commonjs/domain/logic/host/index.d.ts +6 -0
- package/lib/commonjs/domain/logic/host/index.js +23 -0
- package/lib/commonjs/domain/logic/host/index.js.map +1 -0
- package/lib/commonjs/domain/logic/host/resolveHostForRequestHost.d.ts +9 -0
- package/lib/commonjs/domain/logic/host/resolveHostForRequestHost.js +21 -0
- package/lib/commonjs/domain/logic/host/resolveHostForRequestHost.js.map +1 -0
- package/lib/commonjs/domain/logic/host/resolveHostForRoot.d.ts +5 -0
- package/lib/commonjs/domain/logic/host/resolveHostForRoot.js +15 -0
- package/lib/commonjs/domain/logic/host/resolveHostForRoot.js.map +1 -0
- package/lib/commonjs/domain/logic/host/resolveHosts.d.ts +9 -0
- package/lib/commonjs/domain/logic/host/resolveHosts.js +27 -0
- package/lib/commonjs/domain/logic/host/resolveHosts.js.map +1 -0
- package/lib/commonjs/domain/logic/host/resolvePrimaryHost.d.ts +5 -0
- package/lib/commonjs/domain/logic/host/resolvePrimaryHost.js +14 -0
- package/lib/commonjs/domain/logic/host/resolvePrimaryHost.js.map +1 -0
- package/lib/commonjs/domain/logic/index.d.ts +3 -0
- package/lib/commonjs/domain/logic/index.js +20 -0
- package/lib/commonjs/domain/logic/index.js.map +1 -0
- package/lib/commonjs/domain/logic/origin/getStorageDriveCorsAllowedOrigins.d.ts +4 -0
- package/lib/commonjs/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js +9 -0
- package/lib/commonjs/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js.map +1 -0
- package/lib/commonjs/domain/logic/origin/index.d.ts +4 -0
- package/lib/commonjs/domain/logic/origin/index.js +21 -0
- package/lib/commonjs/domain/logic/origin/index.js.map +1 -0
- package/lib/commonjs/domain/logic/origin/resolveContentSecurityPolicyEntry.d.ts +9 -0
- package/lib/commonjs/domain/logic/origin/resolveContentSecurityPolicyEntry.js +20 -0
- package/lib/commonjs/domain/logic/origin/resolveContentSecurityPolicyEntry.js.map +1 -0
- package/lib/commonjs/domain/logic/origin/resolveOrigins.d.ts +8 -0
- package/lib/commonjs/domain/logic/origin/resolveOrigins.js +20 -0
- package/lib/commonjs/domain/logic/origin/resolveOrigins.js.map +1 -0
- package/lib/commonjs/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.d.ts +8 -0
- package/lib/commonjs/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js +21 -0
- package/lib/commonjs/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js.map +1 -0
- package/lib/commonjs/domain/logic/resolver/getDomainResolver.d.ts +4 -0
- package/lib/commonjs/domain/logic/resolver/getDomainResolver.js +20 -0
- package/lib/commonjs/domain/logic/resolver/getDomainResolver.js.map +1 -0
- package/lib/commonjs/domain/logic/resolver/index.d.ts +4 -0
- package/lib/commonjs/domain/logic/resolver/index.js +21 -0
- package/lib/commonjs/domain/logic/resolver/index.js.map +1 -0
- package/lib/commonjs/domain/logic/resolver/isLocalhostRootDomain.d.ts +2 -0
- package/lib/commonjs/domain/logic/resolver/isLocalhostRootDomain.js +7 -0
- package/lib/commonjs/domain/logic/resolver/isLocalhostRootDomain.js.map +1 -0
- package/lib/commonjs/domain/logic/resolver/loadDomainResolver.d.ts +8 -0
- package/lib/commonjs/domain/logic/resolver/loadDomainResolver.js +33 -0
- package/lib/commonjs/domain/logic/resolver/loadDomainResolver.js.map +1 -0
- package/lib/commonjs/domain/logic/resolver/validateResolvedHost.d.ts +3 -0
- package/lib/commonjs/domain/logic/resolver/validateResolvedHost.js +13 -0
- package/lib/commonjs/domain/logic/resolver/validateResolvedHost.js.map +1 -0
- package/lib/commonjs/domain/resolvers/defaultDomainResolver.d.ts +3 -0
- package/lib/commonjs/domain/resolvers/defaultDomainResolver.js +11 -0
- package/lib/commonjs/domain/resolvers/defaultDomainResolver.js.map +1 -0
- package/lib/commonjs/domain/resolvers/index.d.ts +2 -0
- package/lib/commonjs/domain/resolvers/index.js +19 -0
- package/lib/commonjs/domain/resolvers/index.js.map +1 -0
- package/lib/commonjs/domain/resolvers/localhostDomainResolver.d.ts +3 -0
- package/lib/commonjs/domain/resolvers/localhostDomainResolver.js +8 -0
- package/lib/commonjs/domain/resolvers/localhostDomainResolver.js.map +1 -0
- package/lib/commonjs/domain/types/DomainResolver.d.ts +10 -0
- package/lib/commonjs/domain/types/DomainResolver.js +3 -0
- package/lib/commonjs/domain/types/DomainResolver.js.map +1 -0
- package/lib/commonjs/domain/types/DomainScope.d.ts +13 -0
- package/lib/commonjs/domain/types/DomainScope.js +3 -0
- package/lib/commonjs/domain/types/DomainScope.js.map +1 -0
- package/lib/commonjs/domain/types/DomainTarget.d.ts +5 -0
- package/lib/commonjs/domain/types/DomainTarget.js +3 -0
- package/lib/commonjs/domain/types/DomainTarget.js.map +1 -0
- package/lib/commonjs/domain/types/index.d.ts +3 -0
- package/lib/commonjs/domain/types/index.js +20 -0
- package/lib/commonjs/domain/types/index.js.map +1 -0
- package/lib/commonjs/index.d.ts +1 -0
- package/lib/commonjs/index.js +1 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/stories/index.d.ts +0 -1
- package/lib/commonjs/stories/index.js +0 -1
- package/lib/commonjs/stories/index.js.map +1 -1
- package/lib/commonjs/types/OpenApiDocument.d.ts +60 -0
- package/lib/commonjs/types/OpenApiDocument.js +3 -0
- package/lib/commonjs/types/OpenApiDocument.js.map +1 -0
- package/lib/commonjs/types/index.d.ts +1 -0
- package/lib/commonjs/types/index.js +1 -0
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/utils/headerUtils.d.ts +5 -4
- package/lib/commonjs/utils/headerUtils.js +16 -29
- package/lib/commonjs/utils/headerUtils.js.map +1 -1
- package/lib/commonjs/utils/index.d.ts +3 -0
- package/lib/commonjs/utils/index.js +3 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/mergeRouteUtils.js +3 -0
- package/lib/commonjs/utils/mergeRouteUtils.js.map +1 -1
- package/lib/commonjs/utils/openApi/OpenApiDocumentOptions.d.ts +2 -0
- package/lib/commonjs/utils/openApi/OpenApiDocumentOptions.js +3 -0
- package/lib/commonjs/utils/openApi/OpenApiDocumentOptions.js.map +1 -0
- package/lib/commonjs/utils/openApi/buildOpenApiDocument.d.ts +5 -0
- package/lib/commonjs/utils/openApi/buildOpenApiDocument.js +55 -0
- package/lib/commonjs/utils/openApi/buildOpenApiDocument.js.map +1 -0
- package/lib/commonjs/utils/openApi/buildOpenApiOperation.d.ts +4 -0
- package/lib/commonjs/utils/openApi/buildOpenApiOperation.js +45 -0
- package/lib/commonjs/utils/openApi/buildOpenApiOperation.js.map +1 -0
- package/lib/commonjs/utils/openApi/buildOpenApiPathParameters.d.ts +2 -0
- package/lib/commonjs/utils/openApi/buildOpenApiPathParameters.js +13 -0
- package/lib/commonjs/utils/openApi/buildOpenApiPathParameters.js.map +1 -0
- package/lib/commonjs/utils/openApi/buildOpenApiQueryParameters.d.ts +3 -0
- package/lib/commonjs/utils/openApi/buildOpenApiQueryParameters.js +25 -0
- package/lib/commonjs/utils/openApi/buildOpenApiQueryParameters.js.map +1 -0
- package/lib/commonjs/utils/openApi/buildOpenApiSecurity.d.ts +4 -0
- package/lib/commonjs/utils/openApi/buildOpenApiSecurity.js +24 -0
- package/lib/commonjs/utils/openApi/buildOpenApiSecurity.js.map +1 -0
- package/lib/commonjs/utils/openApi/index.d.ts +7 -0
- package/lib/commonjs/utils/openApi/index.js +24 -0
- package/lib/commonjs/utils/openApi/index.js.map +1 -0
- package/lib/commonjs/utils/openApi/openApiSecuritySchemeNames.d.ts +2 -0
- package/lib/commonjs/utils/openApi/openApiSecuritySchemeNames.js +7 -0
- package/lib/commonjs/utils/openApi/openApiSecuritySchemeNames.js.map +1 -0
- package/lib/commonjs/utils/qpqConfigAccessorsUtils.d.ts +1 -34
- package/lib/commonjs/utils/qpqConfigAccessorsUtils.js +7 -114
- package/lib/commonjs/utils/qpqConfigAccessorsUtils.js.map +1 -1
- package/lib/esm/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js +6 -4
- package/lib/esm/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js.map +1 -1
- package/lib/esm/actions/dns/DnsActionType.d.ts +3 -1
- package/lib/esm/actions/dns/DnsActionType.js +2 -0
- package/lib/esm/actions/dns/DnsActionType.js.map +1 -1
- package/lib/esm/actions/dns/askDnsList.d.ts +2 -1
- package/lib/esm/actions/dns/askDnsList.js +1 -0
- package/lib/esm/actions/dns/askDnsList.js.map +1 -1
- package/lib/esm/actions/dns/askDnsResolveHosts.d.ts +9 -0
- package/lib/esm/actions/dns/askDnsResolveHosts.js +8 -0
- package/lib/esm/actions/dns/askDnsResolveHosts.js.map +1 -0
- package/lib/esm/actions/dns/index.d.ts +1 -0
- package/lib/esm/actions/dns/index.js +1 -0
- package/lib/esm/actions/dns/index.js.map +1 -1
- package/lib/esm/actions/index.d.ts +1 -1
- package/lib/esm/actions/index.js +1 -1
- package/lib/esm/actions/index.js.map +1 -1
- package/lib/esm/actions/openApi/OpenApiActionType.d.ts +3 -0
- package/lib/esm/actions/openApi/OpenApiActionType.js +5 -0
- package/lib/esm/actions/openApi/OpenApiActionType.js.map +1 -0
- package/lib/esm/actions/openApi/askOpenApiGetDocument.d.ts +9 -0
- package/lib/esm/actions/openApi/askOpenApiGetDocument.js +9 -0
- package/lib/esm/actions/openApi/askOpenApiGetDocument.js.map +1 -0
- package/lib/esm/actions/openApi/index.d.ts +2 -0
- package/lib/esm/actions/openApi/index.js +3 -0
- package/lib/esm/actions/openApi/index.js.map +1 -0
- package/lib/esm/config/QPQConfig.d.ts +0 -1
- package/lib/esm/config/QPQConfig.js +0 -1
- package/lib/esm/config/QPQConfig.js.map +1 -1
- package/lib/esm/config/settings/api.d.ts +1 -2
- package/lib/esm/config/settings/api.js +1 -2
- package/lib/esm/config/settings/api.js.map +1 -1
- package/lib/esm/config/settings/dns.d.ts +15 -5
- package/lib/esm/config/settings/dns.js +10 -5
- package/lib/esm/config/settings/dns.js.map +1 -1
- package/lib/esm/config/settings/domainProxy.d.ts +0 -1
- package/lib/esm/config/settings/domainProxy.js.map +1 -1
- package/lib/esm/config/settings/emailSender.d.ts +3 -4
- package/lib/esm/config/settings/emailSender.js +5 -7
- package/lib/esm/config/settings/emailSender.js.map +1 -1
- package/lib/esm/config/settings/index.d.ts +0 -1
- package/lib/esm/config/settings/index.js +0 -1
- package/lib/esm/config/settings/index.js.map +1 -1
- package/lib/esm/config/settings/route.d.ts +2 -0
- package/lib/esm/config/settings/route.js.map +1 -1
- package/lib/esm/config/settings/webEntry.d.ts +0 -1
- package/lib/esm/config/settings/webEntry.js.map +1 -1
- package/lib/esm/config/settings/websocket.d.ts +1 -2
- package/lib/esm/config/settings/websocket.js +3 -12
- package/lib/esm/config/settings/websocket.js.map +1 -1
- package/lib/esm/config/types/JsonSchema.d.ts +1 -0
- package/lib/esm/config/types/JsonSchema.js +2 -0
- package/lib/esm/config/types/JsonSchema.js.map +1 -0
- package/lib/esm/config/types/RouteSchema.d.ts +10 -0
- package/lib/esm/config/types/RouteSchema.js +2 -0
- package/lib/esm/config/types/RouteSchema.js.map +1 -0
- package/lib/esm/config/types/index.d.ts +2 -0
- package/lib/esm/config/types/index.js +2 -0
- package/lib/esm/config/types/index.js.map +1 -1
- package/lib/esm/configUtils/dns/getDnsConfig.d.ts +4 -0
- package/lib/esm/configUtils/dns/getDnsConfig.js +11 -0
- package/lib/esm/configUtils/dns/getDnsConfig.js.map +1 -0
- package/lib/esm/configUtils/dns/getPrimaryRootDomain.d.ts +3 -0
- package/lib/esm/configUtils/dns/getPrimaryRootDomain.js +4 -0
- package/lib/esm/configUtils/dns/getPrimaryRootDomain.js.map +1 -0
- package/lib/esm/configUtils/dns/getRootDomains.d.ts +3 -0
- package/lib/esm/configUtils/dns/getRootDomains.js +4 -0
- package/lib/esm/configUtils/dns/getRootDomains.js.map +1 -0
- package/lib/esm/configUtils/dns/index.d.ts +3 -0
- package/lib/esm/configUtils/dns/index.js +4 -0
- package/lib/esm/configUtils/dns/index.js.map +1 -0
- package/lib/esm/configUtils/index.d.ts +2 -0
- package/lib/esm/configUtils/index.js +3 -0
- package/lib/esm/configUtils/index.js.map +1 -0
- package/lib/esm/configUtils/storageDrive/getStorageDriveCorsSettingsByName.d.ts +4 -0
- package/lib/esm/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js +7 -0
- package/lib/esm/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js.map +1 -0
- package/lib/esm/configUtils/storageDrive/index.d.ts +1 -0
- package/lib/esm/configUtils/storageDrive/index.js +2 -0
- package/lib/esm/configUtils/storageDrive/index.js.map +1 -0
- package/lib/esm/domain/index.d.ts +2 -0
- package/lib/esm/domain/index.js +3 -0
- package/lib/esm/domain/index.js.map +1 -0
- package/lib/esm/domain/logic/host/findRootDomainForHost.d.ts +6 -0
- package/lib/esm/domain/logic/host/findRootDomainForHost.js +14 -0
- package/lib/esm/domain/logic/host/findRootDomainForHost.js.map +1 -0
- package/lib/esm/domain/logic/host/getDomainTargetKey.d.ts +3 -0
- package/lib/esm/domain/logic/host/getDomainTargetKey.js +3 -0
- package/lib/esm/domain/logic/host/getDomainTargetKey.js.map +1 -0
- package/lib/esm/domain/logic/host/index.d.ts +6 -0
- package/lib/esm/domain/logic/host/index.js +7 -0
- package/lib/esm/domain/logic/host/index.js.map +1 -0
- package/lib/esm/domain/logic/host/resolveHostForRequestHost.d.ts +9 -0
- package/lib/esm/domain/logic/host/resolveHostForRequestHost.js +16 -0
- package/lib/esm/domain/logic/host/resolveHostForRequestHost.js.map +1 -0
- package/lib/esm/domain/logic/host/resolveHostForRoot.d.ts +5 -0
- package/lib/esm/domain/logic/host/resolveHostForRoot.js +11 -0
- package/lib/esm/domain/logic/host/resolveHostForRoot.js.map +1 -0
- package/lib/esm/domain/logic/host/resolveHosts.d.ts +9 -0
- package/lib/esm/domain/logic/host/resolveHosts.js +23 -0
- package/lib/esm/domain/logic/host/resolveHosts.js.map +1 -0
- package/lib/esm/domain/logic/host/resolvePrimaryHost.d.ts +5 -0
- package/lib/esm/domain/logic/host/resolvePrimaryHost.js +10 -0
- package/lib/esm/domain/logic/host/resolvePrimaryHost.js.map +1 -0
- package/lib/esm/domain/logic/index.d.ts +3 -0
- package/lib/esm/domain/logic/index.js +4 -0
- package/lib/esm/domain/logic/index.js.map +1 -0
- package/lib/esm/domain/logic/origin/getStorageDriveCorsAllowedOrigins.d.ts +4 -0
- package/lib/esm/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js +5 -0
- package/lib/esm/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js.map +1 -0
- package/lib/esm/domain/logic/origin/index.d.ts +4 -0
- package/lib/esm/domain/logic/origin/index.js +5 -0
- package/lib/esm/domain/logic/origin/index.js.map +1 -0
- package/lib/esm/domain/logic/origin/resolveContentSecurityPolicyEntry.d.ts +9 -0
- package/lib/esm/domain/logic/origin/resolveContentSecurityPolicyEntry.js +16 -0
- package/lib/esm/domain/logic/origin/resolveContentSecurityPolicyEntry.js.map +1 -0
- package/lib/esm/domain/logic/origin/resolveOrigins.d.ts +8 -0
- package/lib/esm/domain/logic/origin/resolveOrigins.js +16 -0
- package/lib/esm/domain/logic/origin/resolveOrigins.js.map +1 -0
- package/lib/esm/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.d.ts +8 -0
- package/lib/esm/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js +17 -0
- package/lib/esm/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js.map +1 -0
- package/lib/esm/domain/logic/resolver/getDomainResolver.d.ts +4 -0
- package/lib/esm/domain/logic/resolver/getDomainResolver.js +16 -0
- package/lib/esm/domain/logic/resolver/getDomainResolver.js.map +1 -0
- package/lib/esm/domain/logic/resolver/index.d.ts +4 -0
- package/lib/esm/domain/logic/resolver/index.js +5 -0
- package/lib/esm/domain/logic/resolver/index.js.map +1 -0
- package/lib/esm/domain/logic/resolver/isLocalhostRootDomain.d.ts +2 -0
- package/lib/esm/domain/logic/resolver/isLocalhostRootDomain.js +3 -0
- package/lib/esm/domain/logic/resolver/isLocalhostRootDomain.js.map +1 -0
- package/lib/esm/domain/logic/resolver/loadDomainResolver.d.ts +8 -0
- package/lib/esm/domain/logic/resolver/loadDomainResolver.js +19 -0
- package/lib/esm/domain/logic/resolver/loadDomainResolver.js.map +1 -0
- package/lib/esm/domain/logic/resolver/validateResolvedHost.d.ts +3 -0
- package/lib/esm/domain/logic/resolver/validateResolvedHost.js +9 -0
- package/lib/esm/domain/logic/resolver/validateResolvedHost.js.map +1 -0
- package/lib/esm/domain/resolvers/defaultDomainResolver.d.ts +3 -0
- package/lib/esm/domain/resolvers/defaultDomainResolver.js +8 -0
- package/lib/esm/domain/resolvers/defaultDomainResolver.js.map +1 -0
- package/lib/esm/domain/resolvers/index.d.ts +2 -0
- package/lib/esm/domain/resolvers/index.js +3 -0
- package/lib/esm/domain/resolvers/index.js.map +1 -0
- package/lib/esm/domain/resolvers/localhostDomainResolver.d.ts +3 -0
- package/lib/esm/domain/resolvers/localhostDomainResolver.js +5 -0
- package/lib/esm/domain/resolvers/localhostDomainResolver.js.map +1 -0
- package/lib/esm/domain/types/DomainResolver.d.ts +10 -0
- package/lib/esm/domain/types/DomainResolver.js +2 -0
- package/lib/esm/domain/types/DomainResolver.js.map +1 -0
- package/lib/esm/domain/types/DomainScope.d.ts +13 -0
- package/lib/esm/domain/types/DomainScope.js +2 -0
- package/lib/esm/domain/types/DomainScope.js.map +1 -0
- package/lib/esm/domain/types/DomainTarget.d.ts +5 -0
- package/lib/esm/domain/types/DomainTarget.js +2 -0
- package/lib/esm/domain/types/DomainTarget.js.map +1 -0
- package/lib/esm/domain/types/index.d.ts +3 -0
- package/lib/esm/domain/types/index.js +4 -0
- package/lib/esm/domain/types/index.js.map +1 -0
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/stories/index.d.ts +0 -1
- package/lib/esm/stories/index.js +0 -1
- package/lib/esm/stories/index.js.map +1 -1
- package/lib/esm/types/OpenApiDocument.d.ts +60 -0
- package/lib/esm/types/OpenApiDocument.js +2 -0
- package/lib/esm/types/OpenApiDocument.js.map +1 -0
- package/lib/esm/types/index.d.ts +1 -0
- package/lib/esm/types/index.js +1 -0
- package/lib/esm/types/index.js.map +1 -1
- package/lib/esm/utils/headerUtils.d.ts +5 -4
- package/lib/esm/utils/headerUtils.js +16 -28
- package/lib/esm/utils/headerUtils.js.map +1 -1
- package/lib/esm/utils/index.d.ts +3 -0
- package/lib/esm/utils/index.js +3 -0
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/mergeRouteUtils.js +2 -0
- package/lib/esm/utils/mergeRouteUtils.js.map +1 -1
- package/lib/esm/utils/openApi/OpenApiDocumentOptions.d.ts +2 -0
- package/lib/esm/utils/openApi/OpenApiDocumentOptions.js +2 -0
- package/lib/esm/utils/openApi/OpenApiDocumentOptions.js.map +1 -0
- package/lib/esm/utils/openApi/buildOpenApiDocument.d.ts +5 -0
- package/lib/esm/utils/openApi/buildOpenApiDocument.js +50 -0
- package/lib/esm/utils/openApi/buildOpenApiDocument.js.map +1 -0
- package/lib/esm/utils/openApi/buildOpenApiOperation.d.ts +4 -0
- package/lib/esm/utils/openApi/buildOpenApiOperation.js +40 -0
- package/lib/esm/utils/openApi/buildOpenApiOperation.js.map +1 -0
- package/lib/esm/utils/openApi/buildOpenApiPathParameters.d.ts +2 -0
- package/lib/esm/utils/openApi/buildOpenApiPathParameters.js +9 -0
- package/lib/esm/utils/openApi/buildOpenApiPathParameters.js.map +1 -0
- package/lib/esm/utils/openApi/buildOpenApiQueryParameters.d.ts +3 -0
- package/lib/esm/utils/openApi/buildOpenApiQueryParameters.js +21 -0
- package/lib/esm/utils/openApi/buildOpenApiQueryParameters.js.map +1 -0
- package/lib/esm/utils/openApi/buildOpenApiSecurity.d.ts +4 -0
- package/lib/esm/utils/openApi/buildOpenApiSecurity.js +19 -0
- package/lib/esm/utils/openApi/buildOpenApiSecurity.js.map +1 -0
- package/lib/esm/utils/openApi/index.d.ts +7 -0
- package/lib/esm/utils/openApi/index.js +8 -0
- package/lib/esm/utils/openApi/index.js.map +1 -0
- package/lib/esm/utils/openApi/openApiSecuritySchemeNames.d.ts +2 -0
- package/lib/esm/utils/openApi/openApiSecuritySchemeNames.js +4 -0
- package/lib/esm/utils/openApi/openApiSecuritySchemeNames.js.map +1 -0
- package/lib/esm/utils/qpqConfigAccessorsUtils.d.ts +1 -34
- package/lib/esm/utils/qpqConfigAccessorsUtils.js +5 -100
- package/lib/esm/utils/qpqConfigAccessorsUtils.js.map +1 -1
- package/package.json +3 -3
- package/lib/commonjs/actions/openApiSpec/OpenApiSpecActionType.d.ts +0 -3
- package/lib/commonjs/actions/openApiSpec/OpenApiSpecActionType.js +0 -8
- package/lib/commonjs/actions/openApiSpec/OpenApiSpecActionType.js.map +0 -1
- package/lib/commonjs/actions/openApiSpec/askGetOpenApiSpec.d.ts +0 -2
- package/lib/commonjs/actions/openApiSpec/askGetOpenApiSpec.js +0 -9
- package/lib/commonjs/actions/openApiSpec/askGetOpenApiSpec.js.map +0 -1
- package/lib/commonjs/actions/openApiSpec/index.d.ts +0 -2
- package/lib/commonjs/actions/openApiSpec/index.js.map +0 -1
- package/lib/commonjs/config/settings/openApi.d.ts +0 -5
- package/lib/commonjs/config/settings/openApi.js +0 -13
- package/lib/commonjs/config/settings/openApi.js.map +0 -1
- package/lib/commonjs/stories/askGetDomainRoot.d.ts +0 -2
- package/lib/commonjs/stories/askGetDomainRoot.js +0 -22
- package/lib/commonjs/stories/askGetDomainRoot.js.map +0 -1
- package/lib/esm/actions/openApiSpec/OpenApiSpecActionType.d.ts +0 -3
- package/lib/esm/actions/openApiSpec/OpenApiSpecActionType.js +0 -5
- package/lib/esm/actions/openApiSpec/OpenApiSpecActionType.js.map +0 -1
- package/lib/esm/actions/openApiSpec/askGetOpenApiSpec.d.ts +0 -2
- package/lib/esm/actions/openApiSpec/askGetOpenApiSpec.js +0 -6
- package/lib/esm/actions/openApiSpec/askGetOpenApiSpec.js.map +0 -1
- package/lib/esm/actions/openApiSpec/index.d.ts +0 -2
- package/lib/esm/actions/openApiSpec/index.js +0 -3
- package/lib/esm/actions/openApiSpec/index.js.map +0 -1
- package/lib/esm/config/settings/openApi.d.ts +0 -5
- package/lib/esm/config/settings/openApi.js +0 -9
- package/lib/esm/config/settings/openApi.js.map +0 -1
- package/lib/esm/stories/askGetDomainRoot.d.ts +0 -2
- package/lib/esm/stories/askGetDomainRoot.js +0 -18
- package/lib/esm/stories/askGetDomainRoot.js.map +0 -1
|
@@ -3,22 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.defineWebsocket = void 0;
|
|
4
4
|
const quidproquo_core_1 = require("quidproquo-core");
|
|
5
5
|
const QPQConfig_1 = require("../QPQConfig");
|
|
6
|
-
const defineWebsocket = (apiSubdomain,
|
|
6
|
+
const defineWebsocket = (apiSubdomain, eventProcessors, options) => {
|
|
7
7
|
return {
|
|
8
8
|
configSettingType: QPQConfig_1.QPQWebServerConfigSettingType.WebSocket,
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
// from app/service/environment only (e.g. the api-id SSM parameter
|
|
12
|
-
// `/qpq/websocket/api-id/<apiSubdomain>-<app>-<service>-<env>`). Including rootDomain
|
|
13
|
-
// meant renaming an app's domain renamed the logical id while the physical name stayed
|
|
14
|
-
// put, so CloudFormation tried to CREATE a second resource holding a name the old one
|
|
15
|
-
// still claimed — and it enforces name uniqueness within a stack at create time, before
|
|
16
|
-
// cleanup deletes the old. Result: an undeployable stack, recoverable only by removing
|
|
17
|
-
// the old logical resource in a separate update. apiSubdomain alone is unique per module
|
|
18
|
-
// (that is the granularity getOwnedWebsocketSettings materialises at).
|
|
9
|
+
// uniqueKey is the CloudFormation logical id; physical names come from app/service/env
|
|
10
|
+
// only, so the key must not carry anything (like a domain) that can change independently.
|
|
19
11
|
uniqueKey: apiSubdomain,
|
|
20
12
|
apiSubdomain,
|
|
21
|
-
rootDomain,
|
|
22
13
|
eventProcessors,
|
|
23
14
|
// advanced
|
|
24
15
|
onRootDomain: (options === null || options === void 0 ? void 0 : options.onRootDomain) || false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/config/settings/websocket.ts"],"names":[],"mappings":";;;AAAA,qDAAkI;AAElI,4CAA6D;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/config/settings/websocket.ts"],"names":[],"mappings":";;;AAAA,qDAAkI;AAElI,4CAA6D;AA0CtD,MAAM,eAAe,GAAG,CAC7B,YAAoB,EACpB,eAA4C,EAC5C,OAA4C,EACR,EAAE;IACtC,OAAO;QACL,iBAAiB,EAAE,yCAA6B,CAAC,SAAS;QAC1D,uFAAuF;QACvF,0FAA0F;QAC1F,SAAS,EAAE,YAAY;QAEvB,YAAY;QAEZ,eAAe;QAEf,WAAW;QACX,YAAY,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,KAAK;QAC5C,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,KAAK;QAElC,UAAU,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAI,KAAK;QAExC,0BAA0B,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B;QAE/D,uBAAuB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB;QAEzD,KAAK,EAAE,8BAAY,CAAC,oDAAoD,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;KACzF,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,eAAe,mBA2B1B","sourcesContent":["import { CrossModuleOwner, QPQConfigAdvancedSettings, QPQConfigSetting, qpqCoreUtils, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport interface QpqWebSocketEventProcessors {\n onConnect?: QpqFunctionRuntime;\n onDisconnect?: QpqFunctionRuntime;\n onMessage?: QpqFunctionRuntime;\n\n // [type: string]: QpqSourceEntry;\n}\n\nexport interface QPQConfigAdvancedWebSocketSettings extends QPQConfigAdvancedSettings {\n onRootDomain?: boolean;\n apiName?: string;\n\n cloudflareApiKeySecretName?: string;\n\n // Cap (and guarantee) on this websocket api's concurrent event processing:\n // never throttled below it, never scales above it. One compute unit serves all\n // the api's event processors (connect/disconnect/message), so this bounds the\n // api as a whole. Free, but carved out of the deploy account's shared\n // concurrency pool.\n maxConcurrentExecutions?: number;\n\n owner?: CrossModuleOwner<'websocketApiName'>;\n}\n\nexport interface WebSocketQPQWebServerConfigSetting extends QPQConfigSetting {\n apiSubdomain: string;\n\n onRootDomain: boolean;\n\n apiName: string;\n\n eventProcessors: QpqWebSocketEventProcessors;\n\n deprecated: boolean;\n\n cloudflareApiKeySecretName?: string;\n\n maxConcurrentExecutions?: number;\n}\n\nexport const defineWebsocket = (\n apiSubdomain: string,\n eventProcessors: QpqWebSocketEventProcessors,\n options?: QPQConfigAdvancedWebSocketSettings,\n): WebSocketQPQWebServerConfigSetting => {\n return {\n configSettingType: QPQWebServerConfigSettingType.WebSocket,\n // uniqueKey is the CloudFormation logical id; physical names come from app/service/env\n // only, so the key must not carry anything (like a domain) that can change independently.\n uniqueKey: apiSubdomain,\n\n apiSubdomain,\n\n eventProcessors,\n\n // advanced\n onRootDomain: options?.onRootDomain || false,\n apiName: options?.apiName || 'api',\n\n deprecated: options?.deprecated || false,\n\n cloudflareApiKeySecretName: options?.cloudflareApiKeySecretName,\n\n maxConcurrentExecutions: options?.maxConcurrentExecutions,\n\n owner: qpqCoreUtils.convertCrossModuleOwnerToGenericResourceNameOverride(options?.owner),\n };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type JsonSchema = Record<string, unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSchema.js","sourceRoot":"","sources":["../../../../src/config/types/JsonSchema.ts"],"names":[],"mappings":"","sourcesContent":["// A JSON Schema document as plain data. Kept loose on purpose: route configs are\n// written out as JSON by `qpq synth`, so nothing here can hold a live validator.\nexport type JsonSchema = Record<string, unknown>;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteSchema.js","sourceRoot":"","sources":["../../../../src/config/types/RouteSchema.ts"],"names":[],"mappings":"","sourcesContent":["import { JsonSchema } from './JsonSchema';\n\n// The self-documenting half of a route: what it accepts and what it returns, as\n// JSON Schema, plus the bits of prose an OpenAPI operation wants. Everything is\n// optional so a route with no schema still shows up in the generated document,\n// just without bodies.\nexport type RouteSchema = {\n // Leave the route out of the generated OpenAPI document (the docs endpoints themselves, internal hooks)\n hidden?: boolean;\n\n summary?: string;\n description?: string;\n tags?: string[];\n\n bodyJsonSchema?: JsonSchema;\n queryJsonSchema?: JsonSchema;\n responseJsonSchema?: JsonSchema;\n};\n"]}
|
|
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./JsonSchema"), exports);
|
|
17
18
|
__exportStar(require("./ResponseSecurityHeaders"), exports);
|
|
19
|
+
__exportStar(require("./RouteSchema"), exports);
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C","sourcesContent":["export * from './ResponseSecurityHeaders';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,4DAA0C;AAC1C,gDAA8B","sourcesContent":["export * from './JsonSchema';\nexport * from './ResponseSecurityHeaders';\nexport * from './RouteSchema';\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Nullable, QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DnsQPQWebServerConfigSetting } from '../../config/settings/dns';
|
|
3
|
+
/** The service's single Dns setting, or null when it declares no domain. Throws on more than one. */
|
|
4
|
+
export declare const getDnsConfig: (qpqConfig: QPQConfig) => Nullable<DnsQPQWebServerConfigSetting>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDnsConfig = void 0;
|
|
4
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
5
|
+
const QPQConfig_1 = require("../../config/QPQConfig");
|
|
6
|
+
/** The service's single Dns setting, or null when it declares no domain. Throws on more than one. */
|
|
7
|
+
const getDnsConfig = (qpqConfig) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const settings = quidproquo_core_1.qpqCoreUtils.getConfigSettings(qpqConfig, QPQConfig_1.QPQWebServerConfigSettingType.Dns);
|
|
10
|
+
if (settings.length > 1) {
|
|
11
|
+
throw new Error(`defineDns must appear once per service, found ${settings.length}`);
|
|
12
|
+
}
|
|
13
|
+
return (_a = settings[0]) !== null && _a !== void 0 ? _a : null;
|
|
14
|
+
};
|
|
15
|
+
exports.getDnsConfig = getDnsConfig;
|
|
16
|
+
//# sourceMappingURL=getDnsConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDnsConfig.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getDnsConfig.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AAEpE,sDAAuE;AAGvE,qGAAqG;AAC9F,MAAM,YAAY,GAAG,CAAC,SAAoB,EAA0C,EAAE;;IAC3F,MAAM,QAAQ,GAAG,8BAAY,CAAC,iBAAiB,CAA+B,SAAS,EAAE,yCAA6B,CAAC,GAAG,CAAC,CAAC;IAE5H,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,MAAA,QAAQ,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAC7B,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB","sourcesContent":["import { Nullable, QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../../config/QPQConfig';\nimport { DnsQPQWebServerConfigSetting } from '../../config/settings/dns';\n\n/** The service's single Dns setting, or null when it declares no domain. Throws on more than one. */\nexport const getDnsConfig = (qpqConfig: QPQConfig): Nullable<DnsQPQWebServerConfigSetting> => {\n const settings = qpqCoreUtils.getConfigSettings<DnsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Dns);\n\n if (settings.length > 1) {\n throw new Error(`defineDns must appear once per service, found ${settings.length}`);\n }\n\n return settings[0] ?? null;\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPrimaryRootDomain = void 0;
|
|
4
|
+
const getRootDomains_1 = require("./getRootDomains");
|
|
5
|
+
/** The first declared root, which absolute URLs (email links, MF remotes, the Cognito domain) bake to; null without a domain. */
|
|
6
|
+
const getPrimaryRootDomain = (qpqConfig) => { var _a; return (_a = (0, getRootDomains_1.getRootDomains)(qpqConfig)[0]) !== null && _a !== void 0 ? _a : null; };
|
|
7
|
+
exports.getPrimaryRootDomain = getPrimaryRootDomain;
|
|
8
|
+
//# sourceMappingURL=getPrimaryRootDomain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPrimaryRootDomain.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getPrimaryRootDomain.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAElD,iIAAiI;AAC1H,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAAoB,EAAE,WAAC,OAAA,MAAA,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAC;AAAxG,QAAA,oBAAoB,wBAAoF","sourcesContent":["import { Nullable, QPQConfig } from 'quidproquo-core';\n\nimport { getRootDomains } from './getRootDomains';\n\n/** The first declared root, which absolute URLs (email links, MF remotes, the Cognito domain) bake to; null without a domain. */\nexport const getPrimaryRootDomain = (qpqConfig: QPQConfig): Nullable<string> => getRootDomains(qpqConfig)[0] ?? null;\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRootDomains = void 0;
|
|
4
|
+
const getDnsConfig_1 = require("./getDnsConfig");
|
|
5
|
+
/** Declared roots, primary first; empty when the service has no domain. */
|
|
6
|
+
const getRootDomains = (qpqConfig) => { var _a, _b; return (_b = (_a = (0, getDnsConfig_1.getDnsConfig)(qpqConfig)) === null || _a === void 0 ? void 0 : _a.rootDomains) !== null && _b !== void 0 ? _b : []; };
|
|
7
|
+
exports.getRootDomains = getRootDomains;
|
|
8
|
+
//# sourceMappingURL=getRootDomains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRootDomains.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getRootDomains.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAE9C,2EAA2E;AACpE,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAY,EAAE,eAAC,OAAA,MAAA,MAAA,IAAA,2BAAY,EAAC,SAAS,CAAC,0CAAE,WAAW,mCAAI,EAAE,CAAA,EAAA,CAAC;AAAhG,QAAA,cAAc,kBAAkF","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { getDnsConfig } from './getDnsConfig';\n\n/** Declared roots, primary first; empty when the service has no domain. */\nexport const getRootDomains = (qpqConfig: QPQConfig): string[] => getDnsConfig(qpqConfig)?.rootDomains ?? [];\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getDnsConfig"), exports);
|
|
18
|
+
__exportStar(require("./getPrimaryRootDomain"), exports);
|
|
19
|
+
__exportStar(require("./getRootDomains"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,yDAAuC;AACvC,mDAAiC","sourcesContent":["export * from './getDnsConfig';\nexport * from './getPrimaryRootDomain';\nexport * from './getRootDomains';\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./dns"), exports);
|
|
18
|
+
__exportStar(require("./storageDrive"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configUtils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,iDAA+B","sourcesContent":["export * from './dns';\nexport * from './storageDrive';\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Nullable, QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { StorageDriveCorsSettingsQPQWebServerConfigSetting } from '../../config/settings/storageDriveCorsSettings';
|
|
3
|
+
/** The `defineStorageDriveCorsSettings` entry for a drive, null when it has none. */
|
|
4
|
+
export declare const getStorageDriveCorsSettingsByName: (qpqConfig: QPQConfig, storageDriveName: string) => Nullable<StorageDriveCorsSettingsQPQWebServerConfigSetting>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStorageDriveCorsSettingsByName = void 0;
|
|
4
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
5
|
+
const QPQConfig_1 = require("../../config/QPQConfig");
|
|
6
|
+
/** The `defineStorageDriveCorsSettings` entry for a drive, null when it has none. */
|
|
7
|
+
const getStorageDriveCorsSettingsByName = (qpqConfig, storageDriveName) => {
|
|
8
|
+
var _a;
|
|
9
|
+
return (_a = quidproquo_core_1.qpqCoreUtils
|
|
10
|
+
.getConfigSettings(qpqConfig, QPQConfig_1.QPQWebServerConfigSettingType.StorageDriveCorsSettings)
|
|
11
|
+
.find((setting) => setting.storageDriveName === storageDriveName)) !== null && _a !== void 0 ? _a : null;
|
|
12
|
+
};
|
|
13
|
+
exports.getStorageDriveCorsSettingsByName = getStorageDriveCorsSettingsByName;
|
|
14
|
+
//# sourceMappingURL=getStorageDriveCorsSettingsByName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStorageDriveCorsSettingsByName.js","sourceRoot":"","sources":["../../../../src/configUtils/storageDrive/getStorageDriveCorsSettingsByName.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AAEpE,sDAAuE;AAGvE,qFAAqF;AAC9E,MAAM,iCAAiC,GAAG,CAC/C,SAAoB,EACpB,gBAAwB,EACqC,EAAE;;IAC/D,OAAA,MAAA,8BAAY;SACT,iBAAiB,CAAoD,SAAS,EAAE,yCAA6B,CAAC,wBAAwB,CAAC;SACvI,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,mCAAI,IAAI,CAAA;CAAA,CAAC;AANjE,QAAA,iCAAiC,qCAMgC","sourcesContent":["import { Nullable, QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../../config/QPQConfig';\nimport { StorageDriveCorsSettingsQPQWebServerConfigSetting } from '../../config/settings/storageDriveCorsSettings';\n\n/** The `defineStorageDriveCorsSettings` entry for a drive, null when it has none. */\nexport const getStorageDriveCorsSettingsByName = (\n qpqConfig: QPQConfig,\n storageDriveName: string,\n): Nullable<StorageDriveCorsSettingsQPQWebServerConfigSetting> =>\n qpqCoreUtils\n .getConfigSettings<StorageDriveCorsSettingsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.StorageDriveCorsSettings)\n .find((setting) => setting.storageDriveName === storageDriveName) ?? null;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './getStorageDriveCorsSettingsByName';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getStorageDriveCorsSettingsByName"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/configUtils/storageDrive/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD","sourcesContent":["export * from './getStorageDriveCorsSettingsByName';\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./resolvers"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB","sourcesContent":["export * from './resolvers';\nexport * from './types';\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Nullable, QPQConfig } from 'quidproquo-core';
|
|
2
|
+
/**
|
|
3
|
+
* Which declared root a request host belongs to, longest match wins, null when none does.
|
|
4
|
+
* Used to key request-time behaviour off the Host header without trusting it as a domain.
|
|
5
|
+
*/
|
|
6
|
+
export declare const findRootDomainForHost: (qpqConfig: QPQConfig, host: string) => Nullable<string>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findRootDomainForHost = void 0;
|
|
4
|
+
const getRootDomains_1 = require("../../../configUtils/dns/getRootDomains");
|
|
5
|
+
/**
|
|
6
|
+
* Which declared root a request host belongs to, longest match wins, null when none does.
|
|
7
|
+
* Used to key request-time behaviour off the Host header without trusting it as a domain.
|
|
8
|
+
*/
|
|
9
|
+
const findRootDomainForHost = (qpqConfig, host) => {
|
|
10
|
+
var _a;
|
|
11
|
+
const hostname = host.split(':')[0].toLowerCase();
|
|
12
|
+
const matches = (0, getRootDomains_1.getRootDomains)(qpqConfig).filter((root) => {
|
|
13
|
+
const rootName = root.split(':')[0].toLowerCase();
|
|
14
|
+
return hostname === rootName || hostname.endsWith(`.${rootName}`);
|
|
15
|
+
});
|
|
16
|
+
return (_a = matches.sort((a, b) => b.length - a.length)[0]) !== null && _a !== void 0 ? _a : null;
|
|
17
|
+
};
|
|
18
|
+
exports.findRootDomainForHost = findRootDomainForHost;
|
|
19
|
+
//# sourceMappingURL=findRootDomainForHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findRootDomainForHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/findRootDomainForHost.ts"],"names":[],"mappings":";;;AAEA,4EAAyE;AAEzE;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,IAAY,EAAoB,EAAE;;IAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAElD,MAAM,OAAO,GAAG,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAChE,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC","sourcesContent":["import { Nullable, QPQConfig } from 'quidproquo-core';\n\nimport { getRootDomains } from '../../../configUtils/dns/getRootDomains';\n\n/**\n * Which declared root a request host belongs to, longest match wins, null when none does.\n * Used to key request-time behaviour off the Host header without trusting it as a domain.\n */\nexport const findRootDomainForHost = (qpqConfig: QPQConfig, host: string): Nullable<string> => {\n const hostname = host.split(':')[0].toLowerCase();\n\n const matches = getRootDomains(qpqConfig).filter((root) => {\n const rootName = root.split(':')[0].toLowerCase();\n return hostname === rootName || hostname.endsWith(`.${rootName}`);\n });\n\n return matches.sort((a, b) => b.length - a.length)[0] ?? null;\n};\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDomainTargetKey = void 0;
|
|
4
|
+
/** Stable identity for a target, so lists of targets can be deduplicated. */
|
|
5
|
+
const getDomainTargetKey = (target) => { var _a, _b; return `${(_a = target.subdomain) !== null && _a !== void 0 ? _a : ''}::${(_b = target.service) !== null && _b !== void 0 ? _b : ''}`; };
|
|
6
|
+
exports.getDomainTargetKey = getDomainTargetKey;
|
|
7
|
+
//# sourceMappingURL=getDomainTargetKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDomainTargetKey.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/getDomainTargetKey.ts"],"names":[],"mappings":";;;AAEA,6EAA6E;AACtE,MAAM,kBAAkB,GAAG,CAAC,MAAoB,EAAU,EAAE,eAAC,OAAA,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,KAAK,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,EAAE,CAAA,EAAA,CAAC;AAA5G,QAAA,kBAAkB,sBAA0F","sourcesContent":["import { DomainTarget } from '../../../domain/types/DomainTarget';\n\n/** Stable identity for a target, so lists of targets can be deduplicated. */\nexport const getDomainTargetKey = (target: DomainTarget): string => `${target.subdomain ?? ''}::${target.service ?? ''}`;\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./findRootDomainForHost"), exports);
|
|
18
|
+
__exportStar(require("./getDomainTargetKey"), exports);
|
|
19
|
+
__exportStar(require("./resolveHostForRequestHost"), exports);
|
|
20
|
+
__exportStar(require("./resolveHostForRoot"), exports);
|
|
21
|
+
__exportStar(require("./resolveHosts"), exports);
|
|
22
|
+
__exportStar(require("./resolvePrimaryHost"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,uDAAqC;AACrC,8DAA4C;AAC5C,uDAAqC;AACrC,iDAA+B;AAC/B,uDAAqC","sourcesContent":["export * from './findRootDomainForHost';\nexport * from './getDomainTargetKey';\nexport * from './resolveHostForRequestHost';\nexport * from './resolveHostForRoot';\nexport * from './resolveHosts';\nexport * from './resolvePrimaryHost';\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Nullable, QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
import { DomainTarget } from '../../../domain/types/DomainTarget';
|
|
4
|
+
/**
|
|
5
|
+
* The target's host on the root a request arrived on. Only a declared root counts (the Host
|
|
6
|
+
* header is attacker-controlled); a request on no declared root gets the primary's host, and
|
|
7
|
+
* null means the service declares no domain at all.
|
|
8
|
+
*/
|
|
9
|
+
export declare const resolveHostForRequestHost: (qpqConfig: QPQConfig, requestHost: string | undefined, target?: DomainTarget, resolver?: DomainResolver) => Nullable<string>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveHostForRequestHost = void 0;
|
|
4
|
+
const findRootDomainForHost_1 = require("./findRootDomainForHost");
|
|
5
|
+
const resolveHostForRoot_1 = require("./resolveHostForRoot");
|
|
6
|
+
const resolveHosts_1 = require("./resolveHosts");
|
|
7
|
+
/**
|
|
8
|
+
* The target's host on the root a request arrived on. Only a declared root counts (the Host
|
|
9
|
+
* header is attacker-controlled); a request on no declared root gets the primary's host, and
|
|
10
|
+
* null means the service declares no domain at all.
|
|
11
|
+
*/
|
|
12
|
+
const resolveHostForRequestHost = (qpqConfig, requestHost, target = {}, resolver) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const rootDomain = requestHost ? (0, findRootDomainForHost_1.findRootDomainForHost)(qpqConfig, requestHost) : null;
|
|
15
|
+
if (rootDomain) {
|
|
16
|
+
return (0, resolveHostForRoot_1.resolveHostForRoot)(qpqConfig, rootDomain, target, resolver);
|
|
17
|
+
}
|
|
18
|
+
return (_a = (0, resolveHosts_1.resolveHosts)(qpqConfig, target, resolver)[0]) !== null && _a !== void 0 ? _a : null;
|
|
19
|
+
};
|
|
20
|
+
exports.resolveHostForRequestHost = resolveHostForRequestHost;
|
|
21
|
+
//# sourceMappingURL=resolveHostForRequestHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveHostForRequestHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHostForRequestHost.ts"],"names":[],"mappings":";;;AAIA,mEAAgE;AAChE,6DAA0D;AAC1D,iDAA8C;AAE9C;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,CACvC,SAAoB,EACpB,WAA+B,EAC/B,SAAuB,EAAE,EACzB,QAAyB,EACP,EAAE;;IACpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAA,6CAAqB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAA,uCAAkB,EAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,MAAA,IAAA,2BAAY,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAC9D,CAAC,CAAC;AAbW,QAAA,yBAAyB,6BAapC","sourcesContent":["import { Nullable, QPQConfig } from 'quidproquo-core';\n\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { findRootDomainForHost } from './findRootDomainForHost';\nimport { resolveHostForRoot } from './resolveHostForRoot';\nimport { resolveHosts } from './resolveHosts';\n\n/**\n * The target's host on the root a request arrived on. Only a declared root counts (the Host\n * header is attacker-controlled); a request on no declared root gets the primary's host, and\n * null means the service declares no domain at all.\n */\nexport const resolveHostForRequestHost = (\n qpqConfig: QPQConfig,\n requestHost: string | undefined,\n target: DomainTarget = {},\n resolver?: DomainResolver,\n): Nullable<string> => {\n const rootDomain = requestHost ? findRootDomainForHost(qpqConfig, requestHost) : null;\n\n if (rootDomain) {\n return resolveHostForRoot(qpqConfig, rootDomain, target, resolver);\n }\n\n return resolveHosts(qpqConfig, target, resolver)[0] ?? null;\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
import { DomainTarget } from '../../../domain/types/DomainTarget';
|
|
4
|
+
/** The target's host on one specific declared root. Throws when the root is not declared. */
|
|
5
|
+
export declare const resolveHostForRoot: (qpqConfig: QPQConfig, rootDomain: string, target: DomainTarget, resolver?: DomainResolver) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveHostForRoot = void 0;
|
|
4
|
+
const getRootDomains_1 = require("../../../configUtils/dns/getRootDomains");
|
|
5
|
+
const resolveHosts_1 = require("./resolveHosts");
|
|
6
|
+
/** The target's host on one specific declared root. Throws when the root is not declared. */
|
|
7
|
+
const resolveHostForRoot = (qpqConfig, rootDomain, target, resolver) => {
|
|
8
|
+
const index = (0, getRootDomains_1.getRootDomains)(qpqConfig).indexOf(rootDomain);
|
|
9
|
+
if (index < 0) {
|
|
10
|
+
throw new Error(`Root domain [${rootDomain}] is not declared in defineDns`);
|
|
11
|
+
}
|
|
12
|
+
return (0, resolveHosts_1.resolveHosts)(qpqConfig, target, resolver)[index];
|
|
13
|
+
};
|
|
14
|
+
exports.resolveHostForRoot = resolveHostForRoot;
|
|
15
|
+
//# sourceMappingURL=resolveHostForRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveHostForRoot.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHostForRoot.ts"],"names":[],"mappings":";;;AAEA,4EAAyE;AAGzE,iDAA8C;AAE9C,6FAA6F;AACtF,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,UAAkB,EAAE,MAAoB,EAAE,QAAyB,EAAU,EAAE;IACtI,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,gCAAgC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,IAAA,2BAAY,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { getRootDomains } from '../../../configUtils/dns/getRootDomains';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { resolveHosts } from './resolveHosts';\n\n/** The target's host on one specific declared root. Throws when the root is not declared. */\nexport const resolveHostForRoot = (qpqConfig: QPQConfig, rootDomain: string, target: DomainTarget, resolver?: DomainResolver): string => {\n const index = getRootDomains(qpqConfig).indexOf(rootDomain);\n\n if (index < 0) {\n throw new Error(`Root domain [${rootDomain}] is not declared in defineDns`);\n }\n\n return resolveHosts(qpqConfig, target, resolver)[index];\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
import { DomainTarget } from '../../../domain/types/DomainTarget';
|
|
4
|
+
/**
|
|
5
|
+
* One host per declared root, primary first; empty when the service has no domain. Runs the
|
|
6
|
+
* resolver given (the app's, obtained with `requireDomainResolver` at synth and build time or
|
|
7
|
+
* `loadDomainResolver` at runtime), else the localhost or default built-in.
|
|
8
|
+
*/
|
|
9
|
+
export declare const resolveHosts: (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver) => string[];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveHosts = void 0;
|
|
4
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
5
|
+
const getDnsConfig_1 = require("../../../configUtils/dns/getDnsConfig");
|
|
6
|
+
const getDomainResolver_1 = require("../resolver/getDomainResolver");
|
|
7
|
+
const validateResolvedHost_1 = require("../resolver/validateResolvedHost");
|
|
8
|
+
/**
|
|
9
|
+
* One host per declared root, primary first; empty when the service has no domain. Runs the
|
|
10
|
+
* resolver given (the app's, obtained with `requireDomainResolver` at synth and build time or
|
|
11
|
+
* `loadDomainResolver` at runtime), else the localhost or default built-in.
|
|
12
|
+
*/
|
|
13
|
+
const resolveHosts = (qpqConfig, target, resolver) => {
|
|
14
|
+
const dns = (0, getDnsConfig_1.getDnsConfig)(qpqConfig);
|
|
15
|
+
if (!dns) {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
const activeResolver = (0, getDomainResolver_1.getDomainResolver)(qpqConfig, resolver);
|
|
19
|
+
const environment = quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);
|
|
20
|
+
const feature = quidproquo_core_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig);
|
|
21
|
+
return dns.rootDomains.map((rootDomain) => {
|
|
22
|
+
const scope = { rootDomain, environment, feature, service: target.service, subdomain: target.subdomain };
|
|
23
|
+
return (0, validateResolvedHost_1.validateResolvedHost)(activeResolver.resolveHost(scope), scope);
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
exports.resolveHosts = resolveHosts;
|
|
27
|
+
//# sourceMappingURL=resolveHosts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveHosts.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHosts.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAE1D,wEAAqE;AAGrE,qEAAkE;AAClE,2EAAwE;AAExE;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,MAAoB,EAAE,QAAyB,EAAY,EAAE;IAC9G,MAAM,GAAG,GAAG,IAAA,2BAAY,EAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,8BAAY,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,8BAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAEpE,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAEzG,OAAO,IAAA,2CAAoB,EAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB","sourcesContent":["import { QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { getDnsConfig } from '../../../configUtils/dns/getDnsConfig';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { getDomainResolver } from '../resolver/getDomainResolver';\nimport { validateResolvedHost } from '../resolver/validateResolvedHost';\n\n/**\n * One host per declared root, primary first; empty when the service has no domain. Runs the\n * resolver given (the app's, obtained with `requireDomainResolver` at synth and build time or\n * `loadDomainResolver` at runtime), else the localhost or default built-in.\n */\nexport const resolveHosts = (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver): string[] => {\n const dns = getDnsConfig(qpqConfig);\n if (!dns) {\n return [];\n }\n\n const activeResolver = getDomainResolver(qpqConfig, resolver);\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n\n return dns.rootDomains.map((rootDomain) => {\n const scope = { rootDomain, environment, feature, service: target.service, subdomain: target.subdomain };\n\n return validateResolvedHost(activeResolver.resolveHost(scope), scope);\n });\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
import { DomainTarget } from '../../../domain/types/DomainTarget';
|
|
4
|
+
/** The host on the primary root, for anything that must bake exactly one absolute URL. Throws without a domain. */
|
|
5
|
+
export declare const resolvePrimaryHost: (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver) => string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePrimaryHost = void 0;
|
|
4
|
+
const resolveHosts_1 = require("./resolveHosts");
|
|
5
|
+
/** The host on the primary root, for anything that must bake exactly one absolute URL. Throws without a domain. */
|
|
6
|
+
const resolvePrimaryHost = (qpqConfig, target, resolver) => {
|
|
7
|
+
const [primary] = (0, resolveHosts_1.resolveHosts)(qpqConfig, target, resolver);
|
|
8
|
+
if (!primary) {
|
|
9
|
+
throw new Error('resolvePrimaryHost: the service declares no domain (defineDns)');
|
|
10
|
+
}
|
|
11
|
+
return primary;
|
|
12
|
+
};
|
|
13
|
+
exports.resolvePrimaryHost = resolvePrimaryHost;
|
|
14
|
+
//# sourceMappingURL=resolvePrimaryHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolvePrimaryHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolvePrimaryHost.ts"],"names":[],"mappings":";;;AAIA,iDAA8C;AAE9C,mHAAmH;AAC5G,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,MAAoB,EAAE,QAAyB,EAAU,EAAE;IAClH,MAAM,CAAC,OAAO,CAAC,GAAG,IAAA,2BAAY,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { resolveHosts } from './resolveHosts';\n\n/** The host on the primary root, for anything that must bake exactly one absolute URL. Throws without a domain. */\nexport const resolvePrimaryHost = (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver): string => {\n const [primary] = resolveHosts(qpqConfig, target, resolver);\n\n if (!primary) {\n throw new Error('resolvePrimaryHost: the service declares no domain (defineDns)');\n }\n\n return primary;\n};\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./host"), exports);
|
|
18
|
+
__exportStar(require("./origin"), exports);
|
|
19
|
+
__exportStar(require("./resolver"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/logic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB;AACzB,6CAA2B","sourcesContent":["export * from './host';\nexport * from './origin';\nexport * from './resolver';\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
/** Origins allowed on a storage drive's objects: `defineStorageDriveCorsSettings` wins, else the service-scoped default. */
|
|
4
|
+
export declare const getStorageDriveCorsAllowedOrigins: (qpqConfig: QPQConfig, storageDriveName: string, resolver?: DomainResolver) => string[];
|