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
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { findRootDomainForHost } from './findRootDomainForHost';
|
|
2
|
+
import { resolveHostForRoot } from './resolveHostForRoot';
|
|
3
|
+
import { resolveHosts } from './resolveHosts';
|
|
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 const resolveHostForRequestHost = (qpqConfig, requestHost, target = {}, resolver) => {
|
|
10
|
+
const rootDomain = requestHost ? findRootDomainForHost(qpqConfig, requestHost) : null;
|
|
11
|
+
if (rootDomain) {
|
|
12
|
+
return resolveHostForRoot(qpqConfig, rootDomain, target, resolver);
|
|
13
|
+
}
|
|
14
|
+
return resolveHosts(qpqConfig, target, resolver)[0] ?? null;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=resolveHostForRequestHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveHostForRequestHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHostForRequestHost.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,SAAoB,EACpB,WAA+B,EAC/B,SAAuB,EAAE,EACzB,QAAyB,EACP,EAAE;IACpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9D,CAAC,CAAC","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,11 @@
|
|
|
1
|
+
import { getRootDomains } from '../../../configUtils/dns/getRootDomains';
|
|
2
|
+
import { resolveHosts } from './resolveHosts';
|
|
3
|
+
/** The target's host on one specific declared root. Throws when the root is not declared. */
|
|
4
|
+
export const resolveHostForRoot = (qpqConfig, rootDomain, target, resolver) => {
|
|
5
|
+
const index = getRootDomains(qpqConfig).indexOf(rootDomain);
|
|
6
|
+
if (index < 0) {
|
|
7
|
+
throw new Error(`Root domain [${rootDomain}] is not declared in defineDns`);
|
|
8
|
+
}
|
|
9
|
+
return resolveHosts(qpqConfig, target, resolver)[index];
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=resolveHostForRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveHostForRoot.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHostForRoot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,UAAkB,EAAE,MAAoB,EAAE,QAAyB,EAAU,EAAE;IACtI,MAAM,KAAK,GAAG,cAAc,CAAC,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,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC,CAAC","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,23 @@
|
|
|
1
|
+
import { qpqCoreUtils } from 'quidproquo-core';
|
|
2
|
+
import { getDnsConfig } from '../../../configUtils/dns/getDnsConfig';
|
|
3
|
+
import { getDomainResolver } from '../resolver/getDomainResolver';
|
|
4
|
+
import { validateResolvedHost } from '../resolver/validateResolvedHost';
|
|
5
|
+
/**
|
|
6
|
+
* One host per declared root, primary first; empty when the service has no domain. Runs the
|
|
7
|
+
* resolver given (the app's, obtained with `requireDomainResolver` at synth and build time or
|
|
8
|
+
* `loadDomainResolver` at runtime), else the localhost or default built-in.
|
|
9
|
+
*/
|
|
10
|
+
export const resolveHosts = (qpqConfig, target, resolver) => {
|
|
11
|
+
const dns = getDnsConfig(qpqConfig);
|
|
12
|
+
if (!dns) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
const activeResolver = getDomainResolver(qpqConfig, resolver);
|
|
16
|
+
const environment = qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);
|
|
17
|
+
const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);
|
|
18
|
+
return dns.rootDomains.map((rootDomain) => {
|
|
19
|
+
const scope = { rootDomain, environment, feature, service: target.service, subdomain: target.subdomain };
|
|
20
|
+
return validateResolvedHost(activeResolver.resolveHost(scope), scope);
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=resolveHosts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveHosts.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHosts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,MAAoB,EAAE,QAAyB,EAAY,EAAE;IAC9G,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,YAAY,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,YAAY,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,oBAAoB,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","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,10 @@
|
|
|
1
|
+
import { resolveHosts } from './resolveHosts';
|
|
2
|
+
/** The host on the primary root, for anything that must bake exactly one absolute URL. Throws without a domain. */
|
|
3
|
+
export const resolvePrimaryHost = (qpqConfig, target, resolver) => {
|
|
4
|
+
const [primary] = resolveHosts(qpqConfig, target, resolver);
|
|
5
|
+
if (!primary) {
|
|
6
|
+
throw new Error('resolvePrimaryHost: the service declares no domain (defineDns)');
|
|
7
|
+
}
|
|
8
|
+
return primary;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=resolvePrimaryHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolvePrimaryHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolvePrimaryHost.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,mHAAmH;AACnH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,MAAoB,EAAE,QAAyB,EAAU,EAAE;IAClH,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,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","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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/logic/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC","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[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { getStorageDriveCorsSettingsByName } from '../../../configUtils/storageDrive/getStorageDriveCorsSettingsByName';
|
|
2
|
+
import { resolveServiceScopedCorsAllowedOrigins } from './resolveServiceScopedCorsAllowedOrigins';
|
|
3
|
+
/** Origins allowed on a storage drive's objects: `defineStorageDriveCorsSettings` wins, else the service-scoped default. */
|
|
4
|
+
export const getStorageDriveCorsAllowedOrigins = (qpqConfig, storageDriveName, resolver) => resolveServiceScopedCorsAllowedOrigins(qpqConfig, getStorageDriveCorsSettingsByName(qpqConfig, storageDriveName)?.allowedOrigins, resolver);
|
|
5
|
+
//# sourceMappingURL=getStorageDriveCorsAllowedOrigins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStorageDriveCorsAllowedOrigins.js","sourceRoot":"","sources":["../../../../../src/domain/logic/origin/getStorageDriveCorsAllowedOrigins.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,qEAAqE,CAAC;AAExH,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAElG,4HAA4H;AAC5H,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,SAAoB,EAAE,gBAAwB,EAAE,QAAyB,EAAY,EAAE,CACvI,sCAAsC,CAAC,SAAS,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { getStorageDriveCorsSettingsByName } from '../../../configUtils/storageDrive/getStorageDriveCorsSettingsByName';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { resolveServiceScopedCorsAllowedOrigins } from './resolveServiceScopedCorsAllowedOrigins';\n\n/** Origins allowed on a storage drive's objects: `defineStorageDriveCorsSettings` wins, else the service-scoped default. */\nexport const getStorageDriveCorsAllowedOrigins = (qpqConfig: QPQConfig, storageDriveName: string, resolver?: DomainResolver): string[] =>\n resolveServiceScopedCorsAllowedOrigins(qpqConfig, getStorageDriveCorsSettingsByName(qpqConfig, storageDriveName)?.allowedOrigins, resolver);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain/logic/origin/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,0CAA0C,CAAC","sourcesContent":["export * from './getStorageDriveCorsAllowedOrigins';\nexport * from './resolveContentSecurityPolicyEntry';\nexport * from './resolveOrigins';\nexport * from './resolveServiceScopedCorsAllowedOrigins';\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { ContentSecurityPolicyEntry } from '../../../config/types/ResponseSecurityHeaders';
|
|
3
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
4
|
+
/**
|
|
5
|
+
* CSP source values for an entry: a string passes through, a service entry becomes one
|
|
6
|
+
* host per root (or the pinned `domain`'s), prefixed with the protocol only when given,
|
|
7
|
+
* since CSP accepts bare hosts.
|
|
8
|
+
*/
|
|
9
|
+
export declare const resolveContentSecurityPolicyEntry: (qpqConfig: QPQConfig, entry: ContentSecurityPolicyEntry, resolver?: DomainResolver) => string[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { resolveHostForRoot } from '../host/resolveHostForRoot';
|
|
2
|
+
import { resolveHosts } from '../host/resolveHosts';
|
|
3
|
+
/**
|
|
4
|
+
* CSP source values for an entry: a string passes through, a service entry becomes one
|
|
5
|
+
* host per root (or the pinned `domain`'s), prefixed with the protocol only when given,
|
|
6
|
+
* since CSP accepts bare hosts.
|
|
7
|
+
*/
|
|
8
|
+
export const resolveContentSecurityPolicyEntry = (qpqConfig, entry, resolver) => {
|
|
9
|
+
if (typeof entry === 'string') {
|
|
10
|
+
return [entry];
|
|
11
|
+
}
|
|
12
|
+
const target = { subdomain: entry.api, service: entry.service };
|
|
13
|
+
const hosts = entry.domain ? [resolveHostForRoot(qpqConfig, entry.domain, target, resolver)] : resolveHosts(qpqConfig, target, resolver);
|
|
14
|
+
return hosts.map((host) => (entry.protocol ? `${entry.protocol}://${host}` : host));
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=resolveContentSecurityPolicyEntry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveContentSecurityPolicyEntry.js","sourceRoot":"","sources":["../../../../../src/domain/logic/origin/resolveContentSecurityPolicyEntry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,SAAoB,EAAE,KAAiC,EAAE,QAAyB,EAAY,EAAE;IAChJ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzI,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC,CAAC","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { ContentSecurityPolicyEntry } from '../../../config/types/ResponseSecurityHeaders';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { resolveHostForRoot } from '../host/resolveHostForRoot';\nimport { resolveHosts } from '../host/resolveHosts';\n\n/**\n * CSP source values for an entry: a string passes through, a service entry becomes one\n * host per root (or the pinned `domain`'s), prefixed with the protocol only when given,\n * since CSP accepts bare hosts.\n */\nexport const resolveContentSecurityPolicyEntry = (qpqConfig: QPQConfig, entry: ContentSecurityPolicyEntry, resolver?: DomainResolver): string[] => {\n if (typeof entry === 'string') {\n return [entry];\n }\n\n const target = { subdomain: entry.api, service: entry.service };\n const hosts = entry.domain ? [resolveHostForRoot(qpqConfig, entry.domain, target, resolver)] : resolveHosts(qpqConfig, target, resolver);\n\n return hosts.map((host) => (entry.protocol ? `${entry.protocol}://${host}` : host));\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { ServiceAllowedOrigin } from '../../../config/settings/route';
|
|
3
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
4
|
+
/**
|
|
5
|
+
* Browser origins for a CORS / CSP entry: a string passes through, a service entry becomes
|
|
6
|
+
* `${protocol}://host` once per root, or once for the pinned `domain` when it names one.
|
|
7
|
+
*/
|
|
8
|
+
export declare const resolveOrigins: (qpqConfig: QPQConfig, entry: string | ServiceAllowedOrigin, resolver?: DomainResolver) => string[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { resolveHostForRoot } from '../host/resolveHostForRoot';
|
|
2
|
+
import { resolveHosts } from '../host/resolveHosts';
|
|
3
|
+
/**
|
|
4
|
+
* Browser origins for a CORS / CSP entry: a string passes through, a service entry becomes
|
|
5
|
+
* `${protocol}://host` once per root, or once for the pinned `domain` when it names one.
|
|
6
|
+
*/
|
|
7
|
+
export const resolveOrigins = (qpqConfig, entry, resolver) => {
|
|
8
|
+
if (typeof entry === 'string') {
|
|
9
|
+
return [entry];
|
|
10
|
+
}
|
|
11
|
+
const protocol = entry.protocol || 'https';
|
|
12
|
+
const target = { subdomain: entry.api, service: entry.service };
|
|
13
|
+
const hosts = entry.domain ? [resolveHostForRoot(qpqConfig, entry.domain, target, resolver)] : resolveHosts(qpqConfig, target, resolver);
|
|
14
|
+
return hosts.map((host) => `${protocol}://${host}`);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=resolveOrigins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveOrigins.js","sourceRoot":"","sources":["../../../../../src/domain/logic/origin/resolveOrigins.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAE,KAAoC,EAAE,QAAyB,EAAY,EAAE;IAChI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC3C,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzI,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { ServiceAllowedOrigin } from '../../../config/settings/route';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { resolveHostForRoot } from '../host/resolveHostForRoot';\nimport { resolveHosts } from '../host/resolveHosts';\n\n/**\n * Browser origins for a CORS / CSP entry: a string passes through, a service entry becomes\n * `${protocol}://host` once per root, or once for the pinned `domain` when it names one.\n */\nexport const resolveOrigins = (qpqConfig: QPQConfig, entry: string | ServiceAllowedOrigin, resolver?: DomainResolver): string[] => {\n if (typeof entry === 'string') {\n return [entry];\n }\n\n const protocol = entry.protocol || 'https';\n const target = { subdomain: entry.api, service: entry.service };\n\n const hosts = entry.domain ? [resolveHostForRoot(qpqConfig, entry.domain, target, resolver)] : resolveHosts(qpqConfig, target, resolver);\n\n return hosts.map((host) => `${protocol}://${host}`);\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
/**
|
|
4
|
+
* CORS origins for a service resource: an explicit list wins; otherwise the site root plus a
|
|
5
|
+
* one-level subdomain wildcard on every root (S3 and CloudFront both accept that form).
|
|
6
|
+
* '*' only when the service declares no domain at all (nothing browser-facing).
|
|
7
|
+
*/
|
|
8
|
+
export declare const resolveServiceScopedCorsAllowedOrigins: (qpqConfig: QPQConfig, explicitOrigins?: string[], resolver?: DomainResolver) => string[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { resolveHosts } from '../host/resolveHosts';
|
|
2
|
+
/**
|
|
3
|
+
* CORS origins for a service resource: an explicit list wins; otherwise the site root plus a
|
|
4
|
+
* one-level subdomain wildcard on every root (S3 and CloudFront both accept that form).
|
|
5
|
+
* '*' only when the service declares no domain at all (nothing browser-facing).
|
|
6
|
+
*/
|
|
7
|
+
export const resolveServiceScopedCorsAllowedOrigins = (qpqConfig, explicitOrigins, resolver) => {
|
|
8
|
+
if (explicitOrigins) {
|
|
9
|
+
return explicitOrigins;
|
|
10
|
+
}
|
|
11
|
+
const hosts = resolveHosts(qpqConfig, {}, resolver);
|
|
12
|
+
if (hosts.length === 0) {
|
|
13
|
+
return ['*'];
|
|
14
|
+
}
|
|
15
|
+
return hosts.flatMap((host) => [`https://${host}`, `https://*.${host}`]);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=resolveServiceScopedCorsAllowedOrigins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveServiceScopedCorsAllowedOrigins.js","sourceRoot":"","sources":["../../../../../src/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,SAAoB,EAAE,eAA0B,EAAE,QAAyB,EAAY,EAAE;IAC9I,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { resolveHosts } from '../host/resolveHosts';\n\n/**\n * CORS origins for a service resource: an explicit list wins; otherwise the site root plus a\n * one-level subdomain wildcard on every root (S3 and CloudFront both accept that form).\n * '*' only when the service declares no domain at all (nothing browser-facing).\n */\nexport const resolveServiceScopedCorsAllowedOrigins = (qpqConfig: QPQConfig, explicitOrigins?: string[], resolver?: DomainResolver): string[] => {\n if (explicitOrigins) {\n return explicitOrigins;\n }\n\n const hosts = resolveHosts(qpqConfig, {}, resolver);\n if (hosts.length === 0) {\n return ['*'];\n }\n\n return hosts.flatMap((host) => [`https://${host}`, `https://*.${host}`]);\n};\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
/** The resolver to run: the one the tooling was given, else localhost under the dev server, else the default shape. */
|
|
4
|
+
export declare const getDomainResolver: (qpqConfig: QPQConfig, resolver?: DomainResolver) => DomainResolver;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getPrimaryRootDomain } from '../../../configUtils/dns/getPrimaryRootDomain';
|
|
2
|
+
import { defaultDomainResolver } from '../../resolvers/defaultDomainResolver';
|
|
3
|
+
import { localhostDomainResolver } from '../../resolvers/localhostDomainResolver';
|
|
4
|
+
import { isLocalhostRootDomain } from './isLocalhostRootDomain';
|
|
5
|
+
/** The resolver to run: the one the tooling was given, else localhost under the dev server, else the default shape. */
|
|
6
|
+
export const getDomainResolver = (qpqConfig, resolver) => {
|
|
7
|
+
if (resolver) {
|
|
8
|
+
return resolver;
|
|
9
|
+
}
|
|
10
|
+
const primary = getPrimaryRootDomain(qpqConfig);
|
|
11
|
+
if (primary && isLocalhostRootDomain(primary)) {
|
|
12
|
+
return localhostDomainResolver;
|
|
13
|
+
}
|
|
14
|
+
return defaultDomainResolver;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=getDomainResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDomainResolver.js","sourceRoot":"","sources":["../../../../../src/domain/logic/resolver/getDomainResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,uHAAuH;AACvH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAE,QAAyB,EAAkB,EAAE;IACnG,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { getPrimaryRootDomain } from '../../../configUtils/dns/getPrimaryRootDomain';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { defaultDomainResolver } from '../../resolvers/defaultDomainResolver';\nimport { localhostDomainResolver } from '../../resolvers/localhostDomainResolver';\nimport { isLocalhostRootDomain } from './isLocalhostRootDomain';\n\n/** The resolver to run: the one the tooling was given, else localhost under the dev server, else the default shape. */\nexport const getDomainResolver = (qpqConfig: QPQConfig, resolver?: DomainResolver): DomainResolver => {\n if (resolver) {\n return resolver;\n }\n\n const primary = getPrimaryRootDomain(qpqConfig);\n if (primary && isLocalhostRootDomain(primary)) {\n return localhostDomainResolver;\n }\n\n return defaultDomainResolver;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain/logic/resolver/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './getDomainResolver';\nexport * from './isLocalhostRootDomain';\nexport * from './loadDomainResolver';\nexport * from './validateResolvedHost';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isLocalhostRootDomain.js","sourceRoot":"","sources":["../../../../../src/domain/logic/resolver/isLocalhostRootDomain.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC","sourcesContent":["/** `localhost` with or without a port; the dev server rewrites roots to this. */\nexport const isLocalhostRootDomain = (rootDomain: string): boolean => rootDomain.split(':')[0].toLowerCase() === 'localhost';\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DynamicModuleLoader, QPQConfig } from 'quidproquo-core';
|
|
2
|
+
import { DomainResolver } from '../../../domain/types/DomainResolver';
|
|
3
|
+
/**
|
|
4
|
+
* The resolver a runtime should use: the Dns setting's pointer loaded through the dynamic
|
|
5
|
+
* module loader (the pointer is a src entry, so the bundler includes it), else the
|
|
6
|
+
* localhost or default built-in. Processor factories call this once and close over it.
|
|
7
|
+
*/
|
|
8
|
+
export declare const loadDomainResolver: (qpqConfig: QPQConfig, dynamicModuleLoader: DynamicModuleLoader) => Promise<DomainResolver>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getDnsConfig } from '../../../configUtils/dns/getDnsConfig';
|
|
2
|
+
import { getDomainResolver } from './getDomainResolver';
|
|
3
|
+
/**
|
|
4
|
+
* The resolver a runtime should use: the Dns setting's pointer loaded through the dynamic
|
|
5
|
+
* module loader (the pointer is a src entry, so the bundler includes it), else the
|
|
6
|
+
* localhost or default built-in. Processor factories call this once and close over it.
|
|
7
|
+
*/
|
|
8
|
+
export const loadDomainResolver = async (qpqConfig, dynamicModuleLoader) => {
|
|
9
|
+
const pointer = getDnsConfig(qpqConfig)?.resolver;
|
|
10
|
+
if (!pointer) {
|
|
11
|
+
return getDomainResolver(qpqConfig);
|
|
12
|
+
}
|
|
13
|
+
const resolver = (await dynamicModuleLoader(pointer));
|
|
14
|
+
if (typeof resolver?.resolveHost !== 'function') {
|
|
15
|
+
throw new Error(`Domain resolver [${pointer.functionName}] in [${pointer.basePath}/${pointer.relativePath}] must be a DomainResolver ({ resolveHost })`);
|
|
16
|
+
}
|
|
17
|
+
return resolver;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=loadDomainResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadDomainResolver.js","sourceRoot":"","sources":["../../../../../src/domain/logic/resolver/loadDomainResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,SAAoB,EAAE,mBAAwC,EAA2B,EAAE;IAClI,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAA0B,CAAC;IAC/E,IAAI,OAAO,QAAQ,EAAE,WAAW,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,8CAA8C,CACxI,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC","sourcesContent":["import { DynamicModuleLoader, QPQConfig } from 'quidproquo-core';\n\nimport { getDnsConfig } from '../../../configUtils/dns/getDnsConfig';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { getDomainResolver } from './getDomainResolver';\n\n/**\n * The resolver a runtime should use: the Dns setting's pointer loaded through the dynamic\n * module loader (the pointer is a src entry, so the bundler includes it), else the\n * localhost or default built-in. Processor factories call this once and close over it.\n */\nexport const loadDomainResolver = async (qpqConfig: QPQConfig, dynamicModuleLoader: DynamicModuleLoader): Promise<DomainResolver> => {\n const pointer = getDnsConfig(qpqConfig)?.resolver;\n if (!pointer) {\n return getDomainResolver(qpqConfig);\n }\n\n const resolver = (await dynamicModuleLoader(pointer)) as DomainResolver | null;\n if (typeof resolver?.resolveHost !== 'function') {\n throw new Error(\n `Domain resolver [${pointer.functionName}] in [${pointer.basePath}/${pointer.relativePath}] must be a DomainResolver ({ resolveHost })`,\n );\n }\n\n return resolver;\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** A resolver may shape labels under the root but never invent another apex. */
|
|
2
|
+
export const validateResolvedHost = (host, scope) => {
|
|
3
|
+
const isUnderRoot = host === scope.rootDomain || host.endsWith(`.${scope.rootDomain}`);
|
|
4
|
+
if (!host || !isUnderRoot) {
|
|
5
|
+
throw new Error(`Domain resolver returned [${host}] for root [${scope.rootDomain}]; hosts must be the root or end with .${scope.rootDomain}`);
|
|
6
|
+
}
|
|
7
|
+
return host;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=validateResolvedHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateResolvedHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/resolver/validateResolvedHost.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,KAAkB,EAAU,EAAE;IAC/E,MAAM,WAAW,GAAG,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAEvF,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,eAAe,KAAK,CAAC,UAAU,0CAA0C,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAChJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["import { DomainScope } from '../../../domain/types/DomainScope';\n\n/** A resolver may shape labels under the root but never invent another apex. */\nexport const validateResolvedHost = (host: string, scope: DomainScope): string => {\n const isUnderRoot = host === scope.rootDomain || host.endsWith(`.${scope.rootDomain}`);\n\n if (!host || !isUnderRoot) {\n throw new Error(`Domain resolver returned [${host}] for root [${scope.rootDomain}]; hosts must be the root or end with .${scope.rootDomain}`);\n }\n\n return host;\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** `[subdomain.][service.][feature.][environment.]root`, with no environment label in production. */
|
|
2
|
+
export const defaultDomainResolver = {
|
|
3
|
+
resolveHost: ({ rootDomain, environment, feature, service, subdomain }) => {
|
|
4
|
+
const environmentLabel = environment === 'production' ? undefined : environment;
|
|
5
|
+
return [subdomain, service, feature, environmentLabel, rootDomain].filter(Boolean).join('.');
|
|
6
|
+
},
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=defaultDomainResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultDomainResolver.js","sourceRoot":"","sources":["../../../../src/domain/resolvers/defaultDomainResolver.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QACxE,MAAM,gBAAgB,GAAG,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QAEhF,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/F,CAAC;CACF,CAAC","sourcesContent":["import { DomainResolver } from '../../domain/types/DomainResolver';\n\n/** `[subdomain.][service.][feature.][environment.]root`, with no environment label in production. */\nexport const defaultDomainResolver: DomainResolver = {\n resolveHost: ({ rootDomain, environment, feature, service, subdomain }) => {\n const environmentLabel = environment === 'production' ? undefined : environment;\n\n return [subdomain, service, feature, environmentLabel, rootDomain].filter(Boolean).join('.');\n },\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/resolvers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC","sourcesContent":["export * from './defaultDomainResolver';\nexport * from './localhostDomainResolver';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localhostDomainResolver.js","sourceRoot":"","sources":["../../../../src/domain/resolvers/localhostDomainResolver.ts"],"names":[],"mappings":"AAEA,yGAAyG;AACzG,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU;CAC5C,CAAC","sourcesContent":["import { DomainResolver } from '../../domain/types/DomainResolver';\n\n/** Every scope is the root itself (`localhost:3080`): the dev server serves everything from one host. */\nexport const localhostDomainResolver: DomainResolver = {\n resolveHost: ({ rootDomain }) => rootDomain,\n};\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainScope } from './DomainScope';
|
|
2
|
+
/**
|
|
3
|
+
* App-authored hostname shape, handed to the deploy tooling (never placed on config). Must be
|
|
4
|
+
* pure and deterministic: it runs at synth and build time only, and its output is
|
|
5
|
+
* materialised into config for the runtime. The returned host must be `scope.rootDomain` or
|
|
6
|
+
* end with `.${scope.rootDomain}`.
|
|
7
|
+
*/
|
|
8
|
+
export type DomainResolver = {
|
|
9
|
+
resolveHost: (scope: DomainScope) => string;
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomainResolver.js","sourceRoot":"","sources":["../../../../src/domain/types/DomainResolver.ts"],"names":[],"mappings":"","sourcesContent":["import { DomainScope } from './DomainScope';\n\n/**\n * App-authored hostname shape, handed to the deploy tooling (never placed on config). Must be\n * pure and deterministic: it runs at synth and build time only, and its output is\n * materialised into config for the runtime. The returned host must be `scope.rootDomain` or\n * end with `.${scope.rootDomain}`.\n */\nexport type DomainResolver = {\n resolveHost: (scope: DomainScope) => string;\n};\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Everything a domain resolver is told when asked for one hostname: which root, which
|
|
3
|
+
* deploy, and which part of the app the host is for. `service` is set for hosts scoped to
|
|
4
|
+
* one service (a websocket or web entry that is not on the root domain); `subdomain` is the
|
|
5
|
+
* app-level label (`api`, `views`, `ws`); both absent means the site root itself.
|
|
6
|
+
*/
|
|
7
|
+
export type DomainScope = {
|
|
8
|
+
rootDomain: string;
|
|
9
|
+
environment: string;
|
|
10
|
+
feature?: string;
|
|
11
|
+
service?: string;
|
|
12
|
+
subdomain?: string;
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomainScope.js","sourceRoot":"","sources":["../../../../src/domain/types/DomainScope.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Everything a domain resolver is told when asked for one hostname: which root, which\n * deploy, and which part of the app the host is for. `service` is set for hosts scoped to\n * one service (a websocket or web entry that is not on the root domain); `subdomain` is the\n * app-level label (`api`, `views`, `ws`); both absent means the site root itself.\n */\nexport type DomainScope = {\n rootDomain: string;\n environment: string;\n feature?: string;\n service?: string;\n subdomain?: string;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomainTarget.js","sourceRoot":"","sources":["../../../../src/domain/types/DomainTarget.ts"],"names":[],"mappings":"","sourcesContent":["/** The part of a DomainScope a caller chooses; root, environment and feature come from config. */\nexport type DomainTarget = {\n service?: string;\n subdomain?: string;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './DomainResolver';\nexport * from './DomainScope';\nexport * from './DomainTarget';\n"]}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC","sourcesContent":["export * from './actionProcessor';\nexport * from './actions';\nexport * from './config';\nexport * from './qpqWebServerUtils';\nexport * from './services';\nexport * from './stories';\nexport * from './types';\nexport * from './utils';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC","sourcesContent":["export * from './actionProcessor';\nexport * from './actions';\nexport * from './config';\nexport * from './domain';\nexport * from './qpqWebServerUtils';\nexport * from './services';\nexport * from './stories';\nexport * from './types';\nexport * from './utils';\n"]}
|
package/lib/esm/stories/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stories/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stories/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './askGetHttpApiEventStorySession';\nexport * from './askValidateRouteAuth';\n"]}
|