@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.
- package/bin/cliOperations.ts +3 -3
- package/bin/copyDb.ts +4 -3
- package/components/DESIGN.md +12 -0
- package/components/packageComponent.ts +42 -17
- package/config/DESIGN.md +4 -0
- package/config/configUtils.ts +8 -8
- package/config/parseConfigFile.ts +11 -7
- package/dist/bin/cliOperations.js +3 -3
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.js +3 -3
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/components/packageComponent.d.ts +9 -7
- package/dist/components/packageComponent.js +41 -16
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/config/configUtils.js +4 -3
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/parseConfigFile.d.ts +1 -0
- package/dist/config/parseConfigFile.js +7 -3
- package/dist/config/parseConfigFile.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +75 -10
- package/dist/resources/DatabaseTransaction.js +1080 -277
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/Resource.js +40 -14
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.js +1 -0
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.js +16 -2
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +34 -16
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/databases.d.ts +5 -0
- package/dist/resources/databases.js +38 -4
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/recordLock.d.ts +9 -4
- package/dist/resources/recordLock.js +79 -19
- package/dist/resources/recordLock.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +2 -0
- package/dist/server/DurableSubscriptionsSession.js +20 -17
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/mqtt.js +41 -23
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/serverHelpers/NodeAdapterResponse.js +18 -0
- package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -1
- package/dist/utility/npmUtilities.js +18 -7
- package/dist/utility/npmUtilities.js.map +1 -1
- package/package.json +1 -1
- package/resources/DESIGN.md +42 -10
- package/resources/DatabaseTransaction.ts +1244 -275
- package/resources/Resource.ts +39 -14
- package/resources/RocksTransactionLogStore.ts +1 -0
- package/resources/Table.ts +24 -2
- package/resources/analytics/DESIGN.md +17 -0
- package/resources/analytics/write.ts +28 -15
- package/resources/databases.ts +40 -4
- package/resources/record-locks.md +34 -17
- package/resources/recordLock.ts +89 -22
- package/server/DESIGN.md +2 -0
- package/server/DurableSubscriptionsSession.ts +18 -16
- package/server/mqtt.ts +39 -22
- package/server/serverHelpers/NodeAdapterResponse.ts +19 -1
- package/studio/web/assets/Chat-B-Rd-ft9.js +2100 -0
- package/studio/web/assets/FloatingChat-CFypO7kh.js +23 -0
- package/studio/web/assets/SearchDialog-BRIyPiBl.js +1 -0
- package/studio/web/assets/{abnfDiagram-O67JEVCF-raXE027J.js → abnfDiagram-YUKMZFIV-DPR2lFRk.js} +1 -1
- package/studio/web/assets/{apiToken-DNrfij0E.js → apiToken-BraYnzvC.js} +1 -1
- package/studio/web/assets/applications-XCds8-ZP.js +296 -0
- package/studio/web/assets/architecture-WOLXFQ4H-DtJHIK0_.js +1 -0
- package/studio/web/assets/{architectureDiagram-NJMV4G6O-C8_Eet7w.js → architectureDiagram-47P4ROYG-MDymp2dh.js} +3 -3
- package/studio/web/assets/authStore-DE1HFvVP.js +3 -0
- package/studio/web/assets/{blockDiagram-BEXU5L5S-DR6S5-1D.js → blockDiagram-E7TT5TSB-O5qRgZmd.js} +3 -3
- package/studio/web/assets/button-C37w80Uk.js +21 -0
- package/studio/web/assets/{c4Diagram-YGBWAQC7-BAfZ1G01.js → c4Diagram-CRA5TL53-BdPORGHo.js} +2 -2
- package/studio/web/assets/channel-yCStoq0_.js +1 -0
- package/studio/web/assets/{chevron-up-CFxbMGv2.js → chevron-up-DozwrIz-.js} +1 -1
- package/studio/web/assets/chunk-2BW5OAIV-DJ-iXJAw.js +10 -0
- package/studio/web/assets/{chunk-ZIGJFQKS-Cs8fUn7y.js → chunk-3YJQHVM4-BOgacqS1.js} +2 -2
- package/studio/web/assets/{chunk-7PRAP22T-KyqX6x3f.js → chunk-4EA7E6EY-C-7xqUBl.js} +1 -1
- package/studio/web/assets/{chunk-GWA4HPMP-DsejB6gA.js → chunk-7TKQ45FW-C3XA1bIN.js} +1 -1
- package/studio/web/assets/{chunk-GTNCS2PH-DGHLXyow.js → chunk-AW2ZBBNX-BdvgD1UW.js} +3 -3
- package/studio/web/assets/{chunk-5DYCD2WN-BceBfIHT.js → chunk-DBDB3WZW-CKKxIc6F.js} +1 -1
- package/studio/web/assets/{chunk-MBY4JIJT-BwSGweQP.js → chunk-E2ZNV5FY-bVefNHvz.js} +3 -3
- package/studio/web/assets/chunk-EU5HNXII-BHv2kWp4.js +213 -0
- package/studio/web/assets/chunk-FVRAUYC3-BoL_NO6b.js +2 -0
- package/studio/web/assets/{chunk-742MDFTN-CIkt8ijt.js → chunk-HJ2JQQFS-N_98oMRS.js} +1 -1
- package/studio/web/assets/{chunk-NETBCI7D-C8UnOw_f.js → chunk-HTAEGDNF-BQ1fSjPs.js} +1 -1
- package/studio/web/assets/{chunk-WEXAMYUT-BAIhTwyh.js → chunk-KQW6MTUR-qP0QiQAg.js} +1 -1
- package/studio/web/assets/chunk-NGNAAXSQ-DqoPQk1a.js +136 -0
- package/studio/web/assets/{chunk-UA2S7LBM-BHpEdH8D.js → chunk-NTY3LDVX-CSBFjlJg.js} +1 -1
- package/studio/web/assets/chunk-VPRB5NB3-BVHOe9Q-.js +129 -0
- package/studio/web/assets/{chunk-7INBJB4K-BpeAXyOi.js → chunk-XC4XBNZT-46uQwtF4.js} +10 -10
- package/studio/web/assets/{classDiagram-v2-NBCMYWYE-DmDPkt2u.js → classDiagram-v2-K4WV4PDN-Da0ps1Ui.js} +3 -3
- package/studio/web/assets/cn-DpF1PxBT.js +1 -0
- package/studio/web/assets/{createLucideIcon-fO5dL7D5.js → createLucideIcon-DLWRoWN-.js} +1 -1
- package/studio/web/assets/{cssMode-DBucrQdT.js → cssMode-BY1w91l8.js} +1 -1
- package/studio/web/assets/cynefin-EF2NZ3EQ-jQ2eCUaU.js +1 -0
- package/studio/web/assets/cynefinDiagram-3GCD6N5R-TNi5iS0E.js +62 -0
- package/studio/web/assets/dagre-W4DXFKR2-BnLHmA44.js +4 -0
- package/studio/web/assets/{diagram-22UHCM2B-DJCvcaWP.js → diagram-2UJZ2QOL-r_jehhZR.js} +7 -7
- package/studio/web/assets/{diagram-3UASUU5V-Du6VKWln.js → diagram-OVF4WLC6-BSUXGVh8.js} +11 -11
- package/studio/web/assets/{diagram-CDSNMT55-l5Ga0u-W.js → diagram-PFPMY2P6-BrVedycw.js} +3 -3
- package/studio/web/assets/{diagram-MLGK6HIB-CNQY47LA.js → diagram-UMYRVEAY-CBIaakBB.js} +1 -1
- package/studio/web/assets/diagram-YEKJPTXX-DFmmDXCl.js +41 -0
- package/studio/web/assets/diagram-ZIFT7M5P-CQfOWxOi.js +3 -0
- package/studio/web/assets/dist-9lpzt2Hn.js +11 -0
- package/studio/web/assets/{ebnfDiagram-ZINNZB2B-5OnkTpfi.js → ebnfDiagram-VR2GEFS7-FXA3Xe6e.js} +1 -1
- package/studio/web/assets/{editor-CHpQCuBq.js → editor-D5mpVs1b.js} +1 -1
- package/studio/web/assets/elk-IJKZMXRS-CC4gfVRU.js +27 -0
- package/studio/web/assets/{erDiagram-OPXOYQCR-CQlCX84D.js → erDiagram-O2IAPWRE-C-BkDTPl.js} +2 -2
- package/studio/web/assets/errorText-8xV8WZBt.js +1 -0
- package/studio/web/assets/eventmodeling-K75KTNOO-D0dJ_PbR.js +1 -0
- package/studio/web/assets/flowDiagram-OXPTDLAJ-C1LEc_Hf.js +1 -0
- package/studio/web/assets/{ganttDiagram-FUAMR5RP-bloX3Voy.js → ganttDiagram-R7TSEDQI-85F44BIo.js} +4 -4
- package/studio/web/assets/{getAnalytics-C0FHjtdQ.js → getAnalytics-B1xpd4kG.js} +1 -1
- package/studio/web/assets/gitGraph-VSP46ZUC-BBmqrmjK.js +1 -0
- package/studio/web/assets/gitGraphDiagram-XJZIOB7I-CFY6iMwg.js +106 -0
- package/studio/web/assets/graphlib-DS17s2tU.js +1 -0
- package/studio/web/assets/{html-B1iA8q38.js → html-DiXKiahz.js} +1 -1
- package/studio/web/assets/{htmlMode-CrL3YO5Y.js → htmlMode-DitVJ707.js} +1 -1
- package/studio/web/assets/index-CDnn0-PN.css +1 -0
- package/studio/web/assets/index-D8kyF6dt.js +833 -0
- package/studio/web/assets/index.lazy-DgbjUxLo.js +1 -0
- package/studio/web/assets/info-OHQRW6UA-Bs2aEco7.js +1 -0
- package/studio/web/assets/{infoDiagram-VRGFBTTK-B0J1132p.js → infoDiagram-5W2HQ5XZ-d6yG1yfZ.js} +1 -1
- package/studio/web/assets/invalidateEntityQueries-BkWXiqjz.js +1 -0
- package/studio/web/assets/{ishikawaDiagram-OU5B5YK6-BNk0tuQx.js → ishikawaDiagram-K3B6WC7H-CSYz-WRA.js} +2 -2
- package/studio/web/assets/{javascript-CXgQMkoa.js → javascript-BBVXeMDm.js} +1 -1
- package/studio/web/assets/{journeyDiagram-ZHPQQLJL-Be79RMQM.js → journeyDiagram-COXZFDF6-BDj6Wqcj.js} +3 -3
- package/studio/web/assets/{jsonMode-DycqRKOv.js → jsonMode-D85_j2oD.js} +1 -1
- package/studio/web/assets/{kanban-definition-PNTS6WVX-4uuoQP9W.js → kanban-definition-P3RFRI5V-C2Bjfbp-.js} +6 -6
- package/studio/web/assets/{languageServices-HYHV1wDJ.js → languageServices-U3mWhpRL.js} +1 -1
- package/studio/web/assets/{lspLanguageFeatures-CH_6SYiA.js → lspLanguageFeatures-CoymyM3c.js} +1 -1
- package/studio/web/assets/{mermaid-parser.core-V1UYMeXV.js → mermaid-parser.core-Ch_T61iL.js} +6 -6
- package/studio/web/assets/mermaid.core-BOAgKzo5.js +44 -0
- package/studio/web/assets/{mindmap-definition-NLK3R4M7-C70Ctm0J.js → mindmap-definition-LZFPQGKD-DzOapzMM.js} +3 -3
- package/studio/web/assets/notifications-CPgEC6ZP.js +1 -0
- package/studio/web/assets/notifications-D_VqhHnx.js +1 -0
- package/studio/web/assets/operations-D8aaKYty.js +4 -0
- package/studio/web/assets/packet-JDAUHWVQ-CGHB_EIE.js +1 -0
- package/studio/web/assets/{pegDiagram-GJSIUBJH-d6z1cc7W.js → pegDiagram-BGZESJAR-ADzOIKrz.js} +1 -1
- package/studio/web/assets/pie-XZMESJXO-Bijz5Y2o.js +1 -0
- package/studio/web/assets/pieDiagram-CAPJLFHJ-VM7fvbwO.js +39 -0
- package/studio/web/assets/profile-DM5E6Xls.js +1 -0
- package/studio/web/assets/{quadrantDiagram-O4NWA36T-CIF5Qkou.js → quadrantDiagram-GDMTTRAM-Bmza84_j.js} +3 -3
- package/studio/web/assets/radar-ABXABTNO-IaC8pB63.js +1 -0
- package/studio/web/assets/railroad-I3PHUGI6-CCrSUqeq.js +1 -0
- package/studio/web/assets/railroad-abnf-LNEFI6M7-BhobVp-t.js +1 -0
- package/studio/web/assets/railroad-ebnf-DWYD2UWJ-OHhGUTEh.js +1 -0
- package/studio/web/assets/railroad-peg-JR7BVNR7-FupC3Jcn.js +1 -0
- package/studio/web/assets/{railroadDiagram-XR7U4H2S-y3Jv2U6N.js → railroadDiagram-SM67HX2B-CgFGOVI5.js} +1 -1
- package/studio/web/assets/regions-WFvXqryO.js +1 -0
- package/studio/web/assets/{register-DCN4QUii.js → register-B7DvfAGj.js} +3 -3
- package/studio/web/assets/request-ChoMERRk.js +2 -0
- package/studio/web/assets/{requirementDiagram-PLB6GJNP-ChINZEmu.js → requirementDiagram-X7JNWC4A-BHoQgkoT.js} +4 -4
- package/studio/web/assets/restartGate-D_e93lFE.js +1 -0
- package/studio/web/assets/restartUnconfirmed-BqcDZ__Y.js +1 -0
- package/studio/web/assets/sankeyDiagram-UM26HJRW-8tFu_oUe.js +40 -0
- package/studio/web/assets/sequenceDiagram-ZO4K6R2Y-jryb1rwT.js +169 -0
- package/studio/web/assets/setComponentFile-BHk22Rh6.js +1 -0
- package/studio/web/assets/setup-wNdpTrVH.js +2 -0
- package/studio/web/assets/{stateDiagram-v2-GCMORJYK-Bs8RIb9K.js → stateDiagram-v2-TBUQTH76-CnWE5yFn.js} +2 -2
- package/studio/web/assets/status-CYoonm9V.js +61 -0
- package/studio/web/assets/{swimlanes-2SLR337P-B52xrf6t.js → swimlanes-N4OXWK64-CBlFzDJn.js} +1 -1
- package/studio/web/assets/swimlanesDiagram-K3J5GTZL-DvFLtUPi.js +8 -0
- package/studio/web/assets/{timeline-definition-EJHVYXUP-DJSITpQX.js → timeline-definition-YOQAKGHF-CFWqHrqI.js} +4 -4
- package/studio/web/assets/{toggleHighContrast-CfAp6Sxb.js → toggleHighContrast-CKEm-P4K.js} +1 -1
- package/studio/web/assets/treeView-D4JQ5SDB-CpV9zuVb.js +1 -0
- package/studio/web/assets/treemap-SAJKECNS-Bc94Tqiq.js +1 -0
- package/studio/web/assets/{tsMode-HZR0bfq4.js → tsMode-Dv35qHmn.js} +1 -1
- package/studio/web/assets/{typescript-UMJSfZyF.js → typescript-Bly1EW8o.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-B379CS-h.js → useEntityRestURL-Cg3P0MOb.js} +1 -1
- package/studio/web/assets/usecaseDiagram-VIAY4XPW-Brf2xP3S.js +328 -0
- package/studio/web/assets/{vendor-core-6LhfJlRC.js → vendor-core-PejxhUWQ.js} +1 -1
- package/studio/web/assets/vendor-datadog-GjET_Cbn.js +6 -0
- package/studio/web/assets/{vendor-react-BOliS0BL.js → vendor-react-DSIx92Ld.js} +1 -1
- package/studio/web/assets/vendor-tanstack-C5Y-nrd2.js +2 -0
- package/studio/web/assets/vendor-ui-BBWHOEoQ.js +41 -0
- package/studio/web/assets/{vennDiagram-UO4OBE2U-DZTsDA4k.js → vennDiagram-BLWOH2XV-XxOyJPq_.js} +3 -3
- package/studio/web/assets/wardley-7MLQ67FV-DRW0zuE4.js +1 -0
- package/studio/web/assets/{wardleyDiagram-VNRHLVJA-qu_f7Tvl.js → wardleyDiagram-YMQ3BMBF-B3WskJ9W.js} +3 -3
- package/studio/web/assets/wasAReleasedBeforeB-D5grAaGM.js +1 -0
- package/studio/web/assets/{workers-Bn_0_L1R.js → workers-DVtjrvUa.js} +1 -1
- package/studio/web/assets/{xml-CG2N-1r1.js → xml-DjAPbgLN.js} +1 -1
- package/studio/web/assets/xychartDiagram-TAQBALBS-D5NV4Env.js +7 -0
- package/studio/web/assets/{yaml-68pda6Av.js → yaml-oTUyoJy1.js} +1 -1
- package/studio/web/index.html +17 -15
- package/utility/npmUtilities.ts +17 -7
- package/studio/web/assets/Chat-CrxPD4ph.js +0 -2294
- package/studio/web/assets/FloatingChat-EXzoUQ-9.js +0 -23
- package/studio/web/assets/SearchDialog-7qRL8Yqx.js +0 -1
- package/studio/web/assets/_basePickBy-QJXUw_pr.js +0 -1
- package/studio/web/assets/_baseUniq-DR4vVjyC.js +0 -1
- package/studio/web/assets/alertDialog-BbWD9Xxa.js +0 -1
- package/studio/web/assets/applications-CdqjiSQe.js +0 -296
- package/studio/web/assets/architecture-7GRP2DOG-DDmz3hpI.js +0 -1
- package/studio/web/assets/arrow-up-D2g_57vT.js +0 -1
- package/studio/web/assets/authStore-CJCaADw9.js +0 -3
- package/studio/web/assets/button-DWwfgGWI.js +0 -21
- package/studio/web/assets/channel-D0AkPjJ8.js +0 -1
- package/studio/web/assets/chunk-3FUC2YCW-DuRp-j19.js +0 -2
- package/studio/web/assets/chunk-7M6MHVWA-h6WlaTzO.js +0 -213
- package/studio/web/assets/chunk-FOHPRMQF-DzxwRta7.js +0 -161
- package/studio/web/assets/chunk-O7XYJQB3-CBS3nZYV.js +0 -128
- package/studio/web/assets/chunk-Z7XXMR3K-DSHbImdf.js +0 -10
- package/studio/web/assets/cn-6T8VranJ.js +0 -1
- package/studio/web/assets/cynefin-OW5HDTMX-DIvbXLSj.js +0 -1
- package/studio/web/assets/cynefinDiagram-VND7K2PF-BdtaXiCE.js +0 -62
- package/studio/web/assets/dagre-6A5THRUB-C7RUWHyz.js +0 -4
- package/studio/web/assets/diagram-ATOU4E4O-dxRfeG4B.js +0 -3
- package/studio/web/assets/diagram-MPIPVDR6-7prveD1B.js +0 -41
- package/studio/web/assets/dist-BrRuMUzt.js +0 -11
- package/studio/web/assets/download-Cn6tPG4L.js +0 -1
- package/studio/web/assets/elk-276RUBZZ-DxDQPjQT.js +0 -27
- package/studio/web/assets/errorText-NpBmvk9I.js +0 -1
- package/studio/web/assets/eventmodeling-NTZA5JFV-DONQf5aG.js +0 -1
- package/studio/web/assets/flowDiagram-KWPJA3E3-BoZ8_QR1.js +0 -1
- package/studio/web/assets/gitGraph-4MIJSDKK-BrXWmJt2.js +0 -1
- package/studio/web/assets/gitGraphDiagram-X574FWY7-C2KnnZeY.js +0 -106
- package/studio/web/assets/graphlib-C9Tl7QrK.js +0 -1
- package/studio/web/assets/index-QLZw6xrU.css +0 -1
- package/studio/web/assets/index-qCLyhyah.js +0 -828
- package/studio/web/assets/index.lazy-DCx-DxIV.js +0 -2
- package/studio/web/assets/info-A6RAGUB7-BhzBHe4U.js +0 -1
- package/studio/web/assets/mermaid.core-1PX6R49U.js +0 -44
- package/studio/web/assets/notifications-BSObVIY1.js +0 -1
- package/studio/web/assets/notifications-DFLXk68b.js +0 -1
- package/studio/web/assets/packet-AYTQ26CC-DWbXHx5g.js +0 -1
- package/studio/web/assets/pie-WAS4IAKB-DjoTm3yr.js +0 -1
- package/studio/web/assets/pieDiagram-5QR66LMP-Dz3RHpDA.js +0 -39
- package/studio/web/assets/profile-TBjzOMIy.js +0 -1
- package/studio/web/assets/radar-RG4KPBEZ-CVBgjCOj.js +0 -1
- package/studio/web/assets/railroad-74A4TZTK-BdhXw10Q.js +0 -1
- package/studio/web/assets/railroad-abnf-HS5TGJTU-BcoQPN39.js +0 -1
- package/studio/web/assets/railroad-ebnf-LZEXJU2U-B1Lke2JN.js +0 -1
- package/studio/web/assets/railroad-peg-WCYAUIDC-D-oJFkiV.js +0 -1
- package/studio/web/assets/regions-C4an4H7e.js +0 -1
- package/studio/web/assets/restartGate-nHAFLDh-.js +0 -1
- package/studio/web/assets/sankeyDiagram-IPEJSGJF-D9AyLce2.js +0 -40
- package/studio/web/assets/sequenceDiagram-PO4LG4MO-hfk4aIEm.js +0 -169
- package/studio/web/assets/setComponentFile-BrqOM1Zm.js +0 -1
- package/studio/web/assets/setup-0v2MCm-E.js +0 -2
- package/studio/web/assets/status-DdezofUu.js +0 -61
- package/studio/web/assets/swimlanesDiagram-TC7HE7FX-DfN7BAP5.js +0 -8
- package/studio/web/assets/tabs-BCTQzoQK.js +0 -1
- package/studio/web/assets/treeView-Q6P3EWNA-C-epdxRo.js +0 -1
- package/studio/web/assets/treemap-WGGIJYW6-DOVyp_zw.js +0 -1
- package/studio/web/assets/usecaseDiagram-POWQR4AR-B6252cbq.js +0 -328
- package/studio/web/assets/vendor-datadog-ozKf-pts.js +0 -6
- package/studio/web/assets/vendor-tanstack-Bntfka-M.js +0 -2
- package/studio/web/assets/vendor-ui-9EYYDgoN.js +0 -41
- package/studio/web/assets/wardley-WFR3VGLG-Cfqoe6z4.js +0 -1
- 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)`
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
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:
|
|
144
|
-
// stalled holder does not keep a key every participant has
|
|
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
|
-
//
|
|
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
|
-
|
|
200
|
-
if (this.released)
|
|
204
|
+
retainForCommit(holdDeadlineMono) {
|
|
205
|
+
if (this.released && !this.#deferredUnlock)
|
|
201
206
|
return;
|
|
202
|
-
this
|
|
203
|
-
|
|
204
|
-
|
|
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?.(
|
|
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
|
-
|
|
240
|
-
this
|
|
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.#
|
|
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
|
-
|
|
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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"}
|
package/dist/server/mqtt.js
CHANGED
|
@@ -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
|
|
297
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
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
|
|
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
|
|
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 };
|