@harperfast/harper 5.2.0-alpha.6 → 5.2.0-beta.2

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 (276) hide show
  1. package/bin/cliOperations.ts +76 -12
  2. package/bin/run.ts +10 -0
  3. package/bin/status.ts +1 -1
  4. package/components/Application.ts +146 -83
  5. package/components/Scope.ts +4 -0
  6. package/components/componentLoader.ts +7 -0
  7. package/components/operations.js +21 -1
  8. package/config/configUtils.ts +139 -5
  9. package/config-app.schema.json +70 -0
  10. package/dataLayer/harperBridge/ResourceBridge.ts +7 -0
  11. package/dist/bin/cliOperations.js +76 -12
  12. package/dist/bin/cliOperations.js.map +1 -1
  13. package/dist/bin/run.js +9 -0
  14. package/dist/bin/run.js.map +1 -1
  15. package/dist/bin/status.js +1 -1
  16. package/dist/bin/status.js.map +1 -1
  17. package/dist/components/Application.d.ts +12 -5
  18. package/dist/components/Application.js +121 -60
  19. package/dist/components/Application.js.map +1 -1
  20. package/dist/components/Scope.d.ts +1 -0
  21. package/dist/components/Scope.js +4 -0
  22. package/dist/components/Scope.js.map +1 -1
  23. package/dist/components/componentLoader.js +7 -0
  24. package/dist/components/componentLoader.js.map +1 -1
  25. package/dist/components/operations.js +20 -1
  26. package/dist/components/operations.js.map +1 -1
  27. package/dist/config/configUtils.d.ts +31 -0
  28. package/dist/config/configUtils.js +127 -5
  29. package/dist/config/configUtils.js.map +1 -1
  30. package/dist/dataLayer/harperBridge/ResourceBridge.js +8 -0
  31. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  32. package/dist/resources/DatabaseTransaction.d.ts +12 -0
  33. package/dist/resources/DatabaseTransaction.js +97 -0
  34. package/dist/resources/DatabaseTransaction.js.map +1 -1
  35. package/dist/resources/RequestTarget.js +13 -3
  36. package/dist/resources/RequestTarget.js.map +1 -1
  37. package/dist/resources/Resource.js +21 -2
  38. package/dist/resources/Resource.js.map +1 -1
  39. package/dist/resources/Table.d.ts +3 -1
  40. package/dist/resources/Table.js +48 -5
  41. package/dist/resources/Table.js.map +1 -1
  42. package/dist/resources/analytics/metadata.d.ts +3 -0
  43. package/dist/resources/analytics/metadata.js +3 -0
  44. package/dist/resources/analytics/metadata.js.map +1 -1
  45. package/dist/resources/analytics/write.js +22 -0
  46. package/dist/resources/analytics/write.js.map +1 -1
  47. package/dist/resources/databases.js +21 -0
  48. package/dist/resources/databases.js.map +1 -1
  49. package/dist/resources/defineResource.js +20 -7
  50. package/dist/resources/defineResource.js.map +1 -1
  51. package/dist/resources/jsResource.d.ts +24 -0
  52. package/dist/resources/jsResource.js +58 -2
  53. package/dist/resources/jsResource.js.map +1 -1
  54. package/dist/resources/openApi.js +45 -20
  55. package/dist/resources/openApi.js.map +1 -1
  56. package/dist/resources/scheduler/CronExpression.d.ts +71 -0
  57. package/dist/resources/scheduler/CronExpression.js +367 -0
  58. package/dist/resources/scheduler/CronExpression.js.map +1 -0
  59. package/dist/resources/scheduler/engine.d.ts +91 -0
  60. package/dist/resources/scheduler/engine.js +767 -0
  61. package/dist/resources/scheduler/engine.js.map +1 -0
  62. package/dist/resources/scheduler/scheduler.d.ts +33 -0
  63. package/dist/resources/scheduler/scheduler.js +200 -0
  64. package/dist/resources/scheduler/scheduler.js.map +1 -0
  65. package/dist/security/auth.js +1 -0
  66. package/dist/security/auth.js.map +1 -1
  67. package/dist/security/jsLoader.js +8 -0
  68. package/dist/security/jsLoader.js.map +1 -1
  69. package/dist/security/keys.d.ts +32 -0
  70. package/dist/security/keys.js +147 -0
  71. package/dist/security/keys.js.map +1 -1
  72. package/dist/server/REST.js +67 -1
  73. package/dist/server/REST.js.map +1 -1
  74. package/dist/server/Server.d.ts +6 -0
  75. package/dist/server/Server.js.map +1 -1
  76. package/dist/server/http.d.ts +2 -0
  77. package/dist/server/http.js +139 -14
  78. package/dist/server/http.js.map +1 -1
  79. package/dist/server/operationsServer.js +3 -3
  80. package/dist/server/operationsServer.js.map +1 -1
  81. package/dist/server/serverHelpers/progressEmitter.js +5 -1
  82. package/dist/server/serverHelpers/progressEmitter.js.map +1 -1
  83. package/dist/server/threads/threadServer.js +9 -5
  84. package/dist/server/threads/threadServer.js.map +1 -1
  85. package/dist/sqlEngine/binder/bind.d.ts +72 -0
  86. package/dist/sqlEngine/binder/bind.js +289 -0
  87. package/dist/sqlEngine/binder/bind.js.map +1 -0
  88. package/dist/sqlEngine/config.d.ts +35 -0
  89. package/dist/sqlEngine/config.js +62 -0
  90. package/dist/sqlEngine/config.js.map +1 -0
  91. package/dist/sqlEngine/diff/differential.d.ts +23 -0
  92. package/dist/sqlEngine/diff/differential.js +90 -0
  93. package/dist/sqlEngine/diff/differential.js.map +1 -0
  94. package/dist/sqlEngine/errors.d.ts +22 -0
  95. package/dist/sqlEngine/errors.js +36 -0
  96. package/dist/sqlEngine/errors.js.map +1 -0
  97. package/dist/sqlEngine/executor/runMutation.d.ts +35 -0
  98. package/dist/sqlEngine/executor/runMutation.js +352 -0
  99. package/dist/sqlEngine/executor/runMutation.js.map +1 -0
  100. package/dist/sqlEngine/executor/runSelect.d.ts +7 -0
  101. package/dist/sqlEngine/executor/runSelect.js +14 -0
  102. package/dist/sqlEngine/executor/runSelect.js.map +1 -0
  103. package/dist/sqlEngine/expressions/compile.d.ts +24 -0
  104. package/dist/sqlEngine/expressions/compile.js +326 -0
  105. package/dist/sqlEngine/expressions/compile.js.map +1 -0
  106. package/dist/sqlEngine/functions/aggregates.d.ts +12 -0
  107. package/dist/sqlEngine/functions/aggregates.js +299 -0
  108. package/dist/sqlEngine/functions/aggregates.js.map +1 -0
  109. package/dist/sqlEngine/functions/registry.d.ts +36 -0
  110. package/dist/sqlEngine/functions/registry.js +33 -0
  111. package/dist/sqlEngine/functions/registry.js.map +1 -0
  112. package/dist/sqlEngine/functions/standard.d.ts +9 -0
  113. package/dist/sqlEngine/functions/standard.js +86 -0
  114. package/dist/sqlEngine/functions/standard.js.map +1 -0
  115. package/dist/sqlEngine/index.d.ts +29 -0
  116. package/dist/sqlEngine/index.js +62 -0
  117. package/dist/sqlEngine/index.js.map +1 -0
  118. package/dist/sqlEngine/logical/build.d.ts +20 -0
  119. package/dist/sqlEngine/logical/build.js +326 -0
  120. package/dist/sqlEngine/logical/build.js.map +1 -0
  121. package/dist/sqlEngine/logical/op.d.ts +105 -0
  122. package/dist/sqlEngine/logical/op.js +10 -0
  123. package/dist/sqlEngine/logical/op.js.map +1 -0
  124. package/dist/sqlEngine/optimizer/joinAnalysis.d.ts +37 -0
  125. package/dist/sqlEngine/optimizer/joinAnalysis.js +144 -0
  126. package/dist/sqlEngine/optimizer/joinAnalysis.js.map +1 -0
  127. package/dist/sqlEngine/optimizer/optimize.d.ts +13 -0
  128. package/dist/sqlEngine/optimizer/optimize.js +53 -0
  129. package/dist/sqlEngine/optimizer/optimize.js.map +1 -0
  130. package/dist/sqlEngine/optimizer/ruleEngine.d.ts +7 -0
  131. package/dist/sqlEngine/optimizer/ruleEngine.js +26 -0
  132. package/dist/sqlEngine/optimizer/ruleEngine.js.map +1 -0
  133. package/dist/sqlEngine/optimizer/rules/limitPushdown.d.ts +19 -0
  134. package/dist/sqlEngine/optimizer/rules/limitPushdown.js +55 -0
  135. package/dist/sqlEngine/optimizer/rules/limitPushdown.js.map +1 -0
  136. package/dist/sqlEngine/optimizer/rules/planJoins.d.ts +19 -0
  137. package/dist/sqlEngine/optimizer/rules/planJoins.js +62 -0
  138. package/dist/sqlEngine/optimizer/rules/planJoins.js.map +1 -0
  139. package/dist/sqlEngine/optimizer/rules/predicateNormalize.d.ts +18 -0
  140. package/dist/sqlEngine/optimizer/rules/predicateNormalize.js +80 -0
  141. package/dist/sqlEngine/optimizer/rules/predicateNormalize.js.map +1 -0
  142. package/dist/sqlEngine/optimizer/rules/predicatePushdown.d.ts +11 -0
  143. package/dist/sqlEngine/optimizer/rules/predicatePushdown.js +48 -0
  144. package/dist/sqlEngine/optimizer/rules/predicatePushdown.js.map +1 -0
  145. package/dist/sqlEngine/optimizer/rules/projectionPushdown.d.ts +23 -0
  146. package/dist/sqlEngine/optimizer/rules/projectionPushdown.js +160 -0
  147. package/dist/sqlEngine/optimizer/rules/projectionPushdown.js.map +1 -0
  148. package/dist/sqlEngine/optimizer/rules/sortFromIndex.d.ts +14 -0
  149. package/dist/sqlEngine/optimizer/rules/sortFromIndex.js +49 -0
  150. package/dist/sqlEngine/optimizer/rules/sortFromIndex.js.map +1 -0
  151. package/dist/sqlEngine/optimizer/rules/validateScannable.d.ts +15 -0
  152. package/dist/sqlEngine/optimizer/rules/validateScannable.js +60 -0
  153. package/dist/sqlEngine/optimizer/rules/validateScannable.js.map +1 -0
  154. package/dist/sqlEngine/optimizer/whereToConditions.d.ts +85 -0
  155. package/dist/sqlEngine/optimizer/whereToConditions.js +484 -0
  156. package/dist/sqlEngine/optimizer/whereToConditions.js.map +1 -0
  157. package/dist/sqlEngine/parser/ast.d.ts +139 -0
  158. package/dist/sqlEngine/parser/ast.js +10 -0
  159. package/dist/sqlEngine/parser/ast.js.map +1 -0
  160. package/dist/sqlEngine/parser/normalizer.d.ts +28 -0
  161. package/dist/sqlEngine/parser/normalizer.js +413 -0
  162. package/dist/sqlEngine/parser/normalizer.js.map +1 -0
  163. package/dist/sqlEngine/parser/parse.d.ts +14 -0
  164. package/dist/sqlEngine/parser/parse.js +20 -0
  165. package/dist/sqlEngine/parser/parse.js.map +1 -0
  166. package/dist/sqlEngine/physical/PhysicalDistinct.d.ts +9 -0
  167. package/dist/sqlEngine/physical/PhysicalDistinct.js +29 -0
  168. package/dist/sqlEngine/physical/PhysicalDistinct.js.map +1 -0
  169. package/dist/sqlEngine/physical/PhysicalFilter.d.ts +10 -0
  170. package/dist/sqlEngine/physical/PhysicalFilter.js +25 -0
  171. package/dist/sqlEngine/physical/PhysicalFilter.js.map +1 -0
  172. package/dist/sqlEngine/physical/PhysicalHashAggregate.d.ts +27 -0
  173. package/dist/sqlEngine/physical/PhysicalHashAggregate.js +100 -0
  174. package/dist/sqlEngine/physical/PhysicalHashAggregate.js.map +1 -0
  175. package/dist/sqlEngine/physical/PhysicalHashJoin.d.ts +29 -0
  176. package/dist/sqlEngine/physical/PhysicalHashJoin.js +93 -0
  177. package/dist/sqlEngine/physical/PhysicalHashJoin.js.map +1 -0
  178. package/dist/sqlEngine/physical/PhysicalIndexNestedLoopJoin.d.ts +36 -0
  179. package/dist/sqlEngine/physical/PhysicalIndexNestedLoopJoin.js +78 -0
  180. package/dist/sqlEngine/physical/PhysicalIndexNestedLoopJoin.js.map +1 -0
  181. package/dist/sqlEngine/physical/PhysicalIndexScan.d.ts +22 -0
  182. package/dist/sqlEngine/physical/PhysicalIndexScan.js +77 -0
  183. package/dist/sqlEngine/physical/PhysicalIndexScan.js.map +1 -0
  184. package/dist/sqlEngine/physical/PhysicalLimit.d.ts +5 -0
  185. package/dist/sqlEngine/physical/PhysicalLimit.js +28 -0
  186. package/dist/sqlEngine/physical/PhysicalLimit.js.map +1 -0
  187. package/dist/sqlEngine/physical/PhysicalNestedLoopJoin.d.ts +20 -0
  188. package/dist/sqlEngine/physical/PhysicalNestedLoopJoin.js +51 -0
  189. package/dist/sqlEngine/physical/PhysicalNestedLoopJoin.js.map +1 -0
  190. package/dist/sqlEngine/physical/PhysicalProject.d.ts +18 -0
  191. package/dist/sqlEngine/physical/PhysicalProject.js +117 -0
  192. package/dist/sqlEngine/physical/PhysicalProject.js.map +1 -0
  193. package/dist/sqlEngine/physical/PhysicalQualify.d.ts +13 -0
  194. package/dist/sqlEngine/physical/PhysicalQualify.js +29 -0
  195. package/dist/sqlEngine/physical/PhysicalQualify.js.map +1 -0
  196. package/dist/sqlEngine/physical/PhysicalSort.d.ts +12 -0
  197. package/dist/sqlEngine/physical/PhysicalSort.js +59 -0
  198. package/dist/sqlEngine/physical/PhysicalSort.js.map +1 -0
  199. package/dist/sqlEngine/physical/op.d.ts +11 -0
  200. package/dist/sqlEngine/physical/op.js +9 -0
  201. package/dist/sqlEngine/physical/op.js.map +1 -0
  202. package/dist/sqlEngine/physical/plan.d.ts +23 -0
  203. package/dist/sqlEngine/physical/plan.js +162 -0
  204. package/dist/sqlEngine/physical/plan.js.map +1 -0
  205. package/dist/sqlEngine/router.d.ts +26 -0
  206. package/dist/sqlEngine/router.js +48 -0
  207. package/dist/sqlEngine/router.js.map +1 -0
  208. package/dist/sqlEngine/types.d.ts +37 -0
  209. package/dist/sqlEngine/types.js +13 -0
  210. package/dist/sqlEngine/types.js.map +1 -0
  211. package/dist/sqlTranslator/index.js +7 -1
  212. package/dist/sqlTranslator/index.js.map +1 -1
  213. package/dist/utility/common_utils.js +25 -0
  214. package/dist/utility/common_utils.js.map +1 -1
  215. package/dist/utility/install/installer.d.ts +9 -1
  216. package/dist/utility/install/installer.js +21 -0
  217. package/dist/utility/install/installer.js.map +1 -1
  218. package/dist/validation/configValidator.js +3 -0
  219. package/dist/validation/configValidator.js.map +1 -1
  220. package/dist/validation/deleteValidator.js +10 -2
  221. package/dist/validation/deleteValidator.js.map +1 -1
  222. package/npm-shrinkwrap.json +272 -230
  223. package/package.json +3 -3
  224. package/resources/DESIGN.md +17 -16
  225. package/resources/DatabaseTransaction.ts +95 -0
  226. package/resources/RequestTarget.ts +12 -3
  227. package/resources/Resource.ts +23 -2
  228. package/resources/Table.ts +57 -6
  229. package/resources/analytics/metadata.ts +3 -0
  230. package/resources/analytics/write.ts +23 -0
  231. package/resources/databases.ts +24 -0
  232. package/resources/defineResource.ts +17 -4
  233. package/resources/jsResource.ts +61 -2
  234. package/resources/openApi.ts +44 -19
  235. package/resources/scheduler/CronExpression.ts +394 -0
  236. package/resources/scheduler/engine.ts +812 -0
  237. package/resources/scheduler/scheduler.ts +236 -0
  238. package/security/auth.ts +1 -0
  239. package/security/jsLoader.ts +8 -0
  240. package/security/keys.ts +152 -0
  241. package/server/REST.ts +70 -1
  242. package/server/Server.ts +6 -0
  243. package/server/http.ts +122 -15
  244. package/server/operationsServer.ts +5 -3
  245. package/server/serverHelpers/progressEmitter.ts +5 -1
  246. package/server/threads/threadServer.js +9 -5
  247. package/sqlTranslator/index.ts +16 -6
  248. package/studio/web/assets/{Chat-CTjtL8Z4.js → Chat-DHP4XpID.js} +2 -2
  249. package/studio/web/assets/{Chat-CTjtL8Z4.js.map → Chat-DHP4XpID.js.map} +1 -1
  250. package/studio/web/assets/{FloatingChat-CafHR4Ur.js → FloatingChat-CJ7PssCv.js} +4 -4
  251. package/studio/web/assets/{FloatingChat-CafHR4Ur.js.map → FloatingChat-CJ7PssCv.js.map} +1 -1
  252. package/studio/web/assets/{applications-Buh_q0Vj.js → applications-DxXiGpsR.js} +2 -2
  253. package/studio/web/assets/{applications-Buh_q0Vj.js.map → applications-DxXiGpsR.js.map} +1 -1
  254. package/studio/web/assets/{index-0hXeECkS.js → index-BdbBanDP.js} +6 -6
  255. package/studio/web/assets/{index-0hXeECkS.js.map → index-BdbBanDP.js.map} +1 -1
  256. package/studio/web/assets/{index.lazy-B00B7VBT.js → index.lazy-B2eH28zD.js} +4 -4
  257. package/studio/web/assets/{index.lazy-B00B7VBT.js.map → index.lazy-B2eH28zD.js.map} +1 -1
  258. package/studio/web/assets/{profile-Cg2wwYPn.js → profile-DK5hgucv.js} +2 -2
  259. package/studio/web/assets/{profile-Cg2wwYPn.js.map → profile-DK5hgucv.js.map} +1 -1
  260. package/studio/web/assets/{setComponentFile-DCaDIvyB.js → setComponentFile-BVDWRYxx.js} +2 -2
  261. package/studio/web/assets/{setComponentFile-DCaDIvyB.js.map → setComponentFile-BVDWRYxx.js.map} +1 -1
  262. package/studio/web/assets/{setup-CAVcAQjK.js → setup-DJ9BInoK.js} +2 -2
  263. package/studio/web/assets/{setup-CAVcAQjK.js.map → setup-DJ9BInoK.js.map} +1 -1
  264. package/studio/web/assets/{status-BRXorNdD.js → status-B_qzmgfD.js} +2 -2
  265. package/studio/web/assets/{status-BRXorNdD.js.map → status-B_qzmgfD.js.map} +1 -1
  266. package/studio/web/assets/{swagger-ui-react-Dy1D62vO.js → swagger-ui-react-DOL5jCqg.js} +2 -2
  267. package/studio/web/assets/{swagger-ui-react-Dy1D62vO.js.map → swagger-ui-react-DOL5jCqg.js.map} +1 -1
  268. package/studio/web/assets/{tsMode-A8gbL74v.js → tsMode-DpxUxfTW.js} +2 -2
  269. package/studio/web/assets/{tsMode-A8gbL74v.js.map → tsMode-DpxUxfTW.js.map} +1 -1
  270. package/studio/web/assets/{useEntityRestURL-cDodrVcQ.js → useEntityRestURL-CU_lY6XW.js} +2 -2
  271. package/studio/web/assets/{useEntityRestURL-cDodrVcQ.js.map → useEntityRestURL-CU_lY6XW.js.map} +1 -1
  272. package/studio/web/index.html +1 -1
  273. package/utility/common_utils.ts +26 -0
  274. package/utility/install/installer.ts +26 -1
  275. package/validation/configValidator.ts +3 -0
  276. package/validation/deleteValidator.ts +11 -2
