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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,6BAiBX;AAjBD,WAAY,6BAA6B;IACvC,6EAA4C,CAAA;IAC5C,yGAAwE,CAAA;IACxE,yEAAwC,CAAA;IACxC,yFAAwD,CAAA;IACxD,yEAAwC,CAAA;IACxC,qGAAoE,CAAA;IACpE,mFAAkD,CAAA;IAClD,yEAAwC,CAAA;IACxC,+EAA8C,CAAA;IAC9C,iGAAgE,CAAA;IAChE,qFAAoD,CAAA;IACpD,6EAA4C,CAAA;IAC5C,yFAAwD,CAAA;IACxD,yFAAwD,CAAA;IACxD,mHAAkF,CAAA;IAClF,uGAAsE,CAAA;AACxE,CAAC,EAjBW,6BAA6B,KAA7B,6BAA6B,QAiBxC","sourcesContent":["export enum QPQWebServerConfigSettingType {\n Route = '@quidproquo-webserver/config/Route',\n DefaultRouteOptions = '@quidproquo-webserver/config/DefaultRouteOptions',\n Dns = '@quidproquo-webserver/config/Dns',\n EmailSender = '@quidproquo-webserver/config/EmailSender',\n Seo = '@quidproquo-webserver/config/Seo',\n SubdomainRedirect = '@quidproquo-webserver/config/SubdomainRedirect',\n WebEntry = '@quidproquo-webserver/config/WebEntry',\n Api = '@quidproquo-webserver/config/Api',\n ApiKey = '@quidproquo-webserver/config/ApiKey',\n ServiceFunction = '@quidproquo-webserver/config/ServiceFunction',\n WebSocket = '@quidproquo-webserver/config/WebSocket',\n Cache = '@quidproquo-webserver/config/Cache',\n Certificate = '@quidproquo-webserver/config/Certificate',\n DomainProxy = '@quidproquo-webserver/config/DomainProxy',\n StorageDriveCorsSettings = '@quidproquo-webserver/config/StorageDriveCorsSettings',\n FileUploadSettings = '@quidproquo-webserver/config/FileUploadSettings',\n}\n\n// TODO: move this somewhere better\nexport interface CacheSettings {\n minTTLInSeconds: number;\n maxTTLInSeconds: number;\n defaultTTLInSeconds: number;\n mustRevalidate: boolean;\n}\n"]}
|
|
@@ -7,11 +7,10 @@ export interface QPQConfigAdvancedApiSettings extends QPQConfigAdvancedSettings
|
|
|
7
7
|
}
|
|
8
8
|
export interface ApiQPQWebServerConfigSetting extends QPQConfigSetting {
|
|
9
9
|
apiSubdomain: string;
|
|
10
|
-
rootDomain: string;
|
|
11
10
|
apiName: string;
|
|
12
11
|
deprecated: boolean;
|
|
13
12
|
cloudflareApiKeySecretName?: string;
|
|
14
13
|
virtualNetworkName?: string;
|
|
15
14
|
maxConcurrentExecutions?: number;
|
|
16
15
|
}
|
|
17
|
-
export declare const defineApi: (apiName: string,
|
|
16
|
+
export declare const defineApi: (apiName: string, options?: QPQConfigAdvancedApiSettings) => ApiQPQWebServerConfigSetting;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { QPQWebServerConfigSettingType } from '../QPQConfig';
|
|
2
|
-
export const defineApi = (apiName,
|
|
2
|
+
export const defineApi = (apiName, options) => {
|
|
3
3
|
return {
|
|
4
4
|
configSettingType: QPQWebServerConfigSettingType.Api,
|
|
5
5
|
uniqueKey: apiName,
|
|
6
6
|
apiSubdomain: options?.subDomain || apiName,
|
|
7
|
-
rootDomain,
|
|
8
7
|
apiName: apiName,
|
|
9
8
|
deprecated: options?.deprecated || false,
|
|
10
9
|
cloudflareApiKeySecretName: options?.cloudflareApiKeySecretName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/config/settings/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/config/settings/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AA4B7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,OAAsC,EAAgC,EAAE;IACjH,OAAO;QACL,iBAAiB,EAAE,6BAA6B,CAAC,GAAG;QACpD,SAAS,EAAE,OAAO;QAElB,YAAY,EAAE,OAAO,EAAE,SAAS,IAAI,OAAO;QAE3C,OAAO,EAAE,OAAO;QAEhB,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;QAExC,0BAA0B,EAAE,OAAO,EAAE,0BAA0B;QAE/D,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;QAE/C,uBAAuB,EAAE,OAAO,EAAE,uBAAuB;KAC1D,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { QPQConfigAdvancedSettings, QPQConfigSetting } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport interface QPQConfigAdvancedApiSettings extends QPQConfigAdvancedSettings {\n subDomain?: string;\n cloudflareApiKeySecretName?: string;\n virtualNetworkName?: string;\n\n // Cap (and guarantee) on this api's concurrent requests: never throttled below\n // it, never scales above it. One compute unit serves every route on the api,\n // so this bounds the api as a whole. Free, but carved out of the deploy\n // account's shared concurrency pool.\n maxConcurrentExecutions?: number;\n}\n\nexport interface ApiQPQWebServerConfigSetting extends QPQConfigSetting {\n apiSubdomain: string;\n\n apiName: string;\n\n deprecated: boolean;\n\n cloudflareApiKeySecretName?: string;\n\n virtualNetworkName?: string;\n\n maxConcurrentExecutions?: number;\n}\n\nexport const defineApi = (apiName: string, options?: QPQConfigAdvancedApiSettings): ApiQPQWebServerConfigSetting => {\n return {\n configSettingType: QPQWebServerConfigSettingType.Api,\n uniqueKey: apiName,\n\n apiSubdomain: options?.subDomain || apiName,\n\n apiName: apiName,\n\n deprecated: options?.deprecated || false,\n\n cloudflareApiKeySecretName: options?.cloudflareApiKeySecretName,\n\n virtualNetworkName: options?.virtualNetworkName,\n\n maxConcurrentExecutions: options?.maxConcurrentExecutions,\n };\n};\n"]}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
import { QPQConfigSetting } from 'quidproquo-core';
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
1
|
+
import { QPQConfigSetting, QpqPureFunction } from 'quidproquo-core';
|
|
2
|
+
export type QPQConfigAdvancedDnsSettings = {
|
|
3
|
+
resolver?: QpqPureFunction;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* The app's root domains, primary first. `resolver` points at the app's hostname shape: the
|
|
7
|
+
* deploy tooling requires it, the runtime loads it through the dynamic module loader, and
|
|
8
|
+
* every site resolves hosts with `resolveHosts(qpqConfig, target, resolver)`.
|
|
9
|
+
*/
|
|
10
|
+
export type DnsQPQWebServerConfigSetting = QPQConfigSetting & {
|
|
11
|
+
rootDomains: string[];
|
|
12
|
+
resolver?: QpqPureFunction;
|
|
13
|
+
};
|
|
14
|
+
/** One per service. Omit the resolver for the default `sub.service.feature.env.root` shape. */
|
|
15
|
+
export declare const defineDns: (rootDomains: string | string[], options?: QPQConfigAdvancedDnsSettings) => DnsQPQWebServerConfigSetting;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { QPQWebServerConfigSettingType } from '../QPQConfig';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
/** One per service. Omit the resolver for the default `sub.service.feature.env.root` shape. */
|
|
3
|
+
export const defineDns = (rootDomains, options) => {
|
|
4
|
+
const roots = Array.isArray(rootDomains) ? rootDomains : [rootDomains];
|
|
5
|
+
return {
|
|
6
|
+
configSettingType: QPQWebServerConfigSettingType.Dns,
|
|
7
|
+
uniqueKey: roots.join('|'),
|
|
8
|
+
rootDomains: roots,
|
|
9
|
+
resolver: options?.resolver,
|
|
10
|
+
};
|
|
11
|
+
};
|
|
7
12
|
//# sourceMappingURL=dns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../../src/config/settings/dns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../../src/config/settings/dns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAiB7D,+FAA+F;AAC/F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,WAA8B,EAAE,OAAsC,EAAgC,EAAE;IAChI,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEvE,OAAO;QACL,iBAAiB,EAAE,6BAA6B,CAAC,GAAG;QACpD,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QAE1B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,OAAO,EAAE,QAAQ;KAC5B,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { QPQConfigSetting, QpqPureFunction } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport type QPQConfigAdvancedDnsSettings = {\n // Pointer to the app's DomainResolver export (a pure function, no actions).\n resolver?: QpqPureFunction;\n};\n\n/**\n * The app's root domains, primary first. `resolver` points at the app's hostname shape: the\n * deploy tooling requires it, the runtime loads it through the dynamic module loader, and\n * every site resolves hosts with `resolveHosts(qpqConfig, target, resolver)`.\n */\nexport type DnsQPQWebServerConfigSetting = QPQConfigSetting & {\n rootDomains: string[];\n resolver?: QpqPureFunction;\n};\n\n/** One per service. Omit the resolver for the default `sub.service.feature.env.root` shape. */\nexport const defineDns = (rootDomains: string | string[], options?: QPQConfigAdvancedDnsSettings): DnsQPQWebServerConfigSetting => {\n const roots = Array.isArray(rootDomains) ? rootDomains : [rootDomains];\n\n return {\n configSettingType: QPQWebServerConfigSettingType.Dns,\n uniqueKey: roots.join('|'),\n\n rootDomains: roots,\n resolver: options?.resolver,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domainProxy.js","sourceRoot":"","sources":["../../../../src/config/settings/domainProxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAE7D,MAAM,CAAN,IAAY,+BAOX;AAPD,WAAY,+BAA+B;IACzC,iBAAiB;IACjB,4DAAyB,CAAA;IACzB,2CAA2C;IAC3C,0EAAuC,CAAA;IACvC,oCAAoC;IACpC,0DAAuB,CAAA;AACzB,CAAC,EAPW,+BAA+B,KAA/B,+BAA+B,QAO1C;
|
|
1
|
+
{"version":3,"file":"domainProxy.js","sourceRoot":"","sources":["../../../../src/config/settings/domainProxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAE7D,MAAM,CAAN,IAAY,+BAOX;AAPD,WAAY,+BAA+B;IACzC,iBAAiB;IACjB,4DAAyB,CAAA;IACzB,2CAA2C;IAC3C,0EAAuC,CAAA;IACvC,oCAAoC;IACpC,0DAAuB,CAAA;AACzB,CAAC,EAPW,+BAA+B,KAA/B,+BAA+B,QAO1C;AA+BD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,OAA6C,EAAwC,EAAE,CAAC,CAAC;IACvI,iBAAiB,EAAE,6BAA6B,CAAC,WAAW;IAC5D,SAAS,EAAE,IAAI;IAEf,IAAI;IAEJ,eAAe,EAAE,OAAO,CAAC,eAAe;IAExC,MAAM,EAAE,OAAO,CAAC,MAAM;IAEtB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;IAEtC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;IAE5C,+BAA+B,EAAE,OAAO,CAAC,+BAA+B;CACzE,CAAC,CAAC","sourcesContent":["import { QPQConfigAdvancedSettings, QPQConfigSetting } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport enum DomainProxyViewerProtocolPolicy {\n /** HTTPS only */\n HTTPS_ONLY = 'https-only',\n /** Will redirect HTTP requests to HTTPS */\n REDIRECT_TO_HTTPS = 'redirect-to-https',\n /** Both HTTP and HTTPS supported */\n ALLOW_ALL = 'allow-all',\n}\n\nexport interface DomainProxyDomainOptions {\n subDomainNames?: string[];\n onRootDomain: boolean;\n}\n\nexport interface QPQConfigAdvancedDomainProxySettings extends QPQConfigAdvancedSettings {\n httpProxyDomain: string;\n\n domain: DomainProxyDomainOptions;\n\n cacheSettingsName?: string;\n\n ignoreCache?: string[];\n\n domainProxyViewerProtocolPolicy: DomainProxyViewerProtocolPolicy;\n}\n\nexport interface DomainProxyQPQWebServerConfigSetting extends QPQConfigSetting {\n name: string;\n\n domainProxyViewerProtocolPolicy: DomainProxyViewerProtocolPolicy;\n\n domain: DomainProxyDomainOptions;\n httpProxyDomain: string;\n\n cacheSettingsName?: string;\n ignoreCache: string[];\n}\n\nexport const defineDomainProxy = (name: string, options: QPQConfigAdvancedDomainProxySettings): DomainProxyQPQWebServerConfigSetting => ({\n configSettingType: QPQWebServerConfigSettingType.DomainProxy,\n uniqueKey: name,\n\n name,\n\n httpProxyDomain: options.httpProxyDomain,\n\n domain: options.domain,\n\n ignoreCache: options.ignoreCache || [],\n\n cacheSettingsName: options.cacheSettingsName,\n\n domainProxyViewerProtocolPolicy: options.domainProxyViewerProtocolPolicy,\n});\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { QPQConfigSetting } from 'quidproquo-core';
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export declare const defineEmailSender: (rootDomain: string) => EmailSenderQPQWebServerConfigSetting;
|
|
2
|
+
export type EmailSenderQPQWebServerConfigSetting = QPQConfigSetting;
|
|
3
|
+
/** Sends from the app's root domains (defineDns); one per service. */
|
|
4
|
+
export declare const defineEmailSender: () => EmailSenderQPQWebServerConfigSetting;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { QPQWebServerConfigSettingType } from '../QPQConfig';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
8
|
-
};
|
|
2
|
+
/** Sends from the app's root domains (defineDns); one per service. */
|
|
3
|
+
export const defineEmailSender = () => ({
|
|
4
|
+
configSettingType: QPQWebServerConfigSettingType.EmailSender,
|
|
5
|
+
uniqueKey: 'emailSender',
|
|
6
|
+
});
|
|
9
7
|
//# sourceMappingURL=emailSender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailSender.js","sourceRoot":"","sources":["../../../../src/config/settings/emailSender.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"emailSender.js","sourceRoot":"","sources":["../../../../src/config/settings/emailSender.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAI7D,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAyC,EAAE,CAAC,CAAC;IAC5E,iBAAiB,EAAE,6BAA6B,CAAC,WAAW;IAC5D,SAAS,EAAE,aAAa;CACzB,CAAC,CAAC","sourcesContent":["import { QPQConfigSetting } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport type EmailSenderQPQWebServerConfigSetting = QPQConfigSetting;\n\n/** Sends from the app's root domains (defineDns); one per service. */\nexport const defineEmailSender = (): EmailSenderQPQWebServerConfigSetting => ({\n configSettingType: QPQWebServerConfigSettingType.EmailSender,\n uniqueKey: 'emailSender',\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC","sourcesContent":["export * from './api';\nexport * from './apiKey';\nexport * from './cache';\nexport * from './certificate';\nexport * from './defaultRouteOptions';\nexport * from './defineAuthSystem';\nexport * from './dns';\nexport * from './domainProxy';\nexport * from './emailSender';\nexport * from './fileUploadSettings';\nexport * from './migration';\nexport * from './route';\nexport * from './seed';\nexport * from './seo';\nexport * from './serviceFunction';\nexport * from './storageDriveCorsSettings';\nexport * from './subdomainRedirect';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HTTPMethod, QPQConfigSetting, QpqFunctionRuntime } from 'quidproquo-core';
|
|
2
|
+
import { RouteSchema } from '../types/RouteSchema';
|
|
2
3
|
import { ApiKeyReference } from './apiKey';
|
|
3
4
|
interface GenericRouteAuthSettings<T> {
|
|
4
5
|
userDirectoryName?: string;
|
|
@@ -26,6 +27,7 @@ export interface ServiceAllowedOrigin {
|
|
|
26
27
|
export interface GenericRouteOptions<T> {
|
|
27
28
|
allowedOrigins?: (string | ServiceAllowedOrigin)[];
|
|
28
29
|
routeAuthSettings?: GenericRouteAuthSettings<T>;
|
|
30
|
+
schema?: RouteSchema;
|
|
29
31
|
}
|
|
30
32
|
export type RouteAuthSettings = GenericRouteAuthSettings<ApiKeyReference>;
|
|
31
33
|
export type RouteOptions = GenericRouteOptions<ApiKeyReference>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/config/settings/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAoD,MAAM,iBAAiB,CAAC;AAEvH,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/config/settings/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAoD,MAAM,iBAAiB,CAAC;AAEvH,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAsD7D,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,MAAkB,EAClB,IAAY,EACZ,OAA2B,EAC3B,UAAyD,EAAE,EAC3B,EAAE;IAClC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,IAAI,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG;QACjB,GAAG,OAAO;QACV,iBAAiB,EAAE;YACjB,GAAG,iBAAiB;YACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC3F;KACF,CAAC;IAEF,OAAO;QACL,iBAAiB,EAAE,6BAA6B,CAAC,KAAK;QACtD,SAAS,EAAE,kCAAkC,CAAC,OAAO,CAAC;QAEtD,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO,EAAE,UAAU;KACpB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { getUniqueKeyFromQpqFunctionRuntime, HTTPMethod, QPQConfigSetting, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\nimport { RouteSchema } from '../types/RouteSchema';\nimport { ApiKeyReference } from './apiKey';\n\ninterface GenericRouteAuthSettings<T> {\n userDirectoryName?: string;\n\n scopes?: string[];\n\n apiKeys?: T[];\n}\n\nexport interface ServiceAllowedOrigin {\n /**\n * The name of the api subdomain name for the given service\n */\n api: string;\n /**\n * The domain name the service is hosted on, if left undefined, the domain name of this service will be used\n */\n domain?: string;\n /**\n * The service name, as seen in the subdomain\n */\n service?: string;\n\n /**\n * The protocol to use, defaults to https\n */\n protocol?: 'http' | 'https';\n}\n\nexport interface GenericRouteOptions<T> {\n allowedOrigins?: (string | ServiceAllowedOrigin)[];\n\n routeAuthSettings?: GenericRouteAuthSettings<T>;\n\n // Request and response shapes for validation and the generated OpenAPI document\n schema?: RouteSchema;\n}\n\n// TODO: Probably clean up the types here\n// The idea is just so we can let the user define apiKeys as strings not objects\n// But let the internal logic always use objects\nexport type RouteAuthSettings = GenericRouteAuthSettings<ApiKeyReference>;\nexport type RouteOptions = GenericRouteOptions<ApiKeyReference>;\n\nexport interface RouteQPQWebServerConfigSetting extends QPQConfigSetting {\n method: HTTPMethod;\n path: string;\n runtime: QpqFunctionRuntime;\n options: RouteOptions;\n}\n\nexport const defineRoute = (\n method: HTTPMethod,\n path: string,\n runtime: QpqFunctionRuntime,\n options: GenericRouteOptions<ApiKeyReference | string> = {},\n): RouteQPQWebServerConfigSetting => {\n const routeAuthSettings = options.routeAuthSettings || {};\n const apiKeys = routeAuthSettings.apiKeys || [];\n const newOptions = {\n ...options,\n routeAuthSettings: {\n ...routeAuthSettings,\n apiKeys: apiKeys.map((apiKey) => (typeof apiKey === 'string' ? { name: apiKey } : apiKey)),\n },\n };\n\n return {\n configSettingType: QPQWebServerConfigSettingType.Route,\n uniqueKey: getUniqueKeyFromQpqFunctionRuntime(runtime),\n\n method,\n path,\n runtime,\n options: newOptions,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webEntry.js","sourceRoot":"","sources":["../../../../src/config/settings/webEntry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"webEntry.js","sourceRoot":"","sources":["../../../../src/config/settings/webEntry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AA2D7D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,OAA0C,EAAqC,EAAE,CAAC,CAAC;IAC9H,iBAAiB,EAAE,6BAA6B,CAAC,QAAQ;IACzD,SAAS,EAAE,IAAI;IAEf,IAAI;IACJ,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,YAAY;IAE7C,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI;QACrC,UAAU,EAAE,IAAI;KACjB;IAED,MAAM,EAAE,OAAO,CAAC,MAAM;IAEtB,SAAS,EAAE,OAAO,EAAE,SAAS;IAE7B,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;IAEvC,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI;IAE7C,eAAe,EAAE,OAAO,EAAE,eAAe;IAEzC,0BAA0B,EAAE,OAAO,EAAE,0BAA0B;IAE/D,iBAAiB,EAAE,OAAO,EAAE,iBAAiB;IAE7C,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;CAChD,CAAC,CAAC","sourcesContent":["import { QPQConfigAdvancedSettings, QPQConfigSetting } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\nimport { ResponseSecurityHeaders } from '../types/ResponseSecurityHeaders';\n\nexport interface WebDomainOptions {\n subDomainName?: string;\n onRootDomain: boolean;\n}\n\nexport interface StorageDriveOptions {\n sourceStorageDrive?: string;\n autoUpload: boolean;\n}\n\nexport interface QPQConfigAdvancedWebEntrySettings extends QPQConfigAdvancedSettings {\n buildPath?: string;\n\n storageDrive?: StorageDriveOptions;\n\n domain: WebDomainOptions;\n\n cacheSettingsName?: string;\n indexRoot?: string;\n ignoreCache?: string[];\n\n compressFiles?: boolean;\n\n cloudflareApiKeySecretName?: string;\n\n securityHeaders?: ResponseSecurityHeaders;\n\n /**\n * Browser origins allowed to cross-origin `fetch` this web entry's (public,\n * static) assets. Leave undefined to scope to this service's own domain\n * (`https://<domain>` + `https://*.<domain>`); pass `['*']` to allow any\n * origin (e.g. serving assets as a public CDN / cross-origin fonts).\n */\n corsAllowedOrigins?: string[];\n}\n\nexport interface WebEntryQPQWebServerConfigSetting extends QPQConfigSetting {\n name: string;\n indexRoot: string;\n\n storageDrive: StorageDriveOptions;\n domain: WebDomainOptions;\n\n buildPath?: string;\n cacheSettingsName?: string;\n ignoreCache: string[];\n\n compressFiles: boolean;\n\n cloudflareApiKeySecretName?: string;\n\n securityHeaders?: ResponseSecurityHeaders;\n\n corsAllowedOrigins?: string[];\n}\n\nexport const defineWebEntry = (name: string, options: QPQConfigAdvancedWebEntrySettings): WebEntryQPQWebServerConfigSetting => ({\n configSettingType: QPQWebServerConfigSettingType.WebEntry,\n uniqueKey: name,\n\n name,\n indexRoot: options?.indexRoot || 'index.html',\n\n storageDrive: options?.storageDrive || {\n autoUpload: true,\n },\n\n domain: options.domain,\n\n buildPath: options?.buildPath,\n\n ignoreCache: options?.ignoreCache || [],\n\n compressFiles: options?.compressFiles ?? true,\n\n securityHeaders: options?.securityHeaders,\n\n cloudflareApiKeySecretName: options?.cloudflareApiKeySecretName,\n\n cacheSettingsName: options?.cacheSettingsName,\n\n corsAllowedOrigins: options?.corsAllowedOrigins,\n});\n"]}
|
|
@@ -13,7 +13,6 @@ export interface QPQConfigAdvancedWebSocketSettings extends QPQConfigAdvancedSet
|
|
|
13
13
|
}
|
|
14
14
|
export interface WebSocketQPQWebServerConfigSetting extends QPQConfigSetting {
|
|
15
15
|
apiSubdomain: string;
|
|
16
|
-
rootDomain: string;
|
|
17
16
|
onRootDomain: boolean;
|
|
18
17
|
apiName: string;
|
|
19
18
|
eventProcessors: QpqWebSocketEventProcessors;
|
|
@@ -21,4 +20,4 @@ export interface WebSocketQPQWebServerConfigSetting extends QPQConfigSetting {
|
|
|
21
20
|
cloudflareApiKeySecretName?: string;
|
|
22
21
|
maxConcurrentExecutions?: number;
|
|
23
22
|
}
|
|
24
|
-
export declare const defineWebsocket: (apiSubdomain: string,
|
|
23
|
+
export declare const defineWebsocket: (apiSubdomain: string, eventProcessors: QpqWebSocketEventProcessors, options?: QPQConfigAdvancedWebSocketSettings) => WebSocketQPQWebServerConfigSetting;
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
import { qpqCoreUtils } from 'quidproquo-core';
|
|
2
2
|
import { QPQWebServerConfigSettingType } from '../QPQConfig';
|
|
3
|
-
export const defineWebsocket = (apiSubdomain,
|
|
3
|
+
export const defineWebsocket = (apiSubdomain, eventProcessors, options) => {
|
|
4
4
|
return {
|
|
5
5
|
configSettingType: QPQWebServerConfigSettingType.WebSocket,
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// from app/service/environment only (e.g. the api-id SSM parameter
|
|
9
|
-
// `/qpq/websocket/api-id/<apiSubdomain>-<app>-<service>-<env>`). Including rootDomain
|
|
10
|
-
// meant renaming an app's domain renamed the logical id while the physical name stayed
|
|
11
|
-
// put, so CloudFormation tried to CREATE a second resource holding a name the old one
|
|
12
|
-
// still claimed — and it enforces name uniqueness within a stack at create time, before
|
|
13
|
-
// cleanup deletes the old. Result: an undeployable stack, recoverable only by removing
|
|
14
|
-
// the old logical resource in a separate update. apiSubdomain alone is unique per module
|
|
15
|
-
// (that is the granularity getOwnedWebsocketSettings materialises at).
|
|
6
|
+
// uniqueKey is the CloudFormation logical id; physical names come from app/service/env
|
|
7
|
+
// only, so the key must not carry anything (like a domain) that can change independently.
|
|
16
8
|
uniqueKey: apiSubdomain,
|
|
17
9
|
apiSubdomain,
|
|
18
|
-
rootDomain,
|
|
19
10
|
eventProcessors,
|
|
20
11
|
// advanced
|
|
21
12
|
onRootDomain: options?.onRootDomain || false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/config/settings/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiE,YAAY,EAAsB,MAAM,iBAAiB,CAAC;AAElI,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/config/settings/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiE,YAAY,EAAsB,MAAM,iBAAiB,CAAC;AAElI,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AA0C7D,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,YAAoB,EACpB,eAA4C,EAC5C,OAA4C,EACR,EAAE;IACtC,OAAO;QACL,iBAAiB,EAAE,6BAA6B,CAAC,SAAS;QAC1D,uFAAuF;QACvF,0FAA0F;QAC1F,SAAS,EAAE,YAAY;QAEvB,YAAY;QAEZ,eAAe;QAEf,WAAW;QACX,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,KAAK;QAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;QAElC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;QAExC,0BAA0B,EAAE,OAAO,EAAE,0BAA0B;QAE/D,uBAAuB,EAAE,OAAO,EAAE,uBAAuB;QAEzD,KAAK,EAAE,YAAY,CAAC,oDAAoD,CAAC,OAAO,EAAE,KAAK,CAAC;KACzF,CAAC;AACJ,CAAC,CAAC","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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC","sourcesContent":["export * from './ResponseSecurityHeaders';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC","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,11 @@
|
|
|
1
|
+
import { qpqCoreUtils } from 'quidproquo-core';
|
|
2
|
+
import { QPQWebServerConfigSettingType } from '../../config/QPQConfig';
|
|
3
|
+
/** The service's single Dns setting, or null when it declares no domain. Throws on more than one. */
|
|
4
|
+
export const getDnsConfig = (qpqConfig) => {
|
|
5
|
+
const settings = qpqCoreUtils.getConfigSettings(qpqConfig, QPQWebServerConfigSettingType.Dns);
|
|
6
|
+
if (settings.length > 1) {
|
|
7
|
+
throw new Error(`defineDns must appear once per service, found ${settings.length}`);
|
|
8
|
+
}
|
|
9
|
+
return settings[0] ?? null;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=getDnsConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDnsConfig.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getDnsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAGvE,qGAAqG;AACrG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAA0C,EAAE;IAC3F,MAAM,QAAQ,GAAG,YAAY,CAAC,iBAAiB,CAA+B,SAAS,EAAE,6BAA6B,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,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7B,CAAC,CAAC","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,4 @@
|
|
|
1
|
+
import { getRootDomains } from './getRootDomains';
|
|
2
|
+
/** The first declared root, which absolute URLs (email links, MF remotes, the Cognito domain) bake to; null without a domain. */
|
|
3
|
+
export const getPrimaryRootDomain = (qpqConfig) => getRootDomains(qpqConfig)[0] ?? null;
|
|
4
|
+
//# sourceMappingURL=getPrimaryRootDomain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPrimaryRootDomain.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getPrimaryRootDomain.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,iIAAiI;AACjI,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAAoB,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"getRootDomains.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getRootDomains.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAY,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './getDnsConfig';\nexport * from './getPrimaryRootDomain';\nexport * from './getRootDomains';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configUtils/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC","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,7 @@
|
|
|
1
|
+
import { qpqCoreUtils } from 'quidproquo-core';
|
|
2
|
+
import { QPQWebServerConfigSettingType } from '../../config/QPQConfig';
|
|
3
|
+
/** The `defineStorageDriveCorsSettings` entry for a drive, null when it has none. */
|
|
4
|
+
export const getStorageDriveCorsSettingsByName = (qpqConfig, storageDriveName) => qpqCoreUtils
|
|
5
|
+
.getConfigSettings(qpqConfig, QPQWebServerConfigSettingType.StorageDriveCorsSettings)
|
|
6
|
+
.find((setting) => setting.storageDriveName === storageDriveName) ?? null;
|
|
7
|
+
//# sourceMappingURL=getStorageDriveCorsSettingsByName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStorageDriveCorsSettingsByName.js","sourceRoot":"","sources":["../../../../src/configUtils/storageDrive/getStorageDriveCorsSettingsByName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAGvE,qFAAqF;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,SAAoB,EACpB,gBAAwB,EACqC,EAAE,CAC/D,YAAY;KACT,iBAAiB,CAAoD,SAAS,EAAE,6BAA6B,CAAC,wBAAwB,CAAC;KACvI,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,IAAI,IAAI,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/configUtils/storageDrive/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC","sourcesContent":["export * from './getStorageDriveCorsSettingsByName';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC","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,14 @@
|
|
|
1
|
+
import { getRootDomains } from '../../../configUtils/dns/getRootDomains';
|
|
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 const findRootDomainForHost = (qpqConfig, host) => {
|
|
7
|
+
const hostname = host.split(':')[0].toLowerCase();
|
|
8
|
+
const matches = getRootDomains(qpqConfig).filter((root) => {
|
|
9
|
+
const rootName = root.split(':')[0].toLowerCase();
|
|
10
|
+
return hostname === rootName || hostname.endsWith(`.${rootName}`);
|
|
11
|
+
});
|
|
12
|
+
return matches.sort((a, b) => b.length - a.length)[0] ?? null;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=findRootDomainForHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findRootDomainForHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/findRootDomainForHost.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,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,cAAc,CAAC,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,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAChE,CAAC,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"getDomainTargetKey.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/getDomainTargetKey.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAoB,EAAU,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,KAAK,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC","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,7 @@
|
|
|
1
|
+
export * from './findRootDomainForHost';
|
|
2
|
+
export * from './getDomainTargetKey';
|
|
3
|
+
export * from './resolveHostForRequestHost';
|
|
4
|
+
export * from './resolveHostForRoot';
|
|
5
|
+
export * from './resolveHosts';
|
|
6
|
+
export * from './resolvePrimaryHost';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC","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>;
|