@harperfast/harper 5.2.12 → 5.2.14

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 (269) hide show
  1. package/components/Application.ts +7 -7
  2. package/components/componentLoader.ts +70 -33
  3. package/dist/components/Application.js +1 -7
  4. package/dist/components/Application.js.map +1 -1
  5. package/dist/components/componentLoader.d.ts +6 -0
  6. package/dist/components/componentLoader.js +60 -31
  7. package/dist/components/componentLoader.js.map +1 -1
  8. package/dist/resources/RocksTransactionLogStore.d.ts +4 -2
  9. package/dist/resources/RocksTransactionLogStore.js +12 -6
  10. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  11. package/dist/resources/Table.d.ts +2 -2
  12. package/dist/resources/Table.js +222 -65
  13. package/dist/resources/Table.js.map +1 -1
  14. package/dist/resources/replayLogs.js +25 -21
  15. package/dist/resources/replayLogs.js.map +1 -1
  16. package/dist/resources/transactionBroadcast.js +4 -6
  17. package/dist/resources/transactionBroadcast.js.map +1 -1
  18. package/dist/security/certificateVerification/index.js +40 -11
  19. package/dist/security/certificateVerification/index.js.map +1 -1
  20. package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
  21. package/dist/security/certificateVerification/trustedIssuers.js +79 -0
  22. package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
  23. package/dist/security/certificateVerification/types.d.ts +1 -0
  24. package/dist/security/keys.js +4 -0
  25. package/dist/security/keys.js.map +1 -1
  26. package/dist/server/loadRootComponents.js +4 -2
  27. package/dist/server/loadRootComponents.js.map +1 -1
  28. package/dist/server/threads/manageThreads.d.ts +1 -0
  29. package/dist/server/threads/manageThreads.js +175 -24
  30. package/dist/server/threads/manageThreads.js.map +1 -1
  31. package/dist/utility/errors/hdbError.d.ts +8 -0
  32. package/dist/utility/errors/hdbError.js +29 -0
  33. package/dist/utility/errors/hdbError.js.map +1 -1
  34. package/npm-shrinkwrap.json +2 -2
  35. package/package.json +1 -1
  36. package/resources/DESIGN.md +5 -0
  37. package/resources/RocksTransactionLogStore.ts +12 -6
  38. package/resources/Table.ts +216 -66
  39. package/resources/replayLogs.ts +25 -22
  40. package/resources/transactionBroadcast.ts +4 -4
  41. package/security/certificateVerification/index.ts +54 -13
  42. package/security/certificateVerification/trustedIssuers.ts +76 -0
  43. package/security/certificateVerification/types.ts +1 -0
  44. package/security/keys.ts +3 -0
  45. package/server/DESIGN.md +14 -13
  46. package/server/loadRootComponents.js +9 -2
  47. package/server/threads/manageThreads.js +176 -23
  48. package/studio/web/404.html +79 -0
  49. package/studio/web/assets/{Chat-CokJOjyX.js → Chat-C97PMlIn.js} +274 -247
  50. package/studio/web/assets/FloatingChat-BUlsFGMV.js +23 -0
  51. package/studio/web/assets/_basePickBy-QJXUw_pr.js +1 -0
  52. package/studio/web/assets/_baseUniq-DR4vVjyC.js +1 -0
  53. package/studio/web/assets/{abnfDiagram-VCTEODGH-B0BebmD2.js → abnfDiagram-O67JEVCF-DpPZWMOf.js} +1 -1
  54. package/studio/web/assets/{alertDialog-CQyAJJhl.js → alertDialog-UrbiMgQt.js} +1 -1
  55. package/studio/web/assets/{apiToken-B_g12QrM.js → apiToken-CPhbc_zN.js} +1 -1
  56. package/studio/web/assets/applications-D3Z6BVDl.js +296 -0
  57. package/studio/web/assets/architecture-7GRP2DOG-11l4Ny1l.js +1 -0
  58. package/studio/web/assets/architectureDiagram-NJMV4G6O-OmgLraID.js +36 -0
  59. package/studio/web/assets/authStore-5jSS5pTW.js +3 -0
  60. package/studio/web/assets/{blockDiagram-I7D4REHJ-BqguiadH.js → blockDiagram-BEXU5L5S-Cv7CD3Ai.js} +15 -4
  61. package/studio/web/assets/{button-BIsUKRZq.js → button-MFP9n8Ck.js} +1 -1
  62. package/studio/web/assets/c4Diagram-YGBWAQC7-Ds1vKYnN.js +38 -0
  63. package/studio/web/assets/channel-BDtouPd6.js +1 -0
  64. package/studio/web/assets/chevron-up-CFe8x5Bp.js +1 -0
  65. package/studio/web/assets/chunk-3FUC2YCW-DpnBPH8B.js +2 -0
  66. package/studio/web/assets/{chunk-GVQU2GXP-sbwVIQ8i.js → chunk-5DYCD2WN-LLLCQSzg.js} +1 -1
  67. package/studio/web/assets/{chunk-PWAF6VOD-1z1THyS5.js → chunk-742MDFTN-BL8J_pIO.js} +1 -1
  68. package/studio/web/assets/chunk-7INBJB4K-C-hJHiiK.js +62 -0
  69. package/studio/web/assets/chunk-7M6MHVWA-C6ZqkFbA.js +213 -0
  70. package/studio/web/assets/chunk-7PRAP22T-CUXM8BG6.js +1 -0
  71. package/studio/web/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
  72. package/studio/web/assets/{chunk-FOHPRMQF-DHwB1DNv.js → chunk-FOHPRMQF-DzxwRta7.js} +9 -9
  73. package/studio/web/assets/{chunk-SVP7TREG-jtdAHw0S.js → chunk-GTNCS2PH-DJ2BFvS1.js} +1 -1
  74. package/studio/web/assets/{chunk-F27PBJKO-BVA5EPhV.js → chunk-GWA4HPMP-C42bSqLL.js} +1 -1
  75. package/studio/web/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
  76. package/studio/web/assets/chunk-MBY4JIJT-C-5jz6Lo.js +72 -0
  77. package/studio/web/assets/chunk-NETBCI7D-D-bzlN4r.js +1 -0
  78. package/studio/web/assets/chunk-O7XYJQB3-ep14zA23.js +128 -0
  79. package/studio/web/assets/chunk-UA2S7LBM-BMRWRHED.js +1 -0
  80. package/studio/web/assets/{chunk-POPQ4Y6H-ClWhhkwW.js → chunk-WEXAMYUT-DdLYVdX1.js} +1 -1
  81. package/studio/web/assets/{chunk-XXDRQBXY-BoGZu3HH.js → chunk-XXDRQBXY-CbPh2l8S.js} +1 -1
  82. package/studio/web/assets/{chunk-OSK3NFVY-ByciRftO.js → chunk-Z7XXMR3K-BmKEDjcP.js} +3 -3
  83. package/studio/web/assets/{chunk-75Z2AOVW-QGQD6th2.js → chunk-ZIGJFQKS-DLZgdNxA.js} +2 -2
  84. package/studio/web/assets/classDiagram-v2-NBCMYWYE-DOI5vgKT.js +217 -0
  85. package/studio/web/assets/cose-bilkent-JH36ORCC-BSOszL11.js +1 -0
  86. package/studio/web/assets/createLucideIcon-bziYxJli.js +1 -0
  87. package/studio/web/assets/{css.worker-BD9HbRGW.js → css.worker-l1psR_wG.js} +13 -10
  88. package/studio/web/assets/{cssMode-DAjzPoBf.js → cssMode-DyLZPMjo.js} +1 -1
  89. package/studio/web/assets/cynefin-OW5HDTMX-BSW-DB7S.js +1 -0
  90. package/studio/web/assets/cynefinDiagram-VND7K2PF-CbAHEwxt.js +62 -0
  91. package/studio/web/assets/cytoscape.esm-BZkf-uXn.js +321 -0
  92. package/studio/web/assets/dagre-6A5THRUB-Csxewgs4.js +4 -0
  93. package/studio/web/assets/diagram-22UHCM2B-a0rt8tY4.js +200 -0
  94. package/studio/web/assets/{diagram-VX7I27RA-DccVJet6.js → diagram-3UASUU5V-lEj2SVNh.js} +2 -2
  95. package/studio/web/assets/{diagram-VSXAHHWV-fhEdmkwM.js → diagram-ATOU4E4O-HcrAeB-q.js} +3 -3
  96. package/studio/web/assets/{diagram-S7CK7UJ4-aoCVTtcy.js → diagram-CDSNMT55-CYxiuyEx.js} +3 -3
  97. package/studio/web/assets/{diagram-Z3DM3KII-D-RyJJb7.js → diagram-MLGK6HIB-ChbCJTgJ.js} +1 -1
  98. package/studio/web/assets/diagram-MPIPVDR6-DaX9Y-N3.js +41 -0
  99. package/studio/web/assets/dialog-DTepachC.js +1 -0
  100. package/studio/web/assets/{dist-kYfyPZP9.js → dist-BRuBKNNy.js} +1 -1
  101. package/studio/web/assets/{dist-DP8UjMB_.js → dist-Cz2Y6-6G.js} +2 -2
  102. package/studio/web/assets/download-CtostjYn.js +1 -0
  103. package/studio/web/assets/{ebnfDiagram-PWID7BFC-DJGpIpz_.js → ebnfDiagram-ZINNZB2B-CwAsENB1.js} +1 -1
  104. package/studio/web/assets/{editor-VUNQ-5Ye.js → editor-CFQ5kbiT.js} +1 -1
  105. package/studio/web/assets/editor.worker-CkkvdXvO.js +33 -0
  106. package/studio/web/assets/elk-276RUBZZ-Hexg9E4D.js +27 -0
  107. package/studio/web/assets/{erDiagram-RLTQ6QDP-CIfNlgkC.js → erDiagram-OPXOYQCR-CeC-wwO1.js} +15 -15
  108. package/studio/web/assets/eventmodeling-NTZA5JFV-CFb03e0o.js +1 -0
  109. package/studio/web/assets/flowDiagram-KWPJA3E3-Cidi00_Y.js +1 -0
  110. package/studio/web/assets/{ganttDiagram-EL5Y4UJY-BxToTzzD.js → ganttDiagram-FUAMR5RP-C2_Hhl1-.js} +2 -2
  111. package/studio/web/assets/{getAnalytics-GHK8ORfM.js → getAnalytics-CjthMQqF.js} +1 -1
  112. package/studio/web/assets/gitGraph-4MIJSDKK-xIk5Vuew.js +1 -0
  113. package/studio/web/assets/{gitGraphDiagram-WWUBYQGX-Dwntd4-x.js → gitGraphDiagram-X574FWY7-CMxJ34up.js} +4 -4
  114. package/studio/web/assets/graphlib-C9Tl7QrK.js +1 -0
  115. package/studio/web/assets/{html-CFqhtdfa.js → html-DdMBJEGu.js} +1 -1
  116. package/studio/web/assets/{html.worker-DsMmVtuG.js → html.worker-DdwM4IrA.js} +12 -9
  117. package/studio/web/assets/{htmlMode-CpgOTfjz.js → htmlMode-DNtBx3OV.js} +1 -1
  118. package/studio/web/assets/index-CPoDzQTe.css +1 -0
  119. package/studio/web/assets/index-zZCxAIEb.js +824 -0
  120. package/studio/web/assets/index.lazy-CKbsHbSN.js +2 -0
  121. package/studio/web/assets/info-A6RAGUB7-o49TEbj-.js +1 -0
  122. package/studio/web/assets/infoDiagram-VRGFBTTK-Cjhh7yzZ.js +2 -0
  123. package/studio/web/assets/{ishikawaDiagram-5VMMS53U-D9Xh2r6X.js → ishikawaDiagram-OU5B5YK6-C63aXRmh.js} +2 -2
  124. package/studio/web/assets/{javascript-9l5JXJwc.js → javascript-Dy6KbeHT.js} +1 -1
  125. package/studio/web/assets/{journeyDiagram-3NMN7TZE-CokIi6ll.js → journeyDiagram-ZHPQQLJL-D_o0P5Mu.js} +3 -3
  126. package/studio/web/assets/json.worker-CSi2hF-a.js +65 -0
  127. package/studio/web/assets/{jsonMode-BJBH-iR0.js → jsonMode-BiuDVrzl.js} +1 -1
  128. package/studio/web/assets/{kanban-definition-UXKFOSKX-CukSFJfX.js → kanban-definition-PNTS6WVX-CTI9SSxY.js} +7 -7
  129. package/studio/web/assets/{katex-CXMH3UgJ.js → katex-ZlcWpGUi.js} +2 -2
  130. package/studio/web/assets/languageServices-Dk8_6B25.js +1 -0
  131. package/studio/web/assets/linear-Ds1AeO4V.js +1 -0
  132. package/studio/web/assets/{lspLanguageFeatures-sNVDopx3.js → lspLanguageFeatures-DwJKXzQa.js} +2 -2
  133. package/studio/web/assets/{mermaid-parser.core-BlEsOWNO.js → mermaid-parser.core-C2lcH_jP.js} +3 -3
  134. package/studio/web/assets/mermaid.core-BG5bjfIG.js +44 -0
  135. package/studio/web/assets/{mindmap-definition-YA3MSWOX-IprMc_0j.js → mindmap-definition-NLK3R4M7-BK7ho6JD.js} +24 -24
  136. package/studio/web/assets/{notifications-BukjVuVe.js → notifications-DJqAtWxD.js} +1 -1
  137. package/studio/web/assets/{notifications-DvBJIIO0.js → notifications-DsDtb41c.js} +1 -1
  138. package/studio/web/assets/packet-AYTQ26CC-BHPy6KBV.js +1 -0
  139. package/studio/web/assets/{pegDiagram-XKGWAZYB-BNuPDLZY.js → pegDiagram-GJSIUBJH-DzjwG3jO.js} +1 -1
  140. package/studio/web/assets/pie-WAS4IAKB-D0cP-DTU.js +1 -0
  141. package/studio/web/assets/{pieDiagram-E7YTZNPT-DqNb6Ht2.js → pieDiagram-5QR66LMP-C_hOP9Lv.js} +2 -2
  142. package/studio/web/assets/profile-zTGUN51x.js +1 -0
  143. package/studio/web/assets/{quadrantDiagram-AXDQQJYC-BGH9E2YR.js → quadrantDiagram-O4NWA36T-CZW8PbV1.js} +3 -3
  144. package/studio/web/assets/radar-RG4KPBEZ-C8fk0U81.js +1 -0
  145. package/studio/web/assets/railroad-74A4TZTK-B60FWm17.js +1 -0
  146. package/studio/web/assets/railroad-abnf-HS5TGJTU-CLMVZvH0.js +1 -0
  147. package/studio/web/assets/railroad-ebnf-LZEXJU2U--tlwFoVB.js +1 -0
  148. package/studio/web/assets/railroad-peg-WCYAUIDC-Dpuslblm.js +1 -0
  149. package/studio/web/assets/{railroadDiagram-O6MQD6OU-DGTPh2KZ.js → railroadDiagram-XR7U4H2S-DyyNmgbU.js} +1 -1
  150. package/studio/web/assets/regions-SOtABPB9.js +1 -0
  151. package/studio/web/assets/{register-CU-gCfLP.js → register-7JezVakc.js} +39 -39
  152. package/studio/web/assets/{requirementDiagram-BXWQKSXE-BJnO6uLz.js → requirementDiagram-PLB6GJNP-C4H-mLKu.js} +11 -11
  153. package/studio/web/assets/{rolldown-runtime-hePW80VL.js → rolldown-runtime-Dd_uD5pT.js} +1 -1
  154. package/studio/web/assets/sankeyDiagram-IPEJSGJF-DHDyga4c.js +40 -0
  155. package/studio/web/assets/sequenceDiagram-PO4LG4MO-CdNcHXRI.js +169 -0
  156. package/studio/web/assets/setComponentFile-BavlhfY0.js +1 -0
  157. package/studio/web/assets/{setup-DG3Ws0Gg.js → setup-04yVzr2I.js} +2 -2
  158. package/studio/web/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  159. package/studio/web/assets/{src-CMc7m_Ut.js → src-D0vMJQRr.js} +1 -1
  160. package/studio/web/assets/stateDiagram-v2-GCMORJYK-CpKuXq15.js +291 -0
  161. package/studio/web/assets/status-g_mNYE7j.js +61 -0
  162. package/studio/web/assets/swimlanes-2SLR337P-NRHa2D8I.js +1 -0
  163. package/studio/web/assets/swimlanesDiagram-TC7HE7FX-BBk4t4hO.js +8 -0
  164. package/studio/web/assets/{tabs-BrHu7gJi.js → tabs-CnQ_zenf.js} +1 -1
  165. package/studio/web/assets/{time-Cclkb7kQ.js → time-Ci1v4fvT.js} +1 -1
  166. package/studio/web/assets/timeline-definition-EJHVYXUP-D39Y-xpq.js +120 -0
  167. package/studio/web/assets/toggleHighContrast-i2FjCrzO.js +49 -0
  168. package/studio/web/assets/treeView-Q6P3EWNA-CRWR9OqD.js +1 -0
  169. package/studio/web/assets/treemap-WGGIJYW6-ZfXyJgLO.js +1 -0
  170. package/studio/web/assets/{ts.worker-DpaaFKhy.js → ts.worker-DDMUrpqh.js} +118 -115
  171. package/studio/web/assets/{tsMode-D3T_5QzW.js → tsMode-DGeWfx0W.js} +5 -5
  172. package/studio/web/assets/{typescript-BegjUvtB.js → typescript-62_1FUbs.js} +1 -1
  173. package/studio/web/assets/{useEntityRestURL-BicFpx_N.js → useEntityRestURL-DSVwev9J.js} +1 -1
  174. package/studio/web/assets/useLocalStorage-BYoZF60G.js +1 -0
  175. package/studio/web/assets/usecaseDiagram-POWQR4AR-jf-zIDZ_.js +328 -0
  176. package/studio/web/assets/vendor-core-BdkdbUek.js +63 -0
  177. package/studio/web/assets/vendor-datadog-fCQhBHGk.js +6 -0
  178. package/studio/web/assets/vendor-react-izWchTRL.js +9 -0
  179. package/studio/web/assets/vendor-tanstack-CQ1aRjVa.js +2 -0
  180. package/studio/web/assets/vendor-ui-aE1tHcW7.js +41 -0
  181. package/studio/web/assets/vennDiagram-UO4OBE2U-BKYAZUh_.js +34 -0
  182. package/studio/web/assets/wardley-WFR3VGLG-BO7f36ci.js +1 -0
  183. package/studio/web/assets/{wardleyDiagram-VM6X3IG4-CjrkKWUR.js → wardleyDiagram-VNRHLVJA-Djb0JDQc.js} +3 -3
  184. package/studio/web/assets/{workers-Bmx4l_9B.js → workers-Cs52GyHv.js} +1 -1
  185. package/studio/web/assets/x-vYntCxm4.js +1 -0
  186. package/studio/web/assets/{xml-Bg40Rcra.js → xml-Co5ow_Ix.js} +1 -1
  187. package/studio/web/assets/{xychartDiagram-S5SC5T6Z-Biok4GYV.js → xychartDiagram-PMCCYNJV-BQh9ubvb.js} +3 -3
  188. package/studio/web/assets/{yaml-DolDvfXE.js → yaml-BcngpXye.js} +1 -1
  189. package/studio/web/assets/yaml.worker-DAK2o_H1.js +479 -0
  190. package/studio/web/auth/fabric-globe-dark.png +0 -0
  191. package/studio/web/auth/fabric-globe-light.png +0 -0
  192. package/studio/web/auth/fabric-platform-dark.png +0 -0
  193. package/studio/web/auth/fabric-platform-light.png +0 -0
  194. package/studio/web/index.html +15 -15
  195. package/utility/errors/hdbError.ts +26 -0
  196. package/studio/web/assets/FloatingChat-h9BJo6YG.js +0 -23
  197. package/studio/web/assets/applications-Dlq5kJ2O.js +0 -296
  198. package/studio/web/assets/architecture-7GRP2DOG-LB-MLAAb.js +0 -1
  199. package/studio/web/assets/architectureDiagram-5GKGNRK7-7SW3GD-K.js +0 -36
  200. package/studio/web/assets/authStore-C3Nfubqr.js +0 -3
  201. package/studio/web/assets/c4Diagram-7LVT6UL2-LBNf8t_X.js +0 -38
  202. package/studio/web/assets/channel-yictG-U-.js +0 -1
  203. package/studio/web/assets/chevron-up-DtKGqDn3.js +0 -1
  204. package/studio/web/assets/chunk-4HAMMTFA-DWtTut21.js +0 -62
  205. package/studio/web/assets/chunk-DU6HZSFF-Chq20Ba5.js +0 -127
  206. package/studio/web/assets/chunk-GMAD6QVW-BeS7S07A.js +0 -72
  207. package/studio/web/assets/chunk-IMKFNOWR-Bnh3tAVd.js +0 -231
  208. package/studio/web/assets/chunk-L3NEJ4N5-COfUyKII.js +0 -1
  209. package/studio/web/assets/chunk-P2QGCYS3-CP1VhG_c.js +0 -1
  210. package/studio/web/assets/chunk-SHT3W25Y-LpQkMsah.js +0 -168
  211. package/studio/web/assets/chunk-TICWLB2K-VOwzetX-.js +0 -206
  212. package/studio/web/assets/classDiagram-ZZMXUADV-VaEwSy_g.js +0 -1
  213. package/studio/web/assets/classDiagram-v2-VYDZK3BY-VaEwSy_g.js +0 -1
  214. package/studio/web/assets/cose-bilkent-JH36ORCC-Cuuf67Bh.js +0 -1
  215. package/studio/web/assets/createLucideIcon-CzW9508A.js +0 -1
  216. package/studio/web/assets/cynefin-OW5HDTMX-BbdbCvub.js +0 -1
  217. package/studio/web/assets/cynefinDiagram-5FMLGOSQ-TP-aIqbt.js +0 -62
  218. package/studio/web/assets/cytoscape.esm-C2x7inlt.js +0 -321
  219. package/studio/web/assets/dagre-GXQ25YYZ-DShnGpGo.js +0 -4
  220. package/studio/web/assets/dagre-PrKaheQc.js +0 -1
  221. package/studio/web/assets/diagram-UQ7AKVKN-DglXtQ6x.js +0 -41
  222. package/studio/web/assets/dialog-Cn2uWgD4.js +0 -1
  223. package/studio/web/assets/download-B5T5r7ss.js +0 -1
  224. package/studio/web/assets/editor.worker-DwcOiOeP.js +0 -30
  225. package/studio/web/assets/eventmodeling-NTZA5JFV-CLxnp2CR.js +0 -1
  226. package/studio/web/assets/flowDiagram-HODETNUW-BIbhmz9f.js +0 -1
  227. package/studio/web/assets/gitGraph-4MIJSDKK-D2s2w8lE.js +0 -1
  228. package/studio/web/assets/graphlib-DS17s2tU.js +0 -1
  229. package/studio/web/assets/index-7RMEgVG1.css +0 -1
  230. package/studio/web/assets/index-ZQ1upnh7.js +0 -824
  231. package/studio/web/assets/index.lazy-HDafSRxx.js +0 -2
  232. package/studio/web/assets/info-A6RAGUB7-DYjkvb0C.js +0 -1
  233. package/studio/web/assets/infoDiagram-27XIBGKW-Bnp1FJE5.js +0 -2
  234. package/studio/web/assets/json.worker-fO_hOLCP.js +0 -62
  235. package/studio/web/assets/languageServices-0ZvgO63b.js +0 -1
  236. package/studio/web/assets/linear-Cnt8506Q.js +0 -1
  237. package/studio/web/assets/mermaid.core-BlkGaMIH.js +0 -44
  238. package/studio/web/assets/packet-AYTQ26CC-Bi3V04Zi.js +0 -1
  239. package/studio/web/assets/pie-WAS4IAKB-_6DoDbng.js +0 -1
  240. package/studio/web/assets/profile-B-jyYdzV.js +0 -1
  241. package/studio/web/assets/radar-RG4KPBEZ-DDdVczcL.js +0 -1
  242. package/studio/web/assets/railroad-74A4TZTK-BJUP4Jds.js +0 -1
  243. package/studio/web/assets/railroad-abnf-HS5TGJTU-Bm3L1L0h.js +0 -1
  244. package/studio/web/assets/railroad-ebnf-LZEXJU2U-CKzLGlkw.js +0 -1
  245. package/studio/web/assets/railroad-peg-WCYAUIDC-S8xLjslx.js +0 -1
  246. package/studio/web/assets/regions-GN6Mu5aH.js +0 -1
  247. package/studio/web/assets/sankeyDiagram-P5KCCOFB-0vSOdymH.js +0 -40
  248. package/studio/web/assets/sequenceDiagram-WJ2MYXX4-hETizDWE.js +0 -162
  249. package/studio/web/assets/setComponentFile-D7Fww0lC.js +0 -1
  250. package/studio/web/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -1
  251. package/studio/web/assets/stateDiagram-D77RDMKH-CdYQ_KtC.js +0 -1
  252. package/studio/web/assets/stateDiagram-v2-MP3YSRHH-CdKuzQMT.js +0 -1
  253. package/studio/web/assets/status-koJd66XF.js +0 -61
  254. package/studio/web/assets/swimlanes-42K2YHIH-B8cHIpU4.js +0 -1
  255. package/studio/web/assets/swimlanesDiagram-VR7AAH4N-DmOSJwaH.js +0 -8
  256. package/studio/web/assets/timeline-definition-24CTP7MA-BJWYSXqF.js +0 -120
  257. package/studio/web/assets/toggleHighContrast-CGksgPgv.js +0 -49
  258. package/studio/web/assets/treeView-Q6P3EWNA-qxe_v6CQ.js +0 -1
  259. package/studio/web/assets/treemap-WGGIJYW6-dDo97XXF.js +0 -1
  260. package/studio/web/assets/useLocalStorage-BqMR3D8_.js +0 -1
  261. package/studio/web/assets/vendor-core-c2JRRJpV.js +0 -58
  262. package/studio/web/assets/vendor-datadog-CLUcJXOo.js +0 -6
  263. package/studio/web/assets/vendor-react-CJV_K1u4.js +0 -9
  264. package/studio/web/assets/vendor-tanstack-DxzraizX.js +0 -1
  265. package/studio/web/assets/vendor-ui-BUjK0h8a.js +0 -41
  266. package/studio/web/assets/vennDiagram-4TSXK5OY-A3i-lCdl.js +0 -34
  267. package/studio/web/assets/wardley-WFR3VGLG-B0ik-_6g.js +0 -1
  268. package/studio/web/assets/x-DIzaLEdK.js +0 -1
  269. package/studio/web/assets/yaml.worker-BDL8_iuk.js +0 -454
@@ -98,6 +98,7 @@ function replayLogs(rootStore, tables) {
98
98
  // replay all the logs
99
99
  let transaction;
100
100
  let lastTimestamp = 0;
101
+ let openCommitEnded = false;
101
102
  let writes = 0;
102
103
  let skipped = 0;
103
104
  // Track forward progress so a backlog of unwritable entries can't grind the boot thread
@@ -118,8 +119,25 @@ function replayLogs(rootStore, tables) {
118
119
  logger.fatal(`Aborting transaction-log replay in ${rootStore.databaseName} database: ${noProgressRun} consecutive audit entries with no successful write (${skipped} skipped as unrecoverable, ${writes} replayed so far). This backlog is making no forward progress and was blocking startup (harper#1266) — typically a peer transaction log whose values reference unresolvable shared structures (harper#1163), or a backlog for a dropped table. Continuing boot without replaying the remainder; shed or relocate the oversized/undecodable peer transaction log(s), or re-clone this node, to recover the unreplayed data.`);
119
120
  break;
120
121
  }
121
- const { type, tableId, nodeId, recordId, version, residencyId, expiresAt, originatingOperation, username, extendedType, } = auditRecord;
122
+ const { type, tableId, nodeId, recordId, version, residencyId, expiresAt, originatingOperation, username, extendedType, endTxn, } = auditRecord;
122
123
  try {
124
+ // A replay transaction is one native commit ("Boot replay transactions" in DESIGN.md).
125
+ if (transaction && (openCommitEnded || lastTimestamp !== version)) {
126
+ const ending = transaction;
127
+ transaction = undefined;
128
+ try {
129
+ ending.directCommitSync();
130
+ }
131
+ catch (error) {
132
+ logger.error('Error committing replay transaction', error);
133
+ }
134
+ // The wall-clock budget (harper#1316) is checked only here, between native commits with
135
+ // nothing staged, so aborting never tears a commit in half.
136
+ if ((0, replayLogsGuards_ts_1.shouldAbortSlowReplay)(performance.now() - replayStartTime, replayTimeoutMs)) {
137
+ logger.fatal(`Aborting transaction-log replay in ${rootStore.databaseName} database: replay has exceeded the wall-clock time limit (${writes} written, ${skipped} skipped). The transaction log contains a pathologically deep out-of-order write history that is too expensive to reconcile during boot (harper#1316). Re-clone this node from a healthy leader to recover the unreplayed data.`);
138
+ break;
139
+ }
140
+ }
123
141
  if ((0, replayLogsGuards_ts_1.classifyAuditEntryForReplay)(extendedType, tableId, true) === 'corrupt-header') {
124
142
  skipped++;
125
143
  noProgressRun++;
@@ -172,27 +190,9 @@ function replayLogs(rootStore, tables) {
172
190
  warnedReplayHappening = true;
173
191
  console.warn('Harper was not properly shutdown, replaying transaction logs to synchronize database');
174
192
  }
175
- if (lastTimestamp !== version) {
193
+ if (!transaction) {
176
194
  lastTimestamp = version;
177
- try {
178
- // commit the last transaction since we are starting a new one
179
- transaction?.directCommitSync();
180
- }
181
- catch (error) {
182
- logger.error('Error committing replay transaction', error);
183
- }
184
- // Abort if replay has exceeded the total wall-clock budget even while making progress
185
- // (harper#1316, facet a). shouldAbortStalledReplay resets its counters on every write,
186
- // so a slow-but-progressing replay (deep out-of-order audit chain walk per entry) can
187
- // peg the boot thread indefinitely without tripping it. Checked only here, at a version
188
- // boundary: the prior version's transaction was just committed in full and the new one
189
- // is not yet staged, so aborting never tears a same-version (same source-transaction)
190
- // write batch in half. Re-clone to recover the unreplayed remainder.
191
- if ((0, replayLogsGuards_ts_1.shouldAbortSlowReplay)(performance.now() - replayStartTime, replayTimeoutMs)) {
192
- logger.fatal(`Aborting transaction-log replay in ${rootStore.databaseName} database: replay has exceeded the wall-clock time limit (${writes} written, ${skipped} skipped). The transaction log contains a pathologically deep out-of-order write history that is too expensive to reconcile during boot (harper#1316). Re-clone this node from a healthy leader to recover the unreplayed data.`);
193
- transaction = undefined; // already committed above; nothing staged for the new version
194
- break;
195
- }
195
+ openCommitEnded = false;
196
196
  transaction = new DatabaseTransaction_ts_1.DatabaseTransaction();
197
197
  transaction.db = primaryStore;
198
198
  transaction.timestamp = version;
@@ -282,6 +282,10 @@ function replayLogs(rootStore, tables) {
282
282
  version,
283
283
  });
284
284
  }
285
+ finally {
286
+ if (endTxn)
287
+ openCommitEnded = true;
288
+ }
285
289
  }
286
290
  try {
287
291
  transaction?.directCommitSync();
@@ -1 +1 @@
1
- {"version":3,"file":"replayLogs.js","sourceRoot":"","sources":["../../resources/replayLogs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replayLogs.js","sourceRoot":"","sources":["../../resources/replayLogs.ts"],"names":[],"mappings":"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"}
@@ -201,7 +201,7 @@ function notifyFromTransactionData(subscriptions, auditLogIterable, allowYield =
201
201
  let ancestorLevel = 0;
202
202
  do {
203
203
  // we iterate through the key hierarchy, notifying all subscribers for each key,
204
- // so for an id like resource/foo/bar, we notify subscribers for resource/foo/bar, resource/foo/, resource/foo, resource/, and resource
204
+ // so for an id like resource/foo/bar, we notify subscribers for resource/foo/bar, resource/foo/, resource/, and the root (null)
205
205
  // this allows for efficient subscriptions to children ids/topics
206
206
  const keySubscriptions = tableSubscriptions.get(matchingKey);
207
207
  if (keySubscriptions) {
@@ -241,11 +241,9 @@ function notifyFromTransactionData(subscriptions, auditLogIterable, allowYield =
241
241
  if (lastSlash !== matchingKey.length - 1) {
242
242
  ancestorLevel++; // don't increase the ancestor level for this going from resource/ to resource
243
243
  }
244
- if (lastSlash > -1) {
245
- matchingKey = matchingKey.slice(0, lastSlash + 1);
246
- }
247
- else
248
- matchingKey = null;
244
+ // lastIndexOf clamps a negative fromIndex to 0, so '/' would otherwise yield itself forever
245
+ const parentKey = lastSlash > -1 ? matchingKey.slice(0, lastSlash + 1) : null;
246
+ matchingKey = parentKey === matchingKey ? null : parentKey;
249
247
  } while (true);
250
248
  }
251
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBroadcast.js","sourceRoot":"","sources":["../../resources/transactionBroadcast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactionBroadcast.js","sourceRoot":"","sources":["../../resources/transactionBroadcast.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,10 @@ const verificationUtils_ts_1 = require("./verificationUtils.js");
29
29
  const verificationConfig_ts_1 = require("./verificationConfig.js");
30
30
  const ocspVerification_ts_1 = require("./ocspVerification.js");
31
31
  const crlVerification_ts_1 = require("./crlVerification.js");
32
+ const trustedIssuers_ts_1 = require("./trustedIssuers.js");
32
33
  const logger = (0, logger_ts_1.loggerWithTag)('cert-verification');
34
+ const warnedUnresolvedLeaves = new Set();
35
+ const MAX_WARNED_LEAVES = 10_000;
33
36
  /**
34
37
  * Verify certificate revocation status using OCSP and/or CRL
35
38
  * @param peerCertificate - Peer certificate object from TLS connection
@@ -45,13 +48,26 @@ async function verifyCertificate(peerCertificate, mtlsConfig) {
45
48
  logger.debug?.('Certificate verification disabled');
46
49
  return { valid: true, status: 'disabled', method: 'disabled' };
47
50
  }
51
+ // ahead of the chain check so an explicitly disabled control can never reject
52
+ if (config.crl.enabled === false && config.ocsp.enabled === false) {
53
+ logger.debug?.('Both CRL and OCSP disabled - verification disabled');
54
+ return { valid: true, status: 'disabled', method: 'disabled' };
55
+ }
48
56
  // Extract certificate chain
49
57
  const certChain = (0, verificationUtils_ts_1.extractCertificateChain)(peerCertificate);
50
58
  logger.trace?.(`Certificate chain length: ${certChain.length}`);
51
- // Check if we have sufficient chain for verification (need certificate and issuer)
52
- if (certChain.length < 2 || !certChain[0].issuer) {
53
- logger.debug?.('Certificate chain insufficient for revocation checking - need certificate and issuer');
54
- return { valid: true, status: 'no-issuer-cert', method: 'disabled' };
59
+ if (certChain.length === 0) {
60
+ return unresolvedIssuerResult(config.failureMode, peerCertificate, 'no certificate data');
61
+ }
62
+ // Revocation checking needs the issuer. The socket omits it on every resumed TLS session and on
63
+ // Node 26.8.0/26.8.1 (nodejs/node#65579); recover it from the CA set that authorized the client.
64
+ if (!certChain[0].issuer) {
65
+ const issuer = (0, trustedIssuers_ts_1.resolveTrustedIssuer)(certChain[0].cert, peerCertificate.fingerprint256);
66
+ if (!issuer) {
67
+ return unresolvedIssuerResult(config.failureMode, peerCertificate, 'issuer is neither in the presented chain nor among the configured certificate authorities');
68
+ }
69
+ logger.debug?.('Issuer certificate resolved from the configured certificate authorities');
70
+ certChain[0].issuer = issuer;
55
71
  }
56
72
  // Extract certificate revocation URLs in single parse operation
57
73
  const certPem = (0, verificationUtils_ts_1.bufferToPem)(certChain[0].cert, 'CERTIFICATE');
@@ -106,16 +122,29 @@ async function verifyCertificate(peerCertificate, mtlsConfig) {
106
122
  else {
107
123
  logger.debug?.('Skipping OCSP - no responder URLs in certificate');
108
124
  }
109
- // All methods tried or skipped - determine failure handling
110
- // If both methods are explicitly disabled (not just unavailable), treat as disabled
111
- if (config.crl.enabled === false && config.ocsp.enabled === false) {
112
- logger.debug?.('Both CRL and OCSP disabled - verification disabled');
113
- return { valid: true, status: 'disabled', method: 'disabled' };
114
- }
115
- // Methods are enabled but unavailable - apply failure mode
125
+ // All methods tried or skipped - apply failure mode
116
126
  if (config.failureMode === 'fail-closed') {
117
127
  return { valid: false, status: 'no-verification-available', method: 'disabled' };
118
128
  }
119
129
  return { valid: true, status: 'verification-unavailable-allowed', method: 'disabled' };
120
130
  }
131
+ /**
132
+ * Revocation status cannot be established without the issuer, so the configured failure mode
133
+ * decides: refuse under fail-closed, allow under fail-open. Either way this is a security control
134
+ * not running, so it is logged at warn (once per certificate) rather than debug.
135
+ */
136
+ function unresolvedIssuerResult(failureMode, peerCertificate, reason) {
137
+ const valid = failureMode !== 'fail-closed';
138
+ const leafKey = peerCertificate.fingerprint256 ?? peerCertificate.subject?.CN ?? '';
139
+ if (!warnedUnresolvedLeaves.has(leafKey)) {
140
+ if (warnedUnresolvedLeaves.size >= MAX_WARNED_LEAVES)
141
+ warnedUnresolvedLeaves.clear();
142
+ warnedUnresolvedLeaves.add(leafKey);
143
+ logger.warn?.(`Cannot check revocation status for client certificate ${peerCertificate.subject?.CN ?? 'unknown'}: ${reason}; ${valid ? 'allowing connection (fail-open)' : 'rejecting connection (fail-closed)'}`);
144
+ }
145
+ else {
146
+ logger.debug?.(`Cannot check revocation status for ${peerCertificate.subject?.CN ?? 'unknown'}: ${reason}`);
147
+ }
148
+ return { valid, status: 'no-issuer-cert', method: 'disabled' };
149
+ }
121
150
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../security/certificateVerification/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../security/certificateVerification/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Resolves a client certificate's issuer from Harper's own trusted certificate authorities.
3
+ *
4
+ * Node completes a peer chain from the trust store only through the listener's default TLS
5
+ * context; Harper's client CAs live on the SNI contexts built by createTLSSelector, so whenever the
6
+ * client-sent chain is unavailable (every resumed TLS session; Node 26.8.0/26.8.1 on every
7
+ * connection, nodejs/node#65579) getPeerCertificate(true) exposes the leaf alone. The CA set that
8
+ * authorized the connection is the same set published here, so the issuer is recoverable from it
9
+ * unless it is an intermediate the client sent but Harper does not trust directly.
10
+ */
11
+ /**
12
+ * Publish the current trusted authority set (PEM strings, each possibly a bundle of several
13
+ * certificates). Replaces the previous generation atomically and drops its resolution cache,
14
+ * unless the set is unchanged. Unparseable certificates are skipped so one bad record cannot
15
+ * disable resolution for the rest; this never throws, because it runs inside the TLS selector's
16
+ * publication step.
17
+ */
18
+ export declare function publishTrustedAuthorities(authorityPems: Iterable<unknown>): void;
19
+ /**
20
+ * Find the trusted authority that issued `leafDer`: subject/AKI match plus a signature check, so a
21
+ * same-named authority with a different key never counts, and a certificate is never its own
22
+ * issuer. Returns the issuer's DER, or undefined.
23
+ */
24
+ export declare function resolveTrustedIssuer(leafDer: Buffer, fingerprint256?: string): Buffer | undefined;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * Resolves a client certificate's issuer from Harper's own trusted certificate authorities.
4
+ *
5
+ * Node completes a peer chain from the trust store only through the listener's default TLS
6
+ * context; Harper's client CAs live on the SNI contexts built by createTLSSelector, so whenever the
7
+ * client-sent chain is unavailable (every resumed TLS session; Node 26.8.0/26.8.1 on every
8
+ * connection, nodejs/node#65579) getPeerCertificate(true) exposes the leaf alone. The CA set that
9
+ * authorized the connection is the same set published here, so the issuer is recoverable from it
10
+ * unless it is an intermediate the client sent but Harper does not trust directly.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.publishTrustedAuthorities = publishTrustedAuthorities;
14
+ exports.resolveTrustedIssuer = resolveTrustedIssuer;
15
+ const node_crypto_1 = require("node:crypto");
16
+ const PEM_CERTIFICATE_PATTERN = /-----BEGIN (?:TRUSTED |X509 )?CERTIFICATE-----[\s\S]*?-----END (?:TRUSTED |X509 )?CERTIFICATE-----/g;
17
+ const MAX_RESOLVED_LEAVES = 10_000;
18
+ let trustedAuthorities = [];
19
+ let publishedAuthorityPems = '';
20
+ let resolvedIssuers = new Map();
21
+ /**
22
+ * Publish the current trusted authority set (PEM strings, each possibly a bundle of several
23
+ * certificates). Replaces the previous generation atomically and drops its resolution cache,
24
+ * unless the set is unchanged. Unparseable certificates are skipped so one bad record cannot
25
+ * disable resolution for the rest; this never throws, because it runs inside the TLS selector's
26
+ * publication step.
27
+ */
28
+ function publishTrustedAuthorities(authorityPems) {
29
+ const pems = Array.from(authorityPems).filter((pem) => typeof pem === 'string');
30
+ const joined = pems.join('\n');
31
+ if (joined === publishedAuthorityPems)
32
+ return;
33
+ publishedAuthorityPems = joined;
34
+ const parsed = [];
35
+ for (const pem of pems) {
36
+ for (const block of pem.match(PEM_CERTIFICATE_PATTERN) ?? []) {
37
+ try {
38
+ parsed.push(new node_crypto_1.X509Certificate(block));
39
+ }
40
+ catch { }
41
+ }
42
+ }
43
+ trustedAuthorities = parsed;
44
+ resolvedIssuers = new Map();
45
+ }
46
+ /**
47
+ * Find the trusted authority that issued `leafDer`: subject/AKI match plus a signature check, so a
48
+ * same-named authority with a different key never counts, and a certificate is never its own
49
+ * issuer. Returns the issuer's DER, or undefined.
50
+ */
51
+ function resolveTrustedIssuer(leafDer, fingerprint256) {
52
+ if (trustedAuthorities.length === 0)
53
+ return undefined;
54
+ const key = fingerprint256 ?? (0, node_crypto_1.createHash)('sha256').update(leafDer).digest('hex');
55
+ const cached = resolvedIssuers.get(key);
56
+ if (cached !== undefined)
57
+ return cached ?? undefined;
58
+ let issuer = null;
59
+ try {
60
+ const leaf = new node_crypto_1.X509Certificate(leafDer);
61
+ for (const authority of trustedAuthorities) {
62
+ try {
63
+ if (authority.fingerprint256 !== leaf.fingerprint256 &&
64
+ leaf.checkIssued(authority) &&
65
+ leaf.verify(authority.publicKey)) {
66
+ issuer = authority.raw;
67
+ break;
68
+ }
69
+ }
70
+ catch { }
71
+ }
72
+ }
73
+ catch { }
74
+ if (resolvedIssuers.size >= MAX_RESOLVED_LEAVES)
75
+ resolvedIssuers.clear();
76
+ resolvedIssuers.set(key, issuer);
77
+ return issuer ?? undefined;
78
+ }
79
+ //# sourceMappingURL=trustedIssuers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustedIssuers.js","sourceRoot":"","sources":["../../../security/certificateVerification/trustedIssuers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAmBH,8DAeC;AAOD,oDAyBC;AAhED,6CAA0D;AAE1D,MAAM,uBAAuB,GAC5B,qGAAqG,CAAC;AACvG,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,IAAI,kBAAkB,GAAsB,EAAE,CAAC;AAC/C,IAAI,sBAAsB,GAAG,EAAE,CAAC;AAChC,IAAI,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEvD;;;;;;GAMG;AACH,SAAgB,yBAAyB,CAAC,aAAgC;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,KAAK,sBAAsB;QAAE,OAAO;IAC9C,sBAAsB,GAAG,MAAM,CAAC;IAChC,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,6BAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;IACF,CAAC;IACD,kBAAkB,GAAG,MAAM,CAAC;IAC5B,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,OAAe,EAAE,cAAuB;IAC5E,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,IAAI,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,IAAI,SAAS,CAAC;IAErD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,IAAI,6BAAe,CAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACJ,IACC,SAAS,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc;oBAChD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAC/B,CAAC;oBACF,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;oBACvB,MAAM;gBACP,CAAC;YACF,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;IACF,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,eAAe,CAAC,IAAI,IAAI,mBAAmB;QAAE,eAAe,CAAC,KAAK,EAAE,CAAC;IACzE,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,MAAM,IAAI,SAAS,CAAC;AAC5B,CAAC"}
@@ -12,6 +12,7 @@ export interface PeerCertificate {
12
12
  [key: string]: any;
13
13
  };
14
14
  raw?: Buffer;
15
+ fingerprint256?: string;
15
16
  issuerCertificate?: PeerCertificate;
16
17
  }
17
18
  export interface CertificateVerificationResult {
@@ -87,6 +87,7 @@ const node_fs_1 = require("node:fs");
87
87
  const manageThreads_js_1 = require("../server/threads/manageThreads.js");
88
88
  const worker_threads_1 = require("worker_threads");
89
89
  const node_tls_1 = require("node:tls");
90
+ const trustedIssuers_ts_1 = require("./certificateVerification/trustedIssuers.js");
90
91
  const CERT_VALIDITY_DAYS = 3650;
91
92
  // Default interval (ms) for the periodic cert-file re-read safety net. The chokidar (inotify)
92
93
  // watcher is the fast path; this poll catches changes on filesystems where inotify is unreliable
@@ -1172,6 +1173,9 @@ function createTLSSelector(type, mtlsOptions, liveReload = true) {
1172
1173
  scheduleRebuild();
1173
1174
  return;
1174
1175
  }
1176
+ // only listener selectors publish: a one-shot client selector's pass may see no authority rows
1177
+ if (liveReload)
1178
+ (0, trustedIssuers_ts_1.publishTrustedAuthorities)(caCerts.values());
1175
1179
  // A successful pass ends any warn latches so a later recurrence logs again.
1176
1180
  if (server) {
1177
1181
  server.tlsSelectorWaitedForSystemDb = false;