@harperfast/harper 5.3.2 → 5.3.3

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 (251) hide show
  1. package/bin/cliOperations.ts +3 -3
  2. package/bin/copyDb.ts +4 -3
  3. package/components/DESIGN.md +12 -0
  4. package/components/packageComponent.ts +42 -17
  5. package/config/DESIGN.md +4 -0
  6. package/config/configUtils.ts +8 -8
  7. package/config/parseConfigFile.ts +11 -7
  8. package/dist/bin/cliOperations.js +3 -3
  9. package/dist/bin/cliOperations.js.map +1 -1
  10. package/dist/bin/copyDb.js +3 -3
  11. package/dist/bin/copyDb.js.map +1 -1
  12. package/dist/components/packageComponent.d.ts +9 -7
  13. package/dist/components/packageComponent.js +41 -16
  14. package/dist/components/packageComponent.js.map +1 -1
  15. package/dist/config/configUtils.js +4 -3
  16. package/dist/config/configUtils.js.map +1 -1
  17. package/dist/config/parseConfigFile.d.ts +1 -0
  18. package/dist/config/parseConfigFile.js +7 -3
  19. package/dist/config/parseConfigFile.js.map +1 -1
  20. package/dist/resources/DatabaseTransaction.d.ts +75 -10
  21. package/dist/resources/DatabaseTransaction.js +1080 -277
  22. package/dist/resources/DatabaseTransaction.js.map +1 -1
  23. package/dist/resources/Resource.js +40 -14
  24. package/dist/resources/Resource.js.map +1 -1
  25. package/dist/resources/RocksTransactionLogStore.js +1 -0
  26. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  27. package/dist/resources/Table.js +16 -2
  28. package/dist/resources/Table.js.map +1 -1
  29. package/dist/resources/analytics/write.js +34 -16
  30. package/dist/resources/analytics/write.js.map +1 -1
  31. package/dist/resources/databases.d.ts +5 -0
  32. package/dist/resources/databases.js +38 -4
  33. package/dist/resources/databases.js.map +1 -1
  34. package/dist/resources/recordLock.d.ts +9 -4
  35. package/dist/resources/recordLock.js +79 -19
  36. package/dist/resources/recordLock.js.map +1 -1
  37. package/dist/server/DurableSubscriptionsSession.d.ts +2 -0
  38. package/dist/server/DurableSubscriptionsSession.js +20 -17
  39. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  40. package/dist/server/mqtt.js +41 -23
  41. package/dist/server/mqtt.js.map +1 -1
  42. package/dist/server/serverHelpers/NodeAdapterResponse.js +18 -0
  43. package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -1
  44. package/dist/utility/npmUtilities.js +18 -7
  45. package/dist/utility/npmUtilities.js.map +1 -1
  46. package/package.json +1 -1
  47. package/resources/DESIGN.md +42 -10
  48. package/resources/DatabaseTransaction.ts +1244 -275
  49. package/resources/Resource.ts +39 -14
  50. package/resources/RocksTransactionLogStore.ts +1 -0
  51. package/resources/Table.ts +24 -2
  52. package/resources/analytics/DESIGN.md +17 -0
  53. package/resources/analytics/write.ts +28 -15
  54. package/resources/databases.ts +40 -4
  55. package/resources/record-locks.md +34 -17
  56. package/resources/recordLock.ts +89 -22
  57. package/server/DESIGN.md +2 -0
  58. package/server/DurableSubscriptionsSession.ts +18 -16
  59. package/server/mqtt.ts +39 -22
  60. package/server/serverHelpers/NodeAdapterResponse.ts +19 -1
  61. package/studio/web/assets/Chat-B-Rd-ft9.js +2100 -0
  62. package/studio/web/assets/FloatingChat-CFypO7kh.js +23 -0
  63. package/studio/web/assets/SearchDialog-BRIyPiBl.js +1 -0
  64. package/studio/web/assets/{abnfDiagram-O67JEVCF-raXE027J.js → abnfDiagram-YUKMZFIV-DPR2lFRk.js} +1 -1
  65. package/studio/web/assets/{apiToken-DNrfij0E.js → apiToken-BraYnzvC.js} +1 -1
  66. package/studio/web/assets/applications-XCds8-ZP.js +296 -0
  67. package/studio/web/assets/architecture-WOLXFQ4H-DtJHIK0_.js +1 -0
  68. package/studio/web/assets/{architectureDiagram-NJMV4G6O-C8_Eet7w.js → architectureDiagram-47P4ROYG-MDymp2dh.js} +3 -3
  69. package/studio/web/assets/authStore-DE1HFvVP.js +3 -0
  70. package/studio/web/assets/{blockDiagram-BEXU5L5S-DR6S5-1D.js → blockDiagram-E7TT5TSB-O5qRgZmd.js} +3 -3
  71. package/studio/web/assets/button-C37w80Uk.js +21 -0
  72. package/studio/web/assets/{c4Diagram-YGBWAQC7-BAfZ1G01.js → c4Diagram-CRA5TL53-BdPORGHo.js} +2 -2
  73. package/studio/web/assets/channel-yCStoq0_.js +1 -0
  74. package/studio/web/assets/{chevron-up-CFxbMGv2.js → chevron-up-DozwrIz-.js} +1 -1
  75. package/studio/web/assets/chunk-2BW5OAIV-DJ-iXJAw.js +10 -0
  76. package/studio/web/assets/{chunk-ZIGJFQKS-Cs8fUn7y.js → chunk-3YJQHVM4-BOgacqS1.js} +2 -2
  77. package/studio/web/assets/{chunk-7PRAP22T-KyqX6x3f.js → chunk-4EA7E6EY-C-7xqUBl.js} +1 -1
  78. package/studio/web/assets/{chunk-GWA4HPMP-DsejB6gA.js → chunk-7TKQ45FW-C3XA1bIN.js} +1 -1
  79. package/studio/web/assets/{chunk-GTNCS2PH-DGHLXyow.js → chunk-AW2ZBBNX-BdvgD1UW.js} +3 -3
  80. package/studio/web/assets/{chunk-5DYCD2WN-BceBfIHT.js → chunk-DBDB3WZW-CKKxIc6F.js} +1 -1
  81. package/studio/web/assets/{chunk-MBY4JIJT-BwSGweQP.js → chunk-E2ZNV5FY-bVefNHvz.js} +3 -3
  82. package/studio/web/assets/chunk-EU5HNXII-BHv2kWp4.js +213 -0
  83. package/studio/web/assets/chunk-FVRAUYC3-BoL_NO6b.js +2 -0
  84. package/studio/web/assets/{chunk-742MDFTN-CIkt8ijt.js → chunk-HJ2JQQFS-N_98oMRS.js} +1 -1
  85. package/studio/web/assets/{chunk-NETBCI7D-C8UnOw_f.js → chunk-HTAEGDNF-BQ1fSjPs.js} +1 -1
  86. package/studio/web/assets/{chunk-WEXAMYUT-BAIhTwyh.js → chunk-KQW6MTUR-qP0QiQAg.js} +1 -1
  87. package/studio/web/assets/chunk-NGNAAXSQ-DqoPQk1a.js +136 -0
  88. package/studio/web/assets/{chunk-UA2S7LBM-BHpEdH8D.js → chunk-NTY3LDVX-CSBFjlJg.js} +1 -1
  89. package/studio/web/assets/chunk-VPRB5NB3-BVHOe9Q-.js +129 -0
  90. package/studio/web/assets/{chunk-7INBJB4K-BpeAXyOi.js → chunk-XC4XBNZT-46uQwtF4.js} +10 -10
  91. package/studio/web/assets/{classDiagram-v2-NBCMYWYE-DmDPkt2u.js → classDiagram-v2-K4WV4PDN-Da0ps1Ui.js} +3 -3
  92. package/studio/web/assets/cn-DpF1PxBT.js +1 -0
  93. package/studio/web/assets/{createLucideIcon-fO5dL7D5.js → createLucideIcon-DLWRoWN-.js} +1 -1
  94. package/studio/web/assets/{cssMode-DBucrQdT.js → cssMode-BY1w91l8.js} +1 -1
  95. package/studio/web/assets/cynefin-EF2NZ3EQ-jQ2eCUaU.js +1 -0
  96. package/studio/web/assets/cynefinDiagram-3GCD6N5R-TNi5iS0E.js +62 -0
  97. package/studio/web/assets/dagre-W4DXFKR2-BnLHmA44.js +4 -0
  98. package/studio/web/assets/{diagram-22UHCM2B-DJCvcaWP.js → diagram-2UJZ2QOL-r_jehhZR.js} +7 -7
  99. package/studio/web/assets/{diagram-3UASUU5V-Du6VKWln.js → diagram-OVF4WLC6-BSUXGVh8.js} +11 -11
  100. package/studio/web/assets/{diagram-CDSNMT55-l5Ga0u-W.js → diagram-PFPMY2P6-BrVedycw.js} +3 -3
  101. package/studio/web/assets/{diagram-MLGK6HIB-CNQY47LA.js → diagram-UMYRVEAY-CBIaakBB.js} +1 -1
  102. package/studio/web/assets/diagram-YEKJPTXX-DFmmDXCl.js +41 -0
  103. package/studio/web/assets/diagram-ZIFT7M5P-CQfOWxOi.js +3 -0
  104. package/studio/web/assets/dist-9lpzt2Hn.js +11 -0
  105. package/studio/web/assets/{ebnfDiagram-ZINNZB2B-5OnkTpfi.js → ebnfDiagram-VR2GEFS7-FXA3Xe6e.js} +1 -1
  106. package/studio/web/assets/{editor-CHpQCuBq.js → editor-D5mpVs1b.js} +1 -1
  107. package/studio/web/assets/elk-IJKZMXRS-CC4gfVRU.js +27 -0
  108. package/studio/web/assets/{erDiagram-OPXOYQCR-CQlCX84D.js → erDiagram-O2IAPWRE-C-BkDTPl.js} +2 -2
  109. package/studio/web/assets/errorText-8xV8WZBt.js +1 -0
  110. package/studio/web/assets/eventmodeling-K75KTNOO-D0dJ_PbR.js +1 -0
  111. package/studio/web/assets/flowDiagram-OXPTDLAJ-C1LEc_Hf.js +1 -0
  112. package/studio/web/assets/{ganttDiagram-FUAMR5RP-bloX3Voy.js → ganttDiagram-R7TSEDQI-85F44BIo.js} +4 -4
  113. package/studio/web/assets/{getAnalytics-C0FHjtdQ.js → getAnalytics-B1xpd4kG.js} +1 -1
  114. package/studio/web/assets/gitGraph-VSP46ZUC-BBmqrmjK.js +1 -0
  115. package/studio/web/assets/gitGraphDiagram-XJZIOB7I-CFY6iMwg.js +106 -0
  116. package/studio/web/assets/graphlib-DS17s2tU.js +1 -0
  117. package/studio/web/assets/{html-B1iA8q38.js → html-DiXKiahz.js} +1 -1
  118. package/studio/web/assets/{htmlMode-CrL3YO5Y.js → htmlMode-DitVJ707.js} +1 -1
  119. package/studio/web/assets/index-CDnn0-PN.css +1 -0
  120. package/studio/web/assets/index-D8kyF6dt.js +833 -0
  121. package/studio/web/assets/index.lazy-DgbjUxLo.js +1 -0
  122. package/studio/web/assets/info-OHQRW6UA-Bs2aEco7.js +1 -0
  123. package/studio/web/assets/{infoDiagram-VRGFBTTK-B0J1132p.js → infoDiagram-5W2HQ5XZ-d6yG1yfZ.js} +1 -1
  124. package/studio/web/assets/invalidateEntityQueries-BkWXiqjz.js +1 -0
  125. package/studio/web/assets/{ishikawaDiagram-OU5B5YK6-BNk0tuQx.js → ishikawaDiagram-K3B6WC7H-CSYz-WRA.js} +2 -2
  126. package/studio/web/assets/{javascript-CXgQMkoa.js → javascript-BBVXeMDm.js} +1 -1
  127. package/studio/web/assets/{journeyDiagram-ZHPQQLJL-Be79RMQM.js → journeyDiagram-COXZFDF6-BDj6Wqcj.js} +3 -3
  128. package/studio/web/assets/{jsonMode-DycqRKOv.js → jsonMode-D85_j2oD.js} +1 -1
  129. package/studio/web/assets/{kanban-definition-PNTS6WVX-4uuoQP9W.js → kanban-definition-P3RFRI5V-C2Bjfbp-.js} +6 -6
  130. package/studio/web/assets/{languageServices-HYHV1wDJ.js → languageServices-U3mWhpRL.js} +1 -1
  131. package/studio/web/assets/{lspLanguageFeatures-CH_6SYiA.js → lspLanguageFeatures-CoymyM3c.js} +1 -1
  132. package/studio/web/assets/{mermaid-parser.core-V1UYMeXV.js → mermaid-parser.core-Ch_T61iL.js} +6 -6
  133. package/studio/web/assets/mermaid.core-BOAgKzo5.js +44 -0
  134. package/studio/web/assets/{mindmap-definition-NLK3R4M7-C70Ctm0J.js → mindmap-definition-LZFPQGKD-DzOapzMM.js} +3 -3
  135. package/studio/web/assets/notifications-CPgEC6ZP.js +1 -0
  136. package/studio/web/assets/notifications-D_VqhHnx.js +1 -0
  137. package/studio/web/assets/operations-D8aaKYty.js +4 -0
  138. package/studio/web/assets/packet-JDAUHWVQ-CGHB_EIE.js +1 -0
  139. package/studio/web/assets/{pegDiagram-GJSIUBJH-d6z1cc7W.js → pegDiagram-BGZESJAR-ADzOIKrz.js} +1 -1
  140. package/studio/web/assets/pie-XZMESJXO-Bijz5Y2o.js +1 -0
  141. package/studio/web/assets/pieDiagram-CAPJLFHJ-VM7fvbwO.js +39 -0
  142. package/studio/web/assets/profile-DM5E6Xls.js +1 -0
  143. package/studio/web/assets/{quadrantDiagram-O4NWA36T-CIF5Qkou.js → quadrantDiagram-GDMTTRAM-Bmza84_j.js} +3 -3
  144. package/studio/web/assets/radar-ABXABTNO-IaC8pB63.js +1 -0
  145. package/studio/web/assets/railroad-I3PHUGI6-CCrSUqeq.js +1 -0
  146. package/studio/web/assets/railroad-abnf-LNEFI6M7-BhobVp-t.js +1 -0
  147. package/studio/web/assets/railroad-ebnf-DWYD2UWJ-OHhGUTEh.js +1 -0
  148. package/studio/web/assets/railroad-peg-JR7BVNR7-FupC3Jcn.js +1 -0
  149. package/studio/web/assets/{railroadDiagram-XR7U4H2S-y3Jv2U6N.js → railroadDiagram-SM67HX2B-CgFGOVI5.js} +1 -1
  150. package/studio/web/assets/regions-WFvXqryO.js +1 -0
  151. package/studio/web/assets/{register-DCN4QUii.js → register-B7DvfAGj.js} +3 -3
  152. package/studio/web/assets/request-ChoMERRk.js +2 -0
  153. package/studio/web/assets/{requirementDiagram-PLB6GJNP-ChINZEmu.js → requirementDiagram-X7JNWC4A-BHoQgkoT.js} +4 -4
  154. package/studio/web/assets/restartGate-D_e93lFE.js +1 -0
  155. package/studio/web/assets/restartUnconfirmed-BqcDZ__Y.js +1 -0
  156. package/studio/web/assets/sankeyDiagram-UM26HJRW-8tFu_oUe.js +40 -0
  157. package/studio/web/assets/sequenceDiagram-ZO4K6R2Y-jryb1rwT.js +169 -0
  158. package/studio/web/assets/setComponentFile-BHk22Rh6.js +1 -0
  159. package/studio/web/assets/setup-wNdpTrVH.js +2 -0
  160. package/studio/web/assets/{stateDiagram-v2-GCMORJYK-Bs8RIb9K.js → stateDiagram-v2-TBUQTH76-CnWE5yFn.js} +2 -2
  161. package/studio/web/assets/status-CYoonm9V.js +61 -0
  162. package/studio/web/assets/{swimlanes-2SLR337P-B52xrf6t.js → swimlanes-N4OXWK64-CBlFzDJn.js} +1 -1
  163. package/studio/web/assets/swimlanesDiagram-K3J5GTZL-DvFLtUPi.js +8 -0
  164. package/studio/web/assets/{timeline-definition-EJHVYXUP-DJSITpQX.js → timeline-definition-YOQAKGHF-CFWqHrqI.js} +4 -4
  165. package/studio/web/assets/{toggleHighContrast-CfAp6Sxb.js → toggleHighContrast-CKEm-P4K.js} +1 -1
  166. package/studio/web/assets/treeView-D4JQ5SDB-CpV9zuVb.js +1 -0
  167. package/studio/web/assets/treemap-SAJKECNS-Bc94Tqiq.js +1 -0
  168. package/studio/web/assets/{tsMode-HZR0bfq4.js → tsMode-Dv35qHmn.js} +1 -1
  169. package/studio/web/assets/{typescript-UMJSfZyF.js → typescript-Bly1EW8o.js} +1 -1
  170. package/studio/web/assets/{useEntityRestURL-B379CS-h.js → useEntityRestURL-Cg3P0MOb.js} +1 -1
  171. package/studio/web/assets/usecaseDiagram-VIAY4XPW-Brf2xP3S.js +328 -0
  172. package/studio/web/assets/{vendor-core-6LhfJlRC.js → vendor-core-PejxhUWQ.js} +1 -1
  173. package/studio/web/assets/vendor-datadog-GjET_Cbn.js +6 -0
  174. package/studio/web/assets/{vendor-react-BOliS0BL.js → vendor-react-DSIx92Ld.js} +1 -1
  175. package/studio/web/assets/vendor-tanstack-C5Y-nrd2.js +2 -0
  176. package/studio/web/assets/vendor-ui-BBWHOEoQ.js +41 -0
  177. package/studio/web/assets/{vennDiagram-UO4OBE2U-DZTsDA4k.js → vennDiagram-BLWOH2XV-XxOyJPq_.js} +3 -3
  178. package/studio/web/assets/wardley-7MLQ67FV-DRW0zuE4.js +1 -0
  179. package/studio/web/assets/{wardleyDiagram-VNRHLVJA-qu_f7Tvl.js → wardleyDiagram-YMQ3BMBF-B3WskJ9W.js} +3 -3
  180. package/studio/web/assets/wasAReleasedBeforeB-D5grAaGM.js +1 -0
  181. package/studio/web/assets/{workers-Bn_0_L1R.js → workers-DVtjrvUa.js} +1 -1
  182. package/studio/web/assets/{xml-CG2N-1r1.js → xml-DjAPbgLN.js} +1 -1
  183. package/studio/web/assets/xychartDiagram-TAQBALBS-D5NV4Env.js +7 -0
  184. package/studio/web/assets/{yaml-68pda6Av.js → yaml-oTUyoJy1.js} +1 -1
  185. package/studio/web/index.html +17 -15
  186. package/utility/npmUtilities.ts +17 -7
  187. package/studio/web/assets/Chat-CrxPD4ph.js +0 -2294
  188. package/studio/web/assets/FloatingChat-EXzoUQ-9.js +0 -23
  189. package/studio/web/assets/SearchDialog-7qRL8Yqx.js +0 -1
  190. package/studio/web/assets/_basePickBy-QJXUw_pr.js +0 -1
  191. package/studio/web/assets/_baseUniq-DR4vVjyC.js +0 -1
  192. package/studio/web/assets/alertDialog-BbWD9Xxa.js +0 -1
  193. package/studio/web/assets/applications-CdqjiSQe.js +0 -296
  194. package/studio/web/assets/architecture-7GRP2DOG-DDmz3hpI.js +0 -1
  195. package/studio/web/assets/arrow-up-D2g_57vT.js +0 -1
  196. package/studio/web/assets/authStore-CJCaADw9.js +0 -3
  197. package/studio/web/assets/button-DWwfgGWI.js +0 -21
  198. package/studio/web/assets/channel-D0AkPjJ8.js +0 -1
  199. package/studio/web/assets/chunk-3FUC2YCW-DuRp-j19.js +0 -2
  200. package/studio/web/assets/chunk-7M6MHVWA-h6WlaTzO.js +0 -213
  201. package/studio/web/assets/chunk-FOHPRMQF-DzxwRta7.js +0 -161
  202. package/studio/web/assets/chunk-O7XYJQB3-CBS3nZYV.js +0 -128
  203. package/studio/web/assets/chunk-Z7XXMR3K-DSHbImdf.js +0 -10
  204. package/studio/web/assets/cn-6T8VranJ.js +0 -1
  205. package/studio/web/assets/cynefin-OW5HDTMX-DIvbXLSj.js +0 -1
  206. package/studio/web/assets/cynefinDiagram-VND7K2PF-BdtaXiCE.js +0 -62
  207. package/studio/web/assets/dagre-6A5THRUB-C7RUWHyz.js +0 -4
  208. package/studio/web/assets/diagram-ATOU4E4O-dxRfeG4B.js +0 -3
  209. package/studio/web/assets/diagram-MPIPVDR6-7prveD1B.js +0 -41
  210. package/studio/web/assets/dist-BrRuMUzt.js +0 -11
  211. package/studio/web/assets/download-Cn6tPG4L.js +0 -1
  212. package/studio/web/assets/elk-276RUBZZ-DxDQPjQT.js +0 -27
  213. package/studio/web/assets/errorText-NpBmvk9I.js +0 -1
  214. package/studio/web/assets/eventmodeling-NTZA5JFV-DONQf5aG.js +0 -1
  215. package/studio/web/assets/flowDiagram-KWPJA3E3-BoZ8_QR1.js +0 -1
  216. package/studio/web/assets/gitGraph-4MIJSDKK-BrXWmJt2.js +0 -1
  217. package/studio/web/assets/gitGraphDiagram-X574FWY7-C2KnnZeY.js +0 -106
  218. package/studio/web/assets/graphlib-C9Tl7QrK.js +0 -1
  219. package/studio/web/assets/index-QLZw6xrU.css +0 -1
  220. package/studio/web/assets/index-qCLyhyah.js +0 -828
  221. package/studio/web/assets/index.lazy-DCx-DxIV.js +0 -2
  222. package/studio/web/assets/info-A6RAGUB7-BhzBHe4U.js +0 -1
  223. package/studio/web/assets/mermaid.core-1PX6R49U.js +0 -44
  224. package/studio/web/assets/notifications-BSObVIY1.js +0 -1
  225. package/studio/web/assets/notifications-DFLXk68b.js +0 -1
  226. package/studio/web/assets/packet-AYTQ26CC-DWbXHx5g.js +0 -1
  227. package/studio/web/assets/pie-WAS4IAKB-DjoTm3yr.js +0 -1
  228. package/studio/web/assets/pieDiagram-5QR66LMP-Dz3RHpDA.js +0 -39
  229. package/studio/web/assets/profile-TBjzOMIy.js +0 -1
  230. package/studio/web/assets/radar-RG4KPBEZ-CVBgjCOj.js +0 -1
  231. package/studio/web/assets/railroad-74A4TZTK-BdhXw10Q.js +0 -1
  232. package/studio/web/assets/railroad-abnf-HS5TGJTU-BcoQPN39.js +0 -1
  233. package/studio/web/assets/railroad-ebnf-LZEXJU2U-B1Lke2JN.js +0 -1
  234. package/studio/web/assets/railroad-peg-WCYAUIDC-D-oJFkiV.js +0 -1
  235. package/studio/web/assets/regions-C4an4H7e.js +0 -1
  236. package/studio/web/assets/restartGate-nHAFLDh-.js +0 -1
  237. package/studio/web/assets/sankeyDiagram-IPEJSGJF-D9AyLce2.js +0 -40
  238. package/studio/web/assets/sequenceDiagram-PO4LG4MO-hfk4aIEm.js +0 -169
  239. package/studio/web/assets/setComponentFile-BrqOM1Zm.js +0 -1
  240. package/studio/web/assets/setup-0v2MCm-E.js +0 -2
  241. package/studio/web/assets/status-DdezofUu.js +0 -61
  242. package/studio/web/assets/swimlanesDiagram-TC7HE7FX-DfN7BAP5.js +0 -8
  243. package/studio/web/assets/tabs-BCTQzoQK.js +0 -1
  244. package/studio/web/assets/treeView-Q6P3EWNA-C-epdxRo.js +0 -1
  245. package/studio/web/assets/treemap-WGGIJYW6-DOVyp_zw.js +0 -1
  246. package/studio/web/assets/usecaseDiagram-POWQR4AR-B6252cbq.js +0 -328
  247. package/studio/web/assets/vendor-datadog-ozKf-pts.js +0 -6
  248. package/studio/web/assets/vendor-tanstack-Bntfka-M.js +0 -2
  249. package/studio/web/assets/vendor-ui-9EYYDgoN.js +0 -41
  250. package/studio/web/assets/wardley-WFR3VGLG-Cfqoe6z4.js +0 -1
  251. package/studio/web/assets/xychartDiagram-PMCCYNJV-UrOKRsmR.js +0 -7