@@ -51,6 +51,8 @@ exports.generateCertsKeys = generateCertsKeys;
51
51
  exports.renewSelfSigned = renewSelfSigned;
52
52
  exports.reviewSelfSignedCert = reviewSelfSignedCert;
53
53
  exports.updateConfigCert = updateConfigCert;
54
+ exports.resolveEffectiveTlsCiphers = resolveEffectiveTlsCiphers;
55
+ exports.getEffectiveTlsCiphers = getEffectiveTlsCiphers;
54
56
  exports.createTLSSelector = createTLSSelector;
55
57
  exports.listCertificates = listCertificates;
56
58
  exports.getPrimaryHostName = getPrimaryHostName;
@@ -795,6 +797,135 @@ if (typeof globalThis.Bun === 'undefined') {
795
797
  };
796
798
  }
797
799
  let caCerts = new Map();
800
+ const SECLEVEL_PATTERN = /@SECLEVEL=(\d+)/i;
801
+ /** Split a cipher string into its suite list and its explicit `@SECLEVEL` (undefined when unset). */
802
+ function parseCipherString(ciphers) {
803
+ const match = SECLEVEL_PATTERN.exec(ciphers);
804
+ return {
805
+ suite: ciphers.replace(SECLEVEL_PATTERN, '').trim() || undefined,
806
+ level: match ? Number(match[1]) : undefined,
807
+ };
808
+ }
809
+ /**
810
+ * Whether a certificate (record or `tls[]` entry) can affect the given listener, mirroring
811
+ * createTLSSelector's tolerant selection: no `uses` is a generic certificate, `'https'` is the
812
+ * legacy generic use, and an authority matters exactly when the listener verifies client chains.
813
+ */
814
+ function ciphersCandidateRelevant(usesRaw, isAuthority, servesCertificate, type, verifiesClientCerts) {
815
+ if (isAuthority && verifiesClientCerts)
816
+ return true;
817
+ if (!servesCertificate)
818
+ return false;
819
+ // normalize: stored as scalar in legacy/manual entries, expected array
820
+ const uses = Array.isArray(usesRaw) ? usesRaw : usesRaw ? [usesRaw] : [];
821
+ return uses.length === 0 || uses.includes(type) || uses.includes('https');
822
+ }
823
+ /**
824
+ * Resolve the single cipher string that actually governs a TLS listener.
825
+ *
826
+ * OpenSSL takes the cipher list — and any `@SECLEVEL=n` embedded in it, which controls
827
+ * client-certificate chain verification — from the context the server was created with. A context
828
+ * swapped in later by the SNI callback does not carry its own cipher list onto the connection,
829
+ * so per-certificate `ciphers` — whether on a `tls` array entry or a certificate record — cannot
830
+ * take effect on their own; a listener has exactly one effective cipher string. Historically only
831
+ * `tls.ciphers ?? tls[0].ciphers` was applied and every other configured value was silently
832
+ * ignored, including a CA record needing a relaxed security level to verify legacy client chains
833
+ * (e.g. SHA-1-signed CAs requiring `DEFAULT@SECLEVEL=0`, which fail with
834
+ * `authorizationError: UNSPECIFIED` at the default level).
835
+ *
836
+ * Resolution composes rather than picks a winner, because `@SECLEVEL` and the suite list are
837
+ * separable OpenSSL commands:
838
+ * 1. Candidates come from the listener's config layers in priority order (`configLayers`, e.g.
839
+ * `operationsApi.tls` before root `tls` — an object's `ciphers` directly, an array's entries
840
+ * filtered by {@link ciphersCandidateRelevant}) and then from relevant certificate records.
841
+ * 2. The suite list comes from the highest-priority suite-bearing candidate — a CA needing a
842
+ * relaxed level must not replace or broaden the listener's configured suites.
843
+ * 3. The security level is the minimum explicit `@SECLEVEL` across candidates (a chain that needs
844
+ * the relaxed level fails outright without it; the others merely also accept it). Candidates
845
+ * without an explicit `@SECLEVEL` keep the runtime default — no level is assumed for them,
846
+ * since the OpenSSL default varies across Node builds.
847
+ * Anything composed across sources or dropped (extra suite lists) is logged as a warning.
848
+ */
849
+ function resolveEffectiveTlsCiphers(configLayers, certRecords, type, verifiesClientCerts) {
850
+ const candidates = [];
851
+ for (const { source, config } of configLayers ?? []) {
852
+ if (!config)
853
+ continue;
854
+ if (Array.isArray(config)) {
855
+ for (let index = 0; index < config.length; index++) {
856
+ const entry = config[index];
857
+ if (!entry?.ciphers)
858
+ continue;
859
+ const isAuthority = Boolean(entry.certificateAuthority);
860
+ const servesCertificate = Boolean(entry.certificate) || !isAuthority;
861
+ if (ciphersCandidateRelevant(entry.uses, isAuthority, servesCertificate, type, verifiesClientCerts)) {
862
+ candidates.push({ source: `${source}[${index}]`, ciphers: entry.ciphers });
863
+ }
864
+ }
865
+ }
866
+ else if (config.ciphers) {
867
+ // an object layer's ciphers is the listener config's own knob — always relevant
868
+ candidates.push({ source: `${source}.ciphers`, ciphers: config.ciphers });
869
+ }
870
+ }
871
+ for (const cert of certRecords ?? []) {
872
+ if (!cert?.ciphers)
873
+ continue;
874
+ // authority records are never served as listener certs — they matter only for verification
875
+ if (ciphersCandidateRelevant(cert.uses, Boolean(cert.is_authority), !cert.is_authority, type, verifiesClientCerts)) {
876
+ candidates.push({ source: `certificate '${cert.name}'`, ciphers: cert.ciphers });
877
+ }
878
+ }
879
+ if (candidates.length === 0)
880
+ return undefined;
881
+ const parsed = candidates.map((candidate) => ({ ...candidate, ...parseCipherString(candidate.ciphers) }));
882
+ const suiteBearing = parsed.filter((candidate) => candidate.suite);
883
+ const suiteSource = suiteBearing[0];
884
+ let levelSource;
885
+ for (const candidate of parsed) {
886
+ if (candidate.level !== undefined && (levelSource === undefined || candidate.level < levelSource.level)) {
887
+ levelSource = candidate;
888
+ }
889
+ }
890
+ // no suite anywhere means a bare @SECLEVEL override — anchor it to DEFAULT
891
+ const suite = suiteSource?.suite ?? 'DEFAULT';
892
+ const effective = levelSource === undefined ? suite : `${suite}@SECLEVEL=${levelSource.level}`;
893
+ const notes = [];
894
+ const droppedSuites = suiteBearing.filter((candidate) => candidate.suite !== suiteSource.suite);
895
+ if (droppedSuites.length) {
896
+ notes.push(`suites from ${suiteSource.source} ('${suiteSource.suite}'); ignoring suite lists from ${droppedSuites
897
+ .map((candidate) => `${candidate.source} ('${candidate.suite}')`)
898
+ .join(', ')}`);
899
+ }
900
+ if (levelSource !== undefined && levelSource.source !== suiteSource?.source) {
901
+ notes.push(`security level ${levelSource.level} required by ${levelSource.source}`);
902
+ }
903
+ if (notes.length) {
904
+ logger.warn?.(`Composed TLS cipher configuration for the '${type}' listener ('${effective}'): ${notes.join('; ')} — a listener has a single effective cipher string`);
905
+ }
906
+ return effective;
907
+ }
908
+ /**
909
+ * Resolve the effective cipher string for a listener from the live config and certificate table.
910
+ * Safe to call before the certificate table exists (install, early boot) — config-only then.
911
+ */
912
+ function getEffectiveTlsCiphers(type, mtlsOptions) {
913
+ let certRecords;
914
+ try {
915
+ certRecords = databases_ts_1.databases?.system?.hdb_certificate?.search([]);
916
+ }
917
+ catch (error) {
918
+ logger.trace?.('Certificate table not available while resolving TLS ciphers', error);
919
+ }
920
+ const configLayers = [];
921
+ // the operations API listener has its own tls section (merged separately by config
922
+ // composition, may inherit the root certificate while overriding ciphers) — it outranks root
923
+ if (type === 'operations-api') {
924
+ configLayers.push({ source: 'operationsApi.tls', config: envManager.get(CONFIG_PARAMS.OPERATIONSAPI_TLS) });
925
+ }
926
+ configLayers.push({ source: 'tls', config: envManager.get('tls') });
927
+ return resolveEffectiveTlsCiphers(configLayers, certRecords, type, Boolean(mtlsOptions));
928
+ }
798
929
  /**
799
930
  * Create a TLS selector that will choose the best TLS configuration/context for a given hostname
800
931
  * @param type
@@ -919,6 +1050,22 @@ function createTLSSelector(type, mtlsOptions, liveReload = true) {
919
1050
  logger.error?.('Error applying TLS for', cert.name, error);
920
1051
  }
921
1052
  }
1053
+ // The listener's cipher string (and its @SECLEVEL, which governs client-cert chain
1054
+ // verification) is fixed at server creation and cannot be swapped by rebuilding SNI
1055
+ // contexts. If a rebuild finds the effective value has changed (e.g. a certificate
1056
+ // record with `ciphers` was added), the listener won't honor it until restart — warn
1057
+ // instead of silently serving with the stale value.
1058
+ if (server && server.appliedCiphers !== undefined) {
1059
+ // use the same verifies-client-certs flag the listener was created with (http servers
1060
+ // derive it from more than the selector's mtlsOptions) so this compares like with like
1061
+ const effectiveCiphers = getEffectiveTlsCiphers(type, server.verifiesClientCerts ?? Boolean(mtlsOptions)) ?? null;
1062
+ // latch per distinct value: rebuilds recur (cert-table changes, key reloads) and the
1063
+ // pending change shouldn't re-warn on every cycle until the restart happens
1064
+ if (effectiveCiphers !== server.appliedCiphers && server.lastWarnedCiphers !== effectiveCiphers) {
1065
+ server.lastWarnedCiphers = effectiveCiphers;
1066
+ logger.warn?.(`TLS cipher configuration for the '${type}' listener is now '${effectiveCiphers}' but the listener was started with '${server.appliedCiphers}' — a restart is required to apply it`);
1067
+ }
1068
+ }
922
1069
  server?.secureContextsListeners.forEach((listener) => listener());
923
1070
  resolve(defaultContext);
924
1071
  }
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../security/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../security/keys.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.handleApplication = handleApplication;
37
37
  exports.parseHeaderValue = parseHeaderValue;
38
+ const promises_1 = require("node:fs/promises");
39
+ const node_path_1 = require("node:path");
38
40
  const contentTypes_ts_1 = require("../server/serverHelpers/contentTypes.js");
39
41
  const write_ts_1 = require("../resources/analytics/write.js");
40
42
  const harperLogger = __importStar(require("../utility/logging/harper_logger.js"));
@@ -44,6 +46,10 @@ const IterableEventQueue_ts_1 = require("../resources/IterableEventQueue.js");
44
46
  const transaction_ts_1 = require("../resources/transaction.js");
45
47
  const Headers_ts_1 = require("../server/serverHelpers/Headers.js");
46
48
  const openApi_ts_1 = require("../resources/openApi.js");
49
+ const configUtils_ts_1 = require("../config/configUtils.js");
50
+ const hdbTerms_ts_1 = require("../utility/hdbTerms.js");
51
+ const Application_ts_1 = require("../components/Application.js");
52
+ const requestRestart_ts_1 = require("../components/requestRestart.js");
47
53
  const Request_ts_1 = require("../server/serverHelpers/Request.js");
48
54
  const RequestTarget_1 = require("../resources/RequestTarget");
49
55
  const RecordEncoder_ts_1 = require("../resources/RecordEncoder.js");
@@ -104,6 +110,46 @@ function finalizeResponse(responseData, headers, status, request) {
104
110
  responseData.status ??= status ?? 200;
105
111
  return responseData;
106
112
  }
113
+ /**
114
+ * A component deployed to disk (via `deploy_component`) but not yet loaded into this
115
+ * server's live router — because Harper hasn't restarted since — produces a route miss
116
+ * indistinguishable from a URL that never existed. If the URL's first segment names a
117
+ * components-root directory, surface that distinction instead of a generic 404 (harper#674).
118
+ * `name` is decoded and checked for path-traversal characters before being joined into a
119
+ * filesystem path. Uses `stat`/`isDirectory` (not `access`) so a stray non-directory file
120
+ * directly under the components root (e.g. `README.md`, `.DS_Store`) can't be mistaken for
121
+ * a deployed component.
122
+ */
123
+ async function findInactiveComponent(url) {
124
+ const firstSegment = url.split(/[/?]/, 1)[0];
125
+ if (!firstSegment)
126
+ return undefined;
127
+ let name;
128
+ try {
129
+ name = decodeURIComponent(firstSegment);
130
+ }
131
+ catch {
132
+ return undefined;
133
+ }
134
+ if (!name ||
135
+ name === '.' ||
136
+ name === '..' ||
137
+ name === 'node_modules' ||
138
+ name === Application_ts_1.ASIDE_STAGING_DIR ||
139
+ name.includes('/') ||
140
+ name.includes('\\'))
141
+ return undefined;
142
+ const componentsRoot = (0, configUtils_ts_1.getConfigPath)(hdbTerms_ts_1.CONFIG_PARAMS.COMPONENTSROOT);
143
+ if (!componentsRoot || typeof componentsRoot !== 'string')
144
+ return undefined;
145
+ try {
146
+ const stats = await (0, promises_1.stat)((0, node_path_1.join)(componentsRoot, name));
147
+ return stats.isDirectory() ? name : undefined;
148
+ }
149
+ catch {
150
+ return undefined;
151
+ }
152
+ }
107
153
  async function http(request, nextHandler) {
108
154
  const headersObject = request.headers.asObject;
109
155
  const isSse = headersObject.accept === 'text/event-stream';
@@ -120,8 +166,28 @@ async function http(request, nextHandler) {
120
166
  let resource;
121
167
  if (url !== OPENAPI_DOMAIN) {
122
168
  const entry = resources.getMatch(url, isSse ? 'sse' : 'rest');
123
- if (!entry)
169
+ if (!entry) {
170
+ // Only surface the actionable "needs a restart" 404 when a restart is genuinely
171
+ // pending — i.e. a component was deployed (restart:false) since this server last
172
+ // loaded its routes, so restartNeeded() is set. Without a pending restart, a
173
+ // directory under componentsRoot is either an already-active component (which would
174
+ // have matched a route above) or not a live component at all, so fall back to the
175
+ // generic 404 rather than claiming a restart would activate it. (harper#674)
176
+ //
177
+ // Also gated on an authenticated super_user: this check runs before any resource is
178
+ // matched, so no auth gate has run yet for this request. Only reveal the actionable
179
+ // message to a super_user — otherwise a caller could use the response difference
180
+ // (actionable vs. generic 404) as an oracle to probe which component directories
181
+ // exist on disk. `getComponents` (utility/operation_authorization.ts) already treats
182
+ // "which components are deployed" as super_user-only information; match that here.
183
+ if ((0, requestRestart_ts_1.restartNeeded)() && request?.user?.role?.permission?.super_user) {
184
+ const inactiveComponent = await findInactiveComponent(url);
185
+ if (inactiveComponent) {
186
+ throw new hdbError_ts_1.ClientError(`Component '${inactiveComponent}' is deployed but Harper may need to be restarted before its routes are active.`, 404);
187
+ }
188
+ }
124
189
  return nextHandler(request); // no resource handler found
190
+ }
125
191
  request.handlerPath = entry.path;
126
192
  target = new RequestTarget_1.RequestTarget(entry.relativeURL); // TODO: We don't want to have to remove the forward slash and then re-add it
127
193
  if (entry.params)
@@ -1 +1 @@
1
- {"version":3,"file":"REST.js","sourceRoot":"","sources":["../../server/REST.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2UA,8CAgHC;AAaD,4CA2BC;AAneD,6EAAuG;AACvG,8DAAyG;AACzG,kFAAoE;AACpE,+DAAyE;AAEzE,0DAAmF;AACnF,8EAAwE;AACxE,gEAA0D;AAC1D,mEAA2E;AAC3E,wDAA0D;AAE1D,mEAA6D;AAC7D,8DAA2D;AAC3D,oEAAyD;AAEzD,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;AACpD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAI,WAAW,GAAG,EAAE,CAAC;AAErB,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAC/D,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,uCAAuC;QACvC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,2BAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,sFAAsF;QACtF,0FAA0F;QAC1F,sFAAsF;QACtF,yFAAyF;QACzF,6FAA6F;QAC7F,8FAA8F;QAC9F,uFAAuF;QACvF,uFAAuF;QACvF,6FAA6F;QAC7F,2FAA2F;QAC3F,0FAA0F;QAC1F,8FAA8F;QAC9F,kFAAkF;QAClF,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAChG,CAAC;IACD,8BAA8B;IAC9B,MAAM,eAAe,GAAG,IAAA,yBAAY,EAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,YAAY,CAAC,OAAO,KAAK,eAAe;QAC3C,iHAAiH;QACjH,yDAAyD;QACzD,YAAY,CAAC,OAAO,GAAG,eAAe,CAAC;IACxC,kDAAkD;IAClD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,IAAS,CAAC;QACd,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;YAC5B,6EAA6E;YAC7E,IAAI,GAAG,IAAA,2BAAS,EAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,iHAAiH;YACjH,uDAAuD;YACvD,IAAI,GAAG,IAAA,2BAAS,EAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACV,YAAY,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACrF,CAAC;IACF,CAAC;IACD,YAAY,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC;IACtC,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,OAAgB,EAAE,WAAW;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,KAAK,mBAAmB,CAAC;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,oBAAO,EAAE,CAAC;IAC9B,IAAI,CAAC;QACJ,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG;YAClB,MAAM,EAAE,SAAS;YACjB,OAAO;SACP,CAAC;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,MAAqB,CAAC;QAC1B,IAAI,QAAyB,CAAC;QAC9B,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK;gBAAE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B;YACrE,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;YACjC,MAAM,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,6EAA6E;YAC5H,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,qDAAqD;YAE3G,MAAc,CAAC,KAAK,GAAG,IAAI,CAAC;YAC7B,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC3B,CAAC;QACD,IAAK,QAAgB,EAAE,SAAS,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;YACpD,IAAI,YAAY,EAAE,CAAC;gBAClB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAmB,CAAC,CAAC;gBAChE,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;oBACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,SAAS;4BACb,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BACnD,MAAM;wBACP,KAAK,gBAAgB;4BACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;4BAC5B,MAAM;wBACP,KAAK,UAAU;4BACd,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;4BACvB,MAAM;wBACP,KAAK,UAAU;4BACd,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;4BAC5B,MAAM;wBACP,KAAK,gBAAgB;4BACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;4BAC5B,MAAM;wBACP,KAAK,iBAAiB;4BACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;4BAC9B,MAAM;oBACR,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QACD,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;gBACrE,mFAAmF;gBACnF,2GAA2G;gBAC3G,qFAAqF;gBACrF,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;oBAC3D,OAAO,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnD,CAAC;gBACD,OAAO,IAAI,CAAC,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,WAAW;gBAClB,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/F,CAAC;QACD,MAAM,aAAa,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,YAAY,GAAG,MAAM,IAAA,4BAAW,EAAC,OAAO,EAAE,GAAG,EAAE;YAClD,IAAI,aAAa,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC3E,sFAAsF;gBACtF,IAAI,CAAC;oBACJ,OAAO,CAAC,IAAI,GAAI,IAAA,iCAAe,EAAC,aAAa,CAAC,cAAc,CAAQ,EAAE,IAAI,CAAS,CAClF,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,CACf,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,IAAI,yBAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC;YACD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YAEzB,IAAI,GAAG,KAAK,cAAc,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBAChD,MAAM,GAAG,EAAS,CAAC;gBACnB,IAAI,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;oBACjD,OAAO,IAAA,4BAAe,EAAC,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,yBAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC;YACD,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;YAE9D,QAAQ,MAAM,EAAE,CAAC;gBAChB,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM;oBACV,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACtF,KAAK,MAAM;oBACV,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACvG,KAAK,KAAK;oBACT,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpG,KAAK,QAAQ;oBACZ,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC/F,KAAK,OAAO;oBACX,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC1G,KAAK,SAAS,EAAE,0BAA0B;oBACzC,OAAO,CAAC,SAAS,CAChB,OAAO,EACP,IAAA,4BAAc,EAAC,QAAQ,CAAC;yBACtB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;yBACrC,IAAI,CAAC,IAAI,CAAC,CACZ,CAAC;oBACF,OAAO;gBACR,KAAK,SAAS;oBACb,+BAA+B;oBAC/B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACxG,KAAK,OAAO;oBACX,OAAO,kCAAkC,CAAC;gBAC3C,KAAK,OAAO;oBACX,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC1G,KAAK,MAAM,EAAE,yCAAyC;oBACrD,OAAO,QAAQ,CAAC,IAAI;wBACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC;wBAC3D,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACpC,KAAK,MAAM;oBACV,OAAO,QAAQ,CAAC,IAAI;wBACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC;wBAC3D,CAAC,CAAC,IAAA,2BAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACpC,KAAK,MAAM,EAAE,WAAW;oBACvB,MAAM,IAAI,yBAAW,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;gBAC/E;oBACC,MAAM,IAAI,yBAAW,CAAC,UAAU,MAAM,oBAAoB,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;QACF,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,IAAI,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5C,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,KAAK,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,iEAAiE;YACjE,IAAK,WAAmB,CAAC,YAAY,IAAI,QAAQ,CAAC,gBAAgB,CAAC;gBAClE,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACjC,oGAAoG;YACpG,OAAO,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;YAChC,+EAA+E;YAC/E,0BAA0B;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAC/B,EAAE,EACF,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAC1B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EACvD,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EACvD,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EACxB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAC1B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EACvD,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EACvD,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EACxB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAC1B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EACvD,EAAE,CACF,CAAC;YACF,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAClC,IAAI,YAAY,EAAE,MAAM;oBAAE,YAAY,CAAC,MAAM,EAAE,CAAC;gBAChD,MAAM,GAAG,GAAG,CAAC;gBACb,YAAY,GAAG,SAAS,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,IAAK,WAAmB,CAAC,YAAY;gBACpC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,OAAO,CAAC,eAAe;YAAE,MAAM,GAAG,GAAG,CAAC;QAC1C,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5E,MAAM,cAAc,GAAG;YACtB,MAAM,EAAE,MAAM,IAAI,GAAG;YACrB,OAAO;YACP,IAAI,EAAE,SAAS;SACf,CAAC;QACF,6FAA6F;QAC7F,0FAA0F;QAC1F,4FAA4F;QAC5F,uFAAuF;QACvF,yFAAyF;QACzF,mCAAmC;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;YAC9D,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;YAC7C,IAAI,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,GAAG,EAAE,CAAC;gBACtD,MAAM,YAAY,GAAI,QAAgB,EAAE,YAAY,CAAC;gBACrD,0FAA0F;gBAC1F,IAAI,YAAY;oBAAE,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YACpE,CAAC;QACF,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACjD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACpC,mDAAmD;YAClD,cAAsB,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC,oCAAoC;YAC7F,IAAI,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACzG,CAAC;QACF,CAAC;QACD,2BAA2B;QAC3B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,cAAc,CAAC,IAAI,GAAG,IAAA,2BAAS,EAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACvE,IAAI,MAAM,KAAK,MAAM;gBAAE,cAAc,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,wEAAwE;QACjI,CAAC;QACD,OAAO,cAAc,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,KAAK,KAAK,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,8EAA8E;QAC9E,IAAI,KAAK,YAAY,QAAQ;YAAE,OAAO,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzG,8GAA8G;QAC9G,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7E,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,UAAU,KAAK,GAAG;gBAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;;gBACzD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,CAAC,MAAM;oBAAE,KAAK,CAAC,OAAO,IAAI,0BAA0B,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;gBAChG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;oBAC7C,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1F,CAAC;YACF,CAAC;QACF,CAAC;;YAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9C,2BAA2B;QAC3B,MAAM,MAAM,GAAG,UAAU,IAAI,GAAG,CAAC;QACjC,sHAAsH;QACtH,0DAA0D;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QAClD,MAAM,aAAa,GAAG;YACrB,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,6DAA6D;YACpF,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;YACxC,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,OAAO,CAAC,GAAG;SACrB,CAAC;QAEF,MAAM,cAAc,GAAG;YACtB,MAAM;YACN,OAAO;YACP,IAAI,EAAE,SAAS;SACf,CAAC;QACF,cAAc,CAAC,IAAI,GAAG,IAAA,2BAAS,EAAC,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC;IACvB,CAAC;AACF,CAAC;AAED,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,IAAI,SAAoB,CAAC;AACzB,IAAI,YAAY,CAAC;AACjB,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,SAAgB,iBAAiB,CAAC,KAA6C;IAC9E,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACrC,IAAK,WAAmB,CAAC,oCAAoC,EAAE,CAAC;QAC/D,iEAAiE;QAChE,oBAAO,CAAC,SAAiB,CAAC,oCAAoC,GAAG,IAAI,CAAC;IACxE,CAAC;IACD,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC5B,IAAI,OAAO;QAAE,OAAO;IACpB,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAChB,KAAK,EAAE,OAAY,EAAE,WAAW,EAAE,EAAE;QACnC,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO;QAChC,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC,EACD,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAI,WAAmB,EAAE,CACpD,CAAC;IACF,IAAK,WAAmB,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO;IACrD,KAAK,CAAC,MAAM,CAAC,EAAE,CACd,KAAK,EAAE,EAAE,EAAE,OAAY,EAAE,eAAe,EAAE,EAAE;QAC3C,eAAe,EAAE,CAAC;QAClB,MAAM,gBAAgB,GAAG,IAAI,0CAAkB,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,YAAY,GAAG,IAAI,CAAC;YACpB,IAAA,+BAAoB,EAAC,CAAC,OAAO,EAAE,EAAE;gBAChC,IAAI,eAAe,GAAG,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC;wBACZ,MAAM,EAAE,gBAAgB;wBACxB,WAAW,EAAE,eAAe;wBAC5B,QAAQ,EAAE,IAAI;qBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,IAAI,QAAQ,CAAC;QACZ,EAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,QAAQ,GAAG,IAAI,CAAC;YAChB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,YAAY,CAAC;QAChB,EAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,OAAO,CAAC,IAAI;YAC9C,IAAI,CAAC,YAAY;gBAChB,YAAY,GAAG,IAAA,iCAAe,EAC7B,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EACxE,KAAK,CACL,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAChC,IAAA,uBAAY,EAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAClF,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC;QACZ,EAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC5B,eAAe,EAAE,CAAC;YAClB,IAAA,6BAAkB,EAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAChE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,QAAQ;gBAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACJ,MAAM,eAAe,CAAC;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAA,6BAAkB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,sGAAsG;gBACtG,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,mCAAmC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;gBACjC,IAAA,uBAAY,EACX,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,eAAe;iBACtB,CAAC,EACF,aAAa,EACb,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,IAAI,CACJ,CAAC;gBACF,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,MAAM,eAAe,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,6EAA6E;gBAC3I,IAAI,KAAK,CAAC,MAAM;oBAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmC;gBACnG,eAAe,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;gBACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAChC,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAW,EAAC,OAAO,EAAE,GAAG,EAAE;oBACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;gBACH,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAElD,IAAI,MAAM,CAAC;gBACX,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC/C,MAAM,aAAa,GAAG,MAAM,IAAA,kCAAgB,EAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACpE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACvB,IAAA,uBAAY,EAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBACvF,IAAK,EAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;wBAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAE,EAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5E,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACtB,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG;oBAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;;oBAC/D,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,CAAC;;gBAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,EAAE,CAAC,KAAK,CACP,6BAA6B,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,+BAA+B;gBACjF,IAAI,EAAE,mCAAmC;YAC1C,aAAa,CAAC,KAAK,CAAC,CACpB,CAAC;QACH,CAAC;QACD,EAAE,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC,EACD,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAI,WAAmB,EAAE,CACpD,CAAC;AACH,CAAC;AACD,MAAM,6BAA6B,GAAG;IACrC,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;CACT,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC7C,OAAO,KAAK;SACV,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,MAAM,CAAC;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC;QACd,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACvC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChD,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,KAAK;oBAAE,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChC,MAAM,GAAG;oBACR,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;oBACxB,KAAK;oBACL,IAAI,EAAE,MAAM;iBACZ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,GAAG;oBACR,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE;oBAC7B,IAAI,EAAE,MAAM;iBACZ,CAAC;YACH,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"REST.js","sourceRoot":"","sources":["../../server/REST.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,12 @@ export interface HttpOptions extends ServerOptions {
78
78
  headers?: boolean;
79
79
  };
80
80
  lastModified?: boolean;
81
+ /**
82
+ * Header name -> value, applied as defaults to HTTP responses on app ports (e.g.
83
+ * X-Frame-Options, X-Content-Type-Options). A header the application/route already set
84
+ * on a response always takes precedence over the configured value.
85
+ */
86
+ securityHeaders?: Record<string, string | number | boolean>;
81
87
  }
82
88
  export interface ContentTypeHandler {
83
89
  serialize(data: any): Buffer | string;
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../server/Server.ts"],"names":[],"mappings":";;;AACA,8CAAqD;AAgGxC,QAAA,MAAM,GAAW;IAC7B,WAAW,EAAE;QACZ,kBAAkB,CAAC,SAAS,EAAE,QAAQ;YACrC,OAAO,SAAS,CAAC,UAAU;gBAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAC3D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,cAAc,CAAC,SAAS;YACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;QACD,mBAAmB;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAClE,CAAC;KACD;CACM,CAAC;AACT,IAAA,iCAAoB,EAAC,QAAQ,EAAE,cAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../server/Server.ts"],"names":[],"mappings":";;;AACA,8CAAqD;AAsGxC,QAAA,MAAM,GAAW;IAC7B,WAAW,EAAE;QACZ,kBAAkB,CAAC,SAAS,EAAE,QAAQ;YACrC,OAAO,SAAS,CAAC,UAAU;gBAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAC3D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,cAAc,CAAC,SAAS;YACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;QACD,mBAAmB;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAClE,CAAC;KACD;CACM,CAAC;AACT,IAAA,iCAAoB,EAAC,QAAQ,EAAE,cAAM,CAAC,CAAC"}
@@ -11,6 +11,8 @@ export declare function cleanupUdsFiles(): void;
11
11
  export declare function writeUdsMetadata(yamlPath: string, port: number | string, secureServer: any, protocol?: string): void;
12
12
  /** Clean all files in the sockets directory. Call from main thread on process startup. */
13
13
  export declare function cleanupSocketsDirectory(): void;
14
+ /** Test seam: reset the module-level guard so tests can re-invoke handleApplication. */
15
+ export declare function _resetSecurityHeadersOwnedForTest(): void;
14
16
  export declare function handleApplication(scope: Scope): void;
15
17
  export declare function getHttpOptions(): HttpOptions;
16
18
  export declare function deliverSocket(fdOrSocket: any, port: any, data: any): any;