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.
Files changed (441) hide show
  1. package/README.md +1 -2
  2. package/lib/commonjs/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js +7 -5
  3. package/lib/commonjs/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js.map +1 -1
  4. package/lib/commonjs/actions/dns/DnsActionType.d.ts +3 -1
  5. package/lib/commonjs/actions/dns/DnsActionType.js +2 -0
  6. package/lib/commonjs/actions/dns/DnsActionType.js.map +1 -1
  7. package/lib/commonjs/actions/dns/askDnsList.d.ts +2 -1
  8. package/lib/commonjs/actions/dns/askDnsList.js +1 -0
  9. package/lib/commonjs/actions/dns/askDnsList.js.map +1 -1
  10. package/lib/commonjs/actions/dns/askDnsResolveHosts.d.ts +9 -0
  11. package/lib/commonjs/actions/dns/askDnsResolveHosts.js +11 -0
  12. package/lib/commonjs/actions/dns/askDnsResolveHosts.js.map +1 -0
  13. package/lib/commonjs/actions/dns/index.d.ts +1 -0
  14. package/lib/commonjs/actions/dns/index.js +1 -0
  15. package/lib/commonjs/actions/dns/index.js.map +1 -1
  16. package/lib/commonjs/actions/index.d.ts +1 -1
  17. package/lib/commonjs/actions/index.js +1 -1
  18. package/lib/commonjs/actions/index.js.map +1 -1
  19. package/lib/commonjs/actions/openApi/OpenApiActionType.d.ts +3 -0
  20. package/lib/commonjs/actions/openApi/OpenApiActionType.js +8 -0
  21. package/lib/commonjs/actions/openApi/OpenApiActionType.js.map +1 -0
  22. package/lib/commonjs/actions/openApi/askOpenApiGetDocument.d.ts +9 -0
  23. package/lib/commonjs/actions/openApi/askOpenApiGetDocument.js +12 -0
  24. package/lib/commonjs/actions/openApi/askOpenApiGetDocument.js.map +1 -0
  25. package/lib/commonjs/actions/openApi/index.d.ts +2 -0
  26. package/lib/commonjs/actions/{openApiSpec → openApi}/index.js +2 -2
  27. package/lib/commonjs/actions/openApi/index.js.map +1 -0
  28. package/lib/commonjs/config/QPQConfig.d.ts +0 -1
  29. package/lib/commonjs/config/QPQConfig.js +0 -1
  30. package/lib/commonjs/config/QPQConfig.js.map +1 -1
  31. package/lib/commonjs/config/settings/api.d.ts +1 -2
  32. package/lib/commonjs/config/settings/api.js +1 -2
  33. package/lib/commonjs/config/settings/api.js.map +1 -1
  34. package/lib/commonjs/config/settings/dns.d.ts +15 -5
  35. package/lib/commonjs/config/settings/dns.js +10 -5
  36. package/lib/commonjs/config/settings/dns.js.map +1 -1
  37. package/lib/commonjs/config/settings/domainProxy.d.ts +0 -1
  38. package/lib/commonjs/config/settings/domainProxy.js.map +1 -1
  39. package/lib/commonjs/config/settings/emailSender.d.ts +3 -4
  40. package/lib/commonjs/config/settings/emailSender.js +5 -7
  41. package/lib/commonjs/config/settings/emailSender.js.map +1 -1
  42. package/lib/commonjs/config/settings/index.d.ts +0 -1
  43. package/lib/commonjs/config/settings/index.js +0 -1
  44. package/lib/commonjs/config/settings/index.js.map +1 -1
  45. package/lib/commonjs/config/settings/route.d.ts +2 -0
  46. package/lib/commonjs/config/settings/route.js.map +1 -1
  47. package/lib/commonjs/config/settings/webEntry.d.ts +0 -1
  48. package/lib/commonjs/config/settings/webEntry.js.map +1 -1
  49. package/lib/commonjs/config/settings/websocket.d.ts +1 -2
  50. package/lib/commonjs/config/settings/websocket.js +3 -12
  51. package/lib/commonjs/config/settings/websocket.js.map +1 -1
  52. package/lib/commonjs/config/types/JsonSchema.d.ts +1 -0
  53. package/lib/commonjs/config/types/JsonSchema.js +3 -0
  54. package/lib/commonjs/config/types/JsonSchema.js.map +1 -0
  55. package/lib/commonjs/config/types/RouteSchema.d.ts +10 -0
  56. package/lib/commonjs/config/types/RouteSchema.js +3 -0
  57. package/lib/commonjs/config/types/RouteSchema.js.map +1 -0
  58. package/lib/commonjs/config/types/index.d.ts +2 -0
  59. package/lib/commonjs/config/types/index.js +2 -0
  60. package/lib/commonjs/config/types/index.js.map +1 -1
  61. package/lib/commonjs/configUtils/dns/getDnsConfig.d.ts +4 -0
  62. package/lib/commonjs/configUtils/dns/getDnsConfig.js +16 -0
  63. package/lib/commonjs/configUtils/dns/getDnsConfig.js.map +1 -0
  64. package/lib/commonjs/configUtils/dns/getPrimaryRootDomain.d.ts +3 -0
  65. package/lib/commonjs/configUtils/dns/getPrimaryRootDomain.js +8 -0
  66. package/lib/commonjs/configUtils/dns/getPrimaryRootDomain.js.map +1 -0
  67. package/lib/commonjs/configUtils/dns/getRootDomains.d.ts +3 -0
  68. package/lib/commonjs/configUtils/dns/getRootDomains.js +8 -0
  69. package/lib/commonjs/configUtils/dns/getRootDomains.js.map +1 -0
  70. package/lib/commonjs/configUtils/dns/index.d.ts +3 -0
  71. package/lib/commonjs/configUtils/dns/index.js +20 -0
  72. package/lib/commonjs/configUtils/dns/index.js.map +1 -0
  73. package/lib/commonjs/configUtils/index.d.ts +2 -0
  74. package/lib/commonjs/configUtils/index.js +19 -0
  75. package/lib/commonjs/configUtils/index.js.map +1 -0
  76. package/lib/commonjs/configUtils/storageDrive/getStorageDriveCorsSettingsByName.d.ts +4 -0
  77. package/lib/commonjs/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js +14 -0
  78. package/lib/commonjs/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js.map +1 -0
  79. package/lib/commonjs/configUtils/storageDrive/index.d.ts +1 -0
  80. package/lib/commonjs/configUtils/storageDrive/index.js +18 -0
  81. package/lib/commonjs/configUtils/storageDrive/index.js.map +1 -0
  82. package/lib/commonjs/domain/index.d.ts +2 -0
  83. package/lib/commonjs/domain/index.js +19 -0
  84. package/lib/commonjs/domain/index.js.map +1 -0
  85. package/lib/commonjs/domain/logic/host/findRootDomainForHost.d.ts +6 -0
  86. package/lib/commonjs/domain/logic/host/findRootDomainForHost.js +19 -0
  87. package/lib/commonjs/domain/logic/host/findRootDomainForHost.js.map +1 -0
  88. package/lib/commonjs/domain/logic/host/getDomainTargetKey.d.ts +3 -0
  89. package/lib/commonjs/domain/logic/host/getDomainTargetKey.js +7 -0
  90. package/lib/commonjs/domain/logic/host/getDomainTargetKey.js.map +1 -0
  91. package/lib/commonjs/domain/logic/host/index.d.ts +6 -0
  92. package/lib/commonjs/domain/logic/host/index.js +23 -0
  93. package/lib/commonjs/domain/logic/host/index.js.map +1 -0
  94. package/lib/commonjs/domain/logic/host/resolveHostForRequestHost.d.ts +9 -0
  95. package/lib/commonjs/domain/logic/host/resolveHostForRequestHost.js +21 -0
  96. package/lib/commonjs/domain/logic/host/resolveHostForRequestHost.js.map +1 -0
  97. package/lib/commonjs/domain/logic/host/resolveHostForRoot.d.ts +5 -0
  98. package/lib/commonjs/domain/logic/host/resolveHostForRoot.js +15 -0
  99. package/lib/commonjs/domain/logic/host/resolveHostForRoot.js.map +1 -0
  100. package/lib/commonjs/domain/logic/host/resolveHosts.d.ts +9 -0
  101. package/lib/commonjs/domain/logic/host/resolveHosts.js +27 -0
  102. package/lib/commonjs/domain/logic/host/resolveHosts.js.map +1 -0
  103. package/lib/commonjs/domain/logic/host/resolvePrimaryHost.d.ts +5 -0
  104. package/lib/commonjs/domain/logic/host/resolvePrimaryHost.js +14 -0
  105. package/lib/commonjs/domain/logic/host/resolvePrimaryHost.js.map +1 -0
  106. package/lib/commonjs/domain/logic/index.d.ts +3 -0
  107. package/lib/commonjs/domain/logic/index.js +20 -0
  108. package/lib/commonjs/domain/logic/index.js.map +1 -0
  109. package/lib/commonjs/domain/logic/origin/getStorageDriveCorsAllowedOrigins.d.ts +4 -0
  110. package/lib/commonjs/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js +9 -0
  111. package/lib/commonjs/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js.map +1 -0
  112. package/lib/commonjs/domain/logic/origin/index.d.ts +4 -0
  113. package/lib/commonjs/domain/logic/origin/index.js +21 -0
  114. package/lib/commonjs/domain/logic/origin/index.js.map +1 -0
  115. package/lib/commonjs/domain/logic/origin/resolveContentSecurityPolicyEntry.d.ts +9 -0
  116. package/lib/commonjs/domain/logic/origin/resolveContentSecurityPolicyEntry.js +20 -0
  117. package/lib/commonjs/domain/logic/origin/resolveContentSecurityPolicyEntry.js.map +1 -0
  118. package/lib/commonjs/domain/logic/origin/resolveOrigins.d.ts +8 -0
  119. package/lib/commonjs/domain/logic/origin/resolveOrigins.js +20 -0
  120. package/lib/commonjs/domain/logic/origin/resolveOrigins.js.map +1 -0
  121. package/lib/commonjs/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.d.ts +8 -0
  122. package/lib/commonjs/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js +21 -0
  123. package/lib/commonjs/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js.map +1 -0
  124. package/lib/commonjs/domain/logic/resolver/getDomainResolver.d.ts +4 -0
  125. package/lib/commonjs/domain/logic/resolver/getDomainResolver.js +20 -0
  126. package/lib/commonjs/domain/logic/resolver/getDomainResolver.js.map +1 -0
  127. package/lib/commonjs/domain/logic/resolver/index.d.ts +4 -0
  128. package/lib/commonjs/domain/logic/resolver/index.js +21 -0
  129. package/lib/commonjs/domain/logic/resolver/index.js.map +1 -0
  130. package/lib/commonjs/domain/logic/resolver/isLocalhostRootDomain.d.ts +2 -0
  131. package/lib/commonjs/domain/logic/resolver/isLocalhostRootDomain.js +7 -0
  132. package/lib/commonjs/domain/logic/resolver/isLocalhostRootDomain.js.map +1 -0
  133. package/lib/commonjs/domain/logic/resolver/loadDomainResolver.d.ts +8 -0
  134. package/lib/commonjs/domain/logic/resolver/loadDomainResolver.js +33 -0
  135. package/lib/commonjs/domain/logic/resolver/loadDomainResolver.js.map +1 -0
  136. package/lib/commonjs/domain/logic/resolver/validateResolvedHost.d.ts +3 -0
  137. package/lib/commonjs/domain/logic/resolver/validateResolvedHost.js +13 -0
  138. package/lib/commonjs/domain/logic/resolver/validateResolvedHost.js.map +1 -0
  139. package/lib/commonjs/domain/resolvers/defaultDomainResolver.d.ts +3 -0
  140. package/lib/commonjs/domain/resolvers/defaultDomainResolver.js +11 -0
  141. package/lib/commonjs/domain/resolvers/defaultDomainResolver.js.map +1 -0
  142. package/lib/commonjs/domain/resolvers/index.d.ts +2 -0
  143. package/lib/commonjs/domain/resolvers/index.js +19 -0
  144. package/lib/commonjs/domain/resolvers/index.js.map +1 -0
  145. package/lib/commonjs/domain/resolvers/localhostDomainResolver.d.ts +3 -0
  146. package/lib/commonjs/domain/resolvers/localhostDomainResolver.js +8 -0
  147. package/lib/commonjs/domain/resolvers/localhostDomainResolver.js.map +1 -0
  148. package/lib/commonjs/domain/types/DomainResolver.d.ts +10 -0
  149. package/lib/commonjs/domain/types/DomainResolver.js +3 -0
  150. package/lib/commonjs/domain/types/DomainResolver.js.map +1 -0
  151. package/lib/commonjs/domain/types/DomainScope.d.ts +13 -0
  152. package/lib/commonjs/domain/types/DomainScope.js +3 -0
  153. package/lib/commonjs/domain/types/DomainScope.js.map +1 -0
  154. package/lib/commonjs/domain/types/DomainTarget.d.ts +5 -0
  155. package/lib/commonjs/domain/types/DomainTarget.js +3 -0
  156. package/lib/commonjs/domain/types/DomainTarget.js.map +1 -0
  157. package/lib/commonjs/domain/types/index.d.ts +3 -0
  158. package/lib/commonjs/domain/types/index.js +20 -0
  159. package/lib/commonjs/domain/types/index.js.map +1 -0
  160. package/lib/commonjs/index.d.ts +1 -0
  161. package/lib/commonjs/index.js +1 -0
  162. package/lib/commonjs/index.js.map +1 -1
  163. package/lib/commonjs/stories/index.d.ts +0 -1
  164. package/lib/commonjs/stories/index.js +0 -1
  165. package/lib/commonjs/stories/index.js.map +1 -1
  166. package/lib/commonjs/types/OpenApiDocument.d.ts +60 -0
  167. package/lib/commonjs/types/OpenApiDocument.js +3 -0
  168. package/lib/commonjs/types/OpenApiDocument.js.map +1 -0
  169. package/lib/commonjs/types/index.d.ts +1 -0
  170. package/lib/commonjs/types/index.js +1 -0
  171. package/lib/commonjs/types/index.js.map +1 -1
  172. package/lib/commonjs/utils/headerUtils.d.ts +5 -4
  173. package/lib/commonjs/utils/headerUtils.js +16 -29
  174. package/lib/commonjs/utils/headerUtils.js.map +1 -1
  175. package/lib/commonjs/utils/index.d.ts +3 -0
  176. package/lib/commonjs/utils/index.js +3 -0
  177. package/lib/commonjs/utils/index.js.map +1 -1
  178. package/lib/commonjs/utils/mergeRouteUtils.js +3 -0
  179. package/lib/commonjs/utils/mergeRouteUtils.js.map +1 -1
  180. package/lib/commonjs/utils/openApi/OpenApiDocumentOptions.d.ts +2 -0
  181. package/lib/commonjs/utils/openApi/OpenApiDocumentOptions.js +3 -0
  182. package/lib/commonjs/utils/openApi/OpenApiDocumentOptions.js.map +1 -0
  183. package/lib/commonjs/utils/openApi/buildOpenApiDocument.d.ts +5 -0
  184. package/lib/commonjs/utils/openApi/buildOpenApiDocument.js +55 -0
  185. package/lib/commonjs/utils/openApi/buildOpenApiDocument.js.map +1 -0
  186. package/lib/commonjs/utils/openApi/buildOpenApiOperation.d.ts +4 -0
  187. package/lib/commonjs/utils/openApi/buildOpenApiOperation.js +45 -0
  188. package/lib/commonjs/utils/openApi/buildOpenApiOperation.js.map +1 -0
  189. package/lib/commonjs/utils/openApi/buildOpenApiPathParameters.d.ts +2 -0
  190. package/lib/commonjs/utils/openApi/buildOpenApiPathParameters.js +13 -0
  191. package/lib/commonjs/utils/openApi/buildOpenApiPathParameters.js.map +1 -0
  192. package/lib/commonjs/utils/openApi/buildOpenApiQueryParameters.d.ts +3 -0
  193. package/lib/commonjs/utils/openApi/buildOpenApiQueryParameters.js +25 -0
  194. package/lib/commonjs/utils/openApi/buildOpenApiQueryParameters.js.map +1 -0
  195. package/lib/commonjs/utils/openApi/buildOpenApiSecurity.d.ts +4 -0
  196. package/lib/commonjs/utils/openApi/buildOpenApiSecurity.js +24 -0
  197. package/lib/commonjs/utils/openApi/buildOpenApiSecurity.js.map +1 -0
  198. package/lib/commonjs/utils/openApi/index.d.ts +7 -0
  199. package/lib/commonjs/utils/openApi/index.js +24 -0
  200. package/lib/commonjs/utils/openApi/index.js.map +1 -0
  201. package/lib/commonjs/utils/openApi/openApiSecuritySchemeNames.d.ts +2 -0
  202. package/lib/commonjs/utils/openApi/openApiSecuritySchemeNames.js +7 -0
  203. package/lib/commonjs/utils/openApi/openApiSecuritySchemeNames.js.map +1 -0
  204. package/lib/commonjs/utils/qpqConfigAccessorsUtils.d.ts +1 -34
  205. package/lib/commonjs/utils/qpqConfigAccessorsUtils.js +7 -114
  206. package/lib/commonjs/utils/qpqConfigAccessorsUtils.js.map +1 -1
  207. package/lib/esm/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js +6 -4
  208. package/lib/esm/actionProcessor/api/getHttpApiEventAutoRespondActionProcessor.js.map +1 -1
  209. package/lib/esm/actions/dns/DnsActionType.d.ts +3 -1
  210. package/lib/esm/actions/dns/DnsActionType.js +2 -0
  211. package/lib/esm/actions/dns/DnsActionType.js.map +1 -1
  212. package/lib/esm/actions/dns/askDnsList.d.ts +2 -1
  213. package/lib/esm/actions/dns/askDnsList.js +1 -0
  214. package/lib/esm/actions/dns/askDnsList.js.map +1 -1
  215. package/lib/esm/actions/dns/askDnsResolveHosts.d.ts +9 -0
  216. package/lib/esm/actions/dns/askDnsResolveHosts.js +8 -0
  217. package/lib/esm/actions/dns/askDnsResolveHosts.js.map +1 -0
  218. package/lib/esm/actions/dns/index.d.ts +1 -0
  219. package/lib/esm/actions/dns/index.js +1 -0
  220. package/lib/esm/actions/dns/index.js.map +1 -1
  221. package/lib/esm/actions/index.d.ts +1 -1
  222. package/lib/esm/actions/index.js +1 -1
  223. package/lib/esm/actions/index.js.map +1 -1
  224. package/lib/esm/actions/openApi/OpenApiActionType.d.ts +3 -0
  225. package/lib/esm/actions/openApi/OpenApiActionType.js +5 -0
  226. package/lib/esm/actions/openApi/OpenApiActionType.js.map +1 -0
  227. package/lib/esm/actions/openApi/askOpenApiGetDocument.d.ts +9 -0
  228. package/lib/esm/actions/openApi/askOpenApiGetDocument.js +9 -0
  229. package/lib/esm/actions/openApi/askOpenApiGetDocument.js.map +1 -0
  230. package/lib/esm/actions/openApi/index.d.ts +2 -0
  231. package/lib/esm/actions/openApi/index.js +3 -0
  232. package/lib/esm/actions/openApi/index.js.map +1 -0
  233. package/lib/esm/config/QPQConfig.d.ts +0 -1
  234. package/lib/esm/config/QPQConfig.js +0 -1
  235. package/lib/esm/config/QPQConfig.js.map +1 -1
  236. package/lib/esm/config/settings/api.d.ts +1 -2
  237. package/lib/esm/config/settings/api.js +1 -2
  238. package/lib/esm/config/settings/api.js.map +1 -1
  239. package/lib/esm/config/settings/dns.d.ts +15 -5
  240. package/lib/esm/config/settings/dns.js +10 -5
  241. package/lib/esm/config/settings/dns.js.map +1 -1
  242. package/lib/esm/config/settings/domainProxy.d.ts +0 -1
  243. package/lib/esm/config/settings/domainProxy.js.map +1 -1
  244. package/lib/esm/config/settings/emailSender.d.ts +3 -4
  245. package/lib/esm/config/settings/emailSender.js +5 -7
  246. package/lib/esm/config/settings/emailSender.js.map +1 -1
  247. package/lib/esm/config/settings/index.d.ts +0 -1
  248. package/lib/esm/config/settings/index.js +0 -1
  249. package/lib/esm/config/settings/index.js.map +1 -1
  250. package/lib/esm/config/settings/route.d.ts +2 -0
  251. package/lib/esm/config/settings/route.js.map +1 -1
  252. package/lib/esm/config/settings/webEntry.d.ts +0 -1
  253. package/lib/esm/config/settings/webEntry.js.map +1 -1
  254. package/lib/esm/config/settings/websocket.d.ts +1 -2
  255. package/lib/esm/config/settings/websocket.js +3 -12
  256. package/lib/esm/config/settings/websocket.js.map +1 -1
  257. package/lib/esm/config/types/JsonSchema.d.ts +1 -0
  258. package/lib/esm/config/types/JsonSchema.js +2 -0
  259. package/lib/esm/config/types/JsonSchema.js.map +1 -0
  260. package/lib/esm/config/types/RouteSchema.d.ts +10 -0
  261. package/lib/esm/config/types/RouteSchema.js +2 -0
  262. package/lib/esm/config/types/RouteSchema.js.map +1 -0
  263. package/lib/esm/config/types/index.d.ts +2 -0
  264. package/lib/esm/config/types/index.js +2 -0
  265. package/lib/esm/config/types/index.js.map +1 -1
  266. package/lib/esm/configUtils/dns/getDnsConfig.d.ts +4 -0
  267. package/lib/esm/configUtils/dns/getDnsConfig.js +11 -0
  268. package/lib/esm/configUtils/dns/getDnsConfig.js.map +1 -0
  269. package/lib/esm/configUtils/dns/getPrimaryRootDomain.d.ts +3 -0
  270. package/lib/esm/configUtils/dns/getPrimaryRootDomain.js +4 -0
  271. package/lib/esm/configUtils/dns/getPrimaryRootDomain.js.map +1 -0
  272. package/lib/esm/configUtils/dns/getRootDomains.d.ts +3 -0
  273. package/lib/esm/configUtils/dns/getRootDomains.js +4 -0
  274. package/lib/esm/configUtils/dns/getRootDomains.js.map +1 -0
  275. package/lib/esm/configUtils/dns/index.d.ts +3 -0
  276. package/lib/esm/configUtils/dns/index.js +4 -0
  277. package/lib/esm/configUtils/dns/index.js.map +1 -0
  278. package/lib/esm/configUtils/index.d.ts +2 -0
  279. package/lib/esm/configUtils/index.js +3 -0
  280. package/lib/esm/configUtils/index.js.map +1 -0
  281. package/lib/esm/configUtils/storageDrive/getStorageDriveCorsSettingsByName.d.ts +4 -0
  282. package/lib/esm/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js +7 -0
  283. package/lib/esm/configUtils/storageDrive/getStorageDriveCorsSettingsByName.js.map +1 -0
  284. package/lib/esm/configUtils/storageDrive/index.d.ts +1 -0
  285. package/lib/esm/configUtils/storageDrive/index.js +2 -0
  286. package/lib/esm/configUtils/storageDrive/index.js.map +1 -0
  287. package/lib/esm/domain/index.d.ts +2 -0
  288. package/lib/esm/domain/index.js +3 -0
  289. package/lib/esm/domain/index.js.map +1 -0
  290. package/lib/esm/domain/logic/host/findRootDomainForHost.d.ts +6 -0
  291. package/lib/esm/domain/logic/host/findRootDomainForHost.js +14 -0
  292. package/lib/esm/domain/logic/host/findRootDomainForHost.js.map +1 -0
  293. package/lib/esm/domain/logic/host/getDomainTargetKey.d.ts +3 -0
  294. package/lib/esm/domain/logic/host/getDomainTargetKey.js +3 -0
  295. package/lib/esm/domain/logic/host/getDomainTargetKey.js.map +1 -0
  296. package/lib/esm/domain/logic/host/index.d.ts +6 -0
  297. package/lib/esm/domain/logic/host/index.js +7 -0
  298. package/lib/esm/domain/logic/host/index.js.map +1 -0
  299. package/lib/esm/domain/logic/host/resolveHostForRequestHost.d.ts +9 -0
  300. package/lib/esm/domain/logic/host/resolveHostForRequestHost.js +16 -0
  301. package/lib/esm/domain/logic/host/resolveHostForRequestHost.js.map +1 -0
  302. package/lib/esm/domain/logic/host/resolveHostForRoot.d.ts +5 -0
  303. package/lib/esm/domain/logic/host/resolveHostForRoot.js +11 -0
  304. package/lib/esm/domain/logic/host/resolveHostForRoot.js.map +1 -0
  305. package/lib/esm/domain/logic/host/resolveHosts.d.ts +9 -0
  306. package/lib/esm/domain/logic/host/resolveHosts.js +23 -0
  307. package/lib/esm/domain/logic/host/resolveHosts.js.map +1 -0
  308. package/lib/esm/domain/logic/host/resolvePrimaryHost.d.ts +5 -0
  309. package/lib/esm/domain/logic/host/resolvePrimaryHost.js +10 -0
  310. package/lib/esm/domain/logic/host/resolvePrimaryHost.js.map +1 -0
  311. package/lib/esm/domain/logic/index.d.ts +3 -0
  312. package/lib/esm/domain/logic/index.js +4 -0
  313. package/lib/esm/domain/logic/index.js.map +1 -0
  314. package/lib/esm/domain/logic/origin/getStorageDriveCorsAllowedOrigins.d.ts +4 -0
  315. package/lib/esm/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js +5 -0
  316. package/lib/esm/domain/logic/origin/getStorageDriveCorsAllowedOrigins.js.map +1 -0
  317. package/lib/esm/domain/logic/origin/index.d.ts +4 -0
  318. package/lib/esm/domain/logic/origin/index.js +5 -0
  319. package/lib/esm/domain/logic/origin/index.js.map +1 -0
  320. package/lib/esm/domain/logic/origin/resolveContentSecurityPolicyEntry.d.ts +9 -0
  321. package/lib/esm/domain/logic/origin/resolveContentSecurityPolicyEntry.js +16 -0
  322. package/lib/esm/domain/logic/origin/resolveContentSecurityPolicyEntry.js.map +1 -0
  323. package/lib/esm/domain/logic/origin/resolveOrigins.d.ts +8 -0
  324. package/lib/esm/domain/logic/origin/resolveOrigins.js +16 -0
  325. package/lib/esm/domain/logic/origin/resolveOrigins.js.map +1 -0
  326. package/lib/esm/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.d.ts +8 -0
  327. package/lib/esm/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js +17 -0
  328. package/lib/esm/domain/logic/origin/resolveServiceScopedCorsAllowedOrigins.js.map +1 -0
  329. package/lib/esm/domain/logic/resolver/getDomainResolver.d.ts +4 -0
  330. package/lib/esm/domain/logic/resolver/getDomainResolver.js +16 -0
  331. package/lib/esm/domain/logic/resolver/getDomainResolver.js.map +1 -0
  332. package/lib/esm/domain/logic/resolver/index.d.ts +4 -0
  333. package/lib/esm/domain/logic/resolver/index.js +5 -0
  334. package/lib/esm/domain/logic/resolver/index.js.map +1 -0
  335. package/lib/esm/domain/logic/resolver/isLocalhostRootDomain.d.ts +2 -0
  336. package/lib/esm/domain/logic/resolver/isLocalhostRootDomain.js +3 -0
  337. package/lib/esm/domain/logic/resolver/isLocalhostRootDomain.js.map +1 -0
  338. package/lib/esm/domain/logic/resolver/loadDomainResolver.d.ts +8 -0
  339. package/lib/esm/domain/logic/resolver/loadDomainResolver.js +19 -0
  340. package/lib/esm/domain/logic/resolver/loadDomainResolver.js.map +1 -0
  341. package/lib/esm/domain/logic/resolver/validateResolvedHost.d.ts +3 -0
  342. package/lib/esm/domain/logic/resolver/validateResolvedHost.js +9 -0
  343. package/lib/esm/domain/logic/resolver/validateResolvedHost.js.map +1 -0
  344. package/lib/esm/domain/resolvers/defaultDomainResolver.d.ts +3 -0
  345. package/lib/esm/domain/resolvers/defaultDomainResolver.js +8 -0
  346. package/lib/esm/domain/resolvers/defaultDomainResolver.js.map +1 -0
  347. package/lib/esm/domain/resolvers/index.d.ts +2 -0
  348. package/lib/esm/domain/resolvers/index.js +3 -0
  349. package/lib/esm/domain/resolvers/index.js.map +1 -0
  350. package/lib/esm/domain/resolvers/localhostDomainResolver.d.ts +3 -0
  351. package/lib/esm/domain/resolvers/localhostDomainResolver.js +5 -0
  352. package/lib/esm/domain/resolvers/localhostDomainResolver.js.map +1 -0
  353. package/lib/esm/domain/types/DomainResolver.d.ts +10 -0
  354. package/lib/esm/domain/types/DomainResolver.js +2 -0
  355. package/lib/esm/domain/types/DomainResolver.js.map +1 -0
  356. package/lib/esm/domain/types/DomainScope.d.ts +13 -0
  357. package/lib/esm/domain/types/DomainScope.js +2 -0
  358. package/lib/esm/domain/types/DomainScope.js.map +1 -0
  359. package/lib/esm/domain/types/DomainTarget.d.ts +5 -0
  360. package/lib/esm/domain/types/DomainTarget.js +2 -0
  361. package/lib/esm/domain/types/DomainTarget.js.map +1 -0
  362. package/lib/esm/domain/types/index.d.ts +3 -0
  363. package/lib/esm/domain/types/index.js +4 -0
  364. package/lib/esm/domain/types/index.js.map +1 -0
  365. package/lib/esm/index.d.ts +1 -0
  366. package/lib/esm/index.js +1 -0
  367. package/lib/esm/index.js.map +1 -1
  368. package/lib/esm/stories/index.d.ts +0 -1
  369. package/lib/esm/stories/index.js +0 -1
  370. package/lib/esm/stories/index.js.map +1 -1
  371. package/lib/esm/types/OpenApiDocument.d.ts +60 -0
  372. package/lib/esm/types/OpenApiDocument.js +2 -0
  373. package/lib/esm/types/OpenApiDocument.js.map +1 -0
  374. package/lib/esm/types/index.d.ts +1 -0
  375. package/lib/esm/types/index.js +1 -0
  376. package/lib/esm/types/index.js.map +1 -1
  377. package/lib/esm/utils/headerUtils.d.ts +5 -4
  378. package/lib/esm/utils/headerUtils.js +16 -28
  379. package/lib/esm/utils/headerUtils.js.map +1 -1
  380. package/lib/esm/utils/index.d.ts +3 -0
  381. package/lib/esm/utils/index.js +3 -0
  382. package/lib/esm/utils/index.js.map +1 -1
  383. package/lib/esm/utils/mergeRouteUtils.js +2 -0
  384. package/lib/esm/utils/mergeRouteUtils.js.map +1 -1
  385. package/lib/esm/utils/openApi/OpenApiDocumentOptions.d.ts +2 -0
  386. package/lib/esm/utils/openApi/OpenApiDocumentOptions.js +2 -0
  387. package/lib/esm/utils/openApi/OpenApiDocumentOptions.js.map +1 -0
  388. package/lib/esm/utils/openApi/buildOpenApiDocument.d.ts +5 -0
  389. package/lib/esm/utils/openApi/buildOpenApiDocument.js +50 -0
  390. package/lib/esm/utils/openApi/buildOpenApiDocument.js.map +1 -0
  391. package/lib/esm/utils/openApi/buildOpenApiOperation.d.ts +4 -0
  392. package/lib/esm/utils/openApi/buildOpenApiOperation.js +40 -0
  393. package/lib/esm/utils/openApi/buildOpenApiOperation.js.map +1 -0
  394. package/lib/esm/utils/openApi/buildOpenApiPathParameters.d.ts +2 -0
  395. package/lib/esm/utils/openApi/buildOpenApiPathParameters.js +9 -0
  396. package/lib/esm/utils/openApi/buildOpenApiPathParameters.js.map +1 -0
  397. package/lib/esm/utils/openApi/buildOpenApiQueryParameters.d.ts +3 -0
  398. package/lib/esm/utils/openApi/buildOpenApiQueryParameters.js +21 -0
  399. package/lib/esm/utils/openApi/buildOpenApiQueryParameters.js.map +1 -0
  400. package/lib/esm/utils/openApi/buildOpenApiSecurity.d.ts +4 -0
  401. package/lib/esm/utils/openApi/buildOpenApiSecurity.js +19 -0
  402. package/lib/esm/utils/openApi/buildOpenApiSecurity.js.map +1 -0
  403. package/lib/esm/utils/openApi/index.d.ts +7 -0
  404. package/lib/esm/utils/openApi/index.js +8 -0
  405. package/lib/esm/utils/openApi/index.js.map +1 -0
  406. package/lib/esm/utils/openApi/openApiSecuritySchemeNames.d.ts +2 -0
  407. package/lib/esm/utils/openApi/openApiSecuritySchemeNames.js +4 -0
  408. package/lib/esm/utils/openApi/openApiSecuritySchemeNames.js.map +1 -0
  409. package/lib/esm/utils/qpqConfigAccessorsUtils.d.ts +1 -34
  410. package/lib/esm/utils/qpqConfigAccessorsUtils.js +5 -100
  411. package/lib/esm/utils/qpqConfigAccessorsUtils.js.map +1 -1
  412. package/package.json +3 -3
  413. package/lib/commonjs/actions/openApiSpec/OpenApiSpecActionType.d.ts +0 -3
  414. package/lib/commonjs/actions/openApiSpec/OpenApiSpecActionType.js +0 -8
  415. package/lib/commonjs/actions/openApiSpec/OpenApiSpecActionType.js.map +0 -1
  416. package/lib/commonjs/actions/openApiSpec/askGetOpenApiSpec.d.ts +0 -2
  417. package/lib/commonjs/actions/openApiSpec/askGetOpenApiSpec.js +0 -9
  418. package/lib/commonjs/actions/openApiSpec/askGetOpenApiSpec.js.map +0 -1
  419. package/lib/commonjs/actions/openApiSpec/index.d.ts +0 -2
  420. package/lib/commonjs/actions/openApiSpec/index.js.map +0 -1
  421. package/lib/commonjs/config/settings/openApi.d.ts +0 -5
  422. package/lib/commonjs/config/settings/openApi.js +0 -13
  423. package/lib/commonjs/config/settings/openApi.js.map +0 -1
  424. package/lib/commonjs/stories/askGetDomainRoot.d.ts +0 -2
  425. package/lib/commonjs/stories/askGetDomainRoot.js +0 -22
  426. package/lib/commonjs/stories/askGetDomainRoot.js.map +0 -1
  427. package/lib/esm/actions/openApiSpec/OpenApiSpecActionType.d.ts +0 -3
  428. package/lib/esm/actions/openApiSpec/OpenApiSpecActionType.js +0 -5
  429. package/lib/esm/actions/openApiSpec/OpenApiSpecActionType.js.map +0 -1
  430. package/lib/esm/actions/openApiSpec/askGetOpenApiSpec.d.ts +0 -2
  431. package/lib/esm/actions/openApiSpec/askGetOpenApiSpec.js +0 -6
  432. package/lib/esm/actions/openApiSpec/askGetOpenApiSpec.js.map +0 -1
  433. package/lib/esm/actions/openApiSpec/index.d.ts +0 -2
  434. package/lib/esm/actions/openApiSpec/index.js +0 -3
  435. package/lib/esm/actions/openApiSpec/index.js.map +0 -1
  436. package/lib/esm/config/settings/openApi.d.ts +0 -5
  437. package/lib/esm/config/settings/openApi.js +0 -9
  438. package/lib/esm/config/settings/openApi.js.map +0 -1
  439. package/lib/esm/stories/askGetDomainRoot.d.ts +0 -2
  440. package/lib/esm/stories/askGetDomainRoot.js +0 -18
  441. package/lib/esm/stories/askGetDomainRoot.js.map +0 -1
@@ -3,22 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineWebsocket = void 0;
4
4
  const quidproquo_core_1 = require("quidproquo-core");
5
5
  const QPQConfig_1 = require("../QPQConfig");
6
- const defineWebsocket = (apiSubdomain, rootDomain, eventProcessors, options) => {
6
+ const defineWebsocket = (apiSubdomain, eventProcessors, options) => {
7
7
  return {
8
8
  configSettingType: QPQConfig_1.QPQWebServerConfigSettingType.WebSocket,
9
- // Deliberately domain-free. uniqueKey becomes the CDK construct id and therefore the
10
- // CloudFormation LOGICAL id, but every physical resource this setting creates is named
11
- // from app/service/environment only (e.g. the api-id SSM parameter
12
- // `/qpq/websocket/api-id/<apiSubdomain>-<app>-<service>-<env>`). Including rootDomain
13
- // meant renaming an app's domain renamed the logical id while the physical name stayed
14
- // put, so CloudFormation tried to CREATE a second resource holding a name the old one
15
- // still claimed — and it enforces name uniqueness within a stack at create time, before
16
- // cleanup deletes the old. Result: an undeployable stack, recoverable only by removing
17
- // the old logical resource in a separate update. apiSubdomain alone is unique per module
18
- // (that is the granularity getOwnedWebsocketSettings materialises at).
9
+ // uniqueKey is the CloudFormation logical id; physical names come from app/service/env
10
+ // only, so the key must not carry anything (like a domain) that can change independently.
19
11
  uniqueKey: apiSubdomain,
20
12
  apiSubdomain,
21
- rootDomain,
22
13
  eventProcessors,
23
14
  // advanced
24
15
  onRootDomain: (options === null || options === void 0 ? void 0 : options.onRootDomain) || false,
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/config/settings/websocket.ts"],"names":[],"mappings":";;;AAAA,qDAAkI;AAElI,4CAA6D;AA2CtD,MAAM,eAAe,GAAG,CAC7B,YAAoB,EACpB,UAAkB,EAClB,eAA4C,EAC5C,OAA4C,EACR,EAAE;IACtC,OAAO;QACL,iBAAiB,EAAE,yCAA6B,CAAC,SAAS;QAC1D,qFAAqF;QACrF,uFAAuF;QACvF,mEAAmE;QACnE,sFAAsF;QACtF,uFAAuF;QACvF,sFAAsF;QACtF,wFAAwF;QACxF,uFAAuF;QACvF,yFAAyF;QACzF,uEAAuE;QACvE,SAAS,EAAE,YAAY;QAEvB,YAAY;QACZ,UAAU;QAEV,eAAe;QAEf,WAAW;QACX,YAAY,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,KAAK;QAC5C,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,KAAK;QAElC,UAAU,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAI,KAAK;QAExC,0BAA0B,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B;QAE/D,uBAAuB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB;QAEzD,KAAK,EAAE,8BAAY,CAAC,oDAAoD,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;KACzF,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,eAAe,mBAqC1B","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 rootDomain: 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 rootDomain: string,\n eventProcessors: QpqWebSocketEventProcessors,\n options?: QPQConfigAdvancedWebSocketSettings,\n): WebSocketQPQWebServerConfigSetting => {\n return {\n configSettingType: QPQWebServerConfigSettingType.WebSocket,\n // Deliberately domain-free. uniqueKey becomes the CDK construct id and therefore the\n // CloudFormation LOGICAL id, but every physical resource this setting creates is named\n // from app/service/environment only (e.g. the api-id SSM parameter\n // `/qpq/websocket/api-id/<apiSubdomain>-<app>-<service>-<env>`). Including rootDomain\n // meant renaming an app's domain renamed the logical id while the physical name stayed\n // put, so CloudFormation tried to CREATE a second resource holding a name the old one\n // still claimed — and it enforces name uniqueness within a stack at create time, before\n // cleanup deletes the old. Result: an undeployable stack, recoverable only by removing\n // the old logical resource in a separate update. apiSubdomain alone is unique per module\n // (that is the granularity getOwnedWebsocketSettings materialises at).\n uniqueKey: apiSubdomain,\n\n apiSubdomain,\n rootDomain,\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"]}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/config/settings/websocket.ts"],"names":[],"mappings":";;;AAAA,qDAAkI;AAElI,4CAA6D;AA0CtD,MAAM,eAAe,GAAG,CAC7B,YAAoB,EACpB,eAA4C,EAC5C,OAA4C,EACR,EAAE;IACtC,OAAO;QACL,iBAAiB,EAAE,yCAA6B,CAAC,SAAS;QAC1D,uFAAuF;QACvF,0FAA0F;QAC1F,SAAS,EAAE,YAAY;QAEvB,YAAY;QAEZ,eAAe;QAEf,WAAW;QACX,YAAY,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,KAAK;QAC5C,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,KAAK;QAElC,UAAU,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAI,KAAK;QAExC,0BAA0B,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B;QAE/D,uBAAuB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB;QAEzD,KAAK,EAAE,8BAAY,CAAC,oDAAoD,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;KACzF,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,eAAe,mBA2B1B","sourcesContent":["import { CrossModuleOwner, QPQConfigAdvancedSettings, QPQConfigSetting, qpqCoreUtils, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport interface QpqWebSocketEventProcessors {\n onConnect?: QpqFunctionRuntime;\n onDisconnect?: QpqFunctionRuntime;\n onMessage?: QpqFunctionRuntime;\n\n // [type: string]: QpqSourceEntry;\n}\n\nexport interface QPQConfigAdvancedWebSocketSettings extends QPQConfigAdvancedSettings {\n onRootDomain?: boolean;\n apiName?: string;\n\n cloudflareApiKeySecretName?: string;\n\n // Cap (and guarantee) on this websocket api's concurrent event processing:\n // never throttled below it, never scales above it. One compute unit serves all\n // the api's event processors (connect/disconnect/message), so this bounds the\n // api as a whole. Free, but carved out of the deploy account's shared\n // concurrency pool.\n maxConcurrentExecutions?: number;\n\n owner?: CrossModuleOwner<'websocketApiName'>;\n}\n\nexport interface WebSocketQPQWebServerConfigSetting extends QPQConfigSetting {\n apiSubdomain: string;\n\n onRootDomain: boolean;\n\n apiName: string;\n\n eventProcessors: QpqWebSocketEventProcessors;\n\n deprecated: boolean;\n\n cloudflareApiKeySecretName?: string;\n\n maxConcurrentExecutions?: number;\n}\n\nexport const defineWebsocket = (\n apiSubdomain: string,\n eventProcessors: QpqWebSocketEventProcessors,\n options?: QPQConfigAdvancedWebSocketSettings,\n): WebSocketQPQWebServerConfigSetting => {\n return {\n configSettingType: QPQWebServerConfigSettingType.WebSocket,\n // uniqueKey is the CloudFormation logical id; physical names come from app/service/env\n // only, so the key must not carry anything (like a domain) that can change independently.\n uniqueKey: apiSubdomain,\n\n apiSubdomain,\n\n eventProcessors,\n\n // advanced\n onRootDomain: options?.onRootDomain || false,\n apiName: options?.apiName || 'api',\n\n deprecated: options?.deprecated || false,\n\n cloudflareApiKeySecretName: options?.cloudflareApiKeySecretName,\n\n maxConcurrentExecutions: options?.maxConcurrentExecutions,\n\n owner: qpqCoreUtils.convertCrossModuleOwnerToGenericResourceNameOverride(options?.owner),\n };\n};\n"]}
@@ -0,0 +1 @@
1
+ export type JsonSchema = Record<string, unknown>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=JsonSchema.js.map
@@ -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,10 @@
1
+ import { JsonSchema } from './JsonSchema';
2
+ export type RouteSchema = {
3
+ hidden?: boolean;
4
+ summary?: string;
5
+ description?: string;
6
+ tags?: string[];
7
+ bodyJsonSchema?: JsonSchema;
8
+ queryJsonSchema?: JsonSchema;
9
+ responseJsonSchema?: JsonSchema;
10
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=RouteSchema.js.map
@@ -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,3 @@
1
+ export * from './JsonSchema';
1
2
  export * from './ResponseSecurityHeaders';
3
+ export * from './RouteSchema';
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./JsonSchema"), exports);
17
18
  __exportStar(require("./ResponseSecurityHeaders"), exports);
19
+ __exportStar(require("./RouteSchema"), exports);
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C","sourcesContent":["export * from './ResponseSecurityHeaders';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,4DAA0C;AAC1C,gDAA8B","sourcesContent":["export * from './JsonSchema';\nexport * from './ResponseSecurityHeaders';\nexport * from './RouteSchema';\n"]}
@@ -0,0 +1,4 @@
1
+ import { Nullable, QPQConfig } from 'quidproquo-core';
2
+ import { DnsQPQWebServerConfigSetting } from '../../config/settings/dns';
3
+ /** The service's single Dns setting, or null when it declares no domain. Throws on more than one. */
4
+ export declare const getDnsConfig: (qpqConfig: QPQConfig) => Nullable<DnsQPQWebServerConfigSetting>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDnsConfig = void 0;
4
+ const quidproquo_core_1 = require("quidproquo-core");
5
+ const QPQConfig_1 = require("../../config/QPQConfig");
6
+ /** The service's single Dns setting, or null when it declares no domain. Throws on more than one. */
7
+ const getDnsConfig = (qpqConfig) => {
8
+ var _a;
9
+ const settings = quidproquo_core_1.qpqCoreUtils.getConfigSettings(qpqConfig, QPQConfig_1.QPQWebServerConfigSettingType.Dns);
10
+ if (settings.length > 1) {
11
+ throw new Error(`defineDns must appear once per service, found ${settings.length}`);
12
+ }
13
+ return (_a = settings[0]) !== null && _a !== void 0 ? _a : null;
14
+ };
15
+ exports.getDnsConfig = getDnsConfig;
16
+ //# sourceMappingURL=getDnsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDnsConfig.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getDnsConfig.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AAEpE,sDAAuE;AAGvE,qGAAqG;AAC9F,MAAM,YAAY,GAAG,CAAC,SAAoB,EAA0C,EAAE;;IAC3F,MAAM,QAAQ,GAAG,8BAAY,CAAC,iBAAiB,CAA+B,SAAS,EAAE,yCAA6B,CAAC,GAAG,CAAC,CAAC;IAE5H,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,MAAA,QAAQ,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAC7B,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB","sourcesContent":["import { Nullable, QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../../config/QPQConfig';\nimport { DnsQPQWebServerConfigSetting } from '../../config/settings/dns';\n\n/** The service's single Dns setting, or null when it declares no domain. Throws on more than one. */\nexport const getDnsConfig = (qpqConfig: QPQConfig): Nullable<DnsQPQWebServerConfigSetting> => {\n const settings = qpqCoreUtils.getConfigSettings<DnsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Dns);\n\n if (settings.length > 1) {\n throw new Error(`defineDns must appear once per service, found ${settings.length}`);\n }\n\n return settings[0] ?? null;\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import { Nullable, QPQConfig } from 'quidproquo-core';
2
+ /** The first declared root, which absolute URLs (email links, MF remotes, the Cognito domain) bake to; null without a domain. */
3
+ export declare const getPrimaryRootDomain: (qpqConfig: QPQConfig) => Nullable<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPrimaryRootDomain = void 0;
4
+ const getRootDomains_1 = require("./getRootDomains");
5
+ /** The first declared root, which absolute URLs (email links, MF remotes, the Cognito domain) bake to; null without a domain. */
6
+ const getPrimaryRootDomain = (qpqConfig) => { var _a; return (_a = (0, getRootDomains_1.getRootDomains)(qpqConfig)[0]) !== null && _a !== void 0 ? _a : null; };
7
+ exports.getPrimaryRootDomain = getPrimaryRootDomain;
8
+ //# sourceMappingURL=getPrimaryRootDomain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPrimaryRootDomain.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getPrimaryRootDomain.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAElD,iIAAiI;AAC1H,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAAoB,EAAE,WAAC,OAAA,MAAA,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAC;AAAxG,QAAA,oBAAoB,wBAAoF","sourcesContent":["import { Nullable, QPQConfig } from 'quidproquo-core';\n\nimport { getRootDomains } from './getRootDomains';\n\n/** The first declared root, which absolute URLs (email links, MF remotes, the Cognito domain) bake to; null without a domain. */\nexport const getPrimaryRootDomain = (qpqConfig: QPQConfig): Nullable<string> => getRootDomains(qpqConfig)[0] ?? null;\n"]}
@@ -0,0 +1,3 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ /** Declared roots, primary first; empty when the service has no domain. */
3
+ export declare const getRootDomains: (qpqConfig: QPQConfig) => string[];
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRootDomains = void 0;
4
+ const getDnsConfig_1 = require("./getDnsConfig");
5
+ /** Declared roots, primary first; empty when the service has no domain. */
6
+ const getRootDomains = (qpqConfig) => { var _a, _b; return (_b = (_a = (0, getDnsConfig_1.getDnsConfig)(qpqConfig)) === null || _a === void 0 ? void 0 : _a.rootDomains) !== null && _b !== void 0 ? _b : []; };
7
+ exports.getRootDomains = getRootDomains;
8
+ //# sourceMappingURL=getRootDomains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRootDomains.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/getRootDomains.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAE9C,2EAA2E;AACpE,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAY,EAAE,eAAC,OAAA,MAAA,MAAA,IAAA,2BAAY,EAAC,SAAS,CAAC,0CAAE,WAAW,mCAAI,EAAE,CAAA,EAAA,CAAC;AAAhG,QAAA,cAAc,kBAAkF","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { getDnsConfig } from './getDnsConfig';\n\n/** Declared roots, primary first; empty when the service has no domain. */\nexport const getRootDomains = (qpqConfig: QPQConfig): string[] => getDnsConfig(qpqConfig)?.rootDomains ?? [];\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './getDnsConfig';
2
+ export * from './getPrimaryRootDomain';
3
+ export * from './getRootDomains';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getDnsConfig"), exports);
18
+ __exportStar(require("./getPrimaryRootDomain"), exports);
19
+ __exportStar(require("./getRootDomains"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/configUtils/dns/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,yDAAuC;AACvC,mDAAiC","sourcesContent":["export * from './getDnsConfig';\nexport * from './getPrimaryRootDomain';\nexport * from './getRootDomains';\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './dns';
2
+ export * from './storageDrive';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./dns"), exports);
18
+ __exportStar(require("./storageDrive"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configUtils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,iDAA+B","sourcesContent":["export * from './dns';\nexport * from './storageDrive';\n"]}
@@ -0,0 +1,4 @@
1
+ import { Nullable, QPQConfig } from 'quidproquo-core';
2
+ import { StorageDriveCorsSettingsQPQWebServerConfigSetting } from '../../config/settings/storageDriveCorsSettings';
3
+ /** The `defineStorageDriveCorsSettings` entry for a drive, null when it has none. */
4
+ export declare const getStorageDriveCorsSettingsByName: (qpqConfig: QPQConfig, storageDriveName: string) => Nullable<StorageDriveCorsSettingsQPQWebServerConfigSetting>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStorageDriveCorsSettingsByName = void 0;
4
+ const quidproquo_core_1 = require("quidproquo-core");
5
+ const QPQConfig_1 = require("../../config/QPQConfig");
6
+ /** The `defineStorageDriveCorsSettings` entry for a drive, null when it has none. */
7
+ const getStorageDriveCorsSettingsByName = (qpqConfig, storageDriveName) => {
8
+ var _a;
9
+ return (_a = quidproquo_core_1.qpqCoreUtils
10
+ .getConfigSettings(qpqConfig, QPQConfig_1.QPQWebServerConfigSettingType.StorageDriveCorsSettings)
11
+ .find((setting) => setting.storageDriveName === storageDriveName)) !== null && _a !== void 0 ? _a : null;
12
+ };
13
+ exports.getStorageDriveCorsSettingsByName = getStorageDriveCorsSettingsByName;
14
+ //# sourceMappingURL=getStorageDriveCorsSettingsByName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStorageDriveCorsSettingsByName.js","sourceRoot":"","sources":["../../../../src/configUtils/storageDrive/getStorageDriveCorsSettingsByName.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AAEpE,sDAAuE;AAGvE,qFAAqF;AAC9E,MAAM,iCAAiC,GAAG,CAC/C,SAAoB,EACpB,gBAAwB,EACqC,EAAE;;IAC/D,OAAA,MAAA,8BAAY;SACT,iBAAiB,CAAoD,SAAS,EAAE,yCAA6B,CAAC,wBAAwB,CAAC;SACvI,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,mCAAI,IAAI,CAAA;CAAA,CAAC;AANjE,QAAA,iCAAiC,qCAMgC","sourcesContent":["import { Nullable, QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../../config/QPQConfig';\nimport { StorageDriveCorsSettingsQPQWebServerConfigSetting } from '../../config/settings/storageDriveCorsSettings';\n\n/** The `defineStorageDriveCorsSettings` entry for a drive, null when it has none. */\nexport const getStorageDriveCorsSettingsByName = (\n qpqConfig: QPQConfig,\n storageDriveName: string,\n): Nullable<StorageDriveCorsSettingsQPQWebServerConfigSetting> =>\n qpqCoreUtils\n .getConfigSettings<StorageDriveCorsSettingsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.StorageDriveCorsSettings)\n .find((setting) => setting.storageDriveName === storageDriveName) ?? null;\n"]}
@@ -0,0 +1 @@
1
+ export * from './getStorageDriveCorsSettingsByName';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getStorageDriveCorsSettingsByName"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/configUtils/storageDrive/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD","sourcesContent":["export * from './getStorageDriveCorsSettingsByName';\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './resolvers';
2
+ export * from './types';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./resolvers"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB","sourcesContent":["export * from './resolvers';\nexport * from './types';\n"]}
@@ -0,0 +1,6 @@
1
+ import { Nullable, QPQConfig } from 'quidproquo-core';
2
+ /**
3
+ * Which declared root a request host belongs to, longest match wins, null when none does.
4
+ * Used to key request-time behaviour off the Host header without trusting it as a domain.
5
+ */
6
+ export declare const findRootDomainForHost: (qpqConfig: QPQConfig, host: string) => Nullable<string>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findRootDomainForHost = void 0;
4
+ const getRootDomains_1 = require("../../../configUtils/dns/getRootDomains");
5
+ /**
6
+ * Which declared root a request host belongs to, longest match wins, null when none does.
7
+ * Used to key request-time behaviour off the Host header without trusting it as a domain.
8
+ */
9
+ const findRootDomainForHost = (qpqConfig, host) => {
10
+ var _a;
11
+ const hostname = host.split(':')[0].toLowerCase();
12
+ const matches = (0, getRootDomains_1.getRootDomains)(qpqConfig).filter((root) => {
13
+ const rootName = root.split(':')[0].toLowerCase();
14
+ return hostname === rootName || hostname.endsWith(`.${rootName}`);
15
+ });
16
+ return (_a = matches.sort((a, b) => b.length - a.length)[0]) !== null && _a !== void 0 ? _a : null;
17
+ };
18
+ exports.findRootDomainForHost = findRootDomainForHost;
19
+ //# sourceMappingURL=findRootDomainForHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findRootDomainForHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/findRootDomainForHost.ts"],"names":[],"mappings":";;;AAEA,4EAAyE;AAEzE;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,IAAY,EAAoB,EAAE;;IAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAElD,MAAM,OAAO,GAAG,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAChE,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC","sourcesContent":["import { Nullable, QPQConfig } from 'quidproquo-core';\n\nimport { getRootDomains } from '../../../configUtils/dns/getRootDomains';\n\n/**\n * Which declared root a request host belongs to, longest match wins, null when none does.\n * Used to key request-time behaviour off the Host header without trusting it as a domain.\n */\nexport const findRootDomainForHost = (qpqConfig: QPQConfig, host: string): Nullable<string> => {\n const hostname = host.split(':')[0].toLowerCase();\n\n const matches = getRootDomains(qpqConfig).filter((root) => {\n const rootName = root.split(':')[0].toLowerCase();\n return hostname === rootName || hostname.endsWith(`.${rootName}`);\n });\n\n return matches.sort((a, b) => b.length - a.length)[0] ?? null;\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import { DomainTarget } from '../../../domain/types/DomainTarget';
2
+ /** Stable identity for a target, so lists of targets can be deduplicated. */
3
+ export declare const getDomainTargetKey: (target: DomainTarget) => string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDomainTargetKey = void 0;
4
+ /** Stable identity for a target, so lists of targets can be deduplicated. */
5
+ const getDomainTargetKey = (target) => { var _a, _b; return `${(_a = target.subdomain) !== null && _a !== void 0 ? _a : ''}::${(_b = target.service) !== null && _b !== void 0 ? _b : ''}`; };
6
+ exports.getDomainTargetKey = getDomainTargetKey;
7
+ //# sourceMappingURL=getDomainTargetKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDomainTargetKey.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/getDomainTargetKey.ts"],"names":[],"mappings":";;;AAEA,6EAA6E;AACtE,MAAM,kBAAkB,GAAG,CAAC,MAAoB,EAAU,EAAE,eAAC,OAAA,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,KAAK,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,EAAE,CAAA,EAAA,CAAC;AAA5G,QAAA,kBAAkB,sBAA0F","sourcesContent":["import { DomainTarget } from '../../../domain/types/DomainTarget';\n\n/** Stable identity for a target, so lists of targets can be deduplicated. */\nexport const getDomainTargetKey = (target: DomainTarget): string => `${target.subdomain ?? ''}::${target.service ?? ''}`;\n"]}
@@ -0,0 +1,6 @@
1
+ export * from './findRootDomainForHost';
2
+ export * from './getDomainTargetKey';
3
+ export * from './resolveHostForRequestHost';
4
+ export * from './resolveHostForRoot';
5
+ export * from './resolveHosts';
6
+ export * from './resolvePrimaryHost';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./findRootDomainForHost"), exports);
18
+ __exportStar(require("./getDomainTargetKey"), exports);
19
+ __exportStar(require("./resolveHostForRequestHost"), exports);
20
+ __exportStar(require("./resolveHostForRoot"), exports);
21
+ __exportStar(require("./resolveHosts"), exports);
22
+ __exportStar(require("./resolvePrimaryHost"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,uDAAqC;AACrC,8DAA4C;AAC5C,uDAAqC;AACrC,iDAA+B;AAC/B,uDAAqC","sourcesContent":["export * from './findRootDomainForHost';\nexport * from './getDomainTargetKey';\nexport * from './resolveHostForRequestHost';\nexport * from './resolveHostForRoot';\nexport * from './resolveHosts';\nexport * from './resolvePrimaryHost';\n"]}
@@ -0,0 +1,9 @@
1
+ import { Nullable, QPQConfig } from 'quidproquo-core';
2
+ import { DomainResolver } from '../../../domain/types/DomainResolver';
3
+ import { DomainTarget } from '../../../domain/types/DomainTarget';
4
+ /**
5
+ * The target's host on the root a request arrived on. Only a declared root counts (the Host
6
+ * header is attacker-controlled); a request on no declared root gets the primary's host, and
7
+ * null means the service declares no domain at all.
8
+ */
9
+ export declare const resolveHostForRequestHost: (qpqConfig: QPQConfig, requestHost: string | undefined, target?: DomainTarget, resolver?: DomainResolver) => Nullable<string>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveHostForRequestHost = void 0;
4
+ const findRootDomainForHost_1 = require("./findRootDomainForHost");
5
+ const resolveHostForRoot_1 = require("./resolveHostForRoot");
6
+ const resolveHosts_1 = require("./resolveHosts");
7
+ /**
8
+ * The target's host on the root a request arrived on. Only a declared root counts (the Host
9
+ * header is attacker-controlled); a request on no declared root gets the primary's host, and
10
+ * null means the service declares no domain at all.
11
+ */
12
+ const resolveHostForRequestHost = (qpqConfig, requestHost, target = {}, resolver) => {
13
+ var _a;
14
+ const rootDomain = requestHost ? (0, findRootDomainForHost_1.findRootDomainForHost)(qpqConfig, requestHost) : null;
15
+ if (rootDomain) {
16
+ return (0, resolveHostForRoot_1.resolveHostForRoot)(qpqConfig, rootDomain, target, resolver);
17
+ }
18
+ return (_a = (0, resolveHosts_1.resolveHosts)(qpqConfig, target, resolver)[0]) !== null && _a !== void 0 ? _a : null;
19
+ };
20
+ exports.resolveHostForRequestHost = resolveHostForRequestHost;
21
+ //# sourceMappingURL=resolveHostForRequestHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveHostForRequestHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHostForRequestHost.ts"],"names":[],"mappings":";;;AAIA,mEAAgE;AAChE,6DAA0D;AAC1D,iDAA8C;AAE9C;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,CACvC,SAAoB,EACpB,WAA+B,EAC/B,SAAuB,EAAE,EACzB,QAAyB,EACP,EAAE;;IACpB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAA,6CAAqB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAA,uCAAkB,EAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,MAAA,IAAA,2BAAY,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAC9D,CAAC,CAAC;AAbW,QAAA,yBAAyB,6BAapC","sourcesContent":["import { Nullable, QPQConfig } from 'quidproquo-core';\n\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { findRootDomainForHost } from './findRootDomainForHost';\nimport { resolveHostForRoot } from './resolveHostForRoot';\nimport { resolveHosts } from './resolveHosts';\n\n/**\n * The target's host on the root a request arrived on. Only a declared root counts (the Host\n * header is attacker-controlled); a request on no declared root gets the primary's host, and\n * null means the service declares no domain at all.\n */\nexport const resolveHostForRequestHost = (\n qpqConfig: QPQConfig,\n requestHost: string | undefined,\n target: DomainTarget = {},\n resolver?: DomainResolver,\n): Nullable<string> => {\n const rootDomain = requestHost ? findRootDomainForHost(qpqConfig, requestHost) : null;\n\n if (rootDomain) {\n return resolveHostForRoot(qpqConfig, rootDomain, target, resolver);\n }\n\n return resolveHosts(qpqConfig, target, resolver)[0] ?? null;\n};\n"]}
@@ -0,0 +1,5 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { DomainResolver } from '../../../domain/types/DomainResolver';
3
+ import { DomainTarget } from '../../../domain/types/DomainTarget';
4
+ /** The target's host on one specific declared root. Throws when the root is not declared. */
5
+ export declare const resolveHostForRoot: (qpqConfig: QPQConfig, rootDomain: string, target: DomainTarget, resolver?: DomainResolver) => string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveHostForRoot = void 0;
4
+ const getRootDomains_1 = require("../../../configUtils/dns/getRootDomains");
5
+ const resolveHosts_1 = require("./resolveHosts");
6
+ /** The target's host on one specific declared root. Throws when the root is not declared. */
7
+ const resolveHostForRoot = (qpqConfig, rootDomain, target, resolver) => {
8
+ const index = (0, getRootDomains_1.getRootDomains)(qpqConfig).indexOf(rootDomain);
9
+ if (index < 0) {
10
+ throw new Error(`Root domain [${rootDomain}] is not declared in defineDns`);
11
+ }
12
+ return (0, resolveHosts_1.resolveHosts)(qpqConfig, target, resolver)[index];
13
+ };
14
+ exports.resolveHostForRoot = resolveHostForRoot;
15
+ //# sourceMappingURL=resolveHostForRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveHostForRoot.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHostForRoot.ts"],"names":[],"mappings":";;;AAEA,4EAAyE;AAGzE,iDAA8C;AAE9C,6FAA6F;AACtF,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,UAAkB,EAAE,MAAoB,EAAE,QAAyB,EAAU,EAAE;IACtI,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,gCAAgC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,IAAA,2BAAY,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { getRootDomains } from '../../../configUtils/dns/getRootDomains';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { resolveHosts } from './resolveHosts';\n\n/** The target's host on one specific declared root. Throws when the root is not declared. */\nexport const resolveHostForRoot = (qpqConfig: QPQConfig, rootDomain: string, target: DomainTarget, resolver?: DomainResolver): string => {\n const index = getRootDomains(qpqConfig).indexOf(rootDomain);\n\n if (index < 0) {\n throw new Error(`Root domain [${rootDomain}] is not declared in defineDns`);\n }\n\n return resolveHosts(qpqConfig, target, resolver)[index];\n};\n"]}
@@ -0,0 +1,9 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { DomainResolver } from '../../../domain/types/DomainResolver';
3
+ import { DomainTarget } from '../../../domain/types/DomainTarget';
4
+ /**
5
+ * One host per declared root, primary first; empty when the service has no domain. Runs the
6
+ * resolver given (the app's, obtained with `requireDomainResolver` at synth and build time or
7
+ * `loadDomainResolver` at runtime), else the localhost or default built-in.
8
+ */
9
+ export declare const resolveHosts: (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver) => string[];
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveHosts = void 0;
4
+ const quidproquo_core_1 = require("quidproquo-core");
5
+ const getDnsConfig_1 = require("../../../configUtils/dns/getDnsConfig");
6
+ const getDomainResolver_1 = require("../resolver/getDomainResolver");
7
+ const validateResolvedHost_1 = require("../resolver/validateResolvedHost");
8
+ /**
9
+ * One host per declared root, primary first; empty when the service has no domain. Runs the
10
+ * resolver given (the app's, obtained with `requireDomainResolver` at synth and build time or
11
+ * `loadDomainResolver` at runtime), else the localhost or default built-in.
12
+ */
13
+ const resolveHosts = (qpqConfig, target, resolver) => {
14
+ const dns = (0, getDnsConfig_1.getDnsConfig)(qpqConfig);
15
+ if (!dns) {
16
+ return [];
17
+ }
18
+ const activeResolver = (0, getDomainResolver_1.getDomainResolver)(qpqConfig, resolver);
19
+ const environment = quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);
20
+ const feature = quidproquo_core_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig);
21
+ return dns.rootDomains.map((rootDomain) => {
22
+ const scope = { rootDomain, environment, feature, service: target.service, subdomain: target.subdomain };
23
+ return (0, validateResolvedHost_1.validateResolvedHost)(activeResolver.resolveHost(scope), scope);
24
+ });
25
+ };
26
+ exports.resolveHosts = resolveHosts;
27
+ //# sourceMappingURL=resolveHosts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveHosts.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolveHosts.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAE1D,wEAAqE;AAGrE,qEAAkE;AAClE,2EAAwE;AAExE;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,MAAoB,EAAE,QAAyB,EAAY,EAAE;IAC9G,MAAM,GAAG,GAAG,IAAA,2BAAY,EAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,8BAAY,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,8BAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAEpE,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAEzG,OAAO,IAAA,2CAAoB,EAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB","sourcesContent":["import { QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { getDnsConfig } from '../../../configUtils/dns/getDnsConfig';\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { getDomainResolver } from '../resolver/getDomainResolver';\nimport { validateResolvedHost } from '../resolver/validateResolvedHost';\n\n/**\n * One host per declared root, primary first; empty when the service has no domain. Runs the\n * resolver given (the app's, obtained with `requireDomainResolver` at synth and build time or\n * `loadDomainResolver` at runtime), else the localhost or default built-in.\n */\nexport const resolveHosts = (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver): string[] => {\n const dns = getDnsConfig(qpqConfig);\n if (!dns) {\n return [];\n }\n\n const activeResolver = getDomainResolver(qpqConfig, resolver);\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n\n return dns.rootDomains.map((rootDomain) => {\n const scope = { rootDomain, environment, feature, service: target.service, subdomain: target.subdomain };\n\n return validateResolvedHost(activeResolver.resolveHost(scope), scope);\n });\n};\n"]}
@@ -0,0 +1,5 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { DomainResolver } from '../../../domain/types/DomainResolver';
3
+ import { DomainTarget } from '../../../domain/types/DomainTarget';
4
+ /** The host on the primary root, for anything that must bake exactly one absolute URL. Throws without a domain. */
5
+ export declare const resolvePrimaryHost: (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver) => string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvePrimaryHost = void 0;
4
+ const resolveHosts_1 = require("./resolveHosts");
5
+ /** The host on the primary root, for anything that must bake exactly one absolute URL. Throws without a domain. */
6
+ const resolvePrimaryHost = (qpqConfig, target, resolver) => {
7
+ const [primary] = (0, resolveHosts_1.resolveHosts)(qpqConfig, target, resolver);
8
+ if (!primary) {
9
+ throw new Error('resolvePrimaryHost: the service declares no domain (defineDns)');
10
+ }
11
+ return primary;
12
+ };
13
+ exports.resolvePrimaryHost = resolvePrimaryHost;
14
+ //# sourceMappingURL=resolvePrimaryHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePrimaryHost.js","sourceRoot":"","sources":["../../../../../src/domain/logic/host/resolvePrimaryHost.ts"],"names":[],"mappings":";;;AAIA,iDAA8C;AAE9C,mHAAmH;AAC5G,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,MAAoB,EAAE,QAAyB,EAAU,EAAE;IAClH,MAAM,CAAC,OAAO,CAAC,GAAG,IAAA,2BAAY,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B","sourcesContent":["import { QPQConfig } from 'quidproquo-core';\n\nimport { DomainResolver } from '../../../domain/types/DomainResolver';\nimport { DomainTarget } from '../../../domain/types/DomainTarget';\nimport { resolveHosts } from './resolveHosts';\n\n/** The host on the primary root, for anything that must bake exactly one absolute URL. Throws without a domain. */\nexport const resolvePrimaryHost = (qpqConfig: QPQConfig, target: DomainTarget, resolver?: DomainResolver): string => {\n const [primary] = resolveHosts(qpqConfig, target, resolver);\n\n if (!primary) {\n throw new Error('resolvePrimaryHost: the service declares no domain (defineDns)');\n }\n\n return primary;\n};\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './host';
2
+ export * from './origin';
3
+ export * from './resolver';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./host"), exports);
18
+ __exportStar(require("./origin"), exports);
19
+ __exportStar(require("./resolver"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/logic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB;AACzB,6CAA2B","sourcesContent":["export * from './host';\nexport * from './origin';\nexport * from './resolver';\n"]}
@@ -0,0 +1,4 @@
1
+ import { QPQConfig } from 'quidproquo-core';
2
+ import { DomainResolver } from '../../../domain/types/DomainResolver';
3
+ /** Origins allowed on a storage drive's objects: `defineStorageDriveCorsSettings` wins, else the service-scoped default. */
4
+ export declare const getStorageDriveCorsAllowedOrigins: (qpqConfig: QPQConfig, storageDriveName: string, resolver?: DomainResolver) => string[];