@@ -44,10 +44,11 @@ export interface ResolvedRecordLockOptions {
44
44
  }
45
45
  /**
46
46
  * The handle returned by `lock()` and held by each gated write until its transaction completes.
47
- * `release()` is synchronous: it calls `store.unlock(key)` which is ownerless and fires any
48
- * waiting callbacks cross-thread. The `expired` flag is set in the holder thread by the lease
49
- * timer, so a stale holder cannot accidentally call unlock after its lease already fired and
50
- * released the key to a new holder.
47
+ * `release()` is synchronous: it calls `store.unlock(key)` (or defers it while a commit hold
48
+ * acquired via `retainForCommit` is still active), which is ownerless and fires any waiting
49
+ * callbacks cross-thread. The lease timer sets `expired` in the holder thread when it fires
50
+ * (while a commit hold is active, only the native unlock is deferred), so a stale holder cannot
51
+ * accidentally call unlock after its lease already fired and released the key to a new holder.
51
52
  */
52
53
  export interface RecordLockHandle {
53
54
  store: any;
@@ -99,7 +100,11 @@ export interface RecordLockHandle {
99
100
  * version has been noted; otherwise advances by the minimum monotonic step from the recorded floor.
100
101
  */
101
102
  nextHolderVersion(): number;
103
+ /** True when this call returned the native key; false if already released, or while a commit hold defers the unlock. */
102
104
  release(): boolean;
105
+ /** Defer `store.unlock(key)` until an in-flight native commit settles or `holdDeadlineMono` expires. */
106
+ retainForCommit?(holdDeadlineMono?: number): void;
107
+ releaseCommitHold?(): void;
103
108
  /**
104
109
  * Flip this handle to hold mode and reset its lease timer. Used during scoped→hold upgrades
105
110
  * so all instances that reference this handle object remain valid (no retire + replace).
@@ -105,6 +105,10 @@ class KeyLockHandle {
105
105
  // an NTP step nor a manual clock change can extend a lease past what peers assumed.
106
106
  #deadlineMono;
107
107
  #onRelease;
108
+ #commitHolds = 0;
109
+ #deferredUnlock = false;
110
+ #holdDeadlineMono;
111
+ #holdTimer;
108
112
  constructor(store, key, keyId, lease, hold = false, acquiredAt) {
109
113
  this.store = store;
110
114
  this.key = key;
@@ -140,8 +144,9 @@ class KeyLockHandle {
140
144
  #leaseLapsed() {
141
145
  if (this.#deadlineMono === undefined || node_perf_hooks_1.performance.now() < this.#deadlineMono)
142
146
  return false;
143
- // Finish the expiry rather than only reporting it: the native key must actually go back so a
144
- // stalled holder does not keep a key every participant has already written off.
147
+ // Finish the expiry rather than only reporting it: once no in-flight commit holds the handle,
148
+ // the native key must go back so a stalled holder does not keep a key every participant has
149
+ // already written off.
145
150
  if (!this.released)
146
151
  this.#onLeaseExpire();
147
152
  return true;
@@ -162,8 +167,8 @@ class KeyLockHandle {
162
167
  // no-op in the one state it was written for.
163
168
  this.expired = true;
164
169
  if (this.released) {
165
- // The native key is already back and `onRelease` already fired; only the fence flag and the
166
- // lease timer are left to settle.
170
+ // `release()` already ran (returning the native key or deferring the unlock onto an active
171
+ // commit hold); only the fence flag and the lease timer are left to settle.
167
172
  clearTimeout(this.#timer);
168
173
  return;
169
174
  }
@@ -196,23 +201,84 @@ class KeyLockHandle {
196
201
  this.#lastHolderVersion = next;
197
202
  return next;
198
203
  }
199
- #onLeaseExpire() {
200
- if (this.released)
204
+ retainForCommit(holdDeadlineMono) {
205
+ if (this.released && !this.#deferredUnlock)
201
206
  return;
202
- this.released = true;
203
- this.expired = true;
204
- clearTimeout(this.#timer);
207
+ this.#commitHolds++;
208
+ if (holdDeadlineMono !== undefined && Number.isFinite(holdDeadlineMono)) {
209
+ this.#holdDeadlineMono = Math.max(this.#holdDeadlineMono ?? holdDeadlineMono, holdDeadlineMono);
210
+ if (this.#deferredUnlock)
211
+ this.#armHoldTimer();
212
+ }
213
+ }
214
+ releaseCommitHold() {
215
+ if (this.#commitHolds <= 0)
216
+ return;
217
+ if (--this.#commitHolds === 0) {
218
+ clearTimeout(this.#holdTimer);
219
+ this.#holdTimer = undefined;
220
+ this.#holdDeadlineMono = undefined;
221
+ if (this.#deferredUnlock) {
222
+ this.#deferredUnlock = false;
223
+ this.#unlockAndEmitRelease('record lock deferred release failed (store may have been dropped)');
224
+ }
225
+ }
226
+ }
227
+ // True when the native key went back now; false when the unlock waits on the commit hold.
228
+ #deferOrFlushUnlock(warningMessage) {
229
+ if (this.#holdDeadlineMono !== undefined && node_perf_hooks_1.performance.now() >= this.#holdDeadlineMono) {
230
+ this.#commitHolds = 0;
231
+ this.#deferredUnlock = false;
232
+ this.#holdDeadlineMono = undefined;
233
+ clearTimeout(this.#holdTimer);
234
+ this.#holdTimer = undefined;
235
+ this.#unlockAndEmitRelease(warningMessage);
236
+ return true;
237
+ }
238
+ this.#deferredUnlock = true;
239
+ this.#armHoldTimer();
240
+ return false;
241
+ }
242
+ #armHoldTimer() {
243
+ clearTimeout(this.#holdTimer);
244
+ this.#holdTimer = undefined;
245
+ if (!this.#deferredUnlock || this.#holdDeadlineMono === undefined)
246
+ return;
247
+ const remaining = Math.max(0, Math.ceil(this.#holdDeadlineMono - node_perf_hooks_1.performance.now()));
248
+ this.#holdTimer = setTimeout(() => {
249
+ this.#holdTimer = undefined;
250
+ this.#commitHolds = 0;
251
+ this.#holdDeadlineMono = undefined;
252
+ if (this.#deferredUnlock) {
253
+ this.#deferredUnlock = false;
254
+ this.#unlockAndEmitRelease('record lock commit hold timer failed (store may have been dropped)');
255
+ }
256
+ }, remaining).unref();
257
+ }
258
+ #unlockAndEmitRelease(warningMessage) {
205
259
  try {
206
260
  this.store.unlock(this.key);
207
261
  }
208
262
  catch (err) {
209
263
  if (!warnedLeaseTimerStores.has(this.store)) {
210
264
  warnedLeaseTimerStores.add(this.store);
211
- harper_logger_ts_1.default.warn?.('record lock lease timer failed (store may have been dropped)', err);
265
+ harper_logger_ts_1.default.warn?.(warningMessage, err);
212
266
  }
213
267
  }
214
268
  this.#emitRelease();
215
269
  }
270
+ #onLeaseExpire() {
271
+ if (this.released)
272
+ return;
273
+ this.released = true;
274
+ this.expired = true;
275
+ clearTimeout(this.#timer);
276
+ if (this.#commitHolds > 0) {
277
+ this.#deferOrFlushUnlock('record lock lease timer failed (store may have been dropped)');
278
+ return;
279
+ }
280
+ this.#unlockAndEmitRelease('record lock lease timer failed (store may have been dropped)');
281
+ }
216
282
  // The cluster release is a durability optimization, not the safety mechanism — peers expire the
217
283
  // hold on their own lease bound — so neither a throw nor a rejected promise may escape here. This
218
284
  // runs from a lease timer and from post-commit cleanup, where an escaping rejection would take
@@ -236,16 +302,10 @@ class KeyLockHandle {
236
302
  return false;
237
303
  this.released = true;
238
304
  clearTimeout(this.#timer);
239
- try {
240
- this.store.unlock(this.key);
241
- }
242
- catch (err) {
243
- if (!warnedLeaseTimerStores.has(this.store)) {
244
- warnedLeaseTimerStores.add(this.store);
245
- harper_logger_ts_1.default.warn?.('record lock release failed (store may have been dropped)', err);
246
- }
305
+ if (this.#commitHolds > 0) {
306
+ return this.#deferOrFlushUnlock('record lock release failed (store may have been dropped)');
247
307
  }
248
- this.#emitRelease();
308
+ this.#unlockAndEmitRelease('record lock release failed (store may have been dropped)');
249
309
  return true;
250
310
  }
251
311
  upgradeToHold(lease) {
@@ -1 +1 @@
1
- {"version":3,"file":"recordLock.js","sourceRoot":"","sources":["../../resources/recordLock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordLock.js","sourceRoot":"","sources":["../../resources/recordLock.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,8 @@ declare class SubscriptionsSession {
67
67
  createContext(): any;
68
68
  setListener(listener: (topic: any, message: any, messageId: any, subscription: any, version?: any) => any): void;
69
69
  disconnect(clientTerminated: any): void;
70
+ /** The will row is session bookkeeping on contexts of its own; only the publish runs as the session (server/DESIGN.md). */
71
+ settleWill(willId: [string, string], publish: boolean): Promise<void>;
70
72
  receivedPacket(): void;
71
73
  }
72
74
  /** A QoS 0 entry has no position: QoS 0 promises no delivery while the client is away, so it resumes live. */
@@ -492,23 +492,7 @@ class SubscriptionsSession {
492
492
  const willId = this.willId;
493
493
  this.willId = undefined;
494
494
  if (willId) {
495
- const context = this.createContext();
496
- (0, transaction_ts_1.transaction)(context, async () => {
497
- try {
498
- if (!clientTerminated) {
499
- const will = await getLastWill().get(willId);
500
- if (will && !isWillFromExpiredScopedToken(will)) {
501
- // A scoped will authorizes under its own embedded role, never the disconnecting
502
- // session's user (which may be a later same-clientId reconnect).
503
- const willContext = will.user?._scopedToken ? { ...context, user: will.user } : context;
504
- await publishMessage(will, will.data, willContext);
505
- }
506
- }
507
- }
508
- finally {
509
- await getLastWill().delete(willId);
510
- }
511
- }).catch((error) => {
495
+ this.settleWill(willId, !clientTerminated).catch((error) => {
512
496
  (0, harper_logger_ts_1.warn)(`Error publishing MQTT will for ${this.sessionId}`, error);
513
497
  });
514
498
  }
@@ -517,6 +501,25 @@ class SubscriptionsSession {
517
501
  }
518
502
  this.subscriptions = [];
519
503
  }
504
+ /** The will row is session bookkeeping on contexts of its own; only the publish runs as the session (server/DESIGN.md). */
505
+ async settleWill(willId, publish) {
506
+ try {
507
+ if (publish) {
508
+ const will = await getLastWill().get(willId, {});
509
+ if (will && !isWillFromExpiredScopedToken(will)) {
510
+ const context = this.createContext();
511
+ // A scoped will authorizes under its own embedded role, never the disconnecting
512
+ // session's user (which may be a later same-clientId reconnect).
513
+ if (will.user?._scopedToken)
514
+ context.user = will.user;
515
+ await publishMessage(will, will.data, context);
516
+ }
517
+ }
518
+ }
519
+ finally {
520
+ await getLastWill().delete(willId, {});
521
+ }
522
+ }
520
523
  receivedPacket() {
521
524
  if (this.keepalive) {
522
525
  clearTimeout(this.keepaliveTimer);
@@ -1 +1 @@
1
- {"version":3,"file":"DurableSubscriptionsSession.js","sourceRoot":"","sources":["../../server/DurableSubscriptionsSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DurableSubscriptionsSession.js","sourceRoot":"","sources":["../../server/DurableSubscriptionsSession.ts"],"names":[],"mappings":"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"}
@@ -169,6 +169,21 @@ const SERVER_SHUTTING_DOWN = 0x8b; // MQTT v5 DISCONNECT reason code
169
169
  const REASON_STRING_LIMIT = 256; // bytes
170
170
  /** Fixed header, message id and reason code, plus the property identifier and its length prefix. */
171
171
  const ACK_PACKET_OVERHEAD = 16;
172
+ /** `AccessViolation` is 401 for a request with no user and 403 for a user lacking permission; an MQTT client sees both as "Not authorized". */
173
+ const isNotAuthorized = (error) => error?.statusCode === 401 || error?.statusCode === 403;
174
+ /** Only failures this layer maps to a code of their own are safe to describe: any other carries an internal message. */
175
+ const hasClientSafeMessage = (error) => isNotAuthorized(error) || error?.statusCode === 404;
176
+ /** REASON_STRING_LIMIT counts encoded bytes, and a character must not be cut in half. */
177
+ function boundedReasonString(message) {
178
+ const text = String(message);
179
+ if (Buffer.byteLength(text) <= REASON_STRING_LIMIT)
180
+ return text;
181
+ const bytes = Buffer.from(text, 'utf8');
182
+ let end = REASON_STRING_LIMIT;
183
+ while (end > 0 && (bytes[end] & 0xc0) === 0x80)
184
+ end--;
185
+ return bytes.subarray(0, end).toString('utf8');
186
+ }
172
187
  /**
173
188
  * Every live MQTT connection on this worker, so a shutdown can announce itself: a bare socket close
174
189
  * is indistinguishable to the client from a network failure.
@@ -289,15 +304,12 @@ function onSocket(socket, send, request, user, mqttSettings) {
289
304
  function closeConnection(error) {
290
305
  try {
291
306
  if (mqttOptions.protocolVersion >= 5) {
292
- const packet = { cmd: 'disconnect', reasonCode: error ? 0x83 : 0x8e };
307
+ const packet = { cmd: 'disconnect', reasonCode: error ? (isNotAuthorized(error) ? 0x87 : 0x83) : 0x8e };
293
308
  // as for PUBACK: only failures this layer describes itself are safe to hand a client
294
309
  const describable = error instanceof hdbError_ts_1.DatabaseGenerationChangedError ||
295
310
  error instanceof hdbError_ts_1.ResumeHistoryUnavailableError ||
296
- error?.statusCode === 403 ||
297
- error?.statusCode === 404;
298
- const reasonString = describable && error.message && sendProblemInformation
299
- ? Buffer.from(String(error.message), 'utf8').subarray(0, REASON_STRING_LIMIT).toString('utf8')
300
- : undefined;
311
+ hasClientSafeMessage(error);
312
+ const reasonString = describable && error.message && sendProblemInformation ? boundedReasonString(error.message) : undefined;
301
313
  if (reasonString &&
302
314
  (!maximumPacketSize || maximumPacketSize >= Buffer.byteLength(reasonString) + ACK_PACKET_OVERHEAD))
303
315
  packet.properties = { reasonString };
@@ -515,8 +527,11 @@ function onSocket(socket, send, request, user, mqttSettings) {
515
527
  });
516
528
  const listener = async (topic, message, messageId, subscription, version) => {
517
529
  try {
518
- if (disconnected)
519
- throw new Error('Session disconnected while trying to send message to', topic);
530
+ if (disconnected) {
531
+ // a delivery already past the subscription when the client left; the disconnect has ended the session
532
+ mqttLog.debug?.(`Session ${session?.sessionId} disconnected while trying to send message to ${topic}`);
533
+ return false;
534
+ }
520
535
  const slashIndex = topic.indexOf('/', 1);
521
536
  const generalTopic = slashIndex > 0 ? topic.slice(0, slashIndex) : topic;
522
537
  const qos = subscription.qos || 0;
@@ -578,6 +593,8 @@ function onSocket(socket, send, request, user, mqttSettings) {
578
593
  break;
579
594
  case 'subscribe':
580
595
  const granted = [];
596
+ // a SUBACK carries one reason string for the whole packet, so the first refusal's is the one sent
597
+ let refusalMessage;
581
598
  for (const subscription of packet.subscriptions) {
582
599
  let grantedQos;
583
600
  try {
@@ -601,21 +618,27 @@ function onSocket(socket, send, request, user, mqttSettings) {
601
618
  grantedQos =
602
619
  mqttOptions.protocolVersion < 5
603
620
  ? 0x80 // the only error code in v3.1.1
604
- : error.statusCode === 403
621
+ : isNotAuthorized(error)
605
622
  ? 0x87 // unauthorized
606
623
  : error.statusCode === 404
607
624
  ? 0x8f // invalid topic
608
625
  : 0x80; // generic failure
626
+ if (mqttOptions.protocolVersion >= 5 && error.message && hasClientSafeMessage(error))
627
+ refusalMessage ??= error.message;
609
628
  }
610
629
  granted.push(grantedQos);
611
630
  }
612
631
  await session.committed;
613
- generateAndSendPacket({
614
- // Send a subscription acknowledgment
615
- cmd: 'suback',
616
- granted,
617
- messageId: packet.messageId,
618
- });
632
+ const subackPacket = { cmd: 'suback', granted, messageId: packet.messageId };
633
+ if (refusalMessage !== undefined && sendProblemInformation)
634
+ subackPacket.properties = { reasonString: boundedReasonString(refusalMessage) };
635
+ let suback = (0, mqtt_packet_1.generate)(subackPacket, mqttOptions);
636
+ // the result vector grows with the filter count, so only the encoded packet says whether the string fits
637
+ if (subackPacket.properties && maximumPacketSize && suback.length > maximumPacketSize) {
638
+ delete subackPacket.properties;
639
+ suback = (0, mqtt_packet_1.generate)(subackPacket, mqttOptions);
640
+ }
641
+ sendPacket(suback, 'suback');
619
642
  break;
620
643
  case 'unsubscribe': {
621
644
  const granted = [];
@@ -668,22 +691,17 @@ function onSocket(socket, send, request, user, mqttSettings) {
668
691
  messageId: packet.messageId,
669
692
  reasonCode: mqttOptions.protocolVersion < 5
670
693
  ? 0x80 // the only error code in v3.1.1
671
- : error?.statusCode === 403
694
+ : isNotAuthorized(error)
672
695
  ? 0x87 // not authorized
673
696
  : error?.statusCode === 404
674
697
  ? 0x90 // topic name invalid
675
698
  : 0x80, // unspecified error
676
699
  };
677
- // Only errors this layer maps to a code of their own are safe to describe: any other
678
- // failure carries an internal message that a client must not be handed. Both limits
679
- // are in encoded bytes, so measure and trim the string in bytes too.
680
700
  const describable = mqttOptions.protocolVersion >= 5 &&
681
701
  sendProblemInformation &&
682
702
  error?.message &&
683
- (error.statusCode === 403 || error.statusCode === 404);
684
- const reasonString = describable
685
- ? Buffer.from(String(error.message), 'utf8').subarray(0, REASON_STRING_LIMIT).toString('utf8')
686
- : undefined;
703
+ hasClientSafeMessage(error);
704
+ const reasonString = describable ? boundedReasonString(error.message) : undefined;
687
705
  if (reasonString &&
688
706
  (!maximumPacketSize || maximumPacketSize >= Buffer.byteLength(reasonString) + ACK_PACKET_OVERHEAD))
689
707
  publishPacket.properties = { reasonString